:root{--bg:#f5f5f0;--bg-card:#ffffff;--bg-sidebar:#fafaf7;--text:#1a1a1a;--text-secondary:#6b7280;--text-muted:#9ca3af;--accent:#2563eb;--accent-hover:#1d4ed8;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--border:#e5e5e5;--radius:0.5rem;--radius-lg:0.75rem;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--font-sans:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",sans-serif;--font-mono:"SF Mono","JetBrains Mono","Fira Code",monospace}[data-theme=dark]{--bg:#0f0f0f;--bg-card:#1a1a1a;--bg-sidebar:#141414;--text:#f0f0f0;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent:#60a5fa;--accent-hover:#93bbfd;--border:#2a2a2a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f0f0f;--bg-card:#1a1a1a;--bg-sidebar:#141414;--text:#f0f0f0;--text-secondary:#9ca3af;--text-muted:#6b7280;--accent:#60a5fa;--accent-hover:#93bbfd;--border:#2a2a2a}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{color-scheme:light dark}body{font-family:var(--font-sans);font-size:.9rem;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.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}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sidebar{width:240px;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0}.sidebar-logo{padding:var(--space-lg);font-weight:700;font-size:1.1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--space-sm)}.sidebar-nav{padding:var(--space-md);flex:1 1;display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem .75rem;border-radius:var(--radius);color:var(--text-secondary);font-weight:500;font-size:.85rem;transition:all .15s;text-decoration:none}.sidebar-link:hover{background:var(--border);color:var(--text);text-decoration:none}.sidebar-link.active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.85rem}th{text-align:left;color:var(--text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}td,th{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border)}tr:hover td{background:color-mix(in srgb,var(--accent) 4%,transparent)}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:.5rem 1rem;border-radius:var(--radius);font-weight:600;font-size:.85rem;border:none;cursor:pointer;transition:background .15s;text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);text-decoration:none}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--border);color:var(--text);text-decoration:none}.btn-sm{padding:.35rem .75rem;font-size:.8rem}input,select{padding:.5rem .75rem;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:.85rem;font-family:var(--font-sans)}input:focus,select:focus{outline:none;border-color:var(--accent)}.badge{display:inline-block;padding:.15rem .5rem;border-radius:1rem;font-size:.7rem;font-weight:600}.badge-success{background:#dcfce7;color:#166534}.badge-danger{background:#fee2e2;color:#991b1b}[data-theme=dark] .badge-success{background:#064e3b;color:#6ee7b7}[data-theme=dark] .badge-danger{background:#450a0a;color:#fca5a5}.skeleton{background:linear-gradient(90deg,var(--border) 25%,color-mix(in srgb,var(--border) 60%,transparent) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}*,:after,:before{transition-duration:.01ms!important}}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}.toast{padding:.75rem 1.25rem;border-radius:.5rem;font-size:.875rem;font-weight:500;color:#fff;box-shadow:0 10px 25px rgba(0,0,0,.15);transform:translateX(120%);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);pointer-events:auto;max-width:360px}.toast.show{transform:translateX(0);opacity:1}.toast-success{background:#16a34a}.toast-error{background:#dc2626}.toast-info{background:#2563eb}@media (prefers-reduced-motion:reduce){.toast{transition:opacity .01ms}.toast,.toast.show{transform:none}}