:root{--bg:#f6f7f9;--surface:#fff;--ink:#12202f;--muted:#5b6b7b;--line:#e3e7ec;--accent:#0b6e6e;--accent-ink:#fff;--accent-soft:#e2f2f1;--danger:#b42318;--danger-soft:#fdeceb;--success:#1f8a4c;--success-soft:#e6f5ec;--warn:#b7791f;--tok-key:#0b6e6e;--tok-str:#1f8a4c;--tok-num:#b45309;--tok-bool:#b42318;--tok-null:#5b6b7b}@media (prefers-color-scheme:dark){:root{--bg:#0e1620;--surface:#16212d;--ink:#e8eef4;--muted:#93a4b4;--line:#263544;--accent:#3ec1bb;--accent-ink:#06201f;--accent-soft:#12312f;--danger:#ff8a80;--danger-soft:#3a1c1a;--success:#3fbf7f;--success-soft:#12352a;--warn:#f5b84a;--tok-key:#3ec1bb;--tok-str:#3fbf7f;--tok-num:#f0b352;--tok-bool:#ff8a80;--tok-null:#93a4b4}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);flex-direction:column;min-height:100dvh;margin:0;font-family:Manrope,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55;display:flex}.content{flex:1}h1,h2,h3{letter-spacing:-.02em;margin:0;line-height:1.15}p{margin:0}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.btn{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{border-color:var(--muted);background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:var(--danger-soft)}.btn.sm{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.55;cursor:not-allowed}.nav{background:var(--surface);border-bottom:1px solid var(--line)}.nav .wrap{justify-content:space-between;align-items:center;height:64px;display:flex}.logo{cursor:pointer;color:var(--ink);background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:18px;font-weight:800;text-decoration:none;display:flex}.logo i{background:var(--accent);width:26px;height:26px;color:var(--accent-ink);border-radius:7px;place-items:center;font-size:13px;font-style:normal;display:grid}.nav .links{align-items:center;gap:10px;display:flex}.footer{border-top:1px solid var(--line);background:var(--surface);padding:18px 0;font-size:13px}.footrow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.footlinks{flex-wrap:wrap;gap:18px;display:flex}.footlinks a{color:var(--muted);text-decoration:none}.footlinks a:hover{color:var(--accent);text-decoration:underline}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-bright);text-decoration:underline}.side a,.btn a.link{color:inherit}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:26px}.card h3{margin-bottom:14px;font-size:16px}.field{margin-top:16px}.field label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input{border:1px solid var(--line);background:var(--bg);border-radius:8px;width:100%;padding:10px 12px}.note{color:var(--muted);margin-top:14px;font-size:13px}.docs h1{margin:0 0 8px}.docs h2{margin:28px 0 8px}.docs p,.docs pre{margin:0 0 10px}.auth .note{text-align:center}.callout{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;margin-top:14px;padding:12px 14px 12px 16px;font-size:13px}.callout.warn{border-left-color:var(--danger);background:var(--danger-soft)}.callout p{margin:6px 0}.err{color:var(--danger);min-height:18px;margin-top:10px;font-size:13px}.muted{color:var(--muted)}.auth{place-items:center;min-height:calc(100vh - 64px);padding:24px;display:grid}.auth .card{width:100%;max-width:400px}.layout{align-items:flex-start;gap:32px;max-width:1080px;margin:0 auto;padding:32px 20px 64px;display:flex}.layout aside{flex-shrink:0;width:200px;position:sticky;top:24px}.layout main{flex:1;min-width:0}@media (max-width:820px){.layout{flex-direction:column;gap:16px;padding:20px 20px 48px}.layout aside{width:100%;position:static}.side{grid-auto-flow:column;overflow-x:auto}}.side{align-content:start;gap:4px;display:grid}.side a{text-align:left;cursor:pointer;color:var(--muted);background:0 0;border-radius:8px;padding:9px 12px;font-weight:600;text-decoration:none;display:block}.side a:hover{background:var(--surface)}.side a.on{background:var(--accent-soft);color:var(--accent)}.head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px;display:flex}.head h2{font-size:26px}.badge{background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-block}.badge.warn{background:var(--danger-soft);color:var(--danger)}.grid2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.big{letter-spacing:-.03em;font-size:30px;font-weight:800}.bar{background:var(--bg);border:1px solid var(--line);border-radius:99px;height:10px;margin:12px 0 8px;overflow:hidden}.bar div{background:var(--accent);border-radius:99px;height:100%}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.key{gap:8px;margin-top:6px;display:flex}.key code{white-space:nowrap;background:var(--bg);border:1px solid var(--line);border-radius:8px;flex:1;padding:10px 12px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;overflow-x:auto}.stack{gap:20px;min-width:0;display:grid}.stack>*{min-width:0}.list{margin:14px 0 0;padding:0;list-style:none}.list li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.inline{gap:8px;display:flex}.inline input{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex:1;min-width:0;padding:10px 12px}input{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px 12px}.keyinput{align-items:stretch;gap:6px;display:flex}.keyinput input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.keyinput .iconbtn{border:1px solid var(--line);background:var(--surface);width:40px;color:var(--muted);cursor:pointer;border-radius:8px;place-items:center;transition:color .15s,border-color .15s,background .15s;display:grid}.keyinput .iconbtn:hover{color:var(--text);border-color:var(--muted);background:var(--surface-2)}.spec{grid-template-columns:1fr 1fr;display:grid}.spec div{border:1px solid var(--line);background:var(--surface);margin:-1px 0 0 -1px;padding:10px 12px}.spec small{color:var(--muted);font-size:12px;display:block}.spec b{font-weight:600}.planmatrix{border:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.planmatrix>div{border:none;padding:12px 14px}.planmatrix>div:nth-child(odd){border-right:1px solid var(--line)}.planmatrix>div:nth-child(-n+4){border-bottom:1px solid var(--line)}.chart{gap:4px;margin-top:12px;display:grid}.chart .cday{color:var(--muted);grid-template-columns:28px 1fr 36px;align-items:center;gap:8px;font-size:12px;display:grid}.chart .cbar{background:var(--bg);border:1px solid var(--line);border-radius:99px;height:8px;overflow:hidden}.chart .cbar div{background:var(--accent);border-radius:99px;height:100%}.modal{z-index:10;background:#0a141e8c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal .card{width:100%;max-width:420px}.modal .actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.toast{background:var(--ink);color:var(--bg);z-index:100;border-radius:10px;padding:12px 18px;font-size:14px;font-weight:600;animation:.18s ease-out toast-in;position:fixed;bottom:20px;right:20px;transform:none;box-shadow:0 6px 20px #0000002e}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;background:#0a141e80;justify-content:center;align-items:center;padding:20px;animation:.15s ease-out modal-fade;display:flex;position:fixed;inset:0}.modal{background:var(--surface);color:var(--ink);border-radius:14px;width:100%;max-width:460px;padding:24px;animation:.18s ease-out modal-pop;box-shadow:0 16px 48px #00000047}.modal h3{margin:0 0 12px;font-size:18px;font-weight:800}.modal-lines{flex-direction:column;gap:8px;margin:0 0 8px;padding-left:18px;display:flex}.modal-lines li{color:var(--ink);font-size:14px;line-height:1.5}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (max-width:820px){.grid2{grid-template-columns:1fr}.dash{grid-template-columns:1fr;gap:16px}.side{grid-auto-flow:column;overflow-x:auto}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
