:root{--bg: oklch(97.2% .004 190);--surface: oklch(100% 0 0);--surface-sunken: oklch(98.4% .005 190);--surface-raised: oklch(100% 0 0);--ink: oklch(24% .02 235);--ink-muted: oklch(46% .015 235);--ink-faint: oklch(51% .014 235);--ink-inverse: oklch(99% 0 0);--line: oklch(91% .006 190);--line-strong: oklch(85% .008 190);--accent: oklch(52% .09 178);--accent-hover: oklch(46% .09 178);--accent-ink: oklch(38% .075 178);--accent-surface: oklch(96.5% .02 178);--accent-border: oklch(88% .04 178);--ok: var(--accent);--ok-ink: var(--accent-ink);--ok-surface: var(--accent-surface);--ok-border: var(--accent-border);--warn: oklch(58% .13 62);--warn-ink: oklch(44% .11 62);--warn-surface: oklch(97% .03 75);--warn-border: oklch(88% .07 70);--danger: oklch(52% .17 25);--danger-hover: oklch(46% .17 25);--danger-ink: oklch(44% .15 25);--danger-surface: oklch(96.5% .025 25);--danger-border: oklch(88% .06 25);--focus-ring: oklch(52% .11 195);--font-ui: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Segoe UI", "Microsoft YaHei", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-2xs: .75rem;--text-xs: .8125rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-readout: 2.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius: .625rem;--radius-lg: .875rem;--radius-pill: 999px;--shadow-sm: 0 1px 2px oklch(24% .02 235 / .06);--shadow: 0 2px 6px oklch(24% .02 235 / .07);--shadow-dialog: 0 8px 24px oklch(24% .02 235 / .18);--z-sticky: 10;--z-backdrop: 40;--z-dialog: 50;--z-toast: 60;--dur-fast: .12s;--dur: .18s;--dur-slow: .26s;--ease-out: cubic-bezier(.16, 1, .3, 1);--sidebar-w: 15rem;--content-max: 56rem;--content-narrow: 40rem}@media(min-width:64rem){:root{--text-readout: 3.25rem}}*,*: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-ui);font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:620;letter-spacing:-.01em;text-wrap:balance}button,input{font:inherit;color:inherit}#root{min-height:100dvh}:where(a,button,input,[tabindex]):focus{outline:none}:where(a,button,input,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;left:var(--space-3);top:calc(-1 * var(--space-16));z-index:var(--z-toast);padding:var(--space-2) var(--space-4);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);color:var(--accent-ink);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:top var(--dur) var(--ease-out)}.skip-link:focus-visible{top:var(--space-3)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.app{min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-top:max(var(--space-3),env(safe-area-inset-top));background:#f3f7f6eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-actions{display:flex;align-items:center;gap:var(--space-2)}.topbar-actions .btn-icon{width:2.75rem;min-height:2.75rem}.brand{display:flex;flex-direction:column;gap:1px;min-width:0}.brand-mark{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;letter-spacing:.14em;color:var(--ink);white-space:nowrap}.brand-sub{font-size:var(--text-2xs);color:var(--ink-faint);letter-spacing:.22em}.sidebar{display:none}.app-main{flex:1;display:flex;flex-direction:column;min-width:0}.content{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-10)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.page-title{font-size:var(--text-lg)}.page-sub{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--ink-muted)}.foot{padding:var(--space-6) var(--space-4) max(var(--space-5),env(safe-area-inset-bottom));text-align:center;font-size:var(--text-2xs);letter-spacing:.18em;color:var(--ink-faint)}.stack{display:flex;flex-direction:column;gap:var(--space-5)}@media(min-width:48rem){.content{max-width:var(--content-narrow);padding:var(--space-8) var(--space-6) var(--space-12)}}@media(min-width:64rem){.app{flex-direction:row}.topbar{display:none}.sidebar{position:sticky;top:0;align-self:flex-start;display:flex;flex-direction:column;gap:var(--space-6);width:var(--sidebar-w);height:100dvh;padding:var(--space-6) var(--space-4);background:var(--surface-sunken);border-right:1px solid var(--line)}.sidebar .brand-mark{font-size:var(--text-base)}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-1);flex:1}.sidebar-foot{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--line)}.content{max-width:var(--content-max);padding:var(--space-10) var(--space-8) var(--space-12)}}.nav-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--ink-muted);font-size:var(--text-sm);font-weight:550;text-align:left;cursor:pointer;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}.nav-item svg{flex-shrink:0;color:currentColor}@media(hover:hover){.nav-item:hover{background:var(--surface);color:var(--ink)}}.nav-item[aria-current=page]{background:var(--accent-surface);border-color:var(--accent-border);color:var(--accent-ink);font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--line)}.card-title{font-size:var(--text-base);font-weight:620}.card-body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.card-foot{padding:var(--space-3) var(--space-5);border-top:1px dashed var(--line);background:var(--surface-sunken);font-size:var(--text-2xs);color:var(--ink-muted);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.card.tone-warn{border-color:var(--warn-border);background:linear-gradient(var(--warn-surface),var(--surface) 8rem)}.card.tone-danger{border-color:var(--danger-border);background:linear-gradient(var(--danger-surface),var(--surface) 8rem)}.card.tone-stale{border-color:var(--line-strong);background:linear-gradient(var(--surface-sunken),var(--surface) 8rem)}.credit-grid{display:flex;flex-direction:column;gap:var(--space-5)}.readout-label{font-size:var(--text-xs);color:var(--ink-muted)}.readout{margin-top:var(--space-1);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-readout);font-weight:640;letter-spacing:-.02em;line-height:1.05;overflow-wrap:anywhere}.tone-warn .readout{color:var(--warn-ink)}.readout-unit{margin-left:var(--space-2);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;letter-spacing:0;color:var(--ink-muted)}.readout-note{margin-top:var(--space-3);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:var(--text-xs);color:var(--ink-muted)}@keyframes value-refreshed{0%{background-color:var(--accent-surface)}to{background-color:transparent}}.is-refreshed .readout,.is-refreshed .readout-note{animation:value-refreshed 1.6s var(--ease-out);border-radius:var(--radius-sm)}.ledger{margin:0;border-top:1px solid var(--line)}.ledger-section-label{padding:var(--space-3) 0 var(--space-1);font-size:var(--text-2xs);color:var(--ink-faint)}.ledger-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px dashed var(--line)}.ledger-row:last-child{border-bottom:0}.ledger-row dt{margin:0;font-size:var(--text-sm);color:var(--ink-muted)}.ledger-row dd{margin:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;font-size:var(--text-sm);font-weight:550;text-align:right}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media(min-width:64rem){.credit-grid{display:grid;grid-template-columns:minmax(13rem,18rem) 1fr;gap:var(--space-8);align-items:stretch}.credit-detail{display:flex;flex-direction:column;gap:var(--space-4);padding-left:var(--space-8);border-left:1px solid var(--line);min-height:100%}.ledger{border-top:0}.ledger-row:first-of-type{padding-top:0}}.status{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-muted);white-space:nowrap}.status-dot{width:.5rem;height:.5rem;border-radius:var(--radius-pill);flex-shrink:0}.status-live .status-dot{background:var(--accent)}.status-cached .status-dot{background:transparent;border:1.5px solid var(--ink-faint)}.status-stale .status-dot{background:var(--warn);animation:breathe 2s ease-in-out infinite}.status-error .status-dot{background:var(--danger)}.status-stale,.status-error{font-weight:550}.status-stale{color:var(--warn-ink)}.status-error{color:var(--danger-ink)}@keyframes breathe{50%{opacity:.35}}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:.125rem var(--space-2);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--ink-muted);font-size:var(--text-2xs);font-weight:550;white-space:nowrap}.chip-accent{background:var(--accent-surface);border-color:var(--accent-border);color:var(--accent-ink)}.chip-warn{background:var(--warn-surface);border-color:var(--warn-border);color:var(--warn-ink)}.chip-danger{background:var(--danger-surface);border-color:var(--danger-border);color:var(--danger-ink)}.banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-sunken);font-size:var(--text-sm);line-height:1.5}.banner svg{flex-shrink:0;margin-top:.15em}.banner-ok{background:var(--ok-surface);border-color:var(--ok-border);color:var(--ok-ink)}.banner-warn{background:var(--warn-surface);border-color:var(--warn-border);color:var(--warn-ink)}.banner-danger{background:var(--danger-surface);border-color:var(--danger-border);color:var(--danger-ink)}.banner-title{font-weight:620}.banner-body{margin-top:var(--space-1)}.banner-actions{margin-top:var(--space-3);display:flex;gap:var(--space-2);flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:2.5rem;padding:0 var(--space-4);border:1px solid transparent;border-radius:var(--radius);background:transparent;font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--accent);color:var(--ink-inverse)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-ghost{color:var(--ink-muted)}.btn-danger{background:var(--danger);color:var(--ink-inverse)}.btn-danger-outline{background:var(--surface);border-color:var(--danger-border);color:var(--danger-ink)}@media(hover:hover){.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary:hover:not(:disabled){border-color:var(--accent-border);color:var(--accent-ink)}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--ink)}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-danger-outline:hover:not(:disabled){background:var(--danger-surface)}}.btn-sm{min-height:2rem;padding:0 var(--space-3);font-size:var(--text-xs)}.btn-lg{min-height:3rem;font-size:var(--text-base)}.btn-block{width:100%}.btn-icon{padding:0;width:2.5rem;min-height:2.5rem}@media(pointer:coarse){.btn,.btn-icon{min-height:2.75rem}.btn-icon{width:2.75rem}.btn-sm{min-height:2.75rem}}.spinner{width:.875em;height:.875em;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-pill);animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.form{display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;color:var(--ink)}.field-hint{font-weight:500;color:var(--ink-faint)}.field-control{position:relative;display:flex;align-items:center}.input{width:100%;min-height:2.75rem;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);font-size:var(--text-base);transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.input::placeholder{color:var(--ink-faint)}.input:hover:not(:disabled){border-color:var(--line-strong)}.input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-surface)}.input:disabled{background:var(--surface-sunken);color:var(--ink-muted);cursor:not-allowed}.input[aria-invalid=true]{border-color:var(--danger)}.input[aria-invalid=true]:focus-visible{box-shadow:0 0 0 3px var(--danger-surface)}.input-with-affix{padding-right:2.75rem}.field-affix{position:absolute;right:var(--space-1);display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:pointer}@media(hover:hover){.field-affix:hover{color:var(--ink);background:var(--surface-sunken)}}.field-error{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-xs);color:var(--danger-ink)}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 0%,oklch(94% .006 190) 50%,var(--surface-sunken) 100%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0 var(--space-4);max-width:42rem}.empty-title{font-size:var(--text-md);font-weight:620}.empty-text{margin:0;font-size:var(--text-sm);color:var(--ink-muted);text-wrap:pretty}.empty-steps{margin:0;padding-left:1.25rem;font-size:var(--text-sm);color:var(--ink-muted);display:flex;flex-direction:column;gap:var(--space-1)}.copy{display:inline-flex;align-items:center;gap:var(--space-1);padding:.125rem var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink-faint);font-size:var(--text-2xs);font-weight:550;cursor:pointer;transition:color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}@media(hover:hover){.copy:hover{background:var(--surface-sunken);color:var(--ink-muted)}}.copy-done{color:var(--accent-ink)}.toast-host{position:fixed;z-index:var(--z-toast);top:auto;left:auto;right:var(--space-4);bottom:max(var(--space-4),env(safe-area-inset-bottom));display:flex;flex-direction:column-reverse;align-items:flex-end;gap:var(--space-2);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--space-3);max-width:26rem;padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-dialog);font-size:var(--text-sm);animation:toast-in var(--dur-slow) var(--ease-out)}.toast-ok{border-color:var(--ok-border);background:var(--ok-surface);color:var(--ok-ink)}.toast-warn{border-color:var(--warn-border);background:var(--warn-surface);color:var(--warn-ink)}.toast-danger{border-color:var(--danger-border);background:var(--danger-surface);color:var(--danger-ink)}.toast-text{flex:1;min-width:0}.toast-close{flex-shrink:0;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-sm);background:transparent;color:currentColor;opacity:.6;cursor:pointer}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(.5rem)}}@media(max-width:47.99rem){.card-head .btn-sm{min-height:2.75rem;padding:0 var(--space-4);font-size:var(--text-sm)}}@media(max-width:47.99rem){.toast-host{top:max(var(--space-3),env(safe-area-inset-top));right:var(--space-3);bottom:auto;left:var(--space-3);flex-direction:column;align-items:stretch}@keyframes toast-in{0%{opacity:0;transform:translateY(-.5rem)}}}.dialog{width:min(28rem,calc(100vw - 2 * var(--space-4)));padding:0;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-dialog)}.dialog::backdrop{background:#16212759;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog[open]{animation:dialog-in var(--dur-slow) var(--ease-out)}@keyframes dialog-in{0%{opacity:0;transform:translateY(.75rem) scale(.99)}}.dialog-body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.dialog-title{font-size:var(--text-md)}.dialog-text{margin:0;font-size:var(--text-sm);color:var(--ink-muted);text-wrap:pretty}.dialog-facts{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--surface-sunken);font-size:var(--text-xs)}.dialog-actions{display:flex;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--line);background:var(--surface-sunken)}.dialog-actions .btn{flex:1}@media(min-width:30rem){.dialog-actions{justify-content:flex-end}.dialog-actions .btn{flex:0 0 auto}}.login{min-height:100dvh;display:grid;place-items:center;padding:var(--space-6) var(--space-4)}.login-inner{width:100%;max-width:23rem;display:flex;flex-direction:column;gap:var(--space-6)}.login-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.login-brand .brand-mark{font-size:var(--text-lg);letter-spacing:.18em}.login-brand-sub{font-size:var(--text-xs);color:var(--ink-muted);letter-spacing:.2em;padding-left:.2em}.login-card{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-4)}.login-hint{text-align:center;font-size:var(--text-2xs);color:var(--ink-faint);line-height:1.6}.kv{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-4);margin:0;font-size:var(--text-sm)}.kv dt{color:var(--ink-muted)}.kv dd{margin:0;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}@media(min-width:48rem){.kv{grid-template-columns:9rem 1fr}.kv dd{justify-content:flex-start}}.key-changed{animation:value-refreshed 1.8s var(--ease-out);border-radius:var(--radius-sm)}.inline-status{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--ink-muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.spinner{animation:spin 1.2s linear infinite!important}.toast,.dialog[open]{animation:none!important}}
