:root{--brand: #0B3D91;--radius: 12px;--shadow: 0 4px 20px rgba(0, 0, 0, .08);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}html[data-theme=light]{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f0f2f7;--text: #14181f;--text-soft: #5b6472;--border: #e2e6ee;--danger: #C8102E;--ok: #1a8a3c;--warn: #d99400}html[data-theme=dark]{--bg: #0d1117;--surface: #161b22;--surface-2: #1c232d;--text: #e6edf3;--text-soft: #9aa4b2;--border: #2a323d;--danger: #ff6b6b;--ok: #4ade80;--warn: #fbbf24;--shadow: 0 4px 20px rgba(0, 0, 0, .4)}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--brand)}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--surface);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:6px}.sidebar .logo{max-width:150px;max-height:54px;object-fit:contain;margin-bottom:8px}.nav-item{display:block;padding:10px 12px;border-radius:8px;color:var(--text-soft);text-decoration:none;font-size:14px;font-weight:500}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--brand);color:#fff}.main{flex:1;padding:24px 28px;overflow:auto}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.grid{display:grid;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.btn{border:none;border-radius:9px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;background:var(--brand);color:#fff;transition:opacity .15s}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger)}.btn.sm{padding:6px 10px;font-size:13px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:13px;color:var(--text-soft);font-weight:600}.field input,.field select{padding:10px 12px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:14px}.field input:focus,.field select:focus{outline:2px solid var(--brand);border-color:var(--brand)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--text-soft);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-soft)}.badge.ok{background:#1a8a3c26;color:var(--ok)}.badge.warn{background:#d9940026;color:var(--warn)}.badge.brand{background:var(--brand);color:#fff}.badge.err{background:#c8102e26;color:var(--danger)}.msg{padding:10px 14px;border-radius:9px;font-size:14px;margin-bottom:14px}.msg.err{background:#c8102e1f;color:var(--danger)}.msg.ok{background:#1a8a3c1f;color:var(--ok)}.theme-toggle{cursor:pointer;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:8px 14px;font-size:13px;color:var(--text);font-weight:600}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(1200px 500px at 50% -10%,var(--surface),var(--bg))}.auth-card{width:100%;max-width:420px}.auth-logo{max-height:64px;max-width:220px;object-fit:contain;margin:0 auto 8px;display:block}.auth-title{text-align:center;margin:4px 0}.auth-sub{text-align:center;color:var(--text-soft);margin:0 0 22px;font-size:14px}.divider{display:flex;align-items:center;gap:12px;color:var(--text-soft);font-size:12px;margin:16px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.method-tabs{display:flex;gap:8px;margin-bottom:18px}.method-tabs button{flex:1;padding:9px;border-radius:9px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-soft);font-weight:600;cursor:pointer}.method-tabs button.active{background:var(--brand);color:#fff;border-color:var(--brand)}@media (max-width: 900px){.grid.cols-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.app-shell{flex-direction:column}.sidebar{width:100%;flex-direction:row;overflow-x:auto;align-items:center}.sidebar .logo{display:none}.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}.main{padding:18px 16px}}
