:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#17211b;background:#f4f6f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:1180px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px 1fr}aside{background:#12281c;color:#f5f7f0;padding:24px 18px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 24px;border-bottom:1px solid #35503e}.brand-mark{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:#d9ff62;color:#12281c;font-weight:900;font-size:20px}.brand strong,.brand small{display:block}.brand small{color:#aec4b3;margin-top:4px;font-size:11px;letter-spacing:.08em}.nav-group{margin-top:20px}.nav-group p{color:#8ea797;text-transform:uppercase;font-size:10px;letter-spacing:.18em;padding:0 10px}.nav-group button{display:block;width:100%;border:0;border-radius:7px;background:transparent;color:#dce7df;text-align:left;padding:9px 10px;margin:2px 0;font-size:13px}.nav-group button:hover,.nav-group button:focus-visible{background:#294333;outline:2px solid #d9ff62;outline-offset:1px}.nav-group button.active{background:#d9ff62;color:#12281c;font-weight:700}main{padding:26px 34px 60px;overflow:hidden}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}h1{font-size:29px;margin:3px 0 0;letter-spacing:-.04em}h2{margin:2px 0 8px;font-size:20px}p{line-height:1.65}.eyebrow{margin:0;color:#54705f;font-size:10px;font-weight:800;letter-spacing:.18em}.role-switch{background:#fff;border:1px solid #d9ded7;border-radius:10px;padding:10px 14px;text-align:left;min-width:220px}.role-switch span,.role-switch strong{display:block}.role-switch span{font-size:11px;color:#66746b;margin-bottom:3px}.demo-banner{background:#1b3425;color:#e5f0e8;padding:10px 14px;border-radius:7px;font-size:12px;margin-bottom:12px}.formal-banner{background:#e8f3ff;color:#173754;border-left:4px solid #2f79b9;padding:10px 14px;border-radius:7px;font-size:12px;margin-bottom:12px}.notice,.error,.warning{border-radius:7px;padding:10px 14px;margin:12px 0;font-size:13px}.notice{background:#ebf4dc;border-left:4px solid #8cb12d}.error{background:#fff0ed;border-left:4px solid #b23a25;color:#7b2114}.warning{background:#fff7d9;border-left:4px solid #b8860b}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.metric,.panel{background:#fff;border:1px solid #dfe3dc;border-radius:12px;box-shadow:0 8px 22px #182e1f0b}.metric{padding:20px}.metric span{display:block;color:#647269;font-size:12px;margin-bottom:14px}.metric strong{display:block;font-size:25px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.panel{padding:22px;margin:16px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center}.workflow-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.workflow-list li{background:#f3f6f1;border-radius:8px;padding:12px;font-size:13px}.workflow-list span{color:#718178;font-size:10px;display:block}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.section-head>p{color:#657169;font-size:12px;max-width:420px;margin:0;text-align:right}.table-wrap{overflow-x:auto;border:1px solid #e1e5df;border-radius:8px}table{border-collapse:collapse;width:100%;min-width:850px;font-size:12px}th{background:#eef2eb;color:#4e6254;font-weight:700;text-align:left;padding:10px;white-space:nowrap}td{padding:11px 10px;border-top:1px solid #e7eae5;white-space:nowrap}tbody tr:hover{background:#fafcf8}.number{text-align:right;font-variant-numeric:tabular-nums}.empty{color:#6e7b72;text-align:center;padding:28px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.record-card{border:1px solid #dfe3dc;border-radius:9px;padding:16px;background:#fcfdfb}.record-card>div:first-child{display:flex;justify-content:space-between;gap:12px}.record-card small{color:#657269}.record-amount{font-weight:800;font-size:22px;font-variant-numeric:tabular-nums}.status{display:inline-flex;border:1px solid currentColor;border-radius:99px;padding:4px 8px;font-size:11px;font-weight:700}.status-matched{color:#256d3f;background:#edf8f0}.status-mismatched{color:#a73525;background:#fff1ee}.status-missing{color:#765d12;background:#fff8df}.status-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.primary{background:#173e28;color:#fff;border:0;border-radius:7px;padding:10px 14px;font-weight:700}.primary:hover,.primary:focus-visible{background:#245d3c;outline:3px solid #b8d96b;outline-offset:2px}.compact-form{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr auto;gap:12px;align-items:end}label{display:grid;gap:6px;color:#4d5c52;font-size:12px;font-weight:700}input,select{border:1px solid #cfd6ce;border-radius:7px;padding:10px;min-width:0;color:#17211b;background:#fff}input:focus,select:focus{outline:3px solid #d9ff62;border-color:#517040}fieldset{border:0;padding:0;margin:20px 0 0}legend{font-weight:800;margin-bottom:10px}.session-panel{max-width:900px}.session-panel>label{max-width:360px;margin-top:18px}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.role-option{text-align:left;background:#f7f9f5;border:1px solid #d7ddd5;border-radius:8px;padding:14px}.role-option strong,.role-option small{display:block}.role-option small{margin-top:6px;color:#647169}.role-option.selected{border:2px solid #173e28;background:#edf4e8}.secondary{background:#fff;color:#173e28;border:1px solid #9aab9e;border-radius:7px;padding:9px 12px;font-weight:700}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:40px;background:radial-gradient(circle at top left,#eef7df,#f4f6f1 55%)}.auth-card{width:min(520px,100%);display:grid;gap:15px;background:#fff;border:1px solid #dfe3dc;border-radius:16px;box-shadow:0 20px 50px #182e1f18;padding:34px}.auth-card h1{margin:0}.auth-card p{margin:0;color:#56665c}.auth-card small{color:#66746b}.auth-form{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:14px;align-items:end}.account-summary{margin-top:18px;display:flex;align-items:center;gap:12px;background:#f3f7f0;padding:14px;border-radius:9px}.account-summary strong{font-size:18px}.account-summary span{color:#627068;flex:1}.account-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.account-actions{display:flex;gap:8px;align-items:center}.account-actions select{flex:1}.account-create{grid-template-columns:1.1fr repeat(4,1fr) auto}.loading{padding:80px;text-align:center;color:#637269}.contract-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.contract-option{display:grid;gap:5px;text-align:left;padding:15px;border:1px solid #d8dfd7;border-radius:9px;background:#f8faf6;color:#17211b}.contract-option span{color:#68776d;font-size:10px;letter-spacing:.12em}.contract-option strong{font-size:15px}.contract-option small{color:#56665c}.contract-option em{color:#426432;font-size:11px;font-style:normal;font-weight:800}.contract-option.selected{border:2px solid #173e28;background:#eff6e9;box-shadow:inset 0 0 0 2px #d9ff62}.contract-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.contract-title p:not(.eyebrow){margin:4px 0 0;color:#647269;font-size:12px}.control-statuses{display:grid;grid-template-columns:1fr 1fr;gap:7px;min-width:330px}.control-statuses>span{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#617067;font-size:10px}.stage-track{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.stage{display:grid;gap:6px;min-height:104px;padding:14px;border-radius:9px;border:1px solid #dce2da;background:#f5f7f3}.stage span{color:#7b897f;font-size:10px;font-weight:900}.stage small{color:#647269}.stage.completed{background:#173e28;color:#fff;border-color:#173e28}.stage.completed span,.stage.completed small{color:#c9dccd}.tracking-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #e2e6df;border-bottom:1px solid #e2e6df}.tracking-metrics article{padding:16px;border-right:1px solid #e2e6df}.tracking-metrics article:last-child{border-right:0}.tracking-metrics span,.tracking-metrics strong{display:block}.tracking-metrics span{color:#66746b;font-size:11px;margin-bottom:8px}.tracking-metrics strong{font-size:18px;font-variant-numeric:tabular-nums}.tracking-metrics .quantity-value{font-size:12px;line-height:1.55}.progress-summary{padding-top:18px}.progress-summary>div:first-child{display:flex;justify-content:space-between;gap:20px;margin-bottom:9px;font-size:12px}.progress-summary span{color:#647269}.progress-track{height:12px;overflow:hidden;border-radius:99px;background:#e4e9e1}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#79a732,#d9ff62)}.contract-alerts{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.contract-alerts span{background:#fff4d8;color:#705511;border-radius:99px;padding:6px 10px;font-size:11px;font-weight:700}.tracking-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tracking-actions .panel{margin:0}.action-form{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;align-items:end;gap:10px}.process-guard{display:grid;grid-template-columns:1fr 1.4fr;align-items:center;gap:24px;border-left:5px solid #b8860b}.process-guard p{margin:0;color:#5f6d63;font-size:12px}.timeline{border-left:2px solid #d7dfd5;margin-left:78px}.timeline article{position:relative;display:grid;grid-template-columns:1fr auto;gap:16px;padding:0 0 20px 25px}.timeline article:before{content:"";position:absolute;left:-7px;top:5px;width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:#56833a;box-shadow:0 0 0 1px #56833a}.timeline time{position:absolute;width:70px;left:-88px;top:1px;color:#68776d;font-size:11px;text-align:right}.timeline strong,.timeline span{display:block}.timeline span{color:#68776d;font-size:11px;margin-top:4px}.timeline b{font-size:12px;font-variant-numeric:tabular-nums}@media(max-width:1200px){.cards,.compact-form{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
