:root{--navy:#07172e;--navy2:#0d2747;--red:#e30613;--green:#12a150;--amber:#e58a00;--blue:#2878e8;--bg:#f4f7fb;--line:#dce3ec;--muted:#6a7890;--text:#0f1c2e;--white:#fff}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}
.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}aside{background:linear-gradient(180deg,#07172e 0%,#08203d 100%);color:#fff;padding:18px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;box-shadow:6px 0 30px rgba(7,23,46,.08)}
.logo-card{height:94px;background:#fff;border-radius:18px;display:flex;align-items:center;justify-content:center;flex-direction:column;margin:0 0 20px;overflow:hidden;border:1px solid rgba(255,255,255,.4)}.logo-card img{max-width:170px;max-height:58px;object-fit:contain}.finance-word{color:#101c2d;letter-spacing:5px;font-size:11px;margin-top:2px}
nav{display:grid;gap:5px}nav a{display:flex;align-items:center;gap:12px;color:#f3f6fa;text-decoration:none;padding:12px 13px;border-radius:11px;font-size:14px;border-left:3px solid transparent;transition:.15s}nav a span{width:22px;text-align:center;font-size:18px;color:#d6e2f2}nav a:hover{background:#102b4d}nav a.active{background:linear-gradient(90deg,rgba(227,6,19,.42),rgba(227,6,19,.14));border-left-color:var(--red);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.user{margin-top:auto;display:flex;gap:10px;align-items:center;font-size:12px;color:#d1d9e5;padding:14px 7px}.user b{color:#fff}.user a{color:#fff}.avatar,.top-avatar{display:grid;place-items:center;border-radius:50%;background:#d9e0ea;color:#42526a}.avatar{width:38px;height:38px;font-weight:800}.top-avatar{width:30px;height:30px;display:inline-grid;margin-left:10px}
main{padding:0 24px 36px;max-width:1800px;width:100%;overflow-x:hidden}.topline{height:56px;display:flex;justify-content:space-between;align-items:center}.top-user{display:flex;align-items:center;gap:7px;font-size:13px;color:#53617a}
.page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:2px 0 16px}.eyebrow{color:var(--red);font-weight:900;font-size:11px;letter-spacing:2.2px}.sub{color:var(--muted);margin:0;font-size:14px}h1{font-size:36px;line-height:1;margin:8px 0 10px;letter-spacing:-1px}h2{font-size:18px;margin:0}a{color:#1768c9}.head-actions{display:flex;gap:10px;align-items:center}.period,.pill{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 13px;font-size:12px;color:#4d5b71}.pill{padding:6px 9px}.btn,button{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff;border:0;border-radius:10px;padding:11px 16px;text-decoration:none;font-weight:800;cursor:pointer}.btn.ghost{background:#fff;color:#1b2c44;border:1px solid var(--line)}
.msg{background:#eef4ff;border:1px solid #bdd2ff;padding:12px;border-radius:10px;margin-bottom:14px}.msg.warn{background:#fff6e8;border-color:#ffcf83}.msg.ok{background:#eaf8ef;border-color:#9bd8af}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:18px 0 12px}.admin-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 17px;min-height:132px;position:relative;box-shadow:0 6px 18px rgba(23,41,68,.035)}.kpi:before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:4px;background:#8ca0ba}.kpi.good:before{background:var(--green)}.kpi.bad:before{background:var(--red)}.kpi.warn:before{background:var(--amber)}.kpi span{display:block;color:var(--muted);font-size:12px;margin:1px 0 12px}.kpi b{display:block;font-size:25px;letter-spacing:-.5px}.kpi small{display:block;color:#7b879a;margin-top:8px;font-size:11px}.kpi.good b{color:#0d9a48}.kpi.bad b{color:var(--red)}.kpi.warn b{color:#bd7200}.kpi-icon{position:absolute;right:15px;top:14px;font-size:18px;color:#8da0b7}.kpi.good .kpi-icon{color:var(--green)}.kpi.bad .kpi-icon{color:var(--red)}
.dashboard-grid,.admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.widget{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px 16px;min-width:0;box-shadow:0 6px 18px rgba(23,41,68,.035)}.widget-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.widget-title a{font-size:12px;text-decoration:none}.alert-count{background:#ffe6e8;color:#cf0d18;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900}
.linechart{min-height:245px}.linechart svg{width:100%;height:185px;overflow:visible}.axis{stroke:#dfe5ed;stroke-width:1}.line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.line.blue{stroke:#2878e8}.line.red{stroke:#e4454e}.line.navy{stroke:#0e478e}.months{display:grid;grid-template-columns:repeat(12,1fr);font-size:9px;color:#77859a;text-align:center;margin-top:-2px}.legend{display:flex;justify-content:center;gap:22px;font-size:11px;color:#59677d;margin-top:11px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.bluebg{background:#2878e8}.redbg{background:#e4454e}.greenbg{background:#13a45a}.chart-note{display:block;color:#79869a;margin-top:8px}.cash{min-height:235px}
.alerts{display:grid;gap:8px}.alert-row{border-radius:11px;padding:11px 12px;background:#f7f9fc;border-left:4px solid #7f91a8}.alert-row b{display:block;font-size:13px}.alert-row span{display:block;color:#6b788c;font-size:11px;margin-top:4px}.alert-row.bad{border-left-color:var(--red);background:#fff3f4}.alert-row.warn{border-left-color:var(--amber);background:#fff8ed}.alert-row.good{border-left-color:var(--green);background:#effbf4}
.pole-bars{height:225px;display:flex;gap:14px;align-items:flex-end;padding:22px 8px 0;border-bottom:1px solid #e2e7ee}.pole-col{flex:1;min-width:50px;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:flex-end}.bars{height:155px;display:flex;align-items:flex-end;justify-content:center;gap:5px}.bar{display:block;width:28%;min-width:13px;border-radius:4px 4px 0 0}.bar.rev{background:#26ae64}.bar.cost{background:#ee6a72}.pole-col>span{font-size:10px;color:#536079;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pole-rate{font-size:11px;font-weight:900;margin-bottom:3px}.pole-rate.good{color:var(--green)}.pole-rate.warn{color:var(--amber)}.pole-rate.bad{color:var(--red)}
.donut-wrap{display:flex;align-items:center;justify-content:center;gap:28px;min-height:205px}.donut{--p:0;width:160px;height:160px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--p)*1%),#e3e8ef 0);position:relative;display:grid;place-items:center}.donut:after{content:"";position:absolute;inset:25px;background:#fff;border-radius:50%}.donut>div{position:relative;z-index:1;text-align:center}.donut b{display:block;font-size:18px}.donut small{color:#77849a}.donut-legend{display:grid;gap:3px;font-size:11px}.donut-legend b{margin-top:7px}.donut-legend span{color:#59677b}
.cost-list{display:grid;gap:13px}.cost-list>div{display:grid;grid-template-columns:1fr auto;gap:7px;font-size:12px}.progress{grid-column:1/-1;height:7px;background:#edf1f5;border-radius:8px;overflow:hidden}.progress i{height:100%;display:block;background:linear-gradient(90deg,#153f79,#e30613);border-radius:8px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #e5eaf0;font-size:12px;vertical-align:middle}th{background:#f1f4f8;color:#3f4c61;font-size:10px;text-transform:uppercase;letter-spacing:.4px}td small{display:block;color:#7a879a;margin-top:3px}td a{text-decoration:none;font-weight:800}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:800}.status.good{background:#e7f7ed;color:#078841}.status.warn{background:#fff2d9;color:#af6900}.status.bad{background:#ffe5e7;color:#c70c18}.good-text{color:var(--green);font-weight:800}.warn-text{color:var(--amber);font-weight:800}.bad-text{color:var(--red);font-weight:800}.empty{color:#7a879a;text-align:center;padding:24px!important}
.quick-actions{display:grid;gap:8px}.action{border:1px solid var(--line);border-radius:10px;padding:12px 13px;text-decoration:none;color:#1b2b42;display:flex;justify-content:space-between;font-size:12px;font-weight:700}.action.primary{background:var(--red);color:#fff;border-color:var(--red)}.system-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.system-grid a{border:1px solid var(--line);border-radius:10px;padding:12px;text-decoration:none;color:#1a2a41;min-height:68px}.system-grid b{display:block;font-size:12px}.system-grid span{display:block;color:#758297;font-size:10px;margin-top:5px}
.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px}.form{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px;max-width:860px}.form p{display:grid;gap:7px}input,select,textarea{padding:11px;border:1px solid #ccd6e2;border-radius:9px;width:100%;background:#fff;color:#142238}.loginbg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(140deg,#06162d,#0e355f)}.loginbox{width:min(440px,92vw);background:#fff;padding:34px;border-radius:22px;display:grid;gap:10px}.loginbox h1{font-size:30px}.brand{display:flex;align-items:center;gap:12px}.brand .mark{color:var(--red);font-size:28px;font-weight:900}.brand span{letter-spacing:4px;font-size:11px}.error{color:#b00020}
@media(max-width:1250px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.admin-kpis{grid-template-columns:repeat(3,1fr)}.system-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.shell{display:block}.shell aside{position:relative;height:auto}.dashboard-grid,.admin-grid{display:block}.widget{margin-bottom:12px}.span-2,.span-3{grid-column:auto}.page-head{display:block}.head-actions{margin-top:12px}.system-grid{grid-template-columns:1fr 1fr}.kpi-grid,.admin-kpis{grid-template-columns:1fr 1fr}main{padding:0 14px 24px}h1{font-size:30px}.topline{height:44px}}
@media(max-width:560px){.kpi-grid,.admin-kpis{grid-template-columns:1fr}.system-grid{grid-template-columns:1fr}.donut-wrap{display:grid}.months{font-size:7px}}

.secret-box{font:700 20px ui-monospace,SFMono-Regular,Consolas,monospace;background:#07172e;color:#fff;padding:16px;border-radius:12px;letter-spacing:1px}.bad-text{color:#c62828;font-weight:800}.filters{display:flex;gap:10px;align-items:center;margin:16px 0}.filters input{max-width:220px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
