:root{--bg: #f4f5f8;--surface: #ffffff;--surface-2: #f8f9fb;--border: #dfe2e9;--border-strong: #c4c9d4;--text: #1d2230;--text-muted: #667085;--primary: #4338ca;--primary-hover: #3730a3;--primary-soft: #eef0ff;--danger: #b42318;--danger-soft: #fee4e2;--warn: #b54708;--warn-soft: #fef0c7;--ok: #067647;--ok-soft: #dcfae6;--radius: 8px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .1);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .18);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);font-size:14px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}.btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2);border-color:#98a2b3}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-hover)}.btn.danger{color:var(--danger);border-color:#f1a9a4}.btn.danger:hover:not(:disabled){background:var(--danger-soft)}.btn.small{height:28px;padding:0 9px;font-size:12.5px}.btn.ghost{border-color:transparent;background:transparent}.field{display:flex;flex-direction:column;gap:4px}.field>span{font-size:12px;font-weight:600;color:var(--text-muted)}.field input,.field select{height:34px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);min-width:0}.field input:focus,.field select:focus{outline:2px solid #a5b4fc;outline-offset:0;border-color:var(--primary)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;background:var(--primary-soft);color:var(--primary)}.muted{color:var(--text-muted)}.backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:7vh 16px 16px;background:rgba(16,24,40,.45);overflow:auto}.dialog{width:min(560px,100%);padding:22px;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg)}.dialog h2{font-size:18px;margin-bottom:4px}.dialog .lead{color:var(--text-muted);margin-bottom:16px}.dialog .footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
