:root{--navy: #093054;--navy-dark: #06233e;--orange: #fb7f27;--cream: #f8f7f2;--surface: #ffffff;--ink: #14202b;--muted: #5c6b78;--border: #e4e2da;--success: #2e7d54;--danger: #b43d37;--warning: #b7791f;--radius: 12px;--sidebar: 248px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink)}a{color:inherit;text-decoration:none}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;width:100%;max-width:380px}.brand{font-size:28px;font-weight:800;color:var(--navy)}.brand span{color:var(--orange)}.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#cfe0ef;padding:20px 12px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .logo{color:#fff;font-weight:800;font-size:20px;padding:8px 12px 20px}.sidebar .logo span{color:var(--orange)}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:#cfe0ef;font-size:14px;margin-bottom:2px}.nav-item svg{flex:none;opacity:.85}.nav-item:hover{background:#ffffff0f}.nav-item.active{background:#ffffff24;color:#fff;font-weight:600}.nav-item.active svg{opacity:1;color:var(--orange)}.nav-group{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#7fa0bd;padding:16px 12px 6px}.sidebar-foot{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);display:flex;gap:10px;align-items:center;padding-left:8px}.icon-btn{background:transparent;border:none;color:#ffffffbf;cursor:pointer;padding:6px;border-radius:8px;display:inline-flex}.icon-btn:hover{background:#ffffff1a;color:#fff}.error-note{background:#fbe9e7;color:#b43d37;border:1px solid #F3C9C4;border-radius:10px;padding:10px 12px;font-size:13px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}.who{color:#fff;font-size:13px;font-weight:600}.who-sub{color:#7fa0bd;font-size:11px}.main{padding:24px 28px;max-width:1200px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-title{font-size:24px;font-weight:700;margin:0}.page-sub{color:var(--muted);font-size:14px;margin:4px 0 0}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.kpi{position:relative}.kpi .label{color:var(--muted);font-size:13px}.kpi .value{font-size:30px;font-weight:800;margin-top:6px;letter-spacing:-.01em}.kpi .value.navy{color:var(--navy)}.kpi .value.orange{color:var(--orange)}.kpi .ic{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef3f8;color:var(--navy)}.kpi .ic.accent{background:#fdebdd;color:var(--orange)}.card{transition:box-shadow .15s,transform .15s}.kpi:hover{box-shadow:0 6px 18px #09305414}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.panel-head{padding:14px 18px;border-bottom:1px solid var(--border);font-weight:600}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px 18px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}tr:last-child td{border-bottom:none}tbody tr:hover{background:#faf9f5;cursor:pointer}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.ok{background:#e7f3ec;color:var(--success)}.badge.warn{background:#fbf2dc;color:var(--warning)}.badge.bad{background:#f7e4e3;color:var(--danger)}.badge.info{background:#e6eef6;color:var(--navy)}.btn{border:none;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer}.btn.primary{background:var(--navy);color:#fff}.btn.secondary{background:transparent;border:1px solid var(--border);color:var(--ink)}.btn.danger{background:var(--danger);color:#fff}.field{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;font-size:15px;margin-top:6px;background:var(--surface)}label{font-size:13px;color:var(--muted)}.row{display:flex;gap:10px;align-items:center}.muted{color:var(--muted)}.empty{padding:40px;text-align:center;color:var(--muted)}.stack>*+*{margin-top:12px}@media (max-width: 860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;display:flex;flex-wrap:wrap;gap:4px}.nav-group{width:100%}}.doc-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.doc-thumb{margin:0;width:140px}.doc-thumb img{width:140px;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--border, #e6e2d8);display:block;cursor:zoom-in}.doc-thumb-missing{width:140px;height:90px;border-radius:8px;border:1px dashed var(--border, #e6e2d8);display:flex;align-items:center;justify-content:center;color:#8a97a8}.doc-thumb figcaption{font-size:12px;color:#55657a;margin-top:4px;word-break:break-all}body{background:#f4f2ec}.sidebar{background:linear-gradient(180deg,#0b3a63 0%,var(--navy) 55%,var(--navy-dark) 100%)}.card,.panel,.login-card{box-shadow:0 1px 2px #0930540a,0 10px 26px #0930540f}.card{transition:box-shadow .18s ease,transform .18s ease}.card:hover,.kpi:hover{box-shadow:0 12px 30px #09305421;transform:translateY(-2px)}.kpi .value,.page-title{letter-spacing:-.02em}.btn{transition:filter .15s ease,box-shadow .15s ease,transform .05s ease;letter-spacing:.01em}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(1px)}.btn.primary{box-shadow:0 4px 14px #0930543d}.btn.secondary:hover{background:#f3f1ea}.field{transition:border-color .15s ease,box-shadow .15s ease}.field:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px #0930541f}.panel-head{background:#fbfaf6}th{background:#faf9f5}tbody tr{transition:background .12s ease}.nav-item{transition:background .14s ease}.badge{letter-spacing:.01em}
