:root{font-family:Inter,"Microsoft YaHei",Arial,sans-serif;color:#172033;background:#f3f6fa;font-size:14px;--blue:#075fa3;--deep:#073b73;--line:#e1e7ef;--muted:#69778a;--green:#16825d;--orange:#ce7118}*{box-sizing:border-box}body{margin:0}.hidden{display:none!important}button,input,select{font:inherit}.login-page{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr;background:linear-gradient(135deg,#063a72,#0678b8)}.login-hero{padding:15vh 9vw;color:#fff;background:radial-gradient(circle at 20% 20%,#5bd3ff33,transparent 32%)}.login-logo{font-size:24px;font-weight:800;letter-spacing:3px}.login-hero h1{font-size:40px;margin:70px 0 16px}.login-hero p{font-size:18px;opacity:.84}.login-chain{margin-top:60px;padding:18px 22px;border:1px solid #ffffff40;border-radius:10px;background:#ffffff10;max-width:620px}.login-card{align-self:center;justify-self:center;width:min(430px,88%);background:white;padding:40px;border-radius:16px;box-shadow:0 24px 80px #001b3b66}.eyebrow{font-size:11px;color:#0a6cad;letter-spacing:2px}.login-card h2{font-size:24px;line-height:1.5;margin:10px 0 26px}.login-card label{display:grid;gap:8px;margin:17px 0;color:#516071}.login-card input,.field{border:1px solid #cdd6e1;border-radius:6px;padding:11px 12px;background:#fff}.primary{border:0;background:var(--blue);color:#fff;border-radius:6px;padding:10px 17px;cursor:pointer}.wide{width:100%;margin:8px 0 18px}.error{color:#c62828}.login-card small{color:#8a96a5}.app-shell{min-height:100vh;display:grid;grid-template-columns:218px minmax(0,1fr)}.sidebar{background:linear-gradient(180deg,#073e78,#062f60);color:#fff;padding:18px 13px;position:sticky;top:0;height:100vh;z-index:5}.brand{padding:8px 10px 22px;border-bottom:1px solid #ffffff1c}.brand b{font-size:20px;letter-spacing:2px}.brand span{display:block;font-size:11px;color:#b9d0e6;margin-top:5px}.nav-label{font-size:11px;color:#8fb1d2;padding:22px 12px 7px}nav{display:grid;gap:4px}nav button{border:0;background:transparent;color:#dceafb;text-align:left;padding:11px 13px;border-radius:6px;cursor:pointer}nav button i{font-style:normal;display:inline-block;width:26px;color:#9ed2f6}nav button.active,nav button:hover{background:#ffffff18;color:#fff}.help{position:absolute;bottom:20px;left:15px;right:15px;background:#ffffff12;border:1px solid #ffffff14;border-radius:8px;padding:12px}.help b,.help span{display:block;font-size:12px}.help span{color:#a9c4dd;margin-top:4px}.workspace{min-width:0}.topbar{height:60px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 18px;position:sticky;top:0;z-index:4}.spacer{flex:1}.menu-btn,.icon-btn{border:0;background:transparent;padding:8px;cursor:pointer}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e0eef9;color:var(--blue);font-weight:700;margin-left:8px}.user-meta{display:grid;margin:0 8px}.user-meta b{font-size:13px}.user-meta span{font-size:11px;color:var(--muted)}.user-menu{position:absolute;right:18px;top:54px;background:white;border:1px solid var(--line);box-shadow:0 10px 30px #12203322;border-radius:7px;padding:6px;width:130px}.user-menu button{display:block;width:100%;border:0;background:white;text-align:left;padding:9px;cursor:pointer}.page{padding:14px 18px 20px}.page-head{height:66px;display:flex;justify-content:space-between;align-items:center}.breadcrumb{font-size:11px;color:#8390a0;display:flex;gap:8px}.page-head h1{font-size:21px;margin:7px 0}.btn,.ghost{border:1px solid #cfd8e3;background:white;color:#38475a;border-radius:5px;padding:8px 13px;cursor:pointer}.btn.blue{background:var(--blue);color:#fff;border-color:var(--blue)}.tabs{display:flex;border-bottom:1px solid var(--line);background:white;padding:0 14px}.tabs button{border:0;background:white;padding:13px 18px;color:#566579;cursor:pointer;border-bottom:2px solid transparent}.tabs button.active{color:var(--blue);border-color:var(--blue);font-weight:600}.filterbar{background:#fff;border:1px solid var(--line);padding:10px 12px;display:flex;gap:9px;flex-wrap:wrap;align-items:center}.filterbar input,.filterbar select{border:1px solid #d4dce6;border-radius:5px;padding:8px 10px;background:#fff;min-width:150px}.filterbar .search{min-width:260px}.status-strip{display:flex;gap:8px;padding:10px 0;overflow:auto}.status-chip{border:1px solid var(--line);background:#fff;border-radius:7px;padding:10px 15px;min-width:120px;text-align:left;cursor:pointer}.status-chip b{display:block;font-size:17px;margin-top:5px;color:#26384b}.status-chip.active{border-color:#4a9bd2;background:#f2f9fe}.toolbar{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-bottom:0;padding:9px 11px}.toolbar .count{color:var(--muted);margin-right:auto}.table-shell{background:#fff;border:1px solid var(--line);overflow:auto;height:calc(100vh - 285px);min-height:360px}.grid{border-collapse:separate;border-spacing:0;width:100%;min-width:1500px}.grid th,.grid td{padding:9px 10px;border-right:1px solid #edf0f4;border-bottom:1px solid #e7ebf0;text-align:left;white-space:nowrap;font-size:12px;height:39px}.grid th{position:sticky;top:0;background:#f5f7fa;color:#506075;z-index:2;font-weight:600}.grid th:first-child,.grid td:first-child{position:sticky;left:0;background:inherit;z-index:3}.grid tbody tr:hover td{background:#f4f9fd}.grid .link{color:#086aa8;font-weight:600;cursor:pointer}.grid input[type=checkbox]{accent-color:var(--blue)}.pager{display:flex;justify-content:flex-end;gap:10px;align-items:center;background:#fff;padding:10px;border:1px solid var(--line);border-top:0}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi{background:#fff;border:1px solid var(--line);padding:17px;border-radius:7px;position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#1485c1}.kpi span{color:var(--muted);font-size:12px}.kpi b{display:block;font-size:29px;margin:12px 0 4px}.kpi small{color:#7d8998}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:12px;margin-top:12px}.panel{background:#fff;border:1px solid var(--line);border-radius:7px;padding:16px}.panel h3{margin:0 0 15px;font-size:15px}.bars{height:220px;display:flex;align-items:flex-end;gap:18px;padding:18px 20px 30px;border-bottom:1px solid #edf0f4}.bar{flex:1;background:linear-gradient(#2594ce,#0870ad);border-radius:4px 4px 0 0;position:relative;min-height:8px}.bar span{position:absolute;bottom:-24px;left:50%;transform:translateX(-50%);font-size:11px;color:#738094}.todo{display:grid;gap:9px}.todo button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:12px;text-align:left;cursor:pointer}.todo b{color:var(--blue);font-size:18px;margin-right:8px}.upload-box{background:#fff;border:2px dashed #b5c4d3;border-radius:8px;padding:30px;text-align:center}.upload-box input{margin:10px}.stepper{display:flex;gap:4px;margin-bottom:12px}.stepper span{flex:1;padding:10px;background:#e9eef3;text-align:center;font-size:12px}.stepper span.active{background:#d9ecf8;color:#075f9e}.settings-layout{display:grid;grid-template-columns:210px 1fr;gap:12px}.settings-menu{background:#fff;border:1px solid var(--line);padding:7px;border-radius:7px}.settings-menu button{border:0;background:white;width:100%;text-align:left;padding:11px;border-radius:5px;cursor:pointer}.settings-menu button.active{background:#eaf4fb;color:var(--blue)}.settings-content{min-height:480px}.quality-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quality-card{border:1px solid var(--line);padding:14px;border-radius:7px}.quality-card b{display:block;font-size:22px;margin:8px 0}.tag{display:inline-block;border-radius:999px;padding:3px 8px;background:#e5f2fb;color:#075e99}.tag.green{background:#e2f4ed;color:#127151}.tag.orange{background:#fff0dd;color:#a85c10}.tag.red{background:#fde8e8;color:#b42318}.empty{text-align:center;color:#7a8795;padding:48px}.drawer{position:fixed;inset:0;background:#0b172d55;z-index:20}.drawer-panel{position:absolute;right:0;top:0;bottom:0;width:min(880px,92vw);background:#f5f7fa;box-shadow:-12px 0 40px #0b183333;overflow:auto}.drawer-head{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:15px 20px;align-items:center;position:sticky;top:0;z-index:3}.drawer-head span{font-size:11px;color:var(--muted)}.drawer-head h2{margin:5px 0;font-size:18px}.drawer-head button,.modal-x{border:0;background:transparent;font-size:25px;cursor:pointer}.drawer-tabs{display:flex;gap:0;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:76px;z-index:2;overflow:auto}.drawer-tabs button{border:0;background:#fff;padding:13px 15px;white-space:nowrap;cursor:pointer}.drawer-tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue)}.drawer-content{padding:14px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.info-item{background:#fff;padding:13px}.info-item span{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.modal{position:fixed;inset:0;background:#07132888;z-index:30;display:grid;place-items:center}.modal-card{background:#fff;border-radius:10px;padding:24px;width:min(720px,92vw);max-height:85vh;overflow:auto;position:relative}.modal-x{position:absolute;right:12px;top:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row label{display:grid;gap:6px}.toast,#toast{position:fixed;right:24px;bottom:24px;background:#18304e;color:#fff;padding:12px 18px;border-radius:6px;opacity:0;transform:translateY(10px);transition:.2s;z-index:50}#toast.show{opacity:1;transform:none}@media(max-width:960px){.app-shell{grid-template-columns:70px 1fr}.sidebar .brand span,.sidebar .brand b,.nav-label,.help{display:none}.sidebar nav button{font-size:0;text-align:center}.sidebar nav i{font-size:18px}.kpis,.quality-cards{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.settings-layout{grid-template-columns:1fr}.settings-menu{display:flex;overflow:auto}.login-page{grid-template-columns:1fr}.login-hero{display:none}}@media(max-width:600px){.page{padding:10px}.kpis{grid-template-columns:1fr 1fr}.info-grid{grid-template-columns:1fr}.filterbar .search{min-width:100%}.user-meta{display:none}}
