:root{color-scheme:light dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans SC,Microsoft YaHei,sans-serif;font-size:13px;color:#1d1d1f;background:#f5f5f7;--page: #f5f5f7;--panel: #fff;--panel-raised: rgba(255,255,255,.82);--text: #1d1d1f;--muted: #5c5c61;--accent: #0066cc;--accent-soft: #e5f2ff;--border: rgba(60,60,67,.18);--border-strong: rgba(60,60,67,.3);--hover: rgba(0,0,0,.055);--pressed: rgba(0,0,0,.1);--danger: #b42318;--focus: #007aff;--scroll-thumb: rgba(60,60,67,.38);--scroll-track: transparent;--toolbar-height: 60px;--rail-width: 72px;--inspector-width: 304px;--canvas: #111214;--canvas-chrome: #191b1e;--canvas-text: #d7dce3;--canvas-muted: #9ba5b2;--canvas-border: #30353d;--action: #0066cc;--on-action: #fff;--warning: #a45a00;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}@media(prefers-color-scheme:dark){:root{color:#f5f5f7;background:#1c1c1e;--page: #1c1c1e;--panel: #2c2c2e;--panel-raised: rgba(44,44,46,.82);--text: #f5f5f7;--muted: #c7c7cc;--accent: #4db8ff;--accent-soft: rgba(77,184,255,.16);--border: rgba(255,255,255,.14);--border-strong: rgba(255,255,255,.25);--hover: rgba(255,255,255,.08);--pressed: rgba(255,255,255,.14);--danger: #ff6961;--focus: #64d2ff;--scroll-thumb: rgba(235,235,245,.34);--action: #4db8ff;--on-action: #111214;--warning: #ffb45a}}*{box-sizing:border-box;scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--scroll-track)}*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:3px solid transparent;border-radius:999px;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--scroll-thumb) 80%,var(--text))}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}button,input{font:inherit}button{color:inherit}button:not(:disabled){cursor:pointer}button:disabled{cursor:default;opacity:.42}:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 65%,transparent);outline-offset:2px}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{height:100%;display:grid;grid-template-rows:var(--toolbar-height) minmax(0,1fr);background:var(--page)}.topbar{position:relative;z-index:20;display:flex;align-items:center;justify-content:space-between;min-width:0;padding:0 10px 0 14px;border-bottom:1px solid var(--border);background:var(--panel-raised);-webkit-backdrop-filter:saturate(150%) blur(18px);backdrop-filter:saturate(150%) blur(18px)}.document-title{display:flex;align-items:center;min-width:0;gap:12px}.document-title>div{display:grid;min-width:0}.document-title strong{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:20px}.document-title span{color:var(--muted);font-size:11px;line-height:14px}.document-title .brand-name{font-size:16px;letter-spacing:-.4px;flex-shrink:0}.document-divider{height:26px;width:1px;background:var(--border)}.document-title .document-state.is-dirty{color:var(--warning)}.document-state.is-dirty:before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:currentColor}.app-mark{flex-shrink:0;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--action)}.app-mark span{width:11px;height:11px;background:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 5px),repeating-linear-gradient(0deg,#fff 0 2px,transparent 2px 5px);opacity:.95}.toolbar-actions{display:flex;align-items:center;gap:3px}.toolbar-button,.tool-rail button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent}.toolbar-button.labeled-action{width:auto;display:flex;gap:7px;padding:0 12px;font-weight:500}.toolbar-button.save-action{color:var(--on-action);background:var(--action);margin-inline:5px;min-width:100px}.toolbar-button.save-action:hover:not(:disabled){background:color-mix(in srgb,var(--action) 90%,var(--text))}.toolbar-button:hover:not(:disabled),.tool-rail button:hover:not(:disabled){background:var(--hover)}.toolbar-button:active:not(:disabled),.tool-rail button:active:not(:disabled){background:var(--pressed);transform:scale(.97)}.toolbar-divider{width:1px;height:20px;margin:0 5px;background:var(--border)}.busy-indicator{display:flex;align-items:center;gap:5px;margin-left:6px;padding:5px 8px;color:var(--muted);font-size:11px}.busy-indicator svg{animation:spin 1.3s linear infinite}.workspace{min-height:0;display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr)}.inspector-visible .workspace{grid-template-columns:var(--rail-width) minmax(0,1fr) var(--inspector-width)}.tool-rail{z-index:10;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:12px 8px;background:var(--panel);border-right:1px solid var(--border)}.tool-group{display:grid;gap:6px}.tool-rail .drawing-tool{position:relative;width:54px;height:62px;gap:4px;align-content:center;border-radius:8px}.drawing-tool>span,.fit-tool>span{font-size:11px;line-height:16px}.drawing-tool kbd{position:absolute;top:4px;right:6px;font:10px var(--mono);color:var(--muted)}.tool-rail .fit-tool{width:54px;height:48px;gap:3px;align-content:center}.rail-bottom{justify-items:center}.tool-rail button.active{color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent)}.rail-bottom{padding-top:9px;border-top:1px solid var(--border)}.map-stage{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:40px minmax(0,1fr) 32px;overflow:hidden;background:var(--canvas);color:var(--canvas-text)}.canvas-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px;background:var(--canvas-chrome);border-bottom:1px solid var(--canvas-border);font-size:12px}.canvas-heading>div{display:flex;align-items:center;gap:8px;white-space:nowrap}.viewport-indicator{width:6px;height:6px;background:var(--accent);border-radius:2px}.view-kind{margin-left:6px;font:11px var(--mono);color:var(--canvas-muted)}.gesture-hint{color:var(--canvas-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.canvas-host,.map-canvas{width:100%;height:100%;display:block}.canvas-host{min-height:0;overflow:hidden}.map-canvas{touch-action:none;user-select:none;-webkit-user-select:none;outline-offset:-4px}.map-canvas.tool-brush,.map-canvas.tool-rectangle,.map-canvas.tool-polygon{cursor:crosshair}.map-canvas.tool-pan{cursor:grab}.map-canvas.tool-pan:active{cursor:grabbing}.canvas-status{display:flex;align-items:center;overflow:hidden;border-top:1px solid var(--canvas-border);background:var(--canvas-chrome);color:var(--canvas-muted);font:11px/1.2 var(--mono)}.canvas-status span{padding:0 10px;white-space:nowrap}.canvas-status span+span{border-left:1px solid rgba(255,255,255,.14)}.canvas-status span:first-child{flex:1;overflow:hidden;text-overflow:ellipsis}.empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,85%);text-align:center}.empty-map{position:relative;width:300px;max-width:100%;height:178px;margin:0 auto 24px;color:#596573}.empty-map svg{width:100%;height:100%}.empty-map text{fill:var(--canvas-muted);font:9px var(--mono)}.empty-map>span{position:absolute;bottom:1px;right:8px;font:9px var(--mono);letter-spacing:1px;color:var(--canvas-muted)}.empty-cross{stroke:#ff9f0a}.empty-axis{stroke:var(--canvas-muted)}.eyebrow{color:var(--canvas-muted);font:11px var(--mono);letter-spacing:1.8px}.empty-copy h2{margin:12px 0 10px;color:#f5f5f7;font-size:25px;font-weight:600;letter-spacing:-.5px}.empty-copy p{color:var(--canvas-muted);margin:0 0 24px;line-height:1.6}.empty-state>.button{min-height:40px;padding:0 24px}.empty-drop{margin:12px 0 18px;color:var(--canvas-muted);font-size:12px}.file-formats{display:flex;justify-content:center;gap:8px}.file-formats span{padding:5px 8px;border:1px solid var(--canvas-border);border-radius:5px;color:var(--canvas-muted);font:10px var(--mono)}.empty-privacy{display:flex;justify-content:center;align-items:center;gap:6px;margin:24px 0 0;color:var(--canvas-muted);font-size:11px}.inspector{min-width:0;min-height:0;display:grid;grid-template-rows:40px minmax(0,1fr) 32px;overflow:hidden;border-left:1px solid var(--border);background:var(--panel)}.inspector-heading{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);font-size:12px}.inspector-heading>span{color:var(--muted);font-size:11px}.inspector-scroll{min-height:0;overflow:auto;scrollbar-gutter:stable}.inspector-footer{display:flex;align-items:center;gap:7px;padding:0 16px;border-top:1px solid var(--border);color:var(--muted);font-size:11px}.inspector-section{padding:16px;border-bottom:1px solid var(--border)}.inspector-section h2{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;font-size:12px;line-height:16px;font-weight:600}.section-caption{color:var(--muted);font-size:11px;font-weight:400}.field-hint{color:var(--muted);font-size:11px;line-height:1.6;margin:7px 0 0}.encoding-details{margin-top:16px;padding-top:13px;border-top:1px solid var(--border)}.encoding-details summary{min-height:28px;display:flex;justify-content:space-between;align-items:center;font-size:12px;cursor:pointer;list-style:none}.encoding-details summary::-webkit-details-marker{display:none}.encoding-details[open] summary svg{transform:rotate(180deg)}.inspector-placeholder{padding:12px 0;text-align:center}.inspector-placeholder strong{display:block;margin-top:10px;color:var(--muted);font-size:12px;font-weight:500}.inspector-placeholder p{font-size:11px;margin-bottom:0}.placeholder-grid{display:block;width:34px;height:34px;margin:auto;border:1px solid var(--border-strong);border-radius:5px;background:repeating-linear-gradient(0deg,transparent 0 10px,var(--border) 10px 11px),repeating-linear-gradient(90deg,transparent 0 10px,var(--border) 10px 11px)}.muted{color:var(--muted);line-height:1.5}.paint-segment{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:14px;padding:3px;border-radius:10px;background:var(--hover)}.paint-segment button{height:32px;display:flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:7px;background:transparent;font-size:12px}.paint-segment button.selected{background:var(--panel);box-shadow:0 1px 4px #00000021}.paint-swatch{width:10px;height:10px;border-radius:3px;border:1px solid var(--border-strong)}.swatch-free{background:#f7f7f5}.swatch-obstacle{background:#202124}.swatch-unknown{background:#a8abb0}.number-field,.select-field{display:grid;gap:6px;margin-top:12px}.number-field>label,.select-field>label{color:var(--muted);font-size:11px}.number-group,.select-button{height:36px;display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:8px;background:var(--page);overflow:hidden}.number-group:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--focus) 20%,transparent)}.number-group button{width:30px;height:100%;display:grid;place-items:center;border:0;background:transparent}.number-group button:hover{background:var(--hover)}.number-group input{width:100%;min-width:0;height:100%;text-align:center;color:var(--text);border:0;border-inline:1px solid var(--border);outline:0;background:transparent}.select-button{width:100%;justify-content:space-between;padding:0 9px;color:var(--text)}.select-popover{width:var(--trigger-width);max-height:min(320px,80vh);overflow:auto;padding:4px;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel);box-shadow:0 10px 32px #0003}.select-popover [role=option]{padding:7px 9px;border-radius:6px;outline:0}.select-popover [role=option][data-focused]{background:var(--accent-soft);color:var(--accent)}.field-error,.inline-error{color:var(--danger);font-size:11px;line-height:1.4}.origin-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}.origin-grid>:last-child{grid-column:1 / -1}.map-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 12px;padding:10px;border-radius:9px;background:var(--page)}.map-facts span{color:var(--muted)}.map-facts strong{text-align:right;font:11px/1.5 var(--mono)}.map-facts .file-value{overflow-wrap:anywhere}.privacy-note{margin:14px 0 0;padding:10px;border-radius:9px;color:var(--muted);background:var(--page);font-size:11px;line-height:1.5}.button{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;border-radius:8px;border:1px solid transparent;font-weight:600}.button.primary{color:var(--on-action);background:var(--action)}.button.primary:hover:not(:disabled){background:color-mix(in srgb,var(--action) 90%,var(--text))}.button.secondary{color:var(--text);background:var(--hover);border-color:var(--border)}.modal-overlay{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#00000057;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(400px,100%);padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:0 24px 80px #00000047}.modal-card h2{margin:0 0 8px;font-size:18px}.modal-card p{margin:0;color:var(--muted);line-height:1.55}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.error-banner,.notice{position:fixed;z-index:80;right:16px;width:min(390px,calc(100vw - 32px));display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:0 14px 42px #0000003b}.error-banner{top:68px;border-color:color-mix(in srgb,var(--danger) 34%,var(--border))}.notice{bottom:48px}.error-banner>div,.notice>div{flex:1;display:grid;gap:3px}.error-banner strong,.notice strong{font-size:12px}.error-banner span,.notice span{color:var(--muted);font-size:11px;line-height:1.4}.error-banner>button{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent}.error-banner>button:hover{background:var(--hover)}.notice>button{display:flex;align-items:center;gap:5px;min-height:28px;border:0;border-radius:7px;padding:0 9px;color:var(--accent);background:var(--accent-soft)}.notice>.notice-dismiss{width:28px;padding:0;justify-content:center;color:var(--muted);background:transparent}.notice>.notice-dismiss:hover{background:var(--hover)}.compact-blocker{display:none}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1179px)and (min-width:960px){.inspector-visible .workspace{grid-template-columns:var(--rail-width) minmax(0,1fr)}.inspector{position:fixed;z-index:30;top:var(--toolbar-height);right:0;bottom:0;width:var(--inspector-width);box-shadow:-14px 0 36px #0003}.document-title strong{max-width:170px}.document-title .brand-name{display:none}.inspector-visible .canvas-heading{padding-right:calc(var(--inspector-width) + 16px)}.inspector-visible .gesture-hint{display:none}}@media(max-height:720px){.empty-map{height:110px;width:210px;margin-bottom:16px}.empty-copy p{margin-bottom:16px}.empty-privacy{margin-top:16px}}@media(max-width:959px){.topbar,.workspace,.error-banner,.notice{display:none}.app-shell{display:block}.compact-blocker{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:var(--page)}.compact-card{max-width:420px;text-align:center}.compact-card>svg{color:var(--accent)}.compact-card h1{margin:15px 0 8px;font-size:22px}.compact-card p{margin:0;color:var(--muted);line-height:1.6}.compact-card span{display:inline-flex;align-items:center;gap:6px;margin-top:20px;color:var(--muted);font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(prefers-contrast:more){:root{--border: currentColor;--border-strong: currentColor}}@supports not (backdrop-filter: blur(1px)){.topbar{background:var(--panel)}.canvas-status,.modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-reduced-transparency:reduce){.topbar{background:var(--panel);-webkit-backdrop-filter:none;backdrop-filter:none}.modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none}}
