:root{--bg:#e6e9ec;--bg-3d:#e6e9ec;--fg:#1d2126;--muted:#5b6470;--panel:#ffffffd9;--line:#c9ced4;--accent:#c8601a;--power:#e8791e;--signal:#2f9e4f;--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#15181c;--bg-3d:#1b1f24;--fg:#e7eaee;--muted:#9aa4b0;--panel:#22272dd9;--line:#3a414a;--accent:#e58a45;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#15181c;--bg-3d:#1b1f24;--fg:#e7eaee;--muted:#9aa4b0;--panel:#22272dd9;--line:#3a414a;--accent:#e58a45;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font);height:100dvh;margin:0;font-size:14px;overflow:hidden}.stage{touch-action:none;width:100%;max-width:100%;height:100%;display:block;position:absolute;inset:0}.bar{padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px;pointer-events:none;flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex;position:absolute;top:0;left:0;right:0}.bar h1{letter-spacing:.01em;background:var(--panel);border:1px solid var(--line);pointer-events:auto;border-radius:4px;margin:0;padding:6px 10px;font-size:15px;font-weight:600}.btn{font:500 12px/1 var(--font);letter-spacing:.04em;text-transform:uppercase;background:var(--panel);color:var(--fg);border:1px solid var(--line);cursor:pointer;pointer-events:auto;border-radius:4px;padding:8px 10px}.btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.views{pointer-events:auto;flex-wrap:wrap;gap:6px;display:flex}.legend{left:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);background:var(--panel);border:1px solid var(--line);border-radius:4px;max-width:min(360px,100% - 32px);padding:10px 12px;font-size:12px;line-height:1.45;position:absolute}.legend h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:11px;font-weight:600}.legend ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:baseline;gap:8px;display:flex}.legend i{border-radius:2px;flex:none;width:10px;height:10px;transform:translateY(1px)}.legend .dim{font-family:var(--mono);color:var(--muted);margin-top:6px;font-size:11px}.hint{right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);color:var(--muted);font-size:11px;position:absolute}.zoom{right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 40px);flex-direction:column;gap:4px;display:flex;position:absolute}.zoom button{width:36px;height:36px;font:500 18px/1 var(--font);background:var(--panel);color:var(--fg);border:1px solid var(--line);cursor:pointer;border-radius:4px}.zoom button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.plugmap{right:16px;top:calc(env(safe-area-inset-top,0px) + 62px);background:var(--panel);border:1px solid var(--line);border-radius:4px;width:min(460px,100% - 32px);max-height:calc(100% - 140px);padding:12px 14px;font-size:12px;line-height:1.4;position:absolute;overflow:auto}.plugmap h2{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:600}.plugmap p{margin:0 0 8px}.plugmap .tbl{overflow-x:auto}.plugmap table{border-collapse:collapse;width:100%;min-width:400px}.plugmap th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:4px 6px;font-size:11px;font-weight:600}.plugmap td{border-bottom:1px solid var(--line);vertical-align:top;padding:5px 6px}.plugmap td.code{white-space:nowrap;font-family:var(--mono);font-weight:500}.plugmap i{border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block;transform:translateY(1px)}.plugmap td.pins{font-family:var(--mono);text-align:right}.close{width:26px;height:26px;font:400 18px/1 var(--font);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;position:absolute;top:6px;right:6px}.close:hover{color:var(--fg);border-color:var(--line)}.close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.legend h2,.plugmap h2{padding-right:28px}.tip{background:var(--fg);max-width:min(320px,100vw - 32px);color:var(--bg);pointer-events:none;z-index:5;border-radius:4px;padding:7px 10px;font-size:12px;line-height:1.4;position:absolute;top:0;left:0;box-shadow:0 2px 8px #0003}.tip:before{content:"";border:5px solid #0000;border-right-color:var(--fg);border-left:0;position:absolute;top:10px;left:-5px}.loading{color:var(--muted);pointer-events:none;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.bar .toggles{display:contents}.sheetbtn{display:none}@media (max-width:640px){.bar{padding:calc(env(safe-area-inset-top,0px) + 8px) 0 0;background:linear-gradient(var(--bg) 70%, transparent);flex-flow:column;align-items:stretch;gap:6px}.bar h1{align-self:flex-start;margin:0 12px;font-size:14px}.bar .toggles,.views{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:6px;padding:2px 12px 6px;display:flex;overflow-x:auto}.bar .toggles::-webkit-scrollbar{display:none}.views::-webkit-scrollbar{display:none}.btn{flex:none;padding:10px 12px;font-size:12px}.hint{display:none}.zoom{right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 72px)}.zoom.sheet-open{display:none}.bar,.legend,.plugmap,.zoom,.sheetbtn{max-width:100vw}.zoom button{width:40px;height:40px}.legend,.plugmap{background:var(--bg);width:auto;max-width:none;max-height:55dvh;padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 14px);border-width:1px 0 0;border-radius:12px 12px 0 0;position:absolute;inset:auto 0 0;overflow:auto;box-shadow:0 -4px 16px #0002}.legend h2,.plugmap h2{padding-right:32px}.plugmap table{min-width:520px}.close{width:32px;height:32px;font-size:20px;top:8px;right:10px}.sheetbtn{left:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);display:inline-flex;position:absolute}}@media (prefers-reduced-motion:no-preference){.legend,.plugmap{transition:transform .2s}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
