:root{--bg:#f3f4f9;--card:#fff;--ink:#1b2236;--mut:#5f6880;--line:#e0e4ee;--acc:#d90000;--ok:#0f8a5f;--bad:#c41d12;
 --blue:#2563eb;--green:#0f9d6a;--orange:#ea7a00;--violet:#7c3aed}
*{box-sizing:border-box}
body{margin:0;font:17px/1.55 system-ui,Segoe UI,Roboto,sans-serif;background:linear-gradient(180deg,#fff1f0 0,var(--bg) 260px) no-repeat,var(--bg);color:var(--ink)}
.wrap{max-width:1200px;margin:0 auto;padding:0 18px}
.top{background:#fff;border-bottom:4px solid #e60000;box-shadow:0 2px 10px rgba(20,30,60,.08)}
.bar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;min-height:64px}
.top nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.top a{color:var(--ink);text-decoration:none;padding:9px 13px;border-radius:8px;font-weight:500}
.top a:hover{background:#f1f2f5}.top a.on{background:#e60000;color:#fff;font-weight:600}
.top a.brand{padding:4px 8px 4px 0}.brand img{height:50px;display:block}.top .out{color:var(--mut)}
h1{font-size:28px;margin:26px 0 16px;color:#16203b;border-left:6px solid #e60000;padding-left:12px}
h2{font-size:20px;margin:0 0 12px;color:#16203b}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:0 1px 4px rgba(20,30,60,.05)}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-bottom:18px}
.kpi{border-top:5px solid var(--blue);margin-bottom:0}
.kpi small{color:var(--mut);display:block;font-size:15px}.kpi b{font-size:28px}
.kpi.k-ca{border-top-color:var(--green);background:linear-gradient(180deg,#e8f8f1,#fff 70%)}.kpi.k-ca b{color:var(--green)}
.kpi.k-ach{border-top-color:var(--orange);background:linear-gradient(180deg,#fff2e1,#fff 70%)}.kpi.k-ach b{color:var(--orange)}
.kpi.k-dep{border-top-color:var(--bad);background:linear-gradient(180deg,#fdeceb,#fff 70%)}.kpi.k-dep b{color:var(--bad)}
.kpi.k-res{border-top-color:var(--violet);background:linear-gradient(180deg,#f1eafe,#fff 70%)}
.pos{color:var(--ok)}.neg{color:var(--bad)}.mut{color:var(--mut)}
table{width:100%;border-collapse:collapse;font-size:16px}
th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:13px;text-transform:uppercase;color:#fff;background:#1f2a48;letter-spacing:.04em;white-space:nowrap}
th:first-child{border-radius:8px 0 0 0}th:last-child{border-radius:0 8px 0 0}
tbody tr:nth-child(even){background:#f8f9fd}tbody tr:hover{background:#fff4f3}
td.r,th.r{text-align:right}.tbl{overflow-x:auto}
tfoot td{font-weight:700;border-top:2px solid #1f2a48;background:#eef1f9}
form.f{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
label{display:block;font-size:15px;font-weight:600;color:#3a4561;margin-bottom:5px}
input,select,textarea{width:100%;padding:11px 13px;border:1.5px solid #c3cadb;border-radius:9px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:#e60000;box-shadow:0 0 0 3px rgba(230,0,0,.15)}
textarea{min-height:84px}.full{grid-column:1/-1}
.btn{display:inline-block;background:var(--acc);color:#fff;border:0;border-radius:9px;padding:11px 18px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.1)}
.btn.sec{background:#fff;color:var(--ink);border:1.5px solid #c3cadb;font-weight:500}.btn.sec:hover{background:#f1f2f7}
.btn.red{background:#8f1d14}.btn.sm{padding:5px 11px;font-size:14px}
.flash{padding:13px 16px;border-radius:10px;margin-top:16px;font-weight:500}
.flash.ok{background:#dcf6ea;color:#0a5b3e;border-left:5px solid var(--green)}.flash.err{background:#fde6e4;color:#8a1a10;border-left:5px solid var(--bad)}
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.tools form{display:flex;gap:10px;align-items:center}
.tools select,.tools input{width:auto}
.badge{font-size:13px;border-radius:99px;padding:2px 10px;background:#e4e9f6;color:#27355f;font-weight:600}
.badge.warn{background:#ffe9bf;color:#8a5000}.files a{display:block;font-size:14px;color:var(--blue)}
.login{max-width:400px;margin:8vh auto}
@media(max-width:700px){body{font-size:16px}h1{font-size:23px}}
@media print{.top,.tools,.btn{display:none}}
