:root,:root[data-theme=light]{color-scheme:light;--ink: #0f172a;--muted: #64748b;--border: #e2e8f0;--border-strong: #cbd5e1;--page: #f8fafc;--surface: #f1f5f9;--elevated: #fff;--accent: #0f172a;--accent-hover: #1e293b;--accent-ink: #fff;--danger: #b91c1c;--danger-solid: #b91c1c;--on-solid: #fff;--btn-muted: #dbe2ea;--btn-muted-hover: #c7d1dc;--danger-bg: #fef2f2;--danger-border: #fecaca;--danger-ink: #991b1b;--info-bg: #eff6ff;--info-border: #bfdbfe;--info-ink: #1e40af;--success-bg: #f0fdf4;--success-border: #bbf7d0;--success-ink: #166534;--toast-bg: #14532d;--toast-error-bg: #7f1d1d;--backdrop: rgb(15 23 42 / 55%);--shadow-sm: 0 12px 32px rgb(15 23 42 / 6%);--shadow-md: 0 10px 30px rgb(15 23 42 / 14%);--shadow-lg: 0 20px 50px rgb(15 23 42 / 30%)}:root[data-theme=dark]{color-scheme:dark;--ink: #e2e8f0;--muted: #94a3b8;--border: #334155;--border-strong: #475569;--page: #020617;--surface: #0f172a;--elevated: #1e293b;--accent: #e2e8f0;--accent-hover: #f8fafc;--accent-ink: #0f172a;--danger: #fca5a5;--danger-solid: #dc2626;--on-solid: #fff;--btn-muted: #334155;--btn-muted-hover: #475569;--danger-bg: #3b1418;--danger-border: #7f1d1d;--danger-ink: #fca5a5;--info-bg: #10233f;--info-border: #1e40af;--info-ink: #93c5fd;--success-bg: #0e2a1b;--success-border: #166534;--success-ink: #86efac;--toast-bg: #166534;--toast-error-bg: #991b1b;--backdrop: rgb(2 6 23 / 70%);--shadow-sm: 0 12px 32px rgb(0 0 0 / 35%);--shadow-md: 0 10px 30px rgb(0 0 0 / 50%);--shadow-lg: 0 20px 50px rgb(0 0 0 / 60%)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--page);color:var(--ink);font:400 15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;min-height:100dvh}app-root{display:flex;flex-direction:column;flex:1 0 auto}h1{font-size:1.6rem;margin:0}label{display:block;font-size:.78rem;font-weight:600;color:var(--muted);margin-bottom:.3rem}input,select,textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--elevated);color:inherit;font:inherit}@media(pointer:coarse){input,select,textarea{font-size:16px}}select{appearance:none;-webkit-appearance:none;padding-right:1.6rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23888' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:12px 8px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:1px}textarea{resize:vertical;min-height:8rem}.field{margin-bottom:1rem}.field__error{margin-top:.3rem;color:var(--danger);font-size:.8rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.05rem;border:1px solid var(--border);border-radius:8px;background:var(--elevated);color:var(--ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.btn:hover:not(:disabled){background:var(--surface)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--muted{background:var(--btn-muted);border-color:var(--border-strong);color:var(--ink)}.btn--muted:hover:not(:disabled){background:var(--btn-muted-hover);border-color:var(--muted)}.btn--danger{background:var(--danger-solid);border-color:var(--danger-solid);color:var(--on-solid)}.btn--sm{padding:.3rem .7rem;font-size:.8rem}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--elevated);border:1px solid var(--border);border-radius:12px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.subtle{color:var(--muted);font-size:.85rem}.empty{padding:2.5rem;text-align:center;color:var(--muted)}.spinner{width:1.1rem;height:1.1rem;border:2px solid var(--border);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.75rem 1rem;background:var(--surface)}td{padding:.9rem 1rem;border-top:1px solid var(--border);vertical-align:middle}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:48rem){h1{font-size:1.4rem}.page-head{flex-wrap:wrap;margin-bottom:1rem}}
