:root{--bg:#f4f6f9;--card:#fff;--ink:#1c2430;--muted:#6b7686;--line:#e2e7ee;--brand:#1f5fbf;--brand-d:#174a96;--ok:#1e8a4c;--err:#c0392b;--warn:#b7791f}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
.top{display:flex;align-items:center;gap:20px;background:#12263f;color:#fff;padding:0 20px;min-height:52px;flex-wrap:wrap}
.top a{color:#cfe0f7}.brand{font-weight:700;font-size:16px;letter-spacing:.2px}
.top nav{display:flex;gap:2px;flex:1;flex-wrap:wrap}
.top nav a{padding:15px 12px;border-bottom:3px solid transparent}
.top nav a.on,.top nav a:hover{color:#fff;border-bottom-color:#5aa2ff;text-decoration:none}
.who{font-size:13px}.muted{color:var(--muted)}.top .muted{color:#8fa6c4}
main{padding:20px;max-width:1700px;margin:0 auto}
footer{text-align:center;color:var(--muted);padding:20px;font-size:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:18px;margin-bottom:18px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
h1{font-size:21px;margin:0 0 14px}h2{font-size:16px;margin:0 0 12px}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:14px;border:1px solid}
.flash.ok{background:#e8f6ee;border-color:#b8e2c8;color:#14663a}
.flash.err{background:#fdecea;border-color:#f5c2bd;color:#9b2c20}
.flash.warn{background:#fff6e5;border-color:#f3dba6;color:#8a5a0a}
label{display:block;font-weight:600;font-size:12px;margin:0 0 4px;color:#44505f}
input[type=text],input[type=password],input[type=email],input[type=date],input[type=file],select,textarea{width:100%;padding:8px 10px;border:1px solid #cdd5e0;border-radius:6px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid #b6d3ff;border-color:var(--brand)}
.btn,button{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:6px;padding:8px 16px;font:inherit;font-weight:600;cursor:pointer}
.btn:hover,button:hover{background:var(--brand-d);text-decoration:none}
.btn.sec{background:#e9eef6;color:#26405f}.btn.sec:hover{background:#dbe4f1}
.btn.danger{background:var(--err)}.btn.sm{padding:4px 10px;font-size:12px}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.filters>div{min-width:140px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.checks{display:flex;flex-wrap:wrap;gap:6px 18px}
.checks label{font-weight:500;font-size:13px;display:flex;align-items:center;gap:6px;margin:0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.kpi b{display:block;font-size:20px;margin-top:2px}.kpi span{font-size:12px;color:var(--muted)}
.tw{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;max-height:75vh}
table{border-collapse:collapse;width:100%}
th,td{padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left}
th{background:#eef2f8;font-size:12px;position:sticky;top:0;z-index:2;color:#34445a}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tbody tr:hover{background:#f7faff}
tr.tot td{background:#eef2f8;font-weight:700;position:sticky;bottom:0}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11px;background:#e9eef6;color:#26405f}
.tag.g{background:#e8f6ee;color:#14663a}.tag.r{background:#fdecea;color:#9b2c20}
.hi{color:var(--err);font-weight:600}
.login-box{max-width:380px;margin:9vh auto}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sp{margin-top:14px}
small.h{color:var(--muted);display:block;margin-top:4px}
@media print{.top,.filters,footer,.noprint{display:none}main{padding:0}.tw{max-height:none;border:0}}
