:root{--color-paper: oklch(98% .008 170);--color-paper-2: oklch(96% .012 170);--color-paper-3: oklch(92% .016 170);--color-surface: oklch(99.5% .005 170);--color-ink: oklch(21% .035 205);--color-ink-2: oklch(31% .032 205);--color-neutral: oklch(43% .025 205);--color-muted: oklch(52% .022 205);--color-rule: oklch(88% .018 180);--color-rule-2: oklch(76% .025 180);--color-accent: oklch(43% .105 178);--color-accent-strong: oklch(35% .095 178);--color-accent-soft: oklch(92% .035 178);--color-accent-ink: oklch(99% .004 170);--color-focus: oklch(42% .14 230);--color-success: oklch(43% .1 155);--color-success-soft: oklch(94% .035 155);--color-warning: oklch(63% .13 75);--color-warning-soft: oklch(95% .045 75);--color-danger: oklch(48% .17 27);--color-danger-soft: oklch(95% .035 27);--color-info-soft: oklch(94% .03 235);--color-overlay: oklch(18% .03 205 / .58);--font-display: "Aptos Display", "Segoe UI Variable Display", "Segoe UI", ui-sans-serif, sans-serif;--font-body: "Aptos", "Segoe UI Variable Text", "Segoe UI", ui-sans-serif, sans-serif;--font-outlier: "Cascadia Mono", "SFMono-Regular", Consolas, ui-monospace, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--text-display: clamp(2rem, 3vw, 3rem);--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--space-4xl: 8rem;--space-5xl: 10rem;--control-height: 2.75rem;--control-border: oklch(62% .03 195);--control-border-hover: var(--color-neutral);--control-disabled-bg: var(--color-paper-2);--control-focus-ring: color-mix(in oklch, var(--color-accent) 20%, transparent);--radius-input: .5rem;--radius-card: .75rem;--radius-panel: 1rem;--radius-pill: 999px;--rule-hair: 1px;--rule-fine: 2px;--shadow-card: 0 .5rem 1.5rem oklch(21% .035 205 / .08);--shadow-panel: 0 1.25rem 3rem oklch(21% .035 205 / .16);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-micro: .12s;--dur-short: .18s;--dur-long: .3s;--z-base: 0;--z-sticky: 200;--z-sticky-nav: 300;--z-overlay: 500;--z-modal: 600}:root{--font-display: "Geist", "Aptos Display", "Segoe UI Variable Display", ui-sans-serif, system-ui, sans-serif;--font-body: "Geist", "Aptos", "Segoe UI Variable Text", ui-sans-serif, system-ui, sans-serif;--font-outlier: "Geist Mono", "Cascadia Mono", ui-monospace, monospace;--text-2xs: .8125rem;--text-xs: .875rem;--text-sm: .9375rem;--text-base: 1.0625rem;--text-md: 1.1875rem;--text-lg: 1.5rem;--text-xl: 1.875rem;--text-2xl: 2.375rem;--tracking-display: -.024em;--tracking-tight: -.012em;--tracking-label: .005em;--color-canvas: oklch(96.4% .006 195);--color-surface: oklch(100% 0 0);--color-surface-2: oklch(97.6% .005 195);--color-surface-sunk: oklch(94.8% .008 195);--color-rail: oklch(99.2% .003 195);--color-ink: oklch(22% .028 220);--color-ink-2: oklch(38% .022 220);--color-muted: oklch(53% .017 220);--color-faint: oklch(66% .013 220);--color-line: oklch(91.5% .008 210);--color-line-strong: oklch(85% .012 210);--color-accent: oklch(47% .098 187);--color-accent-hover: oklch(41% .094 187);--color-accent-soft: oklch(95.5% .026 187);--color-accent-line: oklch(84% .055 187);--color-accent-ink: oklch(99.5% .002 187);--color-focus: oklch(52% .16 245);--color-ok: oklch(46% .105 158);--color-ok-soft: oklch(95.5% .032 158);--color-ok-line: oklch(64% .09 158);--color-warn: oklch(56% .125 68);--color-warn-soft: oklch(96% .038 72);--color-warn-line: oklch(65% .1 72);--color-bad: oklch(51% .175 25);--color-bad-soft: oklch(96% .028 25);--color-bad-line: oklch(66% .085 25);--color-info-soft: oklch(96% .024 245);--color-info-line: oklch(66% .08 245);--chart-1: #00998f;--chart-2: #6d4bd0;--color-scrim: oklch(24% .02 220 / .42);--shadow-1: 0 1px 2px oklch(24% .02 220 / .05), 0 1px 1px oklch(24% .02 220 / .04);--shadow-2: 0 2px 4px oklch(24% .02 220 / .05), 0 6px 14px oklch(24% .02 220 / .06);--shadow-3: 0 8px 20px oklch(24% .02 220 / .1), 0 24px 48px oklch(24% .02 220 / .12);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--radius-pill: 999px;--control-h: 2.5rem;--control-h-sm: 2.125rem;--row-h: 3.375rem;--rail-w: 17rem;--canvas-w: 78rem;--app-w: calc(var(--rail-w) + var(--canvas-w) + var(--space-xl) * 2)}@media(prefers-reduced-motion:reduce){:root{--dur-micro: 1ms;--dur-short: 1ms;--dur-long: .12s}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}html,body{overflow-x:clip}body{margin:0;font-family:var(--font-body);font-size:var(--text-base);font-weight:400;line-height:1.55;color:var(--color-ink);background:var(--color-canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-variant-numeric:tabular-nums}h1,h2,h3,h4{font-family:var(--font-display);font-style:normal;margin:0;line-height:1.2;letter-spacing:var(--tracking-tight);color:var(--color-ink)}h1{font-size:var(--text-2xl);font-weight:600;letter-spacing:var(--tracking-display)}h2{font-size:var(--text-md);font-weight:600}h3{font-size:var(--text-base);font-weight:600}p{margin:0}.mono{font-family:var(--font-outlier);font-size:.9375em;letter-spacing:0}.strong{font-weight:600}.muted{color:var(--color-muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:var(--space-sm);top:-4rem;z-index:var(--z-modal);padding:var(--space-2xs) var(--space-sm);background:var(--color-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);font-weight:500}.skip-link:focus{top:var(--space-sm)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:var(--radius-xs)}*{scrollbar-width:thin;scrollbar-color:var(--color-line-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--color-line-strong);border:2px solid transparent;border-radius:var(--radius-pill);background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--color-muted);background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}.app{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100%}.main{padding:var(--space-lg) var(--space-xl) var(--space-2xl);min-width:0;width:100%;max-width:calc(var(--canvas-w) + var(--space-xl) * 2);margin-inline:auto}.rail{display:flex;flex-direction:column;gap:var(--space-2xs);padding:var(--space-sm) var(--space-xs);background:var(--color-rail);border-right:1px solid var(--color-line);position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}.brand{display:flex;gap:var(--space-2xs);align-items:center;padding:var(--space-2xs) var(--space-2xs) var(--space-sm)}.brand-mark{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex-shrink:0;border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-accent-ink);font-family:var(--font-display);font-weight:600;font-size:var(--text-xs);letter-spacing:.02em}.brand-text{min-width:0}.brand-name{display:block;font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);letter-spacing:var(--tracking-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-sub{display:block;color:var(--color-muted);font-size:var(--text-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.rail-link{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2xs);padding:0 var(--space-2xs);min-height:2.375rem;border-radius:var(--radius-sm);color:var(--color-ink-2);text-decoration:none;font-size:var(--text-sm);font-weight:500;white-space:nowrap;transition:background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.rail-link:hover{background:var(--color-surface-sunk);color:var(--color-ink)}.rail-link.is-current{background:var(--color-accent-soft);color:var(--color-accent-hover);font-weight:600}.rail-flag{font-size:var(--text-2xs);font-weight:500;padding:1px 6px;border-radius:var(--radius-pill);background:var(--color-surface-sunk);color:var(--color-faint);letter-spacing:var(--tracking-label)}.rail-flag-warn{background:var(--color-warn-soft);color:var(--color-warn)}.rail-sep{border:0;border-top:1px solid var(--color-line);margin:var(--space-2xs) var(--space-2xs)}.rail-foot{margin-top:auto;padding-top:var(--space-sm);border-top:1px solid var(--color-line);display:flex;align-items:center;gap:var(--space-2xs)}.avatar{display:grid;place-items:center;width:2rem;height:2rem;flex-shrink:0;border-radius:var(--radius-pill);background:var(--color-surface-sunk);color:var(--color-ink-2);font-size:var(--text-xs);font-weight:600}.rail-user{font-size:var(--text-sm);font-weight:500}.rail-meta{font-size:var(--text-xs);color:var(--color-faint)}.page-header{display:flex;gap:var(--space-md);justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:var(--space-md)}.page-crumb{display:flex;align-items:center;gap:var(--space-3xs);font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-3xs)}.page-crumb a{color:inherit;text-decoration:none}.page-crumb a:hover{color:var(--color-accent-hover);text-decoration:underline}.page-title-row{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap}.page-purpose{color:var(--color-muted);margin-top:var(--space-3xs);max-width:62ch;font-size:var(--text-sm)}.page-actions{flex-shrink:0;display:flex;gap:var(--space-2xs);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3xs);min-height:var(--control-h);padding:0 var(--space-sm);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink);font:inherit;font-size:var(--text-sm);font-weight:500;white-space:nowrap;cursor:pointer;text-decoration:none;box-shadow:var(--shadow-1);transition:background-color var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out),transform var(--dur-micro) var(--ease-out)}.btn:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-muted)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-danger{background:var(--color-bad);border-color:var(--color-bad);color:var(--color-accent-ink)}.btn-quiet{border-color:transparent;background:transparent;box-shadow:none;color:var(--color-accent-hover);padding:0 var(--space-2xs);min-height:2rem;font-weight:500}.btn-quiet:hover:not(:disabled){background:var(--color-accent-soft);border-color:transparent}.btn-icon{display:grid;place-items:center;width:2.125rem;height:2.125rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-muted);font-size:var(--text-base);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out)}.btn-icon:hover{background:var(--color-surface-sunk);color:var(--color-ink)}.btn-link{background:none;border:0;padding:0;font:inherit;font-size:var(--text-sm);color:var(--color-muted);cursor:pointer}.btn-link:hover{color:var(--color-accent-hover);text-decoration:underline}.badge{display:inline-flex;align-items:center;gap:var(--space-3xs);padding:2px 8px;border-radius:var(--radius-pill);border:1px solid transparent;font-size:var(--text-xs);font-weight:500;text-transform:capitalize;white-space:nowrap;letter-spacing:var(--tracking-label)}.badge>span[aria-hidden]{font-size:.7em;line-height:1}.badge-positive{background:var(--color-ok-soft);border-color:var(--color-ok-line);color:var(--color-ok)}.badge-attention{background:var(--color-warn-soft);border-color:var(--color-warn-line);color:var(--color-warn)}.badge-negative{background:var(--color-bad-soft);border-color:var(--color-bad-line);color:var(--color-bad)}.badge-neutral{background:var(--color-surface-sunk);border-color:var(--color-line-strong);color:var(--color-muted)}.badge-restricted{background:var(--color-info-soft);border-color:var(--color-info-line);color:var(--color-focus)}.status-cell{text-align:center}.status-cell .badge{min-width:6.75rem;justify-content:center}.pill{padding:2px 9px;border-radius:var(--radius-pill);border:1px solid var(--color-line-strong);background:var(--color-surface);color:var(--color-muted);font-size:var(--text-xs);font-weight:500;white-space:nowrap}.pill-required,.pill-attention{background:var(--color-warn-soft);border-color:var(--color-warn-line);color:var(--color-warn)}.toolbar{display:flex;gap:var(--space-2xs);align-items:center;margin-bottom:var(--space-sm);flex-wrap:wrap}.search{flex:1;min-width:14rem;max-width:24rem}.toolbar-note{flex-basis:100%;font-size:var(--text-xs);color:var(--color-faint)}input,select,textarea{font:inherit;font-size:var(--text-sm);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);padding:0 var(--space-xs);min-height:var(--control-h);width:100%;box-shadow:inset 0 1px 2px #1422260b;transition:border-color var(--dur-micro) var(--ease-out)}textarea{padding:var(--space-2xs);min-height:unset;resize:vertical;line-height:1.55}input::placeholder,textarea::placeholder{color:var(--color-faint)}input:hover:not([readonly]),select:hover,textarea:hover{border-color:var(--color-muted)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:-1px;border-color:var(--color-focus)}input[readonly],.is-locked{background:var(--color-surface-sunk);color:var(--color-muted);cursor:not-allowed}select{max-width:16rem;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 55%,calc(100% - 10px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:var(--space-lg)}.toolbar select{min-width:10rem}.table-wrap{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow-x:auto;max-width:100%;position:relative}table{min-width:42rem}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th,td{text-align:left;padding:var(--space-2xs) var(--space-sm);height:var(--row-h);border-bottom:1px solid var(--color-line);vertical-align:middle}thead th{height:2.5rem;font-size:var(--text-xs);font-weight:600;color:var(--color-muted);letter-spacing:var(--tracking-label);background:var(--color-surface-2);white-space:nowrap;position:sticky;top:0;z-index:1}thead th:first-child{border-top-left-radius:var(--radius-lg)}thead th:last-child{border-top-right-radius:var(--radius-lg)}tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}tbody tr{transition:background-color var(--dur-micro) var(--ease-out)}tbody tr:hover{background:var(--color-surface-2)}tbody th{font-weight:600;color:var(--color-ink)}.row-actions{width:1%;white-space:nowrap;padding-right:var(--space-sm)}.action-cluster{display:inline-flex;align-items:center;border:1px solid var(--color-line);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-1);opacity:.72;transition:opacity var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}tbody tr:hover .action-cluster,.action-cluster:focus-within{opacity:1;border-color:var(--color-line-strong)}.action-cluster:empty{display:none}.action-cluster>button{border:0;border-radius:0;background:transparent;box-shadow:none;min-height:var(--control-h-sm);padding:0 var(--space-2xs);font:inherit;font-size:var(--text-xs);font-weight:500;color:var(--color-ink-2);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.action-cluster>button+button{border-left:1px solid var(--color-line)}.action-cluster>button:hover:not(:disabled){background:var(--color-surface-sunk);color:var(--color-ink)}.action-cluster>button:disabled{opacity:.45;cursor:not-allowed}.action-cluster>button.is-accent,.action-cluster>button.is-danger{min-width:5.75rem}.action-cluster>button.is-accent{color:var(--color-accent-hover)}.action-cluster>button.is-accent:hover:not(:disabled){background:var(--color-accent-soft)}.action-cluster>button.is-danger{color:var(--color-bad)}.action-cluster>button.is-danger:hover:not(:disabled){background:var(--color-bad-soft)}.row-link{color:inherit;text-decoration:none;font-weight:600}.row-link:hover{color:var(--color-accent-hover);text-decoration:underline}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(11rem,100%),1fr));gap:1px;margin-bottom:var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-line);box-shadow:var(--shadow-1);overflow:hidden}.stat{padding:var(--space-sm) var(--space-md);background:var(--color-surface);display:flex;flex-direction:column;gap:2px;min-width:0}.stat-label{font-size:var(--text-xs);color:var(--color-faint);letter-spacing:var(--tracking-label)}.stat-value{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;line-height:1.15;letter-spacing:var(--tracking-tight)}.stat-value.is-warn{color:var(--color-warn)}.stat-value.is-ok{color:var(--color-ok)}.stat-note{font-size:var(--text-xs);color:var(--color-muted)}.aside-list{list-style:none;margin:var(--space-2xs) 0 0;padding:0;display:grid;gap:var(--space-3xs)}.aside-list li{display:flex;justify-content:space-between;gap:var(--space-2xs);font-size:var(--text-xs);padding:var(--space-3xs) 0;border-bottom:1px solid var(--color-line)}.aside-list li:last-child{border-bottom:0}.aside-list dt,.aside-list span:first-child{color:var(--color-muted)}.aside-list strong{font-weight:600}.load-more{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-sm);font-size:var(--text-sm)}.skeleton{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-2xs)}.skeleton-row{height:2rem;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-surface-sunk) 37%,var(--color-surface-2) 63%);background-size:400% 100%;animation:shimmer 1.5s var(--ease-in-out) infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media(prefers-reduced-motion:reduce){.skeleton-row{animation:none}}.empty-state,.error-state,.placeholder{border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);text-align:center;background:var(--color-surface);display:flex;flex-direction:column;align-items:center;gap:var(--space-2xs);box-shadow:var(--shadow-1)}.empty-state h3,.error-state h3,.placeholder h2{font-size:var(--text-md)}.empty-state p,.error-state p,.placeholder p{color:var(--color-muted);max-width:46ch;font-size:var(--text-sm)}.error-state{border-color:var(--color-bad-line);background:var(--color-bad-soft)}.banner{display:flex;gap:var(--space-sm);justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);margin-bottom:var(--space-sm);border:1px solid var(--color-line);background:var(--color-surface);box-shadow:var(--shadow-1);flex-wrap:wrap}.banner p{color:var(--color-ink-2);margin-top:2px;max-width:72ch;font-size:var(--text-sm)}.banner strong{font-weight:600}.banner-attention{background:var(--color-warn-soft);border-color:var(--color-warn-line)}.banner-positive{background:var(--color-ok-soft);border-color:var(--color-ok-line)}.callout{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-accent-line);background:var(--color-accent-soft);border-radius:var(--radius-lg);margin-bottom:var(--space-md);max-width:78ch;font-size:var(--text-sm);line-height:1.6}.callout strong{font-weight:600}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));gap:var(--space-2xs);margin-bottom:var(--space-md)}.ready-card{display:block;padding:var(--space-sm);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);text-decoration:none;color:inherit;box-shadow:var(--shadow-1);transition:border-color var(--dur-short) var(--ease-out),box-shadow var(--dur-short) var(--ease-out),transform var(--dur-short) var(--ease-out)}.ready-card:hover{border-color:var(--color-line-strong);box-shadow:var(--shadow-2);transform:translateY(-1px)}.ready-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2xs);margin-bottom:var(--space-3xs)}.ready-card h3{font-size:var(--text-sm)}.ready-card p{color:var(--color-muted);font-size:var(--text-xs)}.meta-strip{display:flex;flex-wrap:wrap;gap:var(--space-lg);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1)}.meta-label{font-size:var(--text-xs);color:var(--color-faint);letter-spacing:var(--tracking-label)}.meta-value{font-weight:600;font-size:var(--text-sm);margin-top:2px}.lifecycle{display:flex;align-items:center;gap:var(--space-3xs);flex-wrap:wrap;margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface-2)}.lifecycle-step{font-size:var(--text-xs);font-weight:500;padding:3px 10px;border-radius:var(--radius-pill);color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-line)}.lifecycle-step.is-current{color:var(--color-accent-hover);border-color:var(--color-accent-line);background:var(--color-accent-soft);font-weight:600}.lifecycle-step.is-done{color:var(--color-ok);border-color:var(--color-ok-line)}.lifecycle-note{width:100%;font-size:var(--text-xs);color:var(--color-faint);margin-top:var(--space-3xs)}.form-section{padding:var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);margin-bottom:var(--space-sm)}.form-section h2{margin-bottom:var(--space-sm)}.section-note{font-size:var(--text-xs);color:var(--color-faint);margin-top:var(--space-2xs)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr));gap:var(--space-3xs) var(--space-md)}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(12rem,100%),1fr));gap:var(--space-3xs) var(--space-md)}.field{margin-bottom:var(--space-sm);min-width:0}.field label{display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-3xs);color:var(--color-ink-2)}.field-hint{font-size:var(--text-xs);color:var(--color-faint);margin-top:var(--space-3xs)}.field-error{font-size:var(--text-xs);color:var(--color-bad);margin-top:var(--space-3xs);font-weight:500}.field-invalid input,.field-invalid select,.field-invalid textarea{border-color:var(--color-bad)}.form-summary{padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--color-bad-line);background:var(--color-bad-soft);color:var(--color-bad);font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-sm)}.check{display:flex;align-items:center;gap:var(--space-2xs);font-weight:400;font-size:var(--text-sm)}.check input{width:auto;min-height:unset;accent-color:var(--color-accent)}.preview-box{padding:var(--space-sm);border-radius:var(--radius-md);background:var(--color-surface-sunk);border:1px solid var(--color-line);margin-bottom:var(--space-sm)}.preview-label{font-size:var(--text-xs);color:var(--color-faint);letter-spacing:var(--tracking-label)}.preview-value{font-family:var(--font-outlier);font-size:var(--text-xl);font-weight:500;margin-top:var(--space-3xs);letter-spacing:0}.pattern-card{padding:var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);margin-bottom:var(--space-sm)}.pattern-head{margin-bottom:var(--space-sm)}.pattern-head p{font-size:var(--text-sm);margin-top:2px}.pattern-options{border:0;padding:0;margin:0 0 var(--space-sm);display:grid;gap:var(--space-2xs);grid-template-columns:repeat(auto-fit,minmax(min(17rem,100%),1fr))}.pattern-options legend{font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-2xs);padding:0;color:var(--color-ink-2)}.option{display:flex;gap:var(--space-2xs);align-items:flex-start;padding:var(--space-2xs) var(--space-sm);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface);transition:border-color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out)}.option:hover{border-color:var(--color-muted)}.option.is-on{border-color:var(--color-accent);background:var(--color-accent-soft)}.option input{width:auto;min-height:unset;margin-top:4px;accent-color:var(--color-accent)}.option span{display:flex;flex-direction:column;gap:1px}.option strong{font-size:var(--text-sm);font-weight:600}.option small{color:var(--color-muted);font-size:var(--text-xs)}.option:has(input:disabled){cursor:not-allowed;opacity:.9}.pattern-default{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap}.pattern-default label{font-size:var(--text-sm);font-weight:500;color:var(--color-ink-2)}.scrim{position:fixed;inset:0;background:var(--color-scrim);z-index:var(--z-overlay);display:flex;justify-content:flex-end}.scrim-center{align-items:center;justify-content:center;padding:var(--space-sm)}.drawer{width:min(36rem,100%);height:100%;background:var(--color-surface-2);display:flex;flex-direction:column;box-shadow:var(--shadow-3)}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2xs);padding:var(--space-md);background:var(--color-surface);border-bottom:1px solid var(--color-line);box-shadow:inset 0 3px 0 var(--color-accent)}.drawer-head h2{font-size:var(--text-md)}.drawer-head p{color:var(--color-muted);font-size:var(--text-sm);margin-top:3px;max-width:42ch}.drawer-body{padding:var(--space-md);overflow-y:auto;flex:1}.drawer-group{padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);margin-bottom:var(--space-sm)}.drawer-group>.field:last-child{margin-bottom:0}.drawer-group-title{font-size:var(--text-xs);font-weight:600;color:var(--color-faint);letter-spacing:var(--tracking-label);margin-bottom:var(--space-2xs)}.drawer-foot{display:flex;justify-content:flex-end;gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);border-top:1px solid var(--color-line);background:var(--color-surface);box-shadow:0 -2px 8px #1422260a}.dialog{width:min(30rem,100%);background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-3)}.dialog h2{margin-bottom:var(--space-2xs)}.dialog>p{color:var(--color-ink-2);margin-bottom:var(--space-sm);font-size:var(--text-sm)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2xs);margin-top:var(--space-md)}.toast{position:fixed;bottom:var(--space-md);left:50%;transform:translate(-50%);z-index:var(--z-modal);padding:var(--space-2xs) var(--space-md);border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-accent-ink);box-shadow:var(--shadow-3);font-size:var(--text-sm);font-weight:500;max-width:calc(100vw - var(--space-lg))}.action-row{display:flex;gap:var(--space-2xs);flex-wrap:wrap;justify-content:flex-end}.tabs{display:flex;gap:var(--space-3xs);overflow-x:auto;border-bottom:1px solid var(--color-line);margin-bottom:var(--space-md);scrollbar-width:thin}.tab{display:inline-flex;align-items:center;gap:var(--space-3xs);padding:var(--space-2xs) var(--space-xs);border:0;border-bottom:2px solid transparent;background:transparent;font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--color-muted);cursor:pointer;white-space:nowrap;transition:color var(--dur-micro) var(--ease-out)}.tab:hover{color:var(--color-ink)}.tab.is-current{color:var(--color-accent-hover);border-bottom-color:var(--color-accent);font-weight:600}.lock{font-size:.6875rem}.tab-panel{min-height:12rem}.record{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow:hidden}.record-block+.record-block{border-top:1px solid var(--color-line)}.record-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap;padding:var(--space-2xs) var(--space-md);background:var(--color-surface-2);border-bottom:1px solid var(--color-line)}.record-head h3{font-size:var(--text-sm);font-weight:600;color:var(--color-ink);letter-spacing:var(--tracking-label)}.record-head p{font-size:var(--text-xs);color:var(--color-muted)}.record-rows{display:grid;grid-template-columns:minmax(0,1fr);column-gap:var(--space-xl);padding:var(--space-2xs) var(--space-md);margin:0}@media(min-width:64rem){.record-rows{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:100rem){.record-rows{grid-template-columns:repeat(3,minmax(0,1fr))}}.record-row{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:var(--space-sm);align-items:baseline;padding:var(--space-3xs) 0;min-height:2rem}.record-row dt{font-size:var(--text-xs);color:var(--color-muted)}.record-row dd{margin:0;font-size:var(--text-sm);font-weight:500;color:var(--color-ink);overflow-wrap:anywhere}.record-row-full{grid-column:1 / -1}@media(max-width:34rem){.record-row{grid-template-columns:1fr;gap:0}.record-head,.record-rows{padding-inline:var(--space-sm)}}.skill-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-3xs);margin:0;padding:0}.skill-chip{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-pill);background:var(--color-surface-sunk);border:1px solid var(--color-line);color:var(--color-ink-2)}.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr));margin:0;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow:hidden}.fact{padding:var(--space-2xs) var(--space-sm);border-bottom:1px solid var(--color-line);min-width:0}.fact dt{font-size:var(--text-xs);color:var(--color-faint)}.fact dd{margin:2px 0 0;font-weight:500;font-size:var(--text-sm);overflow-wrap:anywhere}.reveal-row{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap}.revealed-flag{font-size:var(--text-xs);color:var(--color-warn);font-weight:600}.protected-note{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap;padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--color-info-line);background:var(--color-info-soft);margin-bottom:var(--space-sm)}.protected-note p{font-size:var(--text-xs);color:var(--color-ink-2);max-width:62ch}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2xs)}.history-item{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-line);border-left-width:3px;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1)}.history-item.is-correction{border-left-color:var(--color-line-strong)}.history-item.is-change{border-left-color:var(--color-accent)}.history-item.is-period{border-left-color:var(--color-warn-line)}.history-head{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap;margin-bottom:var(--space-3xs)}.history-head strong{font-size:var(--text-sm);font-weight:600}.history-head .muted{font-size:var(--text-xs)}.history-meta{font-size:var(--text-xs);color:var(--color-faint);margin-top:var(--space-3xs)}.chip{font-size:var(--text-2xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid transparent;white-space:nowrap;letter-spacing:var(--tracking-label)}.chip-correction{background:var(--color-surface-sunk);border-color:var(--color-line-strong);color:var(--color-muted)}.chip-change{background:var(--color-accent-soft);border-color:var(--color-accent-line);color:var(--color-accent-hover)}.chip-period{background:var(--color-warn-soft);border-color:var(--color-warn-line);color:var(--color-warn)}.class-note{padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--color-line);margin-bottom:var(--space-md);font-size:var(--text-sm);line-height:1.6}.class-note strong{font-weight:600}.class-note-correction{background:var(--color-surface-sunk);border-color:var(--color-line-strong)}.class-note-change{background:var(--color-accent-soft);border-color:var(--color-accent-line)}.class-note-period{background:var(--color-warn-soft);border-color:var(--color-warn-line)}.diff-box,.period-preview{padding:var(--space-sm);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-2);margin-bottom:var(--space-sm)}.diff-line{display:flex;align-items:baseline;gap:var(--space-2xs);flex-wrap:wrap;font-size:var(--text-sm);margin-top:var(--space-3xs)}.diff-line>span:first-child{color:var(--color-faint);min-width:9rem;font-size:var(--text-xs)}.diff-old,.diff-new{padding:1px var(--space-3xs);border-radius:var(--radius-xs);border:1px solid transparent}.diff-old{text-decoration:line-through;text-decoration-color:color-mix(in oklch,var(--color-bad) 45%,transparent);color:var(--color-bad);background:var(--color-bad-soft);border-color:color-mix(in oklch,var(--color-bad-line) 50%,transparent)}.diff-new{font-weight:600;color:var(--color-ok);background:var(--color-ok-soft);border-color:color-mix(in oklch,var(--color-ok-line) 50%,transparent)}.diff-line>span[aria-hidden=true]{color:var(--color-faint)}.period-date{margin-top:var(--space-2xs);font-size:var(--text-sm)}.period-date strong{font-weight:600}.period-note{margin-top:var(--space-3xs);font-size:var(--text-xs);color:var(--color-muted)}.stepper{display:flex;gap:var(--space-3xs);list-style:none;margin:0 0 var(--space-md);padding:0;overflow-x:auto}.stepper li{flex:1;min-width:10rem}.step{display:flex;align-items:center;gap:var(--space-2xs);width:100%;padding:var(--space-2xs) var(--space-xs);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);font:inherit;font-size:var(--text-xs);font-weight:500;text-align:left;color:var(--color-muted);cursor:pointer;white-space:nowrap;transition:border-color var(--dur-micro) var(--ease-out),background-color var(--dur-micro) var(--ease-out)}.step:hover{border-color:var(--color-line-strong)}.step.is-current{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-hover);font-weight:600}.step.is-done{color:var(--color-ok);border-color:var(--color-ok-line)}.step-index{display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:var(--radius-pill);background:var(--color-surface-sunk);font-family:var(--font-outlier);font-weight:500;font-size:var(--text-2xs);flex-shrink:0}.step.is-current .step-index{background:var(--color-accent);color:var(--color-accent-ink)}.step.is-done .step-index{background:var(--color-ok-soft);color:var(--color-ok)}.wizard-actions{display:flex;justify-content:space-between;gap:var(--space-2xs);flex-wrap:wrap;position:sticky;bottom:0;padding:var(--space-sm) 0;background:linear-gradient(to top,var(--color-canvas) 65%,transparent)}.wizard-actions-right{display:flex;gap:var(--space-2xs)}.subhead{font-size:var(--text-sm);font-weight:600;margin:var(--space-md) 0 var(--space-3xs)}.inline-note{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-sm);max-width:72ch}.check-list{list-style:none;margin:0 0 var(--space-sm);padding:0;display:grid;gap:var(--space-3xs)}.check-list li{display:flex;gap:var(--space-2xs);align-items:center;font-size:var(--text-sm)}.check-list .is-ok{color:var(--color-ok)}.check-list .is-missing{color:var(--color-warn);font-weight:500}.block-title{font-size:var(--text-sm);font-weight:600;color:var(--color-muted);letter-spacing:var(--tracking-label);margin-bottom:var(--space-2xs)}.block-title:not(:first-child){margin-top:var(--space-lg)}.queue{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow:hidden}.queue-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-line);text-decoration:none;color:inherit;transition:background-color var(--dur-micro) var(--ease-out)}.queue-row:last-child{border-bottom:0}.queue-row:hover{background:var(--color-surface-2)}.queue-count{display:grid;place-items:center;min-width:3rem;height:3rem;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-surface-sunk);font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:var(--tracking-tight)}.queue-count.is-warn{background:var(--color-warn-soft);color:var(--color-warn)}.queue-count.is-bad{background:var(--color-bad-soft);color:var(--color-bad)}.queue-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.queue-text strong{font-size:var(--text-sm);font-weight:600}.queue-text small{font-size:var(--text-xs);color:var(--color-muted)}.queue-go{color:var(--color-faint);flex-shrink:0}.feed{list-style:none;margin:0;padding:0;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1)}.feed li{display:flex;gap:var(--space-2xs);align-items:flex-start;padding:var(--space-2xs) var(--space-md);border-bottom:1px solid var(--color-line)}.feed li:last-child{border-bottom:0}.feed-dot{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--color-accent-line);margin-top:.55rem;flex-shrink:0}.feed-body{display:flex;flex-direction:column;gap:1px;min-width:0}.feed-text{font-size:var(--text-sm)}.feed-meta{font-size:var(--text-xs);color:var(--color-faint)}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(13rem,100%),1fr));gap:var(--space-sm);margin-bottom:var(--space-lg)}.kpi{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value" "foot foot";align-items:center;column-gap:var(--space-2xs);row-gap:1px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);text-decoration:none;color:inherit;transition:box-shadow var(--dur-micro) var(--ease-out),border-color var(--dur-micro) var(--ease-out)}.kpi:hover{box-shadow:var(--shadow-2);border-color:var(--color-line-strong)}.kpi-icon{grid-area:icon;display:grid;place-items:center;width:2.5rem;height:2.5rem;margin-right:var(--space-3xs);border-radius:var(--radius-md);background:var(--color-surface-sunk);color:var(--color-muted)}.kpi-icon svg{width:1.25rem;height:1.25rem}.kpi-icon.is-accent{background:var(--color-accent-soft);color:var(--color-accent)}.kpi-icon.is-warn{background:var(--color-warn-soft);color:var(--color-warn)}.kpi-icon.is-bad{background:var(--color-bad-soft);color:var(--color-bad)}.kpi-label{grid-area:label;font-size:var(--text-xs);color:var(--color-muted);letter-spacing:var(--tracking-label);align-self:end}.kpi-value{grid-area:value;font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:1.05;letter-spacing:var(--tracking-display);align-self:start}.kpi-foot{grid-area:foot;display:flex;align-items:center;gap:var(--space-3xs);margin-top:var(--space-2xs);padding-top:var(--space-2xs);border-top:1px solid var(--color-line);font-size:var(--text-xs);color:var(--color-muted)}.chip{display:inline-block;padding:1px var(--space-3xs);border-radius:var(--radius-xs);background:var(--color-surface-sunk);color:var(--color-ink-2);font-size:var(--text-2xs);font-weight:600;font-variant-numeric:tabular-nums}.chip.is-ok{background:var(--color-ok-soft);color:var(--color-ok)}.chip.is-warn{background:var(--color-warn-soft);color:var(--color-warn)}.chip.is-bad{background:var(--color-bad-soft);color:var(--color-bad)}.card{display:flex;flex-direction:column;height:100%;min-width:0;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow:hidden}.card-head{display:flex;align-items:baseline;gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-line)}.card-title{font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-tight)}.card-note{font-size:var(--text-xs);color:var(--color-faint)}.card-act{margin-left:auto}.card-action{font-size:var(--text-xs);font-weight:600;color:var(--color-accent);text-decoration:none;white-space:nowrap}.card-action:hover{color:var(--color-accent-hover);text-decoration:underline}.card-body{padding:var(--space-md);flex:1;min-width:0}.card-body.is-flush{padding:0}.card-body.is-flush>.feed,.card-body.is-flush>.factlist,.card-body.is-flush>.queue{border:0;border-radius:0;box-shadow:none}.dash-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-md)}.card.is-wide{grid-column:1}.card.is-full{grid-column:1 / -1}@media(max-width:68rem){.dash-grid{grid-template-columns:minmax(0,1fr)}.card.is-wide,.card.is-full{grid-column:auto}}.queue-kind{display:grid;place-items:center;min-width:4.25rem;padding:var(--space-3xs) var(--space-2xs);flex-shrink:0;border-radius:var(--radius-sm);background:var(--color-surface-sunk);color:var(--color-muted);font-size:var(--text-2xs);font-weight:600;letter-spacing:var(--tracking-label)}.queue-kind.is-warn{background:var(--color-warn-soft);color:var(--color-warn)}.queue-kind.is-critical{background:var(--color-bad-soft);color:var(--color-bad)}.queue-marker{flex-shrink:0;padding:var(--space-3xs) var(--space-2xs);border-radius:var(--radius-pill);font-size:var(--text-2xs);font-weight:500;background:var(--color-surface-sunk);color:var(--color-muted)}.queue-marker.is-warn{background:var(--color-warn-soft);color:var(--color-warn)}.queue-marker.is-critical{background:var(--color-bad-soft);color:var(--color-bad)}.queue-more{background:var(--color-surface-2)}.queue-more strong{font-weight:500;color:var(--color-ink-2)}.panel{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1);overflow:hidden}.workforce-head{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid var(--color-line)}.stat-hero{display:flex;flex-direction:column;gap:2px;min-width:0}.stat-hero-value{font-family:var(--font-display);font-size:clamp(2.5rem,4vw,3.25rem);font-weight:600;line-height:1;letter-spacing:var(--tracking-display)}.stat-side{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3xs);min-width:11rem}.stat-side li{display:flex;justify-content:space-between;gap:var(--space-md);font-size:var(--text-sm);padding:var(--space-3xs) 0;border-bottom:1px solid var(--color-line)}.stat-side li:last-child{border-bottom:0}.stat-side span,.stat-side .row-link{color:var(--color-muted)}.stat-side strong{font-weight:600;font-variant-numeric:tabular-nums}.stat-side strong.is-warn{color:var(--color-warn)}.recharts-wrapper{font-family:var(--font-body)}.recharts-wrapper:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.recharts-cartesian-axis-line,.recharts-cartesian-axis-tick-line{stroke:var(--color-line)}.recharts-legend-item-text{color:var(--color-ink-2)!important;font-size:var(--text-xs)}.recharts-default-legend{margin-bottom:var(--space-2xs)!important}.ring{display:flex;flex-direction:column;gap:var(--space-sm);height:100%}.ring-plot{position:relative}.ring-centre{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}.ring-centre strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;line-height:1;letter-spacing:var(--tracking-tight)}.ring-centre small{font-size:var(--text-xs);color:var(--color-faint)}.ring-key{list-style:none;margin:0;padding:0;display:grid;gap:2px}.ring-key li{display:flex;align-items:center;gap:var(--space-3xs);padding:var(--space-3xs) 0;font-size:var(--text-sm);border-top:1px solid var(--color-line)}.ring-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.ring-name{flex:1;color:var(--color-ink-2)}.ring-key strong{font-weight:600;font-variant-numeric:tabular-nums}.ring-key small{min-width:2.75rem;text-align:right;color:var(--color-faint);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.charttip{min-width:9rem;padding:var(--space-2xs) var(--space-sm);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-2)}.charttip-head{font-size:var(--text-xs);font-weight:600;color:var(--color-ink);margin-bottom:var(--space-3xs)}.charttip-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}.charttip-list li{display:flex;align-items:center;gap:var(--space-3xs);font-size:var(--text-xs);color:var(--color-muted)}.charttip-dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}.charttip-name{flex:1}.charttip-list strong{color:var(--color-ink);font-variant-numeric:tabular-nums}.factlist{list-style:none;margin:0;padding:0;border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1)}.factlist li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-md);border-bottom:1px solid var(--color-line)}.factlist li:last-child{border-bottom:0}.factlist-label{font-size:var(--text-sm);color:var(--color-ink-2);min-width:0}.factlist-value{display:flex;flex-direction:column;align-items:flex-end;font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0}.factlist-value small{font-size:var(--text-xs);font-weight:400;color:var(--color-faint)}.factlist-value small.is-bad{color:var(--color-bad)}.side-empty{font-size:var(--text-sm);color:var(--color-muted);padding:var(--space-sm) var(--space-md)}.duelist{list-style:none;margin:0;padding:0}.duelist li{border-bottom:1px solid var(--color-line)}.duelist li:last-child{border-bottom:0}.duelist-row{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-md);text-decoration:none;color:inherit;transition:background-color var(--dur-micro) var(--ease-out)}.duelist-row:hover{background:var(--color-surface-2)}.duelist-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.duelist-name{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duelist-meta{font-size:var(--text-xs);color:var(--color-faint)}.duelist-when{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums}.duelist-when small{font-size:var(--text-xs);font-weight:400;color:var(--color-faint)}.duelist-when.is-bad,.duelist-when.is-bad small{color:var(--color-bad)}.queue-empty{padding:var(--space-md)}.queue-empty strong{font-size:var(--text-sm);font-weight:600}.queue-empty p{font-size:var(--text-xs);color:var(--color-muted);margin-top:2px}.seg{display:inline-flex;border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-1)}.seg-btn{border:0;background:transparent;font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--color-muted);padding:0 var(--space-sm);min-height:var(--control-h);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}.seg-btn+.seg-btn{border-left:1px solid var(--color-line)}.seg-btn:hover{background:var(--color-surface-2);color:var(--color-ink)}.seg-btn.is-on{background:var(--color-accent-soft);color:var(--color-accent-hover);font-weight:600}.request-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2xs)}.request{padding:var(--space-md);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-1)}.request.is-emergency{border-color:var(--color-warn-line)}.request-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2xs);flex-wrap:wrap;margin-bottom:var(--space-2xs)}.request-who{display:flex;align-items:center;gap:var(--space-2xs);flex-wrap:wrap}.request-who strong{font-size:var(--text-base);font-weight:600}.request-facts{display:flex;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-2xs) 0;border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);font-size:var(--text-sm)}.request-facts>span{display:flex;flex-direction:column;gap:1px}.fact-k{font-size:var(--text-xs);color:var(--color-faint)}.window-note{margin-top:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);background:var(--color-warn-soft);border:1px solid var(--color-warn-line);font-size:var(--text-xs);color:var(--color-ink-2);line-height:1.55}.window-note.is-urgent{background:var(--color-bad-soft);border-color:var(--color-bad-line)}.request-detail{margin-top:var(--space-2xs)}.request-reason{font-size:var(--text-sm);color:var(--color-ink-2);padding:var(--space-2xs) var(--space-sm);background:var(--color-surface-sunk);border-radius:var(--radius-sm);margin-bottom:var(--space-2xs)}.request-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2xs);flex-wrap:wrap;margin-top:var(--space-sm)}.decided-note{font-size:var(--text-xs);color:var(--color-muted)}.validation-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3xs)}.validation{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-sm);border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface)}.validation-warning{border-left:3px solid var(--color-warn-line)}.validation-error{border-left:3px solid var(--color-bad-line)}.validation-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.validation-body strong{font-size:var(--text-sm);font-weight:600}.validation-body span{font-size:var(--text-xs);color:var(--color-muted)}@media(max-width:64rem){.app{grid-template-columns:minmax(0,1fr)}.rail{position:static;height:auto;border-right:0;border-bottom:1px solid var(--color-line)}.main{padding:var(--space-md) var(--space-sm) var(--space-xl)}.page-header{flex-direction:column;align-items:stretch}.page-actions,.action-row{justify-content:flex-start}.drawer{width:100%}thead th{position:static}}@media(max-width:30rem){.main{padding:var(--space-sm) var(--space-2xs) var(--space-lg)}h1{font-size:var(--text-xl)}.meta-strip{gap:var(--space-sm)}.dialog{padding:var(--space-md)}}
