:root{--color-bg:#f5f4f1;--color-surface:#fff;--color-surface-sunken:#ebe9e4;--color-ink:#16211c;--color-ink-soft:#4b564f;--color-border:#dcd9d1;--color-primary:#0d1d96;--color-primary-hover:#0a1778;--color-primary-soft:#e4e6f7;--color-accent:#a9812f;--color-accent-soft:#f4ecd8;--color-danger:#9c3b2e;--color-danger-soft:#f6e6e2;--color-success:#2f6b4f;--color-success-soft:#e5f0e9;--font-ui:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-display:"IBM Plex Sans", sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #16211c0f;--shadow-md:0 4px 16px #16211c14}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}#app{min-height:100vh}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600}a{color:inherit}button{font-family:inherit}::selection{background:var(--color-accent-soft)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.page-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.page-title{color:var(--color-ink);font-size:20px}.page-subtitle{color:var(--color-ink-soft);margin-top:4px;font-size:13px}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;font-size:13.5px;font-weight:600;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-primary);color:var(--color-bg)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-ink)}.btn--secondary:hover:not(:disabled){background:var(--color-surface-sunken)}.btn--danger{color:var(--color-danger);background:0 0;border-color:#0000}.btn--danger:hover:not(:disabled){background:var(--color-danger-soft)}.btn--sm{padding:6px var(--space-3);font-size:12.5px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-soft);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);font-size:11.5px;font-weight:600}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:var(--color-surface-sunken)}.mono{font-family:var(--font-mono);font-size:13px}.badge{border-radius:100px;align-items:center;padding:3px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--muted{background:var(--color-surface-sunken);color:var(--color-ink-soft)}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent)}.form-field{margin-bottom:var(--space-4);flex-direction:column;gap:6px;display:flex}.form-label{color:var(--color-ink-soft);font-size:12.5px;font-weight:600}.form-input,.form-select{padding:9px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font-family:inherit;font-size:13.5px}.form-input:focus,.form-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.form-hint{color:var(--color-ink-soft);font-size:12px}.form-error{color:var(--color-danger);font-size:12px}.checkbox-row{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;display:flex}.empty-state{text-align:center;padding:var(--space-7) var(--space-4);color:var(--color-ink-soft)}.empty-state-title{color:var(--color-ink);margin-bottom:var(--space-1);font-weight:600}.toast{bottom:var(--space-5);right:var(--space-5);background:var(--color-ink);color:var(--color-bg);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;font-size:13px;position:fixed}.toast--danger{background:var(--color-danger)}
