:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;background:#f4f6fa;color:#16253b;font-size:14px;--ink:#16253b;--navy:#111e35;--blue:#176edb;--line:#e4e8f0;--muted:#718097;--good:#15967e;--warn:#b88026;--bad:#cd425a}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--blue)}.layout{display:flex;min-height:100vh}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;background:var(--navy);color:white;padding:25px 15px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;padding:0 9px 34px}.brand-mark{display:grid;place-items:center;background:#316fed;color:white;width:40px;height:40px;border-radius:11px;font-size:17px;font-weight:800}.brand-mark.large{margin:auto;width:56px;height:56px;font-size:23px}.brand strong{display:block;font-size:17px;white-space:nowrap}.brand small{font-size:11px;color:#9aa9bf}.nav-label{color:#8393af;font-size:11px;font-weight:700;letter-spacing:1.3px;padding:4px 16px 9px}.nav-item{display:block;background:transparent;color:#ccd6e6;border:0;border-radius:8px;padding:13px 15px;text-align:left;width:100%;margin:3px 0;font-weight:600}.nav-item:hover,.nav-item.active{background:#253b60;color:#fff}.nav-item.active{border-left:3px solid #64a5ff}.side-foot{border-top:1px solid #33425b;margin-top:auto;padding:18px 14px;color:#adbbd2}.side-foot b{color:white}.side-foot small{display:block;margin-top:9px}.main{margin-left:246px;min-width:0;flex:1}.topbar{background:white;border-bottom:1px solid var(--line);min-height:83px;display:flex;justify-content:space-between;align-items:center;padding:15px 30px;gap:10px}.top-title{display:flex;gap:12px;align-items:center}.topbar h1{margin:0;font-size:23px;letter-spacing:-.4px}.topbar span{font-size:12px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:8px}.pill{padding:8px 11px;border-radius:20px;background:#edf3ff;color:#2259a9!important;font-size:12px;font-weight:700}.pill.light{background:#f2f4f7;color:#50627e!important}.iconbtn{background:transparent;border:0;font-size:22px;color:#77869b;padding:5px}.top-title .iconbtn{display:none}.notice{background:#fff9e8;border-bottom:1px solid #f6e2ad;color:#745719;padding:10px 30px;font-size:12px}.notice.success{background:#eefbf7;color:#2a7b60;border-color:#bde7d8}.workspace{padding:26px 30px;max-width:1650px;margin:auto}.controls{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.filter-row{display:flex;flex-wrap:wrap;gap:11px;flex:1}.filter-row label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px;font-weight:700}.filter-row .grow{flex:1;min-width:180px}input,select{border:1px solid #dbe2ed;background:#fff;border-radius:8px;padding:11px 12px;color:var(--ink);min-height:41px;outline:0}input:focus,select:focus{border-color:#6da7f5;box-shadow:0 0 0 3px #b7d6ff61}.stamp{text-align:right;min-width:172px}.stamp b,.stamp small{display:block}.stamp small{color:var(--muted);font-size:11px;margin-top:4px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:0 1px 4px #13213e06}.card h2{font-size:16px;margin:0 0 15px}.card-sub{color:var(--muted);font-size:12px;margin-top:-10px;margin-bottom:14px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.kpis .card{padding:18px}.kpi-label{color:var(--muted);font-size:12px;font-weight:650}.kpi-number{font-size:30px;font-weight:800;letter-spacing:-1px;margin:9px 0 3px}.kpi-foot{font-size:11px;color:var(--muted)}.good{color:var(--good)}.bad{color:var(--bad)}.warning{color:var(--warn)}.cols{display:grid;grid-template-columns:1.25fr 1fr;gap:16px;margin-bottom:18px}.mb{margin-bottom:18px}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-transform:uppercase;letter-spacing:.55px;font-size:10px;text-align:left;color:#748299;padding:12px 9px;border-bottom:1px solid var(--line)}td{padding:12px 9px;border-bottom:1px solid #eff1f5;font-size:12px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8fbff}.table-link{border:0;background:none;color:#165db9;font-weight:700;text-align:left;padding:0;text-decoration:underline;text-underline-offset:3px}.status{display:inline-block;border-radius:20px;padding:4px 8px;font-size:10px;font-weight:800;background:#eef3fa;color:#63748a}.status.ok{color:#0d856f;background:#eaf9f3}.status.bad{color:#ba3852;background:#fff0f1}.status.warn{color:#986522;background:#fff6e7}.bar-track{height:10px;background:#eff2f7;overflow:hidden;border-radius:20px;min-width:84px}.bar{height:100%;border-radius:20px;background:var(--good)}.bar.bad{background:var(--bad)}.stack{display:flex;flex-direction:column;gap:11px}.segline{display:flex;align-items:center;gap:8px}.segline span:first-child{width:115px;min-width:115px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.segline .bar-track{flex:1}.segline b{font-size:12px;min-width:50px;text-align:right}.empty{padding:60px 25px;text-align:center;background:#fff;border:1px dashed #cdd7e5;border-radius:12px}.empty h2{margin:8px}.empty p{color:var(--muted);line-height:1.6}.btn{border:0;border-radius:8px;padding:10px 15px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary{background:#176edb;color:#fff}.primary:hover{background:#085abc}.secondary{background:#f0f4fa;color:#3a506f}.dangerBtn{background:#fff0f1;color:#ad344e}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.muted{color:var(--muted)}.small{font-size:12px}.filebox{padding:25px;border:2px dashed #bfcde3;border-radius:12px;background:#f7faff;text-align:center;margin:15px 0}.filebox input{margin-top:12px;width:100%;max-width:450px;background:#fff}.footnote{font-size:11px;color:#718097;line-height:1.55}.footer{color:#93a0b5;text-align:center;font-size:11px;padding:30px 0}.hidden{display:none!important}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:65vh}.login-card{width:min(420px,95%);border:1px solid var(--line);background:white;padding:30px;border-radius:16px;box-shadow:0 10px 35px #111e3520;text-align:center}.login-card h2{margin:14px 0 8px}.login-card p{color:var(--muted)}.login-card label{display:flex;flex-direction:column;text-align:left;gap:6px;margin:14px 0;font-size:12px;font-weight:700}.login-card .btn{width:100%;margin-top:10px}.error{color:var(--bad)!important;font-size:12px}.warning-box{padding:13px;border:1px solid #ffdd9b;border-radius:8px;background:#fffbef;color:#8b6426;font-size:12px}.success-box{background:#eefbf7;color:#187b61;border:1px solid #baedde;padding:13px;border-radius:8px;font-size:12px}dialog{border:0;border-radius:14px;box-shadow:0 20px 75px #10182780;max-width:min(980px,96vw);width:980px;max-height:90vh;padding:24px}dialog::backdrop{background:#0b1c3499}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px}.dialog-head h2{margin:0;font-size:20px}.dialog-head small{color:var(--muted)}.two-col{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.list{padding-left:20px;font-size:12px;line-height:1.9}.trend{display:flex;height:148px;align-items:end;gap:9px;border-bottom:1px solid #dce4ee;padding:6px 6px 0}.trend-item{flex:1;min-width:15px;text-align:center}.trend-bar{background:#4379d2;border-radius:5px 5px 0 0;min-height:3px}.trend-item small{display:block;font-size:9px;color:var(--muted);margin:5px 0}.scroll{max-height:700px;overflow:auto}.nowrap{white-space:nowrap}.text-right{text-align:right}@media(max-width:1200px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cols{grid-template-columns:1fr}}@media(max-width:750px){.sidebar{transform:translateX(-110%);transition:.2s;width:230px}.layout.menu-open .sidebar{transform:none;box-shadow:15px 0 55px #09172c77}.main{margin-left:0;width:100%}.top-title .iconbtn{display:block}.topbar{padding:13px 15px;min-height:68px}.topbar h1{font-size:17px}.topbar span{font-size:10px}.top-actions{flex-wrap:wrap;justify-content:end}.pill{padding:5px 7px;font-size:10px}.workspace{padding:16px}.notice{padding:10px 16px}.controls{flex-direction:column;align-items:stretch}.stamp{text-align:left}.kpis{gap:9px}.card{padding:14px}.kpi-number{font-size:24px}.two-col{grid-template-columns:1fr}.brand{padding-bottom:18px}dialog{padding:15px}}
