:root{--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#667085;--line:#e5eaf1;--primary:#2359d9;--primary2:#143d9b;--success:#0b8f55;--danger:#c93535;--warn:#b7791f;--shadow:0 10px 30px rgba(23,32,51,.08)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:linear-gradient(180deg,#0e1c38,#142d5a);color:#fff;padding:18px 14px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:12px;align-items:center;padding:8px 10px 20px}.brand-mark{width:42px;height:42px;border-radius:12px;background:#fff;color:#183f8e;display:grid;place-items:center;font-size:24px;font-weight:800}.brand strong{display:block;font-size:19px}.brand small{color:#b9c8e6;display:block;margin-top:2px}.sidebar nav{display:grid;gap:4px;overflow:auto}.sidebar nav a{color:#dce7fb;padding:11px 12px;border-radius:9px;display:flex;gap:10px;align-items:center}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.12);color:#fff}.sidebar nav a span{width:22px;text-align:center}.side-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding:14px 10px;font-size:13px}.side-user b,.side-user small{display:block}.side-user small{color:#adc0e2;margin:3px 0 8px}.side-user a{color:#fff}.main{margin-left:250px;min-height:100vh}.main.full{margin-left:0}.topbar{min-height:96px;background:#fff;border-bottom:1px solid var(--line);padding:22px 30px;display:flex;justify-content:space-between;gap:18px;align-items:center;position:sticky;top:0;z-index:5}.topbar h1{font-size:26px;margin:0}.topbar p{color:var(--muted);margin:5px 0 0}.content{padding:26px 30px 50px}.top-actions,.action-bar{display:flex;gap:9px;flex-wrap:wrap}.action-bar{margin-bottom:18px}.btn{border:0;border-radius:9px;padding:10px 14px;font-weight:650;cursor:pointer;display:inline-flex;gap:7px;align-items:center;font-size:14px}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary2)}.btn.ghost{background:#eef3fb;color:#233653}.btn.danger{background:#fdeaea;color:#a61f1f}.btn.success{background:#e6f7ef;color:#087044}.btn.small{padding:6px 9px;font-size:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:20px;margin-bottom:18px}.card h2,.card h3{margin-top:0}.card.danger{border-color:#f3b2b2;color:#9d2525}.grid{display:grid;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.stat small{color:var(--muted);display:block}.stat strong{display:block;font-size:28px;margin-top:7px}.stat a{font-size:12px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}table{border-collapse:collapse;width:100%;min-width:760px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#5d6a7e;background:#f8fafc;position:sticky;top:0}tr:hover td{background:#fbfdff}.muted{color:var(--muted)}.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;background:#eef3fb;color:#29405f}.badge.ok{background:#e7f7ef;color:#08724a}.badge.bad{background:#fdeaea;color:#a61f1f}.badge.warn{background:#fff3d9;color:#8b5b09}.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.field{grid-column:span 4}.field.w6{grid-column:span 6}.field.w12{grid-column:span 12}.field.w3{grid-column:span 3}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:#33415c}.field input,.field select,.field textarea{width:100%;border:1px solid #cfd7e5;background:#fff;border-radius:9px;padding:10px 11px;font:inherit;color:var(--text)}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #bfd0ff;border-color:#7194ef}.check-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.check{border:1px solid var(--line);border-radius:8px;padding:8px;background:#f9fbfe}.check input{margin-right:7px}.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.filters .field{min-width:150px;flex:1}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.tab-btn{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 12px;cursor:pointer}.tab-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.tab-panel{display:none}.tab-panel.active{display:block}.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px}.alert.success{background:#e7f7ef;color:#08724a}.alert.error{background:#fdeaea;color:#a61f1f}.alert.info{background:#e9f0ff;color:#244f9d}.pager{display:flex;gap:5px;margin:18px 0}.pager a{background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:7px}.pager a.active{background:var(--primary);color:#fff}.search-box{max-width:520px}.login-shell{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top right,#dbe8ff,#f5f8fd 55%)}.login-card{width:min(440px,92vw);background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 25px 70px rgba(28,58,110,.16)}.login-card h1{margin:0 0 6px}.login-card .brand-login{font-size:13px;color:var(--muted);margin-bottom:24px}.kicker{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);font-weight:800}.report-links{display:flex;gap:7px;flex-wrap:wrap}.empty{padding:30px;text-align:center;color:var(--muted)}@media(max-width:1050px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.field{grid-column:span 6}.check-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:static;width:auto}.main{margin-left:0}.app-shell{display:block}.topbar{position:static;padding:18px;align-items:flex-start}.content{padding:18px}.grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}.field,.field.w6,.field.w3{grid-column:span 12}.form-grid{grid-template-columns:1fr}.field{grid-column:1!important}.check-grid{grid-template-columns:1fr}.top-actions{display:none}}
