:root{--accent: #c2472e;--accent-ink: #ffffff;--paper: #faf8f3;--page: #efece4;--canvas: #faf8f3;--canvas-dot: #c4bca9;--ink: #1a1a1a;--muted: #6e695d;--panel: #ffffff;--panel-hover: #f2efe8;--line: #e0dcd0;--chip: #ece7dc;--shadow: 0 1px 3px rgba(40, 35, 25, .12), 0 8px 24px rgba(40, 35, 25, .08);--shadow-lg: 0 12px 40px rgba(40, 35, 25, .28);--ok: #4c9a5e;--idle: #c9a227;--danger: #c11f1f;--success: #1a7f37;--info: #1f6feb;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 18px;--tap: 40px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--accent: #d4553b;--paper: #1c1b1a;--page: #141312;--canvas: #2b2a28;--canvas-dot: #5c594f;--ink: #f0ede6;--muted: #9a948a;--panel: #262523;--panel-hover: #322f2c;--line: #3a3835;--chip: #332f2a;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--danger: #ff5555;--success: #3fb950;--info: #58a6ff}}:root[data-theme=dark]{--accent: #d4553b;--paper: #1c1b1a;--page: #141312;--canvas: #2b2a28;--canvas-dot: #5c594f;--ink: #f0ede6;--muted: #9a948a;--panel: #262523;--panel-hover: #322f2c;--line: #3a3835;--chip: #332f2a;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--danger: #ff5555;--success: #3fb950;--info: #58a6ff}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;font-family:ui-sans-serif,Hiragino Sans,Segoe UI,system-ui,sans-serif;background:var(--page);color:var(--ink);overscroll-behavior-y:none}html.modalLocked,html.modalLocked body{overscroll-behavior-y:auto}#stage{position:fixed;inset:0;& canvas{display:block}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow)}.tool{width:var(--tap);height:var(--tap);border:1px solid transparent;border-radius:10px;background:transparent;cursor:pointer;display:grid;place-items:center;color:var(--ink);font-size:17px;font-family:inherit;transition:background .12s,border-color .12s,color .12s;&:hover{background:var(--panel-hover)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}&.active{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:var(--accent);color:var(--accent)}&:disabled{opacity:.3;cursor:default;pointer-events:none}}.sep{width:1px;height:26px;background:var(--line);margin:0 4px;flex:0 0 auto}#bar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:8px;border-radius:var(--r-lg);z-index:10;max-width:calc(100vw - 24px);flex-wrap:nowrap;justify-content:center;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.slide{display:flex;align-items:center;gap:6px;+.slide{border-left:1px solid var(--line);padding-left:6px}}#size{-webkit-appearance:none;appearance:none;width:84px;height:4px;background:var(--line);border-radius:2px;outline:none;&::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer}&::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;background:var(--accent);cursor:pointer}}#colorWrap{position:relative;display:flex;width:40px;height:40px;align-items:center;justify-content:center}#colorCurrent{width:22px;height:22px;border-radius:50%;border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;transition:box-shadow .12s,transform .1s;&:hover{transform:scale(1.06)}&:focus-visible{outline:2px solid var(--accent);outline-offset:2px}}#colorMenu{position:absolute;bottom:calc(100% + 20px);left:50%;transform:translate(-50%);display:grid;grid-template-columns:repeat(3,auto);gap:8px;padding:10px;border-radius:var(--r-md);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);z-index:20;animation:pop .14s cubic-bezier(.2,.8,.2,1);&[hidden]{display:none}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line);cursor:pointer;padding:0;transition:transform .1s;&:hover{transform:scale(1.1)}&.active{box-shadow:0 0 0 2px var(--accent)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}.rainbow{position:relative;background:conic-gradient(from 0deg,#ff4d4d,#ffd24d,#4dff88,#4dd2ff,#4d4dff,#d24dff,#ff4d4d);& input[type=color]{position:absolute;inset:0;opacity:0;width:100%;height:100%;border:none;padding:0;cursor:pointer}}}@keyframes pop{0%{opacity:0;transform:translate(-50%) translateY(6px) scale(.96)}}.tool,.iconbtn,.menuItem,#colorCurrent,.swatch,#brand,#shareBtn,.btn{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#shapeWrap,#sizeWrap{position:relative;flex:0 0 auto}#shapeMenu,#sizeMenu{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);padding:10px;border-radius:var(--r-md);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);z-index:20;animation:pop .14s cubic-bezier(.2,.8,.2,1);&[hidden]{display:none}}#shapeMenu{display:flex;flex-direction:column;gap:8px}#shapeMenu .menuRow{display:flex;gap:6px}#shapeMenu .menuItem{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;font-size:16px;transition:transform .1s,border-color .12s,background .12s;&:hover{transform:scale(1.06);border-color:var(--accent)}&.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}#sizeMenu{display:flex;align-items:center;gap:10px;min-width:160px;& input[type=range]{flex:1}#sizeVal{font-size:12.5px;font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace;min-width:20px;text-align:right;color:var(--ink)}}#sizeCurrent{font-size:16px}#header{position:fixed;top:16px;left:16px;z-index:10;display:flex;align-items:center;gap:12px}#brand{display:flex;align-items:center;gap:9px;height:38px;padding:0 14px;line-height:1;border-radius:var(--r-md);font-weight:700;letter-spacing:.02em;font-size:15px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}#seal{display:inline-grid;place-items:center;width:22px;height:22px;background:var(--accent);border-radius:5px;.ga{width:16px;height:16px;color:var(--accent-ink)}}#peers{display:flex;align-items:center;gap:7px;height:38px;padding:0 12px;border-radius:var(--r-md);font:inherit;font-size:13px;color:var(--muted);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;transition:color .12s,border-color .12s;&:hover{color:var(--accent);border-color:var(--accent)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}#dot{width:8px;height:8px;border-radius:50%;background:var(--idle);&.on{background:var(--ok)}}#shareBtn{height:38px;padding:0 12px;border-radius:var(--r-md);display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;font-family:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;transition:color .12s,border-color .12s,background .12s;&:hover{color:var(--accent);border-color:var(--accent)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}&.copied{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}}.iconbtn{width:38px;height:38px;border-radius:var(--r-md);display:grid;place-items:center;font-size:15px;color:var(--muted);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;font-family:inherit;transition:color .12s,border-color .12s;&:hover{color:var(--accent);border-color:var(--accent)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}#zoombar{position:fixed;top:16px;right:16px;z-index:10;display:flex;flex-direction:column;align-items:center;width:38px;gap:6px;padding:3px;border-radius:var(--r-md);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);.tool{width:30px;height:30px;font-size:14px}}#coords{position:fixed;left:16px;bottom:18px;z-index:10;padding:7px 11px;border-radius:10px;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-family:ui-monospace,SF Mono,Menlo,monospace;user-select:none;cursor:pointer;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);transition:border-color .12s,color .12s;display:flex;align-items:center;max-width:300px;&:hover{border-color:var(--accent);color:var(--ink)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}& b{color:var(--ink);font-weight:600}.coordIcon{margin-right:6px;font-size:13px}#coordText{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}#minimap{position:fixed;right:16px;bottom:18px;z-index:10;padding:6px;line-height:0;border-radius:10px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);& canvas{display:block;border-radius:6px;cursor:crosshair}}#minimapTip{position:fixed;inset:auto;margin:0;transform:translate(-50%,calc(-100% - 8px));padding:3px 8px;border-radius:7px;font-size:11px;line-height:1.2;font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--ink);background:var(--panel);border:1.5px solid var(--line);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap}#cursors{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}.rc{position:absolute;top:0;left:0;will-change:transform;transform:translate(-100px,-100px);transition:transform .09s linear;& svg{display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.tag{position:absolute;left:15px;top:15px;padding:2px 7px;border-radius:8px;font-size:11px;font-weight:600;color:#fff;white-space:nowrap;font-family:ui-sans-serif,system-ui,sans-serif;box-shadow:0 1px 2px #0003}}.rv{position:absolute;top:0;left:0;will-change:transform,width,height;transform:translate(-9999px,-9999px);border:1.5px solid currentColor;border-radius:3px;background:transparent;opacity:.35;transition:transform .12s linear,width .12s linear,height .12s linear;pointer-events:none}@keyframes fade{0%{opacity:0}}.modal{display:flex;flex-direction:column;width:min(420px,92vw);max-height:90vh;max-height:90dvh;margin:auto;padding:16px;border-radius:var(--r-xl);background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-lg);overflow:hidden;opacity:0;transform:scale(.3);transition:opacity .3s ease,transform .3s cubic-bezier(.2,.8,.2,1),overlay .3s allow-discrete,display .3s allow-discrete;&:not([open]){display:none}&[open]{opacity:1;transform:scale(1)}& h1,h2{margin:0 0 6px;font-size:22px;letter-spacing:.01em}.lede{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.5}& h3{margin:18px 0 10px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);&:first-of-type{margin-top:0}}.foot{margin:0;font-size:12.5px;color:var(--muted);text-align:right}&::backdrop{background:#14120e80;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .2s ease,overlay .2s allow-discrete,display .2s allow-discrete}&[open]::backdrop{opacity:1}}@starting-style{.modal[open]{opacity:0;transform:scale(.3)}.modal[open]::backdrop{opacity:0}}.modal.opening .modalBody{overflow:hidden}@media(min-width:1024px){.modal.modalWide{width:min(820px,92vw)}}.modalCols{display:flex;flex-wrap:wrap;gap:0 24px;>*{flex:1 1 320px;min-width:0}}.modalFixed{position:fixed;inset:0;height:fit-content;z-index:55}#startScrim{position:fixed;inset:0;z-index:54;background:#14120e80;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:none;opacity:0;transition:opacity .2s ease,display .2s allow-discrete;&[open]{display:block;opacity:1}}@starting-style{#startScrim[open]{opacity:0}}.modalBody{flex:0 1 auto;min-height:0;overflow-y:auto;font-size:12.5px;line-height:1.55;scrollbar-width:thin;scrollbar-color:var(--line) transparent;&::-webkit-scrollbar{width:8px}&::-webkit-scrollbar-track{background:transparent}&::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;border:2px solid transparent;background-clip:content-box}&::-webkit-scrollbar-thumb:hover{background:var(--muted)}& p{margin:0 0 10px;font-size:12.5px}& a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;transition:color .12s;&:hover{color:var(--accent)}&:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}}}.closeBtn{position:absolute;top:14px;right:16px;width:30px;height:30px;border:none;border-radius:var(--r-sm);background:transparent;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;&:hover{background:var(--chip);color:var(--ink)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}.modalSeal{width:40px;height:40px;display:grid;place-items:center;margin-bottom:14px;border-radius:var(--r-sm);background:var(--accent);.ga{width:28px;height:28px;color:var(--accent-ink)}&.emoji{background:transparent;font-size:26px;line-height:1}}.modalHead{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-right:34px;.modalSeal{margin-bottom:0;flex:0 0 auto}& h1,h2{margin:0}}.closeBtn.isBack{font-size:18px}.legalLinks{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:6px}.link{border:none;background:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:none;&:hover{text-decoration:underline}&:focus-visible{outline:none;text-decoration:underline}}.linkBtn{height:34px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:transparent;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;&:hover{border-color:var(--accent);color:var(--accent)}&:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}.modalActions{display:flex;gap:8px;margin-top:16px;.ghost{flex:1;justify-content:center}.primary{flex:2;justify-content:center}}#confirmExtra{margin-top:16px}.sheetActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px;.btn{justify-content:center}.span2{grid-column:1 / -1}}.fieldLabel{display:block;font-size:12.5px;color:var(--muted);margin:12px 0 6px}.modalInput{width:100%;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px;&:focus-visible{outline:none;border-color:var(--accent)}}#shareUrlInput{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;cursor:pointer;height:auto;min-height:38px;padding:9px 12px;line-height:1.4;word-break:break-all;resize:none;field-sizing:content}.fullBtn{width:100%;justify-content:center}.fieldRow{display:flex;gap:8px}.fieldRow>.modalInput{flex:1;min-width:0}select.modalInput{cursor:pointer}.modalInput.fieldError,.modalInput.fieldError:focus-visible{border-color:var(--danger)}.modalInput.fieldSuccess,.modalInput.fieldSuccess:focus-visible{border-color:var(--success)}.modalInput.fieldSubmitted,.modalInput.fieldSubmitted:focus-visible{border-color:var(--info)}.modalInput.fieldLoading,.modalInput.fieldLoading:focus-visible{border-color:transparent;background:linear-gradient(var(--panel),var(--panel)) padding-box,conic-gradient(from var(--agentAngle),var(--accent) 0 12%,var(--line) 12% 100%) border-box;animation:agentBorderRun 1.6s linear infinite}#sharePreview,#exportPreview{display:block;width:100%;max-height:180px;object-fit:contain;margin:8px 0 4px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel-hover)}#exportPreview{margin:0 0 16px;height:180px}.rasterWait{display:contents}.rasterWait.loading{display:flex;align-items:center;justify-content:center;height:180px;margin:8px 0 4px;border:1px solid transparent;border-radius:var(--r-sm);background:linear-gradient(var(--panel-hover),var(--panel-hover)) padding-box,conic-gradient(from var(--agentAngle),var(--accent) 0 12%,var(--line) 12% 100%) border-box;animation:agentBorderRun 1.6s linear infinite;&:before{content:attr(data-status);color:var(--muted);font-size:13px}&:after{content:".\258c";margin-left:2px;color:var(--accent);font-size:13px;animation:agentDots 1.2s steps(1,end) infinite}}#exportPreviewWrap.loading{margin:0 0 16px}#exportPreviewWrap.loading img,#sharePreviewWrap.loading img{display:none}#openUrlForm{.fieldRow{display:flex;gap:8px}& input{flex:1;min-width:0;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px;&:focus-visible{outline:none;border-color:var(--accent)}}}.checkRow{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;cursor:pointer;& input{width:16px;height:16px;accent-color:var(--accent);flex:0 0 auto}}.coordZoom{display:flex;align-items:center;gap:10px;margin-top:10px;.lbl{font-size:12px;color:var(--muted);flex:0 0 auto}.val{font-size:12.5px;font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace;min-width:40px;text-align:right;flex:0 0 auto}& input[type=range]{-webkit-appearance:none;appearance:none;flex:1;height:4px;background:var(--line);border-radius:2px;outline:none;&::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);cursor:pointer}&::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;background:var(--accent);cursor:pointer}}}.coordUtils{display:flex;gap:8px;margin-top:14px;.util{flex:1;height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:500;color:var(--ink)}}.btn{height:38px;padding:0 16px;border-radius:10px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);display:inline-flex;align-items:center;transition:background .12s,border-color .12s,color .12s;&:hover{border-color:var(--accent)}&:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 25%,transparent)}&:disabled{opacity:.45;cursor:not-allowed;&:hover{border-color:var(--line)}}&.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);&:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}}&.ghost{background:transparent}}#agentOutputWrap{position:relative;margin-top:10px;border:1px solid var(--line);border-radius:var(--r-md);background:color-mix(in srgb,var(--ink) 5%,var(--panel));overflow:hidden}#agentOutput{margin:0;padding:10px 28px 10px 12px;max-height:160px;overflow-y:auto;overflow-x:hidden;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.5;color:var(--ink)}@media(min-width:1024px){#agentOverlay.modalWide .modalCols{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}#agentOverlay.modalWide .modalCols>div:last-child{display:flex;flex-direction:column;min-height:0}#agentOverlay.modalWide #agentOutputWrap{flex:1 1 auto;min-height:0}.modalWide #agentOutput{height:100%;max-height:none}.modalWide .modalBody:has(#agentSetup[hidden]) #agentOutputWrap[hidden]:has(+#agentPreviewWrap[hidden]){display:block}}.acList{position:fixed;inset:auto;margin:0;padding:4px;list-style:none;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);max-height:min(260px,40vh);overflow-y:auto;z-index:60;.acGroup{padding:6px 8px 2px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.acGroup.acSubgroup{color:var(--accent)}& li[data-v]{padding:6px 8px;border-radius:var(--r-sm);cursor:pointer;font-size:13px;overflow-wrap:anywhere}& li[data-v].acActive{background:var(--chip)}& li.acDisabled{padding:6px 8px;font-size:13px;color:var(--muted);opacity:.6;cursor:not-allowed}.acGroup,li[data-v],li.acDisabled{display:flex;align-items:center;gap:8px}.acNote{margin-left:auto;flex:none;padding-left:8px;font-size:12px;color:var(--muted);white-space:nowrap}.acNote+.acLink{margin-left:0}.acLink{margin-left:auto;flex:none;padding:0 2px;font-size:12px;text-decoration:none;opacity:.55}.acLink:hover{opacity:1}}.acList{overscroll-behavior:contain}.acField{position:relative}.acField .modalInput{padding-right:34px}.acClear{position:absolute;top:50%;right:8px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:13px;line-height:1;cursor:pointer}.acClear:hover{background:var(--chip);color:var(--ink)}#agentCustomModelRow{position:relative}.acList.acInline{position:absolute;inset:100% 0 auto;margin-top:4px}@media(hover:none)and (pointer:coarse){.acList li[data-v],.acList li.acDisabled{padding:11px 8px}.acList .acLink{padding:6px;margin:-6px -6px -6px auto;font-size:14px}}#agentPreviewWrap{position:relative;margin-top:10px;display:flex;justify-content:center;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#fff}.clippy{position:absolute;top:0;right:0;width:32px;height:32px;display:grid;place-items:center;border:none;border-left:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0 var(--r-md) 0 var(--r-sm);background:var(--panel);color:var(--ink);font-size:14px;cursor:pointer;transition:background .12s,opacity .12s;&:hover{background:var(--panel-hover)}&:disabled{opacity:.5;cursor:not-allowed;&:hover{background:var(--panel)}}}#agentPreviewWrap.loading .clippy{display:none}.agentActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;.btn{flex:1 1 30%;justify-content:center}.btn:last-child{flex:2 1 50%}}.agentNote{margin:8px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--ink) 5%,var(--panel));color:var(--muted);font-size:12.5px;line-height:1.45}.agentSaveKey{display:flex;align-items:center;gap:7px;margin:10px 0 0;color:var(--muted);font-size:12.5px;cursor:pointer;& input{accent-color:var(--accent);cursor:pointer}}#agentKeyRow .fieldLabel a{color:var(--accent)}#agentBackendBar{align-items:center;justify-content:space-between;margin-top:12px;.lede{margin:0}.btn{flex:0 0 auto}}.agentPromptWrap{position:relative;.clippy{border-radius:0 10px 0 var(--r-sm)}}#agentPrompt{height:auto;min-height:64px;padding:9px 44px 9px 12px;line-height:1.4;resize:vertical}#agentImage{height:auto;padding:7px 10px;display:flex;align-items:center;cursor:pointer;color:var(--muted)}#agentImage::file-selector-button{margin-right:10px;padding:7px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--panel);color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}#agentImage::file-selector-button:hover{background:var(--panel-hover);border-color:var(--accent)}#agentOverlay.busy,#agentOverlay.busy *{cursor:progress}#agentOverlay.busy #agentGo{cursor:pointer}#agentOutput:empty:before,#agentOutput.caret:not(:empty):after{content:"\258c";color:var(--accent);animation:agentBlink 1s step-end infinite}.notif-msg.dots:after{content:".";animation:notifDots 1.2s steps(1,end) infinite}@keyframes notifDots{0%{content:"."}33%{content:".."}66%{content:"..."}}#agentOutput.dots:not(:empty):after{content:".\258c";color:var(--accent);animation:agentDots 1.2s steps(1,end) infinite}@keyframes agentDots{0%{content:".\258c"}33%{content:"..\258c"}66%{content:"...\258c"}}@keyframes agentBlink{50%{opacity:0}}#agentStatus{min-height:20px;margin-bottom:0;&.agentHint{text-align:right;font-size:12px;padding-top:6px}}#agentOverlay.busy #agentStatus:not(:empty):before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-2px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:agentSpin .8s linear infinite}@keyframes agentSpin{to{transform:rotate(360deg)}}@property --agentAngle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}#agentPreviewWrap.loading{min-height:120px;align-items:center;border-color:transparent;background:linear-gradient(var(--panel),var(--panel)) padding-box,conic-gradient(from var(--agentAngle),var(--accent) 0 12%,var(--line) 12% 100%) border-box;animation:agentBorderRun 1.6s linear infinite;& canvas{display:none}&:before{content:attr(data-status);color:var(--muted);font-size:13px}&:after{content:".\258c";margin-left:2px;color:var(--accent);font-size:13px;animation:agentDots 1.2s steps(1,end) infinite}}@keyframes agentBorderRun{to{--agentAngle: 360deg}}#licenses{list-style:none;margin:0 0 18px;padding:0;& li{display:flex;align-items:baseline;gap:8px;padding:9px 0;border-top:1px solid var(--line);font-size:14px;&:last-child{border-bottom:1px solid var(--line)}}& a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:2px}& a:hover{color:var(--accent)}& span{color:var(--muted);font-size:12.5px;flex:1}& em{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);background:var(--chip);border-radius:5px;padding:3px 7px;white-space:nowrap}}.keyGroup{break-inside:avoid;margin:0 0 18px;&:last-child{margin-bottom:0}}@media(min-width:1024px){.modalWide .keyCols{columns:2;column-gap:28px}}.keys{margin:0 0 4px;>div{display:flex;align-items:center;gap:12px;padding:7px 0;border-top:1px solid var(--line);&:last-child{border-bottom:1px solid var(--line)}}& dt{display:flex;align-items:center;gap:4px;min-width:130px;flex:0 0 auto}& dd{margin:0;font-size:13.5px;color:var(--ink)}.or{color:var(--muted);font-size:12px}}kbd{display:inline-grid;place-items:center;min-width:22px;height:24px;padding:0 6px;border-radius:6px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:12px;font-weight:600;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-bottom-width:2px;box-shadow:0 1px 0 var(--line)}#coordMapWrap{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--paper);line-height:0;margin-bottom:14px;& canvas{display:block;width:100%;cursor:grab;touch-action:none}& canvas:active{cursor:grabbing}}@media(min-width:1024px){.modalWide #coordMapWrap{max-width:560px;margin-left:auto;margin-right:auto}.modalWide .coordForm{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;grid-auto-flow:column;column-gap:24px;row-gap:14px;align-items:center;>*{margin:0}}}.coordFields{display:flex;gap:12px;& label{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}& input{flex:1;min-width:0;width:100%;height:36px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;&:focus-visible{outline:2px solid var(--accent);outline-offset:0}}}@media(max-width:920px){#shareBtn .lbl{display:none}#shareBtn{padding:0;width:38px;justify-content:center}#helpBtn{display:none}#header>*{flex-shrink:0}#peers{flex-shrink:1;min-width:0;max-width:34vw;overflow:hidden}#peers #pc{white-space:nowrap;overflow:hidden;text-overflow:clip}#coords{inset:16px 10px auto auto;height:38px;padding:0 10px;max-width:180px}#zoombar{top:66px;right:10px}#minimap{inset:66px auto auto 10px;transform:scale(.85);transform-origin:top left;z-index:9}}@media(max-width:560px){#brand span.t{display:none}#header{gap:6px;top:10px;left:10px;right:130px}#brand{width:38px;padding:0;justify-content:center}#coords{top:10px;right:10px;max-width:112px}#zoombar{top:60px;right:10px}#minimap{inset:60px auto auto 10px;transform:scale(.8);transform-origin:top left;z-index:9}#bar{left:8px;right:8px;bottom:25px;max-width:none;transform:none;display:flex;flex-wrap:nowrap;gap:0;overflow-x:auto;overflow-y:hidden;justify-content:flex-start;align-items:stretch;z-index:40;padding:8px 10px;border-radius:var(--r-lg);-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;scrollbar-width:none;&::-webkit-scrollbar{display:none}}#bar>.slide{justify-content:center;gap:8px;border-left:none;padding-left:0;scroll-snap-align:center}#bar>.slide+.slide{border-left:1px solid var(--line);margin-left:14px;padding-left:14px}.tool{width:42px;height:42px;font-size:18px}#size{width:120px}#colorMenu,#shapeMenu,#sizeMenu{position:fixed;left:50%;right:auto;bottom:84px;transform:translate(-50%);z-index:60}@supports (scroll-marker-group: after){#bar{overflow-x:auto;overflow-y:hidden;scroll-marker-group:after;scroll-snap-type:x mandatory;scroll-behavior:smooth;left:44px;right:44px}#bar::scroll-marker-group{position:absolute;bottom:6px;left:0;right:0;display:flex;justify-content:center;gap:7px;height:12px}#bar>.slide::scroll-marker{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--muted);background:transparent}#bar>.slide::scroll-marker:target-current{background:var(--accent);border-color:var(--accent)}#bar::scroll-button(*){position:fixed;bottom:40px;width:30px;height:30px;border-radius:50%;background:var(--panel);border:1px solid var(--line);color:var(--ink);font-size:14px;cursor:pointer;z-index:2}#bar::scroll-button(left){content:"\2039";left:8px}#bar::scroll-button(right){content:"\203a";right:8px}#bar::scroll-button(*):disabled{display:none}}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important}}#notifLayer,#notifLayerTop{position:fixed;left:50%;bottom:92px;transform:translate(-50%);z-index:45;display:flex;flex-direction:column-reverse;gap:10px;width:50vw;pointer-events:none;transition:opacity .18s ease}#notifLayerTop{top:auto;right:auto;margin:0;border:0;padding:0;background:transparent;overflow:visible}body.modal-open #notifLayer{opacity:0;pointer-events:none}.notif{display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;margin-inline:auto;padding:13px 15px;border-radius:var(--r-lg);background:var(--panel);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-lg);pointer-events:auto;opacity:0;transform:translateY(8px);transition:opacity .18s,transform .18s;&.show{opacity:1;transform:translateY(0)}&.inline{box-shadow:var(--shadow)}}.notif-main{display:flex;align-items:center;gap:12px;flex:1 1 auto;min-width:0}.notif-icon{font-size:19px;line-height:1;flex:0 0 auto}.notif-body{flex:1 1 auto;min-width:0}.notif-title{display:block;font-size:14px;margin-bottom:2px}.notif-msg{margin:0;font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.notif-msg .link{font-size:inherit}.notif-actions{display:flex;gap:8px;flex:0 0 auto;.btn{padding:8px 16px}}.notif-close{align-self:flex-start;border:none;background:transparent;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;&:hover{color:var(--ink)}}.cookieRow{display:flex;align-items:center;gap:10px;margin-top:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-hover);font-size:12.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;& input{width:16px;height:16px;accent-color:var(--accent)}&.disabled{cursor:default;color:var(--muted)}}@media(hover:none)and (pointer:coarse){#helpBtn{display:none}}@media(max-width:920px){#notifLayer,#notifLayerTop{width:min(92vw,520px)}.notif:has(.notif-actions){flex-direction:column;align-items:stretch;width:100%;.notif-main{display:block}.notif-icon{float:left;margin-right:10px}.notif-msg{clear:left}.notif-actions{width:100%;margin-top:4px}.notif-actions .btn{justify-content:center}.notif-actions .ghost{flex:1}.notif-actions .primary{flex:2}}}@media(max-width:560px){#notifLayer,#notifLayerTop{left:10px;right:10px;width:auto;transform:none}#notifLayerTop{bottom:10px}#notifLayerTop .notif{padding:10px 12px;gap:8px}#notifLayerTop .notif-icon{font-size:15px}#notifLayerTop .notif-title{font-size:12.5px;margin-bottom:1px}#notifLayerTop .notif-msg{font-size:11.5px;line-height:1.4}#notifLayerTop .notif-actions{margin-top:2px}#notifLayerTop .notif-actions .btn{padding:7px 12px;font-size:12px}}
