:root{--bg:#fafbfc;--panel:#fff;--fg:#1a1a1a;--muted:#4b5563;--muted-light:#6b7280;--link:#2d3a99;--primary:#6366f1;--primary-600:#6366f1;--primary-700:#4f46e5;--accent:#10b981;--error:#dc2626;--ring:0 0 0 3px rgba(99,102,241,.2);--radius:16px;--shadow:0 2px 4px rgba(0,0,0,.08),0 16px 32px -16px rgba(79,70,229,.12);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:18px;--space-5:24px;--space-6:32px;--space-8:48px;--font-size-base:15px;--font-size-lg:18px;--font-size-xl:24px;--admin-sidebar-bg:linear-gradient(180deg,#312e81,#4338ca)}[data-theme=dark]{--bg:#111827;--panel:#1f2937;--fg:#f3f4f6;--muted:#c2c7cd;--muted-light:#9ca3af;--link:#a5b4fc;--primary:#818cf8;--primary-600:#818cf8;--primary-700:#6366f1;--accent:#34d399;--error:#ef4444;--ring:0 0 0 3px rgba(129,140,248,.25);--shadow:0 2px 4px rgba(0,0,0,.5),0 16px 32px -16px rgba(0,0,0,.7);--admin-sidebar-bg:linear-gradient(180deg,#1e1b4b,#312e81)}*{box-sizing:border-box}body,html{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--fg);font-size:var(--font-size-base)}a{color:var(--link);text-decoration:none;font-weight:500}a:hover{text-decoration:underline}h1{font-size:var(--font-size-xl);font-weight:700}h2{font-size:var(--font-size-lg);font-weight:600}.skip-link{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;padding:8px 12px;background:#ff0;color:#000;z-index:1000;border-radius:8px;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:var(--admin-sidebar-bg);border-right:2px solid rgba(99,102,241,.2);padding:var(--space-5) var(--space-4);position:-webkit-sticky;position:sticky;top:0;height:100vh;box-shadow:2px 0 8px rgba(0,0,0,.1)}.sidebar-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);margin-bottom:var(--space-4);background:hsla(0,0%,100%,.1);border-radius:12px}.sidebar-toggle{background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.2);padding:8px 12px;border-radius:10px;cursor:pointer;color:#fff;font-weight:600}.sidebar-toggle:hover{background:hsla(0,0%,100%,.25)}.brand{font-weight:800;font-size:18px;color:#fff;letter-spacing:-.02em}.sidebar-nav{display:flex;flex-direction:column;gap:3px}.nav-section{font-size:11px;color:hsla(0,0%,100%,.6);text-transform:uppercase;letter-spacing:.08em;margin:16px 10px 8px;font-weight:700}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:hsla(0,0%,100%,.85);font-weight:500;transition:all .15s ease}.nav-item:hover{background:hsla(0,0%,100%,.15);color:#fff;text-decoration:none}.nav-item:focus-visible{outline:3px solid #fbbf24;outline-offset:2px}.nav-item.active{background:hsla(0,0%,100%,.25);font-weight:700;color:#fff;border-left:4px solid var(--accent)}.main-area{display:flex;flex-direction:column;min-width:0}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;background:var(--panel);border-bottom:2px solid rgba(99,102,241,.1);padding:14px 24px;box-shadow:var(--shadow)}.topbar-title{font-weight:700;font-size:17px;color:var(--primary)}.topbar-actions{gap:16px}.toolbar-group,.topbar-actions{display:flex;align-items:center}.toolbar-group{gap:12px}.content-wrapper{padding:32px;max-width:1400px;width:100%}.content-area{width:100%}.site-footer{margin-top:24px;padding-top:12px;border-top:2px solid rgba(99,102,241,.12)}.site-footer .footer-inner{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--muted)}.site-footer a{color:var(--link)}.sidebar-collapsed .sidebar{width:80px}.sidebar-collapsed .sidebar .brand,.sidebar-collapsed .sidebar .nav-item span,.sidebar-collapsed .sidebar .nav-section{display:none}.sidebar-collapsed{grid-template-columns:80px 1fr}@media (max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;transition:transform .2s ease;z-index:10}.sidebar,.sidebar-collapsed .sidebar{transform:translateX(-100%)}.app-shell .sidebar{transform:translateX(0)}.sidebar-toggle.mobile{display:inline-flex}}.panel{background:var(--panel);border:2px solid rgba(99,102,241,.12);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:20px;gap:20px}.card{background:var(--panel);border:2px solid rgba(99,102,241,.12);border-radius:14px;box-shadow:var(--shadow);padding:20px;transition:all .2s ease}.card:hover{border-color:var(--primary);box-shadow:0 4px 8px rgba(99,102,241,.15),0 20px 40px -20px rgba(99,102,241,.2);transform:translateY(-2px)}.card h3{margin:0 0 10px;font-size:17px;font-weight:700;color:var(--primary)}input,select,textarea{padding:12px 14px;border-radius:12px;border:2px solid rgba(99,102,241,.15);background:var(--panel);color:inherit;outline:0;font-size:var(--font-size-base)}input:focus,select:focus,textarea:focus{box-shadow:var(--ring);border-color:var(--primary);outline:3px solid var(--ring)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #fbbf24;outline-offset:2px}button{border:0;border-radius:12px;background:var(--primary);color:#fff;padding:12px 20px;cursor:pointer;font-weight:600;font-size:var(--font-size-base);transition:all .2s ease}button:hover{background:var(--primary-700);transform:translateY(-1px);box-shadow:0 4px 12px rgba(99,102,241,.3)}button:focus-visible{outline:3px solid #fbbf24;outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button[disabled]:hover{background:var(--primary);transform:none;box-shadow:none}.table{width:100%;border-collapse:separate;border-spacing:0 10px}.table th{color:var(--muted);text-align:left;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em}.table td{background:var(--panel);border:2px solid rgba(99,102,241,.1);padding:14px;border-radius:8px}