:root{color-scheme:dark;--bg:#0c1421;--card:#162236;--line:#34445e;--text:#e7edf5;--sub:#b2c0d4;--accent:#59d0bb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 system-ui,sans-serif}header{padding:20px 4%;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);flex-wrap:wrap}header div{flex:1}header strong{letter-spacing:.22em;color:var(--accent);margin-right:24px}header span{color:var(--sub)}main{max-width:1600px;margin:auto;padding:20px 3%}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:20px}.narrow{max-width:550px;margin:8vh auto}h1,h2,h3{line-height:1.35;margin-top:0}h2{font-size:19px}h3{margin-top:24px;font-size:16px}p{color:var(--sub)}label{display:block;color:var(--sub)}input,select,textarea{border:1px solid var(--line);border-radius:7px;background:#0d192a;color:var(--text);padding:10px;font:inherit;max-width:100%}input,select{display:block;margin:6px 0}textarea{width:100%;resize:vertical;font:14px/1.6 ui-monospace,monospace}button{border:1px solid #3e887e;border-radius:8px;background:#204e4c;color:#e9fff9;padding:10px 16px;cursor:pointer;font:inherit;white-space:nowrap}button:hover{filter:brightness(1.2)}button:disabled{opacity:.5;cursor:wait}.danger{background:#502a35;border-color:#9c4b62}a{color:var(--accent)}form,.toolbar,.actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.toolbar>label{flex:1}.actions{margin-top:16px}.actions input{width:110px}.columns{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px}canvas{display:block;width:100%;height:auto;background:#040911;border-radius:8px;cursor:crosshair;touch-action:none}.hint{font-size:13px}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#0d192a;border-radius:7px;padding:12px;font:13px/1.6 ui-monospace,monospace}#logs{max-height:260px;overflow:auto}#notice{color:#f9d39a;min-height:26px}dialog{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:14px;max-width:560px;padding:28px}dialog::backdrop{background:#000a}dialog input{width:100%}dialog button{margin:14px 8px 0 0}footer{text-align:center;color:var(--sub);padding:24px;font-size:13px}li{overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:950px){.columns{grid-template-columns:1fr}header{gap:12px}header span{display:block}.card{padding:16px}}
