:root{--bg:#eef0f6;--card:#fff;--ink:#16203a;--mut:#64708c;--line:#d9deea;--acc:#ff5a36;--acc2:#16203a;--ok:#1d8a5a;--code:#f4f6fb;box-sizing:border-box}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#10162a;--card:#182040;--ink:#e8ecf8;--mut:#93a0c2;--line:#2a345c;--acc:#ff7a5c;--acc2:#e8ecf8;--code:#111833}}
*{box-sizing:border-box}
html{height:100%}
body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:15px/1.5 "Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",sans-serif;padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0)}
header{padding:20px 16px 8px;max-width:1100px;margin:auto}
h1{margin:0;font-size:26px;letter-spacing:-.02em}
header p{margin:4px 0 0;color:var(--mut)}
main{max-width:1100px;margin:auto;padding:8px 16px 40px;display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@media(min-width:860px){main{grid-template-columns:340px minmax(0,1fr);align-items:start}.side{position:sticky;top:12px;max-height:calc(100vh - 24px);display:flex;flex-direction:column}.list{overflow:auto}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px}
input,select,textarea{width:100%;font:inherit;color:inherit;background:var(--code);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.chips{display:flex;gap:6px;overflow-x:auto;padding:10px 0 6px;scrollbar-width:thin}
.chip{flex:none;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:99px;padding:5px 12px;font:inherit;cursor:pointer}
.chip[aria-pressed=true]{background:var(--acc2);color:var(--bg);border-color:var(--acc2)}
.list{display:grid;gap:4px;margin-top:6px;min-height:0}
.item{display:block;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:8px;padding:8px 10px;color:inherit;font:inherit;cursor:pointer}
.item:hover{background:var(--code)}
.item[aria-current=true]{border-color:var(--acc);background:var(--code)}
.item b{display:block;font-weight:500}
.item small,.path{font:12px ui-monospace,Menlo,monospace;color:var(--mut)}
.field{margin:12px 0}
.field label{display:block;font-size:13px;margin-bottom:4px;color:var(--mut)}
.row{display:flex;gap:8px}
.btn{border:0;border-radius:8px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;background:var(--acc);color:#fff}
.btn.ghost{background:var(--code);color:var(--ink);border:1px solid var(--line);font-weight:500}
.btn[disabled]{opacity:.55;cursor:wait}
#out{margin-top:16px;display:grid;gap:12px}
#out img,#out video{max-width:100%;border-radius:10px;display:block}
#out audio{width:100%}
pre{margin:0;background:var(--code);border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto;max-height:420px;white-space:pre-wrap;word-break:break-word;font:12.5px/1.5 ui-monospace,Menlo,monospace}
.err{color:#d33;white-space:pre-wrap}
.ok{color:var(--ok)}
.empty{color:var(--mut)}
a{color:var(--acc)}
.links{display:grid;gap:4px;word-break:break-all;font-size:13px}
@media(prefers-reduced-motion:no-preference){.btn{transition:transform .08s}.btn:active{transform:scale(.97)}}

.mediabox{display:grid;gap:8px;justify-items:start}
.linkrow{display:flex;gap:8px;align-items:center;justify-content:space-between}
.linkrow a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btn{text-decoration:none;display:inline-block}
