*{box-sizing:border-box}body{margin:0;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#182133;background:#f5f7fa;font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:19px}h3{font-size:17px}.layout{display:grid;grid-template-columns:218px 1fr;min-height:100vh}.sidebar{background:#101b2e;color:#ced7e8;padding:28px 20px;display:flex;flex-direction:column;gap:32px}.brand{font-size:22px;font-weight:750;color:white;letter-spacing:-.5px}.brand small{font-size:12px;display:block;color:#8c9bb5;letter-spacing:2px;font-weight:400}.nav{display:flex;flex-direction:column;gap:6px}.nav button{border:0;text-align:left;padding:12px 16px;background:none;color:inherit;border-radius:7px}.nav button.active{color:white;background:#283e60}.sidebar footer{margin-top:auto;color:#8c9bb5;font-size:14px}.main{padding:32px 38px;max-width:1600px;width:100%;margin:auto}.topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.muted{color:#68758a;font-size:14px}.eyebrow{font-size:13px;letter-spacing:2px;font-weight:600;margin-bottom:8px;color:#68758a}.tag{display:inline-block;padding:4px 9px;font-size:13px;background:#e8eef7;color:#415774;border-radius:4px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{padding:9px 16px;background:white;border:1px solid #cfd7e2;border-radius:6px;color:#24344c}.btn.primary{background:#244fbe;color:white;border-color:#244fbe}.btn.small{font-size:14px;padding:5px 10px}.panel{background:white;border:1px solid #e0e5ed;border-radius:9px;padding:23px;margin-bottom:20px}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.filters{display:flex;gap:15px;flex-wrap:wrap;align-items:end}.filters label,.field{display:flex;flex-direction:column;gap:6px;font-size:14px;color:#56637a}input,select,textarea{border:1px solid #cfd7e2;background:white;border-radius:5px;padding:9px 11px;color:#23324a;min-width:0}input[type=date]{min-width:155px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.kpi{padding:23px;background:white;border:1px solid #e0e5ed;border-radius:9px}.kpi .value{font-size:30px;font-weight:650;letter-spacing:-1px;margin:8px 0 4px}.kpi small{color:#68758a;font-size:13px}.grid2{display:grid;grid-template-columns:1.45fr 1fr;gap:20px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap}th{text-align:left;background:#f5f7fb;color:#68758a;font-size:13px;font-weight:500;padding:11px 12px;border-bottom:1px solid #e0e5ed}td{padding:13px 12px;border-bottom:1px solid #edf0f5}.num{text-align:right;font-variant-numeric:tabular-nums}.status{font-size:13px;padding:3px 8px;background:#e7f3ed;color:#31734d;border-radius:4px}.status.warn{background:#fff0db;color:#9a610a}.status.bad{background:#fbe9e9;color:#ab3939}.note{padding:12px 16px;border-left:3px solid #b3c4e4;background:#edf2fa;font-size:14px;color:#526580;margin-bottom:20px}.bars{display:flex;align-items:flex-end;justify-content:space-around;gap:5px;height:195px;padding-top:20px;border-bottom:1px solid #dce3ee}.barbox{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:6px}.bar{width:75%;max-width:36px;background:#426ccb;border-radius:3px 3px 0 0;min-height:2px}.barbox span{font-size:12px;color:#68758a}.barbox strong{font-size:12px;font-weight:400;color:#68758a}.rankrow{display:grid;grid-template-columns:75px 1fr 85px;align-items:center;gap:12px;margin:18px 0;font-size:14px}.track{height:8px;background:#edf1f7;border-radius:10px;overflow:hidden}.track i{display:block;height:100%;background:#5c7ad2}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#172338;color:white;padding:13px 22px;border-radius:6px;z-index:1000;max-width:90vw}.hidden{display:none!important}dialog{border:1px solid #d3dbe8;border-radius:9px;width:560px;max-width:94vw;padding:28px;box-shadow:0 20px 70px #10203a30}dialog::backdrop{background:#17233865}dialog form{display:grid;gap:16px}dialog h2{margin-bottom:8px}.dialogactions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.empty{text-align:center;padding:40px;color:#68758a}.tabs{display:flex;gap:8px;margin:20px 0;border-bottom:1px solid #dde4ee}.tabs button{background:none;border:0;padding:10px 18px;color:#69778b;border-bottom:2px solid transparent}.tabs button.active{color:#214fba;border-color:#214fba}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:white;border:1px solid #dfe5ed;border-radius:9px;padding:23px;display:flex;flex-direction:column;gap:18px}.cardfoot{border-top:1px solid #edf0f6;padding-top:15px;display:flex;justify-content:space-between;align-items:center}.twofields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.pill{font-size:14px;color:#6a7384}.blankbtn{border:0;background:none;color:#244fbe;padding:4px}.dateblock{background:#f3f5f8;border-radius:5px;padding:15px;margin:0}.dateblock strong{display:block;font-size:24px}.smallnote{font-size:13px;color:#738097;margin-top:12px}@media(max-width:1050px){.layout{grid-template-columns:180px 1fr}.main{padding:26px 22px}.kpis{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.layout{display:block}.sidebar{padding:16px;gap:15px}.brand small,.sidebar footer{display:none}.nav{flex-direction:row;overflow:auto;gap:5px}.nav button{white-space:nowrap;padding:7px 10px;font-size:14px}.main{padding:22px 16px}.topline{align-items:flex-start;flex-direction:column}h1{font-size:26px}.kpis{gap:10px}.kpi{padding:15px}.kpi .value{font-size:25px}.panel{padding:16px}.cards,.twofields{grid-template-columns:1fr}.filters label{flex:1}.filters input,.filters select{width:100%}.actions{gap:7px}.btn{font-size:14px}.panelhead{align-items:flex-start;flex-direction:column}}
/* Keep workspaces aligned with the top of the page. */
.layout>.main{margin:0 auto}
