:root{--n:#0d1b2e;--n2:#15263f;--n3:#1e3354;--a:#ffb020;--t:#e8eef7;--m:#8fa3c0}
*{box-sizing:border-box}body{margin:0;font:15px/1.4 system-ui,sans-serif;background:var(--n);color:var(--t);padding-bottom:env(safe-area-inset-bottom)}
.hide{display:none!important}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.m{color:var(--m)}.small{font-size:12px}.err{color:#ff7b7b}
header{display:flex;align-items:center;gap:10px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));background:var(--n2);border-bottom:2px solid var(--a)}header b{color:var(--a);font-size:17px;flex:1}
nav{display:flex;gap:4px;padding:8px;background:var(--n2);overflow-x:auto;position:sticky;top:0;z-index:2}nav button{flex:1;min-width:84px;background:var(--n3);color:var(--t);border:0;padding:10px;border-radius:8px;font-weight:600;cursor:pointer}nav button.on{background:var(--a);color:var(--n)}
main{padding:12px;max-width:1280px;margin:auto}.tab{display:none}.tab.on{display:block}
.grid{display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:900px){.g2{grid-template-columns:360px 1fr}.g3{grid-template-columns:250px 1fr 280px}.g4{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--n2);border-radius:12px;padding:12px;border:1px solid var(--n3);min-width:0}h3{margin:0 0 8px;color:var(--a);font-size:14px}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.chip{background:var(--n3);border:0;color:var(--t);padding:7px 11px;border-radius:14px;cursor:pointer;font-size:13px}.chip.on{outline:2px solid var(--a)}
.list{margin-top:8px}.row{padding:9px;border-radius:8px;border-left:4px solid var(--a);margin-bottom:6px;background:var(--n3);cursor:pointer;overflow-wrap:anywhere}.row small{color:var(--m);display:block}.row.u b{color:#fff}.row.u{box-shadow:inset 0 0 0 1px #ffb02055}
.btn{background:var(--a);color:var(--n);border:0;padding:9px 14px;border-radius:8px;font-weight:700;cursor:pointer}.btn.g{background:var(--n3);color:var(--t)}.btn.small{padding:6px 10px;font-size:12px}
textarea,select,input{width:100%;background:var(--n);color:var(--t);border:1px solid var(--n3);border-radius:8px;padding:9px;font:inherit;margin-bottom:6px}textarea{min-height:90px}
.acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:6px}.acts>button:not(.btn){background:var(--n);border:1px solid var(--n3);color:var(--t);border-radius:6px;padding:5px 9px;cursor:pointer}
.big{font-size:26px;font-weight:800;color:var(--a)}.timer{font-size:24px;font-weight:800;color:#3ddc84;margin-left:8px}.kbd{background:#0002;border:1px solid currentColor;border-radius:4px;padding:0 5px;font-size:11px}
.msg{border-top:1px solid var(--n3);padding:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--a);color:var(--n);padding:9px 15px;border-radius:8px;font-weight:700;display:none;z-index:9;max-width:90vw}
dialog{background:var(--n2);color:var(--t);border:1px solid var(--a);border-radius:12px;width:min(520px,94vw)}dialog::backdrop{background:#000a}
@media(max-width:600px){#usage{display:none}}html,body{overflow-x:hidden}
.copy{display:flex;gap:6px;align-items:center;margin:4px 0}.copy code{flex:1;background:var(--n);border:1px solid var(--n3);border-radius:6px;padding:7px;overflow-x:auto;white-space:nowrap;font-size:13px}
.copy button{background:var(--n3);color:var(--t);border:0;border-radius:6px;padding:7px 10px;cursor:pointer;white-space:nowrap}
ol.steps{padding-left:20px}ol.steps>li{margin-bottom:12px}.ok{color:#3ddc84}.warn{color:#ffb020}.bad{color:#ff7b7b}
.saved{border-color:#3ddc84!important}.tog{display:inline-flex;gap:6px;align-items:center;cursor:pointer}.tog input{width:auto;margin:0}
.chatlog{max-height:60vh;overflow-y:auto}.bubble{padding:9px 11px;border-radius:10px;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.john{background:var(--a);color:var(--n);margin-left:15%}.bubble.bot{background:var(--n3);margin-right:10%}
.diff{font:12px/1.35 ui-monospace,monospace;background:var(--n);border-radius:6px;padding:6px;overflow-x:auto;white-space:pre}.diff .r{color:#ff8a8a}.diff .a{color:#7dffa8}
.kill{background:#a51d1d;color:#fff}.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
body.ts-small{font-size:13px}body.ts-large{font-size:17px}body.ts-xl{font-size:19px}body.compact .card{padding:8px}body.compact .row{padding:6px}
