:root{color-scheme:dark;--bg: #0f1210;--paper: #161b17;--paper-elevated: #1c231e;--ink: #e8ebe6;--muted: #8b958c;--accent: #3d9b7a;--accent-hover: #4cb38d;--accent-dim: rgba(61, 155, 122, .18);--amber: #d4a574;--border: #2a332c;--border-strong: #3a463d;--danger: #c45c5c;--danger-dim: rgba(196, 92, 92, .16);--warn: #c9a227;--radius: 10px;--focus: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);font-family:Segoe UI,PingFang SC,Noto Sans SC,Noto Sans,system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(61,155,122,.08),transparent),var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;color:var(--accent-hover)}a:focus-visible{outline:none;box-shadow:var(--focus);border-radius:2px}.app-shell{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 2.5rem}.app-header h1{margin:0;font-weight:650;letter-spacing:.02em;font-size:1.65rem}.tagline{color:var(--muted);margin:.25rem 0 1.25rem;font-size:.95rem}.app-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);font-size:.8rem;color:var(--muted)}.app-footer p{margin:.2rem 0}.footer-note{opacity:.85}.chapter-translator{display:flex;flex-direction:column;gap:.85rem}.status-bar{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.status-bar.is-busy{border-color:var(--border-strong)}.status-row{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem}.status-item{display:flex;align-items:center;gap:.45rem;min-width:0}.status-load{flex:1 1 200px;min-width:160px}.status-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.status-value{font-size:.875rem;color:var(--ink)}.status-value.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace}.load-track{flex:1;height:6px;min-width:64px;background:var(--border);border-radius:999px;overflow:hidden}.load-fill{height:100%;background:linear-gradient(90deg,var(--accent),#5ec4a0);border-radius:inherit;transition:width .25s ease}.load-fill.is-indeterminate{background:linear-gradient(90deg,var(--accent-dim),var(--accent),var(--accent-dim));background-size:200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.status-message{margin:.55rem 0 0;font-size:.85rem;color:var(--muted)}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.badge-ok{color:#9ee0c6;background:var(--accent-dim);border-color:#3d9b7a59}.badge-warn{color:var(--amber);background:#d4a5741f;border-color:#d4a57459}.badge-danger{color:#f0a0a0;background:var(--danger-dim);border-color:#c45c5c66}.badge-muted{color:var(--muted);background:#8b958c1f;border-color:var(--border)}.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.toolbar-field{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem}.toolbar-field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.68rem}.toolbar-field input{width:5.5rem;padding:.4rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums}.toolbar-field input:focus-visible{outline:none;box-shadow:var(--focus)}.toolbar-field input:disabled{opacity:.5;cursor:not-allowed}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--paper-elevated);color:var(--ink);font:inherit;font-size:.9rem;font-weight:600;padding:.5rem .95rem;border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,opacity .15s}.btn:hover:not(:disabled){border-color:var(--border-strong);background:#222a24}.btn:focus-visible{outline:none;box-shadow:var(--focus)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:transparent;color:#06140f}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:transparent}.btn-danger{background:transparent;border-color:#c45c5c8c;color:#e8a0a0}.btn-danger:hover:not(:disabled){background:var(--danger-dim);border-color:var(--danger)}.btn-ghost{background:transparent}.dual-pane{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;min-height:420px}.pane{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);min-height:0;overflow:hidden}.pane-header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem .75rem;padding:.65rem .9rem;border-bottom:1px solid var(--border);background:var(--paper-elevated)}.pane-title{margin:0;font-size:.85rem;font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--amber)}.pane-meta{margin:0;font-size:.8rem;color:var(--muted);font-variant-numeric:tabular-nums}.meta-sep{margin:0 .35rem;opacity:.6}.pane-body{flex:1;min-height:320px;margin:0;padding:.85rem .95rem;font-size:.95rem;line-height:1.65}.pane-input{width:100%;border:none;resize:vertical;background:transparent;color:var(--ink);font:inherit;min-height:360px}.pane-input::placeholder{color:var(--muted);opacity:.75}.pane-input:focus{outline:none}.pane-input:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.pane-input:disabled{opacity:.7;cursor:not-allowed}.pane-output{overflow:auto;max-height:min(70vh,640px)}.pane-output.is-empty{display:flex;align-items:flex-start}.pane-empty{margin:0;color:var(--muted);font-style:italic}.translation-text{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:inherit;line-height:inherit;color:var(--ink)}.banner{padding:.65rem .9rem;border-radius:8px;font-size:.9rem}.banner-error{background:var(--danger-dim);border:1px solid rgba(196,92,92,.4);color:#f0c4c4}.state-card{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem 1.25rem;max-width:36rem}.state-card h2{margin:0 0 .5rem;font-size:1.15rem}.state-card p{margin:0;color:var(--muted)}.state-error{border-color:#c45c5c73}.bench-panel{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.bench-toggle{width:100%;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem 1rem;padding:.65rem .95rem;border:none;background:var(--paper-elevated);color:var(--ink);font:inherit;cursor:pointer;text-align:left}.bench-toggle:hover{background:#222a24}.bench-toggle:focus-visible{outline:none;box-shadow:var(--focus)}.bench-toggle-label{font-size:.85rem;font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--amber)}.bench-toggle-hint{font-size:.8rem;color:var(--muted)}.bench-body{padding:.85rem .95rem 1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem}.bench-desc{margin:0;font-size:.85rem;color:var(--muted)}.bench-desc code{font-size:.8em;color:var(--ink)}.bench-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.65rem}.bench-field{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem}.bench-field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.bench-field input{width:6rem;padding:.4rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums}.bench-field input:focus-visible{outline:none;box-shadow:var(--focus)}.bench-metrics{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.55rem .85rem}.bench-metrics>div{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem}.bench-metrics dt{margin:0;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.bench-metrics dd{margin:.15rem 0 0;font-size:.95rem;color:var(--ink)}.bench-metrics .mono,.status-value.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,Cascadia Code,Segoe UI Mono,monospace}@media(max-width:800px){.dual-pane{grid-template-columns:1fr}.pane-body,.pane-input{min-height:240px}.app-shell{padding:1rem .85rem 2rem}}
