:root{--blue: #1B3A6B;--gold: #C9A84C;--green: #2E7D32;--amber: #B7791F;--red: #C0392B;--lgray: #F1F4F9;--border: #D9E0EA;--text: #24364F;--muted: #6B7280;--white: #FFFFFF}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Arial,sans-serif;color:var(--text);background:#f7f9fc}a{color:var(--blue);text-decoration:none}.app{display:flex;min-height:100vh}.sidebar{width:232px;background:var(--blue);color:#fff;flex-shrink:0;display:flex;flex-direction:column}.brand{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}.brand .logo{font-weight:800;font-size:18px;color:#fff;letter-spacing:.3px}.brand .sub{font-size:10.5px;color:var(--gold);font-weight:700;letter-spacing:1px}.nav{padding:8px 0;flex:1;overflow-y:auto}.nav a{display:block;padding:9px 18px;color:#d7e0ee;font-size:13.5px}.nav a:hover{background:#ffffff0f}.nav a.active{background:#c9a84c2e;color:#fff;border-left:3px solid var(--gold);padding-left:15px;font-weight:600}.nav-group{display:flex;flex-direction:column}.nav-group:first-of-type{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.08)}.nav-group-header{display:flex;align-items:center;gap:8px;width:100%;padding:9px 18px;margin:0;border:0;background:none;cursor:pointer;color:#aebad0;font:inherit;font-size:11.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;text-align:left}.nav-group-header:hover{background:#ffffff0f;color:#fff}.nav-group-header:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.nav-group-header.has-active{color:#fff;box-shadow:inset 3px 0 0 var(--gold)}.nav-group-icon{font-size:13px;line-height:1}.nav-group-label{flex:1}.nav-group-chevron{font-size:10px;opacity:.75;transform:rotate(0);transition:transform .2s ease}.nav-group-header[aria-expanded=true] .nav-group-chevron{transform:rotate(90deg)}.nav-group-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s ease}.nav-group-panel.open{grid-template-rows:1fr}.nav-group-panel-inner{overflow:hidden;min-height:0}.nav-group-panel-inner a{padding-left:40px;font-size:13px}.nav-group-panel-inner a.active{padding-left:37px}@media (prefers-reduced-motion: reduce){.nav-group-panel,.nav-group-chevron{transition:none}}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:54px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 22px}.topbar .title{font-weight:700;font-size:15px}.content{padding:22px}.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:16px}.card h3{margin:0 0 12px;font-size:14px;color:var(--blue);border-bottom:2px solid var(--gold);padding-bottom:8px;display:inline-block}.btn{padding:7px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--blue)}.btn.primary{background:var(--blue);color:#fff;border-color:var(--blue)}.btn.small{padding:4px 10px;font-size:11.5px}.btn:disabled{opacity:.55;cursor:not-allowed}.field{margin-bottom:12px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:600}.field input,.field select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}table{width:100%;border-collapse:collapse;font-size:13px}th{background:var(--blue);color:#fff;text-align:left;padding:8px 10px;font-weight:600}td{padding:8px 10px;border-bottom:1px solid var(--border)}tr:nth-child(2n) td{background:var(--lgray)}.tag{display:inline-block;padding:2px 9px;border-radius:11px;font-size:11px;font-weight:700}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--blue),#0F2444)}.login-box{background:#fff;border-radius:14px;padding:36px;width:360px;box-shadow:0 18px 50px #0000004d}.login-box .logo{text-align:center;font-weight:800;font-size:22px;color:var(--blue)}.login-box .sub{text-align:center;font-size:11px;color:var(--gold);font-weight:700;letter-spacing:2px;margin-bottom:22px}.msg{font-size:12.5px;padding:8px 10px;border-radius:6px;margin-bottom:10px}.msg.error{background:#fdecea;color:var(--red)}.muted{color:var(--muted);font-size:12px}
