:root{--band:#D6E6F5;--navy:#0D1B3E;--acc:#1B4F8C;--bar:#1B2F5B;--light:#EEF4FA;--red:#D0121A;--bg:#EEF2F7;--surface:#FFFFFF;--surface-2:#F7F9FC;--line:#DCE3EC;--line-strong:#C6D1DE;--text:#1E293B;--text-2:#475569;--text-3:#64748B;--text-inv:#FFFFFF;--ok:#1A7F4B;--ok-bg:#DCFCE7;--warn:#B45309;--warn-bg:#FEF3C7;--bad:#B91C1C;--bad-bg:#FEE2E2;--info-bg:#E0ECF9;--r-sm:6px;--r:10px;--r-lg:14px;--sh-1:0 1px 2px rgba(13,27,62,.06);--sh-2:0 4px 14px rgba(13,27,62,.1);--sh-3:0 18px 40px rgba(13,27,62,.18);--font:"Segoe UI",Inter,Arial,Helvetica,sans-serif;--font-brand:Cambria,Georgia,"Times New Roman",serif;--fs-xs:11px;--fs-sm:12.5px;--fs:14px;--fs-md:15px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--nav-w:232px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);font-size:var(--fs);line-height:1.45}a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:var(--fs-xl);margin:0 0 var(--sp-4);color:var(--navy);letter-spacing:-.01em}h2{font-size:var(--fs-md);margin:var(--sp-5) 0 var(--sp-2);color:var(--acc);font-weight:700}::selection{background:var(--band)}.app{display:grid;grid-template-columns:var(--nav-w) 1fr;min-height:100vh}nav{background:linear-gradient(180deg,var(--bar) 0%,var(--navy) 100%);color:#fff;padding:var(--sp-4) 0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;box-shadow:var(--sh-2)}nav .brand{display:flex;align-items:center;gap:10px;padding:2px 18px 14px;border-bottom:1px solid rgba(255,255,255,.14);margin-bottom:8px}nav .brand img{height:30px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}nav .brand b{font-family:var(--font-brand);font-size:16px;letter-spacing:.2px}nav a{display:flex;align-items:center;gap:10px;color:#cfe0f5;padding:9px 18px;font-weight:600;font-size:13.5px;border-left:3px solid transparent;transition:background .15s,color .15s}nav a:hover{background:#ffffff14;color:#fff;text-decoration:none}nav a.on{background:#ffffff24;color:#fff;border-left-color:var(--band)}nav{overflow-y:auto}.navgroup{margin-bottom:4px}.navtitle{display:flex;align-items:center;justify-content:space-between;padding:10px 18px 4px;font-size:10.5px;font-weight:700;letter-spacing:.9px;text-transform:uppercase;color:#8fb3da;cursor:pointer;-webkit-user-select:none;user-select:none}.navtitle:hover{color:#fff}.navtitle .chev{font-size:11px;opacity:.7}.navgroup a{padding:7px 18px 7px 26px;font-size:13px;font-weight:600}nav .user{margin-top:auto;padding:12px 18px;font-size:var(--fs-sm);color:#cfe0f5;border-top:1px solid rgba(255,255,255,.14)}nav .user button{margin-top:6px}main{padding:var(--sp-6) var(--sp-8);min-width:0}.top{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.top h1{margin:0;flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--sh-1)}.grid{display:grid;gap:var(--sp-3)}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--sp-4) var(--sp-5);box-shadow:var(--sh-1);position:relative;overflow:hidden;color:inherit;text-decoration:none}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--acc);opacity:.85}.stat:hover{text-decoration:none}.stat .l{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--text-3);font-weight:700}.stat .v{font-size:var(--fs-2xl);font-weight:700;color:var(--navy);margin-top:4px;line-height:1.15;font-variant-numeric:tabular-nums}.stat .s{font-size:var(--fs-sm);color:var(--text-3);margin-top:3px}.stat.warn:before{background:var(--red)}.stat.warn .v{color:var(--red)}.tbl{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--sh-1)}table{width:100%;border-collapse:collapse;background:var(--surface)}th{background:var(--light);color:var(--navy);text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0;z-index:1}td{padding:10px 12px;border-bottom:1px solid #EEF2F7;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}tfoot th{position:static;background:var(--surface-2);border-top:1px solid var(--line);text-transform:none;font-size:var(--fs-sm);letter-spacing:0}td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}.items td{padding:4px 6px}.items input,.items select{padding:6px 8px}label{display:block;font-size:var(--fs-xs);font-weight:700;color:var(--text-2);margin:10px 0 4px;text-transform:uppercase;letter-spacing:.5px}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px;font-size:var(--fs);font-family:inherit;background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px #1b4f8c2e}input:disabled,select:disabled{background:var(--surface-2);color:var(--text-3)}textarea{min-height:64px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--acc)}.search{max-width:320px}.row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.row>*{flex:1;min-width:120px}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bar);color:#fff;border:1px solid transparent;border-radius:var(--r-sm);padding:9px 14px;font-weight:700;cursor:pointer;font-size:13px;font-family:inherit;line-height:1.2;transition:background .15s,box-shadow .15s,transform .05s;text-decoration:none}button:hover,.btn:hover{background:var(--acc);text-decoration:none}button:active,.btn:active{transform:translateY(1px)}button:focus-visible,.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #1b4f8c40}button.sec,.btn.sec{background:var(--surface);color:var(--bar);border-color:var(--line-strong)}button.sec:hover,.btn.sec:hover{background:var(--light)}button.red{background:var(--red)}button.red:hover{background:#a50e15}button.sec.red{background:var(--surface);color:var(--red);border-color:#f3b4b4}button.sec.red:hover{background:var(--bad-bg)}button.sm,.btn.sm{padding:5px 10px;font-size:12px}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:var(--fs-xs);font-weight:700;line-height:1.6;white-space:nowrap}.badge.ok{background:var(--ok-bg);color:#166534}.badge.warn{background:var(--warn-bg);color:#92400e}.badge.bad{background:var(--bad-bg);color:#991b1b}.badge.grey{background:#e2e8f0;color:#334155}.pos{color:var(--red);font-weight:700}.neg{color:var(--ok);font-weight:700}.muted{color:var(--text-3);font-size:var(--fs-sm)}.err{background:var(--bad-bg);color:#991b1b;padding:9px 12px;border-radius:var(--r-sm);margin:8px 0;border-left:4px solid var(--red)}.okmsg{background:var(--ok-bg);color:#166534;padding:9px 12px;border-radius:var(--r-sm);margin:8px 0;border-left:4px solid var(--ok)}td.muted:only-child,td[colspan].muted{text-align:center;padding:26px 12px;color:var(--text-3)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1b3e80;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:var(--r-lg);padding:20px 22px;width:100%;max-width:720px;max-height:92vh;overflow:auto;box-shadow:var(--sh-3);animation:pop .14s ease-out}.modal h2{margin-top:0;color:var(--navy);font-size:var(--fs-lg)}@keyframes pop{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 20% -10%,rgba(214,230,245,.25),transparent 60%),linear-gradient(180deg,var(--bar),var(--navy))}.login .card{width:360px;text-align:center;padding:28px 28px 24px;border:0;box-shadow:var(--sh-3)}.login img{height:46px;margin-bottom:6px}.login h1{font-family:var(--font-brand);font-size:26px;margin-bottom:2px}.login label{text-align:left}@media (max-width:900px){.app{grid-template-columns:1fr}nav{height:auto;position:sticky;top:0;flex-direction:row;flex-wrap:wrap;align-items:center;padding:6px 8px;gap:2px;z-index:20;overflow-x:auto}nav .brand{border:0;margin:0;padding:6px 10px;flex-basis:100%}nav a{padding:7px 10px;border-left:0;border-bottom:3px solid transparent;font-size:13px;white-space:nowrap}.navgroup{display:flex;align-items:center;margin:0}.navtitle{padding:4px 8px 4px 6px;border-left:1px solid rgba(255,255,255,.18);margin-left:4px}.navtitle .chev{display:none}.navgroup a{padding:7px 8px}nav a.on{border-bottom-color:var(--band)}nav .user{border:0;padding:6px 10px;margin:0 0 0 auto}main{padding:14px}.g4,.g3{grid-template-columns:repeat(2,1fr)}.stat .v{font-size:var(--fs-xl)}}@media (max-width:520px){.g4,.g3,.g2{grid-template-columns:1fr}.top button,.top .btn{flex:1 1 auto}.modal{padding:16px}}.print-only{display:none}@media print{body{background:#fff}.app{display:block}nav,.no-print{display:none!important}main{padding:0}.print-only{display:block}.tbl,.card,.stat{box-shadow:none}th{position:static}@page{size:A4;margin:10mm}}.doc{background:#fff;color:var(--navy);font-size:12px;max-width:190mm;margin:0 auto;border:1px solid var(--line)}.doc .head{background:var(--band);padding:14px 18px;display:flex;gap:16px;align-items:center;border-bottom:3px solid var(--bar)}.doc .head img{height:48px}.doc .head .co{flex:1;text-align:center}.doc .head .co b{font-family:var(--font-brand);font-size:20px;display:block}.doc .head .co div{font-size:11px;margin-top:2px}.doc .title{background:var(--bar);color:#fff;text-align:center;font-weight:700;letter-spacing:1.5px;padding:6px}.doc .meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 18px}.doc .meta b{display:block;font-size:11px;color:var(--text-2);text-transform:uppercase}.doc table{font-size:12px}.doc th{background:var(--light);position:static;font-size:11px}.doc .tot{padding:10px 18px;display:flex;justify-content:flex-end}.doc .tot table{width:auto;min-width:260px}.doc .foot{padding:12px 18px;font-size:11px;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line)}.doc .sign{text-align:right;margin-top:34px;font-weight:700}
