:root{--bg: #f6f6f4;--surface: #ffffff;--surface-2: #fafaf8;--ink: #15171f;--ink-2: #4a4f5c;--muted: #7a7f8c;--line: #e7e6e1;--line-strong: #d4d2ca;--accent: #3f3cbb;--accent-hover: #34319f;--accent-ink: #ffffff;--accent-soft: #eceafc;--ok: #0f7b4d;--ok-soft: #e2f4ec;--warn: #a15c07;--warn-soft: #fdf0d8;--danger: #b42318;--danger-soft: #fde8e6;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgb(21 23 31 / 6%);--shadow-md: 0 8px 24px rgb(21 23 31 / 8%);--sidebar-w: 248px;--topbar-h: 60px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}h1,h2,h3,p{margin:0}h1{font-size:1.5rem;font-weight:650;letter-spacing:-.015em;line-height:1.25}h2{font-size:1.05rem;font-weight:600}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}ul{list-style:none;margin:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent-soft)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:40px;padding:0 1rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);font-weight:550;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s}.btn:hover{background:var(--surface-2);border-color:var(--muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.field{display:grid;gap:.35rem}.field label{font-weight:550;font-size:.85rem}.input{width:100%;min-height:42px;padding:0 .8rem;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface)}.input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.badge{display:inline-flex;align-items:center;padding:.12rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--accent-soft);color:var(--accent)}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-muted{background:var(--bg);color:var(--ink-2)}.skip-link{position:absolute;left:-999px;top:.5rem;z-index:100;padding:.5rem .9rem;background:var(--ink);color:#fff;border-radius:8px}.skip-link:focus{left:.5rem}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:#8f1c12;border-color:#8f1c12}.btn-sm{min-height:34px;padding:0 .7rem;font-size:.85rem}.page-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.page-head p{color:var(--ink-2);margin-top:.25rem}.page-actions{display:flex;gap:.6rem;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.75rem;color:var(--ink-2);text-decoration:none;font-weight:500}.back-link:hover{color:var(--accent)}.toolbar{display:flex;flex-wrap:wrap;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--line)}.toolbar .search{position:relative;flex:1 1 240px}.toolbar .search app-icon{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:var(--muted)}.toolbar .search .input{padding-left:2.5rem}.toolbar select.input{width:auto;min-width:160px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:.7rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tbody tr.clickable:hover{background:var(--surface-2)}.table .primary{font-weight:600;color:var(--ink);text-decoration:none}.table a.primary:hover{color:var(--accent)}.table .sub{display:block;color:var(--muted);font-size:.82rem;font-weight:400}.table .num{text-align:right}.skeleton{display:block;height:14px;border-radius:6px;background:linear-gradient(90deg,var(--line) 25%,var(--bg) 50%,var(--line) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite linear}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.5rem}.stat{padding:1.1rem 1.25rem}.stat .label{color:var(--ink-2);font-size:.85rem}.stat .value{font-size:1.9rem;font-weight:650;letter-spacing:-.02em;line-height:1.2;margin-top:.2rem}.stat .hint{color:var(--muted);font-size:.8rem;margin-top:.15rem}.form-grid{display:grid;gap:1rem}.field .hint{color:var(--muted);font-size:.8rem}.field-error{color:var(--danger);font-size:.82rem}.input[aria-invalid=true]{border-color:var(--danger)}.form-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem;flex-wrap:wrap}.form-alert{display:flex;gap:.6rem;align-items:flex-start;padding:.7rem .8rem;border-radius:var(--radius);background:var(--danger-soft);color:var(--danger)}.details{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 1.5rem;margin:0}.details dt{color:var(--muted)}.details dd{margin:0;overflow-wrap:anywhere}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.85em}.section-card{margin-bottom:1.25rem}.section-card>h2{padding:1rem 1.25rem;border-bottom:1px solid var(--line)}.section-card .pad{padding:1.1rem 1.25rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.row-actions{display:flex;gap:.4rem;justify-content:flex-end;flex-wrap:wrap}.section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--line)}.section-card>.section-head>h2{padding:0;border:0}.nowrap{white-space:nowrap}.sub-cell{max-width:36ch;color:var(--ink-2);font-size:.85rem;overflow-wrap:anywhere}
