:root{--bg: #070a12;--panel: rgba(10, 14, 24, .72);--panelBorder: rgba(255, 255, 255, .1);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .68);--accent: #67e8f9;--accent2: #a78bfa;--shadow: 0 14px 40px rgba(0,0,0,.45)}*{box-sizing:border-box}body{background:radial-gradient(1200px 800px at 60% 20%,#0c1c33 0%,var(--bg) 55%,#05060b 100%);color:var(--text)}body[data-theme=day]{--bg: #b7c9df;--panel: rgba(228, 237, 249, .88);--panelBorder: rgba(23, 40, 66, .28);--text: rgba(18, 31, 50, .96);--muted: rgba(25, 43, 68, .78);--shadow: 0 14px 40px rgba(19, 32, 58, .22);background:radial-gradient(1200px 800px at 60% 20%,#dde8f6,#b9cce4 56%,#9fb6d3)}body[data-theme=day] .panelOpenButton{border-color:#1728424d;background:#e4edf9eb;color:#121f32f5}body[data-theme=day] .panelIconButton{border-color:#17284247;background:#ffffffb8;color:#121f32f5}body[data-theme=day] .section{border-color:#17284229;background:#ffffff6b}body[data-theme=day] .section>summary{color:#121f32e0}body[data-theme=day] .tab{background:#ffffff9e}body[data-theme=day] .toggle{border-color:#17284247;background:#1e2f4933}body[data-theme=day] select,body[data-theme=day] input[type=number],body[data-theme=day] input[type=text]{background:#ffffffd1}body[data-theme=day] .badge{border-color:#2563eb52;color:#192b44f0;background:#bfdbfe7a}body[data-theme=day] .infoCard{border-color:#17284229;background:#ffffff7a}body[data-theme=day] .infoLabel,body[data-theme=day] .sectionSubhead{color:#192b448f}.app{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden}.basemap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.viewerHint{position:absolute;right:14px;bottom:14px;z-index:3;pointer-events:none;padding:6px 10px;border-radius:9px;border:1px solid rgba(255,255,255,.24);background:#060a1285;color:#e8f3ffdb;font-size:11px;letter-spacing:.01em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}body[data-theme=day] .viewerHint{border-color:#17284238;background:#f5faffb8;color:#121f32db}.mapFooterHint{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:3;pointer-events:none;padding:7px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#060a1280;color:#ffffffeb;font-size:12px;font-weight:600;line-height:1.3;letter-spacing:.01em;text-align:center;max-width:min(74vw,980px);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-shadow:0 1px 2px rgba(0,0,0,.75)}body[data-theme=day] .mapFooterHint{border-color:#17284233;background:#f5faffc7;color:#0f172aeb}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:block;padding:16px;pointer-events:none}.panel{pointer-events:auto;background:var(--panel);border:1px solid var(--panelBorder);border-radius:14px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.controlPanel{position:absolute;left:16px;bottom:16px;width:min(420px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:12px 12px 10px;display:flex;flex-direction:column;gap:10px;overflow:auto;overscroll-behavior:contain}.panelOpenButton{position:absolute;left:16px;bottom:16px;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#0000008c;color:#ffffffeb;cursor:pointer;pointer-events:auto;display:grid;place-items:center;font-size:18px;line-height:1}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;-webkit-user-select:none;user-select:none;cursor:grab;padding:2px;touch-action:none}.panelHeader:active{cursor:grabbing}.panelHeaderRight{display:flex;align-items:center;gap:8px}.panelResizeHandle{position:absolute;width:18px;height:18px;border-radius:6px;pointer-events:auto;touch-action:none;background:linear-gradient(135deg,transparent 0 42%,rgba(15,23,42,.34) 42% 46%,transparent 46% 100%),linear-gradient(135deg,transparent 0 58%,rgba(15,23,42,.22) 58% 62%,transparent 62% 100%);opacity:.9}.panelResizeHandleNW{top:6px;left:6px;cursor:nwse-resize;transform:rotate(180deg)}.panelResizeHandleNE{top:6px;right:6px;cursor:nesw-resize;transform:rotate(270deg)}.panelResizeHandleSW{left:6px;bottom:6px;cursor:nesw-resize;transform:rotate(90deg)}.panelResizeHandleSE{right:6px;bottom:6px;cursor:nwse-resize}body[data-theme=day] .panelResizeHandle{background:linear-gradient(135deg,transparent 0 42%,rgba(37,99,235,.42) 42% 46%,transparent 46% 100%),linear-gradient(135deg,transparent 0 58%,rgba(37,99,235,.28) 58% 62%,transparent 62% 100%)}.panelIconButton{width:28px;height:28px;border-radius:9px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:#ffffffe6;cursor:pointer;display:grid;place-items:center;padding:0;line-height:1}.section{border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff05;padding:8px 10px}.section>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800;color:#ffffffc7;-webkit-user-select:none;user-select:none}.section>summary::-webkit-details-marker{display:none}.section>summary:after{content:"▾";opacity:.7;transform:rotate(-90deg);transition:transform .12s ease}.section[open]>summary:after{transform:rotate(0)}.sectionBody{display:grid;gap:10px;margin-top:10px}.title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.title h1{font-size:16px;margin:0;letter-spacing:.2px}.title .sub{font-size:12px;color:var(--muted)}.controls{display:grid;gap:10px}.sectionSubhead{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ffffff80}.tabs{display:flex;gap:8px}.tab{flex:1;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px;border-radius:10px;border:1px solid var(--panelBorder);background:#ffffff0a;color:var(--text);font-size:12px;font-weight:600}.tabActive{border-color:#67e8f966;background:linear-gradient(180deg,#67e8f924,#a78bfa14)}.toggleRow{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted)}.toggleGrid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.toggle{width:46px;height:26px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff1a;padding:0;cursor:pointer;position:relative;outline:none}.toggleOn{background:#34c759;border-color:#34c759bf}.toggleKnob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fffffff2;box-shadow:0 1px 3px #00000059;transition:transform .14s ease}.toggleOn .toggleKnob{transform:translate(20px)}.toggle:disabled{opacity:.55;cursor:not-allowed}label{font-size:12px;color:var(--muted);display:grid;gap:6px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:9px 10px;border-radius:10px;border:1px solid var(--panelBorder);background:#00000040;color:var(--text);outline:none}input[type=number],input[type=text]{padding:9px 10px;border-radius:10px;border:1px solid var(--panelBorder);background:#00000040;color:var(--text);outline:none}input[type=range]{width:100%}.hint{font-size:12px;color:var(--muted);line-height:1.35}.infoGrid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.infoCard{border:1px solid rgba(255,255,255,.08);background:#ffffff08;border-radius:12px;padding:10px 11px;display:grid;gap:4px;min-width:0}.infoLabel{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#ffffff7a}.infoValue{font-size:13px;font-weight:700;color:var(--text)}.infoMeta{font-size:11px;line-height:1.35;color:var(--muted)}.viewer{position:absolute;right:16px;bottom:16px;width:min(640px,calc(100vw - 408px));height:min(420px,calc(100vh - 32px));min-height:0;display:grid;grid-template-rows:auto 1fr}.viewerSmall{width:min(520px,calc(100vw - 408px));height:min(340px,calc(100vh - 32px))}.viewerFull{left:392px;right:16px;top:16px;bottom:16px;width:auto;height:auto}.viewerHeader{padding:12px 14px;border-bottom:1px solid var(--panelBorder);display:flex;align-items:center;justify-content:space-between;gap:10px}.viewerHeader .meta{display:grid;gap:2px}.viewerHeader .meta .name{font-size:13px;font-weight:700}.viewerHeader .meta .desc{font-size:12px;color:var(--muted)}.viewerBody{padding:10px;min-height:0}.imgWrap{width:100%;height:100%;border-radius:12px;overflow:hidden;border:1px solid var(--panelBorder);background:#00000038;display:grid;place-items:center}.imgWrap img{max-width:100%;max-height:100%;width:auto;height:auto;display:block}.missing{padding:18px;text-align:center;color:var(--muted);font-size:12px;line-height:1.35}.badge{font-size:11px;font-weight:700;padding:6px 10px;border-radius:999px;border:1px solid rgba(103,232,249,.35);color:#cbfbfff2;background:#67e8f91f}.iosSettingsPanel{background:#f4f5f8f0;border:1px solid rgba(15,23,42,.1);box-shadow:0 22px 54px #02061757;-webkit-backdrop-filter:saturate(175%) blur(18px);backdrop-filter:saturate(175%) blur(18px);color:#111827;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Helvetica Neue,Helvetica,Arial,sans-serif}.iosSettingsPanel .panelHeader{color:#0f172a;padding:2px 0 4px}.iosSettingsPanel .panelHeader>div:first-child>div:first-child{color:#0f172a9e!important;font-weight:600}.iosSettingsPanel .panelIconButton{border-color:#0f172a1f;background:#ffffffdb;color:#0f172adb}.iosSettingsPanel .title h1{font-size:31px;line-height:1.1;letter-spacing:-.03em;color:#111827;font-weight:700}.iosSettingsPanel .badge{border-color:#2563eb3d;color:#1f2937;background:#bfdbfe9e}.iosSettingsPanel .controls{gap:12px}.iosSettingsPanel .section{border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#ffffffe0;padding:0;overflow:hidden}.iosSettingsPanel .section>summary{color:#111827;font-size:13px;font-weight:700;letter-spacing:-.01em;padding:11px 14px;background:#f8fafcd1}.iosSettingsPanel .section>summary:after{color:#0f172a75}.iosSettingsPanel .sectionBody{margin-top:0;padding:10px 10px 12px;gap:8px}.sectionSubheadRow{display:flex;align-items:center;gap:8px;margin-top:2px}.sectionGlyph{width:22px;height:22px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700;line-height:1}.sectionGlyphMode{background:linear-gradient(180deg,#3b82f6,#2563eb)}.sectionGlyphTopo{background:linear-gradient(180deg,#34d399,#10b981)}.sectionGlyphVars{background:linear-gradient(180deg,#f59e0b,#f97316)}.sectionGlyphColor{background:linear-gradient(180deg,#c084fc,#a855f7)}.sectionGlyphTempo{background:linear-gradient(180deg,#38bdf8,#0ea5e9)}.sectionGlyphMask{background:linear-gradient(180deg,#94a3b8,#64748b)}.sectionGlyphClass{background:linear-gradient(180deg,#ef4444,#dc2626)}.sectionGlyphData{background:linear-gradient(180deg,#60a5fa,#2563eb)}.sectionGlyphErr{background:linear-gradient(180deg,#fb7185,#f43f5e)}.iosSettingsPanel .sectionSubhead{color:#0f172a94;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.iosSettingsPanel .tabs{background:#e9edf3;border-radius:11px;padding:4px;gap:4px}.iosSettingsPanel .tab{border:0;background:transparent;color:#0f172abd;border-radius:8px;font-size:13px;font-weight:600;padding:8px 9px}.iosSettingsPanel .tabActive{background:#fff;color:#111827;box-shadow:0 1px 2px #0206171f}.iosSettingsPanel label,.iosSettingsPanel .toggleRow{border:1px solid rgba(15,23,42,.08);background:#ffffffeb;border-radius:12px;padding:9px 11px;color:#0f172a;font-size:13px}.iosSettingsPanel label{gap:7px}.iosSettingsPanel select,.iosSettingsPanel input[type=number],.iosSettingsPanel input[type=text]{background:#f6f8fbf5;border:1px solid rgba(15,23,42,.12);color:#0f172a}.iosSettingsPanel .hint{color:#0f172a99;font-size:12px;padding:0 4px}.iosSettingsPanel .toggle{border-color:#0f172a24;background:#0f172a24}.iosSettingsPanel .toggleGrid2 .toggleRow{min-height:46px}.iosSettingsPanel .toggleGrid2 .toggleRow>div:first-child{font-size:12px;line-height:1.2}.iosSettingsPanel .toggleOn{background:#34c759;border-color:#34c759b8}.iosSettingsPanel .toggleKnob{box-shadow:0 1px 3px #02061740}.iosSettingsPanel .infoCard{border-color:#0f172a14;background:#ffffffeb}.iosSettingsPanel .infoLabel{color:#0f172a85}.iosSettingsPanel .infoValue{color:#0f172a}.iosSettingsPanel .infoMeta{color:#0f172a9e}body[data-theme=night] .iosSettingsPanel{background:#0d121ee6;border-color:#94a3b824;box-shadow:0 22px 54px #0000007a;color:#f1f5f9f0}body[data-theme=night] .iosSettingsPanel .panelHeader{color:#f1f5f9eb}body[data-theme=night] .iosSettingsPanel .panelHeader>div:first-child>div:first-child{color:#e2e8f094!important}body[data-theme=night] .iosSettingsPanel .panelIconButton{border-color:#94a3b829;background:#ffffff0f;color:#f1f5f9e6}body[data-theme=night] .iosSettingsPanel .title h1{color:#f8fafcf5}body[data-theme=night] .iosSettingsPanel .badge{border-color:#60a5fa3d;color:#e2e8f0f5;background:#3b82f629}body[data-theme=night] .iosSettingsPanel .section{border-color:#94a3b81a;background:#ffffff08}body[data-theme=night] .iosSettingsPanel .section>summary{color:#f1f5f9e6;background:#ffffff08}body[data-theme=night] .iosSettingsPanel .section>summary:after{color:#e2e8f085}body[data-theme=night] .iosSettingsPanel .sectionSubhead{color:#e2e8f08f}body[data-theme=night] .iosSettingsPanel .tabs{background:#ffffff0f}body[data-theme=night] .iosSettingsPanel .tab{color:#e2e8f0d1}body[data-theme=night] .iosSettingsPanel .tabActive{background:#f8fafcf0;color:#111827}body[data-theme=night] .iosSettingsPanel label,body[data-theme=night] .iosSettingsPanel .toggleRow{border-color:#94a3b81a;background:#ffffff0a;color:#f1f5f9eb}body[data-theme=night] .iosSettingsPanel select,body[data-theme=night] .iosSettingsPanel input[type=number],body[data-theme=night] .iosSettingsPanel input[type=text]{background:#ffffff0f;border-color:#94a3b824;color:#f1f5f9eb}body[data-theme=night] .iosSettingsPanel .hint{color:#e2e8f094}body[data-theme=night] .iosSettingsPanel .toggle{border-color:#94a3b829;background:#94a3b833}body[data-theme=night] .iosSettingsPanel .toggleOn{background:#34c759;border-color:#34c759b8}body[data-theme=night] .iosSettingsPanel .infoCard{border-color:#94a3b81a;background:#ffffff0a}body[data-theme=night] .iosSettingsPanel .infoLabel,body[data-theme=night] .iosSettingsPanel .infoMeta{color:#e2e8f094}body[data-theme=night] .iosSettingsPanel .infoValue{color:#f8fafcf5}@media (max-width: 960px){.overlay{padding:12px}.controlPanel{left:12px;top:12px;bottom:auto;width:min(420px,calc(100vw - 24px));max-height:min(62dvh,calc(100vh - 24px))}.panelOpenButton{left:12px;top:12px;bottom:auto}.infoGrid{grid-template-columns:1fr}.viewer,.viewerFull{position:static;width:auto;height:min(520px,70vh)}}
