:root{color-scheme:dark;--ink:#e8eef0;--ink-deep:#f7fafa;--teal:#2a9d8f;--teal-deep:#34b8a8;--teal-pale:rgba(42,157,143,0.16);--navy:#1a2e40;--navy-dark:#132230;--navy-darker:#0d1b26;--ground:#0d1b26;--card:#1e3347;--edge:rgba(42,157,143,0.18);--edge-soft:rgba(255,255,255,0.06);--text:var(--ink);--dim:#94a7b3;--faint:#6b828f;--error:#e74c3c;--error-bg:#1a0f12;--error-edge:rgba(231,76,60,0.4);--warn:#e0a458;--warn-bg:#2a2014;--warn-edge:rgba(224,164,88,0.4);--ok:var(--ink);--ok-bg:#2a3f52;--font-sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--radius:10px;--shadow:0 6px 24px rgba(0,0,0,0.35)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--ground);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--teal-deep);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}h1,h2,h3{margin:0 0 .5rem;line-height:1.25;color:var(--ink)}h1{font-size:22px;font-weight:650}h2{font-size:17px;font-weight:600}p{margin:0 0 .75rem}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem}.mark{font-weight:700;letter-spacing:.02em;color:var(--ink)}.mark .accent{color:var(--teal)}.stack{display:flex;flex-direction:column;gap:.75rem}.stack-tight{gap:.4rem}.row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.card{width:100%;max-width:440px;background:var(--card);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.card-wide{max-width:960px}.card-footer{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--edge-soft);font-size:12px;color:var(--faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px 14px;border:1px solid var(--edge);border-radius:8px;background:var(--card);color:var(--ink);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.btn:hover{border-color:var(--teal-deep);background:var(--edge-soft);text-decoration:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(42,157,143,.45)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--navy-dark);border-color:var(--teal);color:var(--teal)}.btn-primary:hover{background:var(--navy);border-color:var(--teal-deep);color:var(--teal-deep)}.btn-accent{background:var(--teal);border-color:var(--teal);color:var(--navy-darker)}.btn-accent:hover{background:var(--teal-deep);border-color:var(--teal-deep)}.btn-ghost{background:transparent;border-color:transparent;color:var(--dim);font-weight:500}.btn-ghost:hover{background:var(--edge-soft);border-color:transparent;color:var(--ink)}.btn-sm{width:auto;padding:6px 12px;font-size:13px}.field{display:block;margin-bottom:.9rem}.field-label,.field>span:first-child{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:4px}.field input,.field select,.field textarea{width:100%;padding:9px 10px;border:1px solid var(--edge);border-radius:6px;background:var(--card);font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teal-deep);box-shadow:0 0 0 3px rgba(42,157,143,.28)}.field input:disabled,.field select:disabled{background:var(--edge-soft);color:var(--dim);cursor:not-allowed}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.field input:-webkit-autofill,.field select:-webkit-autofill,.field textarea:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px var(--card) inset;caret-color:var(--ink)}.muted{color:var(--dim);font-size:13px}.hint{color:var(--faint);font-size:12px}.mono{font-family:var(--font-mono);word-break:break-all}.error{color:var(--error);background:var(--error-bg);border:1px solid var(--error-edge);border-radius:6px}.error,.warn{padding:8px 10px;font-size:13px}.warn{color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-edge)}.ok,.warn{border-radius:6px}.ok{color:var(--ok);background:var(--ok-bg);padding:8px 10px;font-size:13px}.divider{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin:.5rem 0}.divider:after,.divider:before{content:"";flex:1 1;height:1px;background:var(--edge-soft)}.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--edge);font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--dim)}.chip-teal{border-color:var(--teal);background:var(--teal-pale);color:var(--teal-deep)}.chip-warn{border-color:var(--warn-edge);background:var(--warn-bg);color:var(--warn)}.chip-error{border-color:var(--error-edge);background:var(--error-bg);color:var(--error)}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);border-bottom:1px solid var(--edge)}.tbl td,.tbl th{padding:8px 10px}.tbl td{border-bottom:1px solid var(--edge-soft);vertical-align:top}.tbl tbody tr:nth-child(2n){background:rgba(255,255,255,.025)}.tbl tbody tr:hover{background:var(--edge-soft)}.kn-update-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom, 0px) + 20px);z-index:1000;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:9px 10px 9px 16px;background:#1a2e40;color:#fff;border:1px solid var(--teal,#2a9d8f);border-radius:999px;box-shadow:0 6px 24px rgba(0,0,0,.28);font-size:.9rem;animation:kn-update-bar-in .18s ease-out}@media (prefers-reduced-motion:reduce){.kn-update-bar{animation:none}}@keyframes kn-update-bar-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.kn-update-bar__msg{white-space:nowrap}.kn-update-bar__reload{background:var(--teal,#2a9d8f);color:#fff;border:0;border-radius:999px;padding:5px 14px;font-weight:600;font-size:.85rem;cursor:pointer}.kn-update-bar__reload:hover{filter:brightness(1.08)}.kn-update-bar__dismiss{background:transparent;color:#cbd5e1;border:0;font-size:1.15rem;line-height:1;padding:0 4px;cursor:pointer}.kn-update-bar__dismiss:hover{color:#fff}