:root{--bg:#f4f6f4;--surface:#fff;--surface-2:#eef3f1;--ink:#17211c;--muted:#64736b;--line:#d9e1dd;--green:#28785f;--green-soft:#dceee7;--blue:#2f68a7;--blue-soft:#e0ecf7;--amber:#a86616;--amber-soft:#f6ead8;--red:#b33a3a;--red-soft:#f7dfdf;--shadow:0 14px 38px rgba(22,32,27,.08)}*{box-sizing:border-box}body,html{min-height:100%}.loading-screen,.login-screen{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{display:grid;grid-gap:14px;gap:14px;width:min(420px,100%);padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;padding:24px 18px;border-right:1px solid var(--line);background:#fbfcfb}.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:8px;background:var(--green);color:#fff;font-weight:700}.brand-title{margin:0;font-size:17px}.brand-subtitle{margin:2px 0 0;color:var(--muted);font-size:12px}.nav{display:grid;grid-gap:8px;gap:8px}.nav-button{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);text-align:left}.nav-button.active{border-color:#c6d8d0;background:var(--green-soft);color:var(--green);font-weight:700}.sidebar-footer{position:absolute;right:18px;bottom:22px;left:18px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.main{min-width:0;padding:28px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{margin:0 0 6px;color:var(--green);font-size:13px;font-weight:700}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;font-size:30px;letter-spacing:0}h2{margin:0 0 14px;font-size:19px}h3{margin:0;font-size:16px}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.button.primary{border-color:var(--green);background:var(--green);color:#fff}.button:disabled{cursor:not-allowed;opacity:.48}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.metric{padding:17px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.metric-label{margin:0 0 8px;color:var(--muted);font-size:13px}.metric-value{margin:0;font-size:28px;font-weight:800}.grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);grid-gap:18px;gap:18px;align-items:start}.section{padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.section+.section{margin-top:18px}.toolbar{gap:10px;justify-content:space-between;margin-bottom:14px}.search,.toolbar{display:flex;align-items:center}.search{gap:8px;min-width:260px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.search input{width:100%;min-height:38px;border:0;outline:0;background:transparent}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:13px 10px;border-top:1px solid var(--line);text-align:left;vertical-align:top;font-size:14px}.table th{color:var(--muted);font-size:12px;font-weight:700}.priority,.risk,.status{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.risk.low,.status.green{background:var(--green-soft);color:var(--green)}.status.blue{background:var(--blue-soft);color:var(--blue)}.priority.high,.risk.medium,.status.amber{background:var(--amber-soft);color:var(--amber)}.risk.high,.status.red{background:var(--red-soft);color:var(--red)}.priority.medium{background:var(--blue-soft);color:var(--blue)}.priority.low{background:var(--surface-2);color:var(--muted)}.card-list{display:grid;grid-gap:12px;gap:12px}.work-card{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.work-card-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:10px}.muted{color:var(--muted);font-size:13px}.stack{display:grid;grid-gap:10px;gap:10px}.audit-row,.field-row,.material-row,.rpa-step{display:flex;gap:10px;align-items:center;justify-content:space-between;min-height:38px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.field-row{align-items:flex-start}.progress{display:grid;grid-gap:8px;gap:8px}.progress-step{display:grid;grid-template-columns:14px 1fr;grid-gap:9px;gap:9px;align-items:center;color:var(--muted);font-size:13px}.dot{width:10px;height:10px;border-radius:999px;background:#b8c5bf}.dot.done{background:var(--green)}.dot.active{background:var(--blue)}.dot.blocked{background:var(--red)}.client-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-gap:18px;gap:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.field{display:grid;grid-gap:6px;gap:6px}.field label{color:var(--muted);font-size:12px;font-weight:700}.field input,.field select,.field textarea{width:100%;min-height:38px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.field textarea{min-height:96px;resize:vertical}.upload-list{display:flex;gap:8px;align-items:center;min-height:38px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;flex-wrap:wrap}.upload-list a{color:var(--blue);font-size:13px;text-decoration:none}.span-2{grid-column:1/-1}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.section-subgrid{display:grid;grid-gap:12px;gap:12px;margin-top:16px}.empty-state{padding:26px;border:1px dashed #b9c7c1;border-radius:8px;background:#fbfcfb;color:var(--muted);text-align:center}@media (max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar-footer{position:static;margin-top:16px}.client-panel,.grid,.metrics,.split{grid-template-columns:1fr}.toolbar,.topbar{flex-direction:column;align-items:stretch}}@media (max-width:620px){.main{padding:18px}.form-grid{grid-template-columns:1fr}.search{min-width:0}.table{display:block;overflow-x:auto;white-space:nowrap}}