:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{--app-bg: #fbfbf9;--surface: rgba(246, 246, 243, .94);--surface-strong: #ffffff;--line: #dadad3;--line-strong: #c8c8c1;--text: #211922;--body: #33332e;--muted: #62625b;--accent: #e60023;--accent-2: #262622;--accent-3: #e5e5e0;--accent-soft: #f6f6f3;--navy: #000000;--shadow-soft: none;--primary: #e60023;--primary-pressed: #cc001f;--surface-soft: #fbfbf9;--surface-card: #f6f6f3;--secondary-bg: #e5e5e0;--secondary-pressed: #c8c8c1;--focus-outer: #435ee5;color:var(--text);background:var(--app-bg);font-family:Inter,Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button,.button{align-items:center;border:1px solid var(--line);background:var(--secondary-bg);color:var(--text);cursor:pointer;display:inline-flex;gap:6px;min-height:36px;justify-content:center;padding:0 10px;border-radius:16px;white-space:nowrap}button:hover,.button:hover{background:var(--secondary-pressed);border-color:var(--line-strong);box-shadow:none}button:disabled{cursor:not-allowed;opacity:.45}.app{display:grid;grid-template-rows:54px minmax(0,1fr) 30px;height:100vh;min-width:1180px}.toolbar{align-items:center;background:var(--surface-strong);border-bottom:1px solid var(--line);box-shadow:none;display:flex;gap:10px;justify-content:space-between;padding:6px 10px}.brand{align-items:center;display:flex;color:var(--text);font-weight:900;gap:8px;letter-spacing:0}.brand svg{color:var(--primary);filter:none}.brand-copy{display:grid;line-height:1.05}.brand-copy span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.12em}.brand-copy strong{color:var(--text);font-size:14px;letter-spacing:0;text-shadow:none}.toolbar-actions{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.toolbar-actions::-webkit-scrollbar{display:none}.toolbar-actions button,.toolbar-actions .button{background:var(--secondary-bg);border-color:var(--secondary-bg);color:var(--text);font-weight:800;min-height:38px;padding:0 11px}.toolbar-actions .primary-action{background:var(--primary);border-color:var(--primary);color:#fff}.toolbar-actions .primary-action:hover{background:var(--primary-pressed);border-color:var(--primary-pressed)}.workspace-mode-switch{align-items:center;background:var(--surface-card);border:1px solid var(--line);border-radius:18px;display:flex;gap:2px;padding:3px}.toolbar-actions .workspace-mode-switch button{background:transparent;border:0;font-size:12px;min-height:30px;padding:0 12px}.toolbar-actions .workspace-mode-switch button.active{background:var(--text);color:#fff}.workspace{display:grid;grid-template-columns:232px minmax(0,1fr) 280px;min-height:0;overflow:hidden;padding:8px;gap:8px;transition:grid-template-columns .18s ease}.workspace.left-collapsed{grid-template-columns:44px minmax(0,1fr) 280px}.workspace.right-collapsed{grid-template-columns:232px minmax(0,1fr) 44px}.workspace.left-collapsed.right-collapsed{grid-template-columns:44px minmax(0,1fr) 44px}.panel-slot{min-height:0;min-width:0;position:relative}.panel-slot>.panel{height:100%;width:100%}.panel-snap{background:#fff;border:1px solid var(--line);box-shadow:0 8px 18px #26262214;min-height:30px;padding:0;position:absolute;top:10px;width:30px;z-index:4}.panel-snap.left{right:-12px}.panel-snap.right{left:-12px}.panel-rail{align-items:center;background:var(--surface-card);border:1px solid var(--line);border-radius:22px;color:var(--text);display:grid;font-size:11px;font-weight:800;gap:6px;justify-items:center;min-height:0;padding:10px 4px;writing-mode:vertical-rl}.panel{background:var(--surface-card);border:1px solid var(--line);border-radius:24px;box-shadow:none;overflow:auto;overflow-x:hidden;padding:12px;scrollbar-color:var(--stone, #c8c8c1) transparent;scrollbar-width:thin}.right-panel{border:1px solid var(--line)}.right-panel-tabs{background:#fff;border:1px solid var(--line);border-radius:18px;display:grid;gap:4px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px;padding:4px;position:sticky;top:0;z-index:2}.right-panel-tabs.basic-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-heading{align-items:center;display:grid;gap:9px;grid-template-columns:30px minmax(0,1fr);margin:2px 2px 12px}.workflow-heading>span{align-items:center;background:var(--text);border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:900;height:30px;justify-content:center;width:30px}.workflow-heading div{display:grid;gap:2px;min-width:0}.workflow-heading strong{font-size:13px}.workflow-heading small{color:var(--muted);font-size:10px;line-height:1.3}.left-panel-tabs{background:#fff;border:1px solid var(--line);border-radius:18px;display:grid;gap:4px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px;padding:4px;position:sticky;top:0;z-index:3}.left-panel-tabs button{border:0;border-radius:14px;font-size:11px;font-weight:800;gap:4px;line-height:1.1;min-height:40px;padding:0 4px}.left-panel-tabs button.active{background:var(--text);color:#fff}.right-panel-tabs button{border:0;border-radius:14px;font-size:11px;gap:4px;line-height:1.1;min-height:42px;padding:0 4px;white-space:normal}.right-panel-tabs button.active{background:var(--text);color:#fff}section{border-bottom:1px solid var(--line);padding:0 0 12px;margin-bottom:12px}section:last-child{border-bottom:0;margin-bottom:0}h2{color:var(--navy);font-size:13px;font-weight:800;letter-spacing:0;margin:0 0 8px}.center-stage{display:grid;grid-template-rows:minmax(0,1fr);gap:8px;min-height:0;min-width:0;overflow:hidden}.center-stage>*{min-width:0}label{color:var(--body, #33332e);display:grid;font-size:12px;gap:6px;margin:6px 0}input,select{border:1px solid var(--line-strong);border-radius:16px;max-width:100%;min-width:0;min-height:36px;padding:6px 9px}input:focus,select:focus,button:focus-visible,.button:focus-within{outline:3px solid var(--focus-outer);outline-offset:2px}input[type=range],input[type=color],input[type=checkbox]{padding:0}.segmented,.tool-grid{display:grid;gap:6px;grid-template-columns:repeat(3,1fr)}.segmented button.active,.tool-grid button.active,.shape-row.active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}.boundary-mode-switch{margin-bottom:7px}.boundary-mode-switch button{font-size:10px;font-weight:800;min-height:40px;padding:5px 4px}.boundary-mode-help{color:var(--muted);font-size:10px;line-height:1.45;margin:0 0 12px}.section-title-row{align-items:center;display:flex;justify-content:space-between}.subhead{color:#475569;font-size:12px;margin-top:12px}.panel-hint{color:var(--muted);font-size:11px;line-height:1.45;margin:8px 0 0}.panel-kicker{color:var(--muted);display:block;font-size:10px;font-weight:900;letter-spacing:.08em}.selection-overview{background:#fff;border:1px solid var(--line);border-radius:20px;margin-bottom:12px;padding:12px}.selection-overview strong{color:var(--text);display:block;font-size:17px;font-weight:900;line-height:1.2;margin-top:4px;overflow-wrap:anywhere}.selection-overview small{color:var(--muted);display:block;font-size:11px;margin-top:5px}.selection-actions{display:grid;gap:6px;grid-template-columns:1fr 1fr;margin-top:10px}.preset-action.full{font-size:12px;font-weight:900;margin-top:8px;width:100%}.p4-preset-button{background:#111827;border-color:#111827;color:#fff}.p4-preset-button:hover{background:#334155;border-color:#334155}.basemap-grid{display:grid;gap:6px;grid-template-columns:1fr 1fr}.basemap-card{border-radius:16px;font-size:12px;min-height:38px}.basemap-card.active{background:var(--text);border-color:var(--text);color:#fff;font-weight:700}.content-toggle-grid{display:grid;gap:4px 10px;grid-template-columns:1fr 1fr}.content-toggle-grid .checkbox-row{background:#fff;border:1px solid var(--line);border-radius:16px;min-height:36px;margin:0;padding:0 8px}.content-toggle-grid .wide{grid-column:1 / -1}.icon-button,.plain-icon{min-height:28px;padding:0 7px}.search-box{align-items:center;background:#fff;border:1px solid var(--line);border-radius:999px;display:flex;gap:6px;margin-top:10px;padding:0 8px}.search-box input{border:0;flex:1;min-width:0;outline:0}.search-results,.selected-list,.shape-list{display:grid;gap:8px;margin-top:10px}.search-results button,.selected-item,.shape-row{align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;display:flex;justify-content:space-between;min-height:38px;padding:6px 8px;text-align:left}.search-results button.group-result{background:#eef6ff;border-color:#93c5fd}.search-results button.industrial-result{align-items:flex-start;gap:8px}.industrial-result>span{min-width:0}.industrial-result strong{color:var(--text);display:block;font-size:12px;line-height:1.25}.industrial-overview{background:#f0fdfa;border-color:#99f6e4}.search-results button.selected-result{background:#f6f6f3;border-color:var(--text)}.search-results button.group-result small{color:#1d4ed8}.search-empty{background:#fff;border:1px dashed var(--line-strong);border-radius:16px;margin-top:10px;padding:12px}.selected-item.active{background:#fff;border-color:var(--text);box-shadow:none}.region-swatch{border:2px solid #ffffff;border-radius:999px;box-shadow:0 0 0 1px #94a3b8;flex:0 0 auto;height:18px;margin-left:auto;width:18px}.edit-badge{background:var(--text);border-radius:999px;color:#fff;flex:0 0 auto;font-size:11px;font-weight:800;margin-left:auto;padding:4px 7px}.selected-item small,.search-results small{color:#64748b;display:block;margin-top:2px}.selected-item strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.label-preview{align-items:center;background:linear-gradient(135deg,#cbd5e1cc,#f1f5f9eb),#fff;border:1px solid var(--line);border-radius:18px;display:flex;justify-content:center;margin-bottom:10px;min-height:74px}.label-preview span{color:#111827;font-size:15px;font-weight:900;line-height:1;text-shadow:0 1px 0 rgba(255,255,255,.95),1px 0 0 rgba(255,255,255,.9),0 -1px 0 rgba(255,255,255,.85),-1px 0 0 rgba(255,255,255,.9),0 2px 4px rgba(15,23,42,.16)}.empty{color:#64748b;font-size:13px;line-height:1.5;margin:0}.secondary.full,.danger.full,.full{width:100%}.danger,.small-danger{color:#b91c1c}.form-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr}.compact-form{gap:6px}.right-panel .form-grid,.right-panel .tool-grid{grid-template-columns:1fr 1fr}.right-panel .form-grid label{min-width:0}.target-summary{align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;display:grid;gap:8px;grid-template-columns:34px minmax(0,1fr) auto;margin-bottom:10px;padding:10px}.target-summary.empty-target{grid-template-columns:34px minmax(0,1fr)}.target-summary strong,.target-summary span{display:block;min-width:0}.target-summary strong{color:var(--navy);font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-summary span{color:var(--muted);font-size:11px;line-height:1.35}.target-icon{align-items:center;background:var(--surface-strong);border:1px solid var(--line);border-radius:14px;color:var(--primary);display:flex;height:34px;justify-content:center;width:34px}.target-action-stack{display:grid;gap:5px;min-width:72px}.target-action-stack button{border-radius:999px;font-size:11px;font-weight:800;min-height:30px;padding:0 10px;white-space:nowrap}.target-action-stack .subtle{color:var(--muted)}.object-style-editor{display:grid;gap:10px}.quick-style-block.compact{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;padding:9px}.quick-style-block.compact h3{color:var(--navy);font-size:12px;font-weight:800;margin:0}.style-block-title-row{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 118px;margin-bottom:8px}.style-block-title-row span{color:var(--muted);display:block;font-size:10.5px;font-weight:700;line-height:1.25;margin-top:2px}.style-block-title-row select{border-radius:999px;font-size:11px;font-weight:800;min-height:32px;padding:4px 8px}.theme-chip-row{display:flex;gap:5px;margin:0 0 8px;max-width:100%;min-width:0;overflow-x:auto;padding:0 0 4px;scrollbar-color:var(--stone, #c8c8c1) transparent;scrollbar-width:thin}.theme-chip-row button{border-radius:999px;flex:0 0 auto;font-size:10.5px;font-weight:800;min-height:30px;padding:0 10px;white-space:nowrap}.theme-chip-row button.active{background:var(--text);border-color:var(--text);color:#fff}.right-panel .preset-grid{gap:6px}.right-panel .preset-grid button{align-items:center;border-radius:16px;display:flex;font-size:11px;font-weight:800;gap:6px;justify-content:flex-start;min-height:36px;padding:6px 8px}.right-panel .preset-grid span,.recent-style-button span{border:2px solid;border-radius:999px;display:inline-block;height:13px;width:24px}.right-panel .border-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.right-panel .border-preset-grid button{align-items:center;font-size:11px;font-weight:800;justify-content:center;min-height:36px;padding:6px 4px;text-align:center}.style-form-grid{background:#fff;border:1px solid var(--line);border-radius:18px;padding:9px}.style-form-grid label{font-weight:800}.style-form-grid label small{color:var(--muted);font-size:10px;font-weight:700}.advanced-panel{background:#fff;border:1px solid var(--line);border-radius:16px;margin-top:10px;padding:8px}.advanced-panel summary{cursor:pointer;font-size:12px;font-weight:800;list-style:none}.advanced-panel summary::-webkit-details-marker{display:none}.creative-brief{align-items:flex-start;background:var(--surface-strong);border:1px solid var(--line);border-radius:32px;display:flex;gap:10px;margin-bottom:14px;padding:12px}.creative-brief p{color:var(--muted);font-size:12px;line-height:1.45;margin:0}.brief-icon{align-items:center;background:var(--surface-card);border:1px solid var(--line);border-radius:16px;color:var(--primary);display:flex;height:32px;justify-content:center;width:32px}.preset-grid{display:grid;gap:8px;grid-template-columns:1fr 1fr}.preset-card{align-items:flex-start;border-radius:16px;flex-direction:column;gap:4px;justify-content:flex-start;min-height:76px;padding:10px;text-align:left;white-space:normal}.preset-card strong{font-size:13px}.preset-card small{color:var(--muted);font-size:11px;line-height:1.35}.preset-swatch-row{display:flex;min-height:14px}.preset-swatch-row span{border:2px solid;border-radius:999px;display:block;height:14px;width:34px}.preset-card.active{background:#fff;border-color:var(--text)}.preset-card.active small{color:var(--muted)}.preset-grid.compact{grid-template-columns:1fr 1fr;margin:10px 0}.preset-grid.compact .preset-card{min-height:64px}.region-chip-list{display:grid;gap:6px;margin-bottom:10px}.region-chip{justify-content:flex-start;min-height:34px}.region-chip.active{background:#fff;border-color:var(--text);color:var(--text);font-weight:700}.number-dot{align-items:center;background:linear-gradient(180deg,var(--accent),var(--navy));border-radius:999px;color:#fff;display:inline-flex;font-size:11px;height:20px;justify-content:center;width:20px}.active-region-card{align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;display:grid;gap:2px 8px;grid-template-columns:1fr auto;margin:8px 0;padding:10px}.active-region-card small{color:#64748b}.large-swatch{border:3px solid;border-radius:16px;grid-row:1 / span 2;height:34px;width:42px}.quick-style-block{background:#fff;border:1px solid var(--line);border-radius:16px;margin:10px 0;padding:9px}.quick-style-block h3{color:#334155;font-size:12px;margin:0 0 8px}.recent-style-row{display:flex;flex-wrap:wrap;gap:7px}.recent-style-button{border-radius:999px;min-height:30px;padding:4px;width:38px}.recent-style-button span{border:2px solid;border-radius:999px;display:block;height:18px;width:26px}.style-preview{background:#fff;border:1px solid var(--line);border-radius:16px;display:grid;gap:8px;margin:10px 0;padding:10px}.preview-map-tile{background:linear-gradient(90deg,rgba(203,213,225,.35) 1px,transparent 1px),linear-gradient(0deg,rgba(203,213,225,.35) 1px,transparent 1px),linear-gradient(135deg,#f8fbff,#eaf5ff);background-size:38px 38px,38px 38px,auto;border-radius:16px;height:96px;overflow:hidden;position:relative}.preview-other{border:1px solid rgba(100,116,139,.24);border-radius:46% 54% 48% 52%;position:absolute}.preview-other.boundary-a{height:54px;left:22px;top:20px;transform:rotate(-13deg);width:82px}.preview-other.boundary-b{height:46px;right:24px;top:32px;transform:rotate(17deg);width:68px}.preview-region-shape{border-style:solid;border-radius:44% 56% 42% 58%;box-shadow:0 14px 28px #0f3a782e;height:50px;left:50%;outline:6px solid;outline-offset:2px;position:absolute;top:22px;transform:translate(-50%) rotate(-8deg);width:82px}.preview-label{border-radius:999px;box-shadow:0 6px 16px #0f172a24;font-size:12px;font-weight:800;left:50%;padding:4px 11px;position:absolute;top:38px;transform:translate(-50%)}.preview-meta{align-items:center;display:flex;justify-content:space-between}.preview-meta strong{color:#0f172a;font-size:12px}.preview-meta span{color:#64748b;font-size:11px}.contrast-alert{align-items:center;background:#ecfeff;border:1px solid rgba(20,184,166,.24);border-radius:16px;color:#0f766e;display:flex;font-size:12px;font-weight:800;gap:7px;margin:8px 0;padding:8px 9px}.contrast-alert.warning{background:#fff7ed;border-color:#f9731652;color:#9a3412}.border-preset-grid{display:grid;gap:6px;grid-template-columns:repeat(5,minmax(0,1fr));margin:10px 0}.border-preset-grid button{align-items:flex-start;border-radius:16px;flex-direction:column;gap:3px;min-height:58px;padding:8px 6px;text-align:left}.border-preset-grid strong{font-size:12px}.border-preset-grid small{color:#64748b;font-size:10px;line-height:1.25}.style-action-row,.boundary-preset-row{display:grid;gap:7px;grid-template-columns:repeat(2,1fr);margin:8px 0}.boundary-preset-row{grid-template-columns:repeat(3,1fr)}.plain-toggle{background:transparent;border:1px dashed var(--line-strong);color:var(--text);font-weight:800;margin:4px 0 10px;min-height:34px;width:100%}.output-presets{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:8px}.output-presets button{font-size:11px;min-height:36px;padding:0 6px}.checkbox-row{align-items:center;display:flex;gap:8px}.basic-adjustments{background:#fff;border:1px solid var(--line);border-radius:18px;display:grid;gap:10px;margin-top:8px;padding:12px}.basic-adjustments>label:first-child{align-items:center;display:flex;font-size:11px;font-weight:800;justify-content:space-between}.basic-adjustments input[type=color]{border:1px solid var(--line);border-radius:10px;height:32px;padding:3px;width:52px}.output-actions{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin:8px 0 14px}.output-actions button{font-weight:800;min-height:42px}.output-actions .primary-action{background:var(--primary);border-color:var(--primary);color:#fff}.map-shell{border:1px solid var(--line);border-radius:32px;background:#fff;box-shadow:var(--shadow-soft);color-scheme:light;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:hidden;min-height:0;min-width:0;max-width:100%;height:100%;position:relative;width:100%}.map-canvas{background:#f8fafc;color-scheme:light;height:100%;isolation:isolate;width:100%}.map-canvas .ol-viewport,.map-canvas .ol-layer:not(.base-map-layer),.map-canvas .ol-layer:not(.base-map-layer) canvas{filter:none!important;mix-blend-mode:normal!important}.map-canvas.map-tone-preserved .base-map-layer,.map-canvas.map-tone-preserved .base-map-layer canvas{filter:none!important}.map-canvas.map-tone-adjusted .base-map-layer,.map-canvas.map-tone-adjusted .base-map-layer canvas{filter:var(--map-tone-filter)}.tone-panel summary{align-items:center;background:#fff;border-radius:12px;display:flex;justify-content:center;min-height:32px}.tone-preset-row{display:grid;gap:5px;grid-template-columns:repeat(5,minmax(0,1fr));margin:8px 0}.tone-preset-row button{font-size:10px;min-height:30px;padding:0 4px}.tone-controls{display:grid;gap:4px}.tone-controls.disabled{opacity:.5}.map-shell .ol-zoom{background:#fffffff0;border:1px solid var(--line);border-radius:16px;box-shadow:none;display:grid;gap:4px;left:auto;padding:5px;right:14px;top:14px}.map-shell .ol-zoom button{background:#fff;border:1px solid var(--line);border-radius:16px;color:var(--text);font-size:18px;font-weight:800;height:34px;line-height:1;min-height:34px;padding:0;width:34px}.map-shell .ol-zoom button:hover{background:var(--secondary-bg);border-color:var(--line-strong)}.map-load-message{background:#ffffffe6;border:1px solid var(--line);border-radius:999px;color:var(--navy);font-size:12px;left:12px;padding:6px 8px;position:absolute;top:12px;pointer-events:none}.admin-hover-card{background:#fffffff0;border:1px solid rgba(15,23,42,.12);border-radius:16px;box-shadow:0 14px 30px #0f172a2e;color:var(--navy);display:grid;gap:2px;left:0;max-width:220px;min-width:138px;padding:9px 11px;pointer-events:none;position:absolute;top:0;transform:translate(14px,14px);z-index:6}.admin-hover-card.align-right{transform:translate(calc(-100% - 14px),14px)}.admin-hover-card strong{font-size:13px;font-weight:900;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-hover-card span{color:var(--muted);font-size:11px;font-weight:700;line-height:1.3}.map-context-menu{background:#fffffffa;border:1px solid rgba(15,23,42,.14);border-radius:18px;box-shadow:0 18px 42px #0f172a33;display:grid;gap:4px;left:0;min-width:184px;padding:7px;position:absolute;top:0;transform:translate(10px,10px);z-index:8}.map-context-menu.align-right{transform:translate(calc(-100% - 10px),10px)}.map-context-menu.align-bottom{transform:translate(10px,calc(-100% - 10px))}.map-context-menu.align-right.align-bottom{transform:translate(calc(-100% - 10px),calc(-100% - 10px))}.context-menu-title{border-bottom:1px solid var(--line);display:grid;gap:2px;margin-bottom:3px;padding:5px 6px 7px}.context-menu-title strong{color:var(--navy);font-size:12px;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-menu-title span{color:var(--muted);font-size:10.5px;font-weight:700}.map-context-menu button{background:transparent;border:0;border-radius:12px;color:var(--text);font-size:12px;font-weight:800;justify-content:flex-start;min-height:32px;padding:0 9px;text-align:left}.map-context-menu button:hover{background:var(--surface-card)}.map-context-menu .danger-menu-item{color:#b91c1c}.shape-editor{background:#fff;border:1px solid var(--line);border-radius:16px;margin-top:10px;padding:10px}.point-edit-card{align-items:center;background:var(--surface-card);border:1px solid var(--line);border-radius:16px;display:grid;gap:8px;grid-template-columns:1fr auto;margin-bottom:10px;padding:10px}.point-edit-card strong{display:block;font-size:13px}.point-edit-card span{color:var(--muted);display:block;font-size:11px;line-height:1.35;margin-top:2px}.point-edit-card button{min-height:32px;padding:0 10px}.point-edit-card button.active{background:var(--primary);border-color:var(--primary);color:#fff}.statusbar{align-items:center;background:#262622;color:#fff;display:flex;font-size:11px;gap:6px;overflow-x:auto;padding:0 8px;white-space:nowrap}.statusbar::-webkit-scrollbar{display:none}.status-chip{background:#ffffff1f;border:1px solid rgba(255,255,255,.18);border-radius:999px;flex:0 0 auto;line-height:1;padding:4px 7px}.status-chip.strong{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:800}.status-chip.hot{background:#fff3;border-color:#ffffff5c}.status-chip.save-state{margin-left:auto}.workflow-guide{background:var(--surface-card);border:1px solid var(--line);border-radius:24px;box-shadow:none;min-width:0;overflow:hidden;padding:10px}.workflow-guide.collapsed{padding:7px 10px}.quick-style-guide{background:var(--surface-card)}.workflow-header{align-items:center;display:flex;justify-content:space-between;gap:8px}.workflow-header div{display:grid;gap:2px}.workflow-header strong{color:var(--navy);font-size:12px}.workflow-header span{color:var(--muted);display:none;font-size:11px}.workflow-header button{min-height:30px;padding:0 9px}.quick-style-toolbar{display:flex;gap:6px;margin-top:6px;max-width:100%;min-width:0;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.quick-style-toolbar::-webkit-scrollbar{display:none}.quick-target,.quick-control-group{background:#fff;border:1px solid var(--line);border-radius:16px;flex:0 0 auto;min-height:52px;padding:6px}.quick-target{width:184px}.color-group{width:282px}.quick-control-group:not(.color-group){width:210px}.quick-control-group.fine-style-group{overflow:hidden;width:250px}.target-group{width:138px}.quick-control-group:nth-of-type(3),.quick-control-group:nth-of-type(4){min-height:48px}.quick-target{align-items:center;display:grid;gap:6px;grid-template-columns:auto 1fr auto}.quick-target-icon{align-items:center;background:var(--secondary-bg);border:1px solid var(--line);border-radius:16px;color:var(--primary);display:inline-flex;height:30px;justify-content:center;width:30px}.quick-target strong,.quick-group-title{color:var(--navy);font-size:12px;font-weight:800}.quick-target small{color:#64748b;display:block;font-size:10.5px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:88px}.quick-target button{min-height:28px;padding:0 8px}.quick-control-group{display:grid;gap:5px}.quick-group-title{align-items:center;display:inline-flex;gap:5px}.quick-color-row,.quick-border-row,.quick-boundary-row{display:grid;gap:4px}.quick-color-row{grid-template-columns:repeat(6,minmax(0,1fr))}.quick-border-row{grid-template-columns:repeat(5,minmax(0,1fr))}.quick-boundary-row{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-target-switch{display:grid;gap:4px;grid-template-columns:1fr 1fr}.quick-target-switch button{font-size:10px;font-weight:800;min-height:32px;padding:0 4px}.quick-target-switch button.active{background:var(--text);border-color:var(--text);color:#fff}.quick-fine-row{align-items:center;display:grid;gap:4px;grid-template-columns:40px 40px minmax(64px,1fr) 40px;min-width:0}.quick-fine-row label{align-items:center;display:grid;font-size:10px;gap:2px;margin:0;min-width:0;overflow:hidden}.quick-fine-row input[type=color]{border-radius:999px;height:26px;min-height:26px;padding:2px;width:100%}.quick-fine-row input[type=range]{min-height:24px;padding:0;width:100%}.quick-fine-row input[type=number]{font-size:11px;min-height:26px;padding:3px 2px;text-align:center;width:100%}.quick-color-row button,.quick-border-row button,.quick-boundary-row button{border-radius:16px;font-size:10px;font-weight:800;min-height:32px;padding:3px 4px}.quick-color-row button{align-items:center;flex-direction:column;gap:2px}.quick-color-row span{border:2px solid;border-radius:999px;display:block;height:10px;width:25px}.mode-grid,.workflow-steps{display:none}.shortcut-backdrop{align-items:center;background:#011c366b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:24px;position:fixed;z-index:50}.shortcut-dialog{background:linear-gradient(180deg,#fffffffa,#ebfbfff5);border:1px solid rgba(255,255,255,.72);border-radius:20px;box-shadow:0 28px 70px #002d5247;max-height:min(720px,88vh);max-width:880px;overflow:auto;padding:18px;width:min(880px,92vw)}.shortcut-title{align-items:center;border-bottom:1px solid rgba(0,117,190,.14);display:flex;justify-content:space-between;margin-bottom:14px;padding-bottom:12px}.shortcut-title div{align-items:center;color:var(--navy);display:flex;gap:8px;font-size:18px}.shortcut-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.shortcut-section{background:#ffffffbd;border:1px solid rgba(0,117,190,.12);border-radius:14px;margin:0;padding:12px}.shortcut-row{align-items:center;display:grid;gap:10px;grid-template-columns:96px 1fr;padding:8px 0}.shortcut-row+.shortcut-row{border-top:1px solid rgba(0,117,190,.1)}kbd{background:linear-gradient(180deg,#fff,#dff7ff);border:1px solid rgba(0,117,190,.28);border-bottom-width:3px;border-radius:8px;color:var(--navy);font-size:12px;font-weight:900;padding:5px 7px;text-align:center}.shortcut-row strong{color:var(--text);display:block;font-size:13px}.shortcut-row span{color:var(--muted);display:block;font-size:12px;line-height:1.35}@media(max-width:1180px){.app{min-width:0}.workspace{grid-template-columns:270px minmax(560px,1fr) 330px;overflow-x:auto}}.studio-app{grid-template-rows:64px minmax(0,1fr) 48px;min-width:1080px}.studio-toolbar{gap:0;padding:0 16px;position:relative;z-index:30}.studio-toolbar .brand{margin-left:10px}.studio-toolbar .brand-copy strong{font-size:16px}.studio-file-menu{position:relative}.studio-menu-trigger{background:transparent!important;border:0!important;min-height:38px!important;padding:0 8px!important}.studio-menu-popover{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 44px #21192229;display:grid;gap:4px;left:0;min-width:196px;padding:8px;position:absolute;top:48px;z-index:50}.studio-menu-popover button,.studio-menu-popover .button{background:transparent;border:0;justify-content:flex-start;min-height:38px;padding:0 10px}.studio-menu-popover button:hover,.studio-menu-popover .button:hover{background:var(--surface-card)}.studio-project-divider{background:var(--line);height:26px;margin:0 14px;width:1px}.studio-project-name{background:transparent;border:0;border-radius:10px;color:var(--body);font-size:13px;font-weight:800;min-height:36px}.studio-save-status{color:#8a8a82;font-size:11px;margin-left:12px}.studio-toolbar .toolbar-actions{margin-left:auto}.studio-toolbar .toolbar-actions button{background:transparent;border:0}.studio-toolbar .toolbar-actions .studio-edit-mode{background:#211922;color:#fff}.studio-toolbar .toolbar-actions .studio-edit-mode.active{background:#111827;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--focus-outer)}.studio-toolbar .toolbar-actions .primary-action{background:var(--primary);border-color:var(--primary);color:#fff;min-height:42px;padding-inline:18px}.studio-workspace{background:#f3f3ef;display:grid;grid-template-columns:78px minmax(0,1fr);min-height:0;overflow:hidden}.studio-rail{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;min-height:0;padding:14px 8px 10px;position:relative;z-index:20}.studio-rail-tools,.studio-rail-footer{display:grid;gap:6px}.studio-rail button{background:transparent;border:0;border-radius:14px;color:#4b4b45;display:grid;font-size:10px;font-weight:700;gap:4px;justify-items:center;min-height:58px;padding:7px 3px}.studio-rail button:hover{background:var(--surface-card)}.studio-rail button.active{background:#f0efeb;color:#111;font-weight:900}.studio-canvas{min-height:0;min-width:0;overflow:hidden;position:relative}.studio-canvas>.map-shell{border:0;border-radius:0;height:100%}.studio-layer-browser{bottom:16px;left:16px;position:absolute;top:16px;width:292px;z-index:12}.studio-layer-browser>.panel{background:#fffffff5;border-radius:18px;box-shadow:0 16px 36px #21192221;height:100%;padding:14px}.studio-browser-heading{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin:0 -2px 12px;padding:0 2px 12px}.studio-browser-heading>div{display:grid;gap:2px}.studio-browser-heading strong{font-size:14px}.studio-browser-heading small{color:var(--muted);font-size:10px}.studio-layer-browser .selection-overview{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 12px}.studio-layer-browser section{margin-bottom:12px}.studio-object-browser section{padding-bottom:12px}.studio-object-browser h2{font-size:11px;margin-bottom:7px}.studio-object-list{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.studio-object-row,.studio-layer-row{align-items:center;background:#fff;border:0;border-radius:0;display:grid;font-size:11px;gap:8px;grid-template-columns:14px minmax(0,1fr) 28px;justify-items:start;min-height:40px;padding:0 8px;width:100%}.studio-object-row+.studio-object-row,.studio-layer-row+.studio-layer-row{border-top:1px solid var(--line)}.studio-object-row strong,.studio-layer-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-layer-row.active{background:var(--surface-card);font-weight:900}.studio-layer-row:hover{background:var(--surface-card)}.object-color{border:1px solid rgba(0,0,0,.1);border-radius:50%;height:12px;width:12px}.studio-inspector{max-height:calc(100% - 84px);position:absolute;right:42px;top:76px;width:318px;z-index:14}.studio-inspector>.panel{background:#fffffff7;border-radius:18px;box-shadow:0 18px 44px #21192226;max-height:calc(100vh - 196px);padding:14px}.studio-inspector-heading{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.studio-inspector-heading>div{align-items:center;display:flex;gap:9px;min-width:0}.studio-inspector-heading>div>div{display:grid;gap:2px;min-width:0}.studio-inspector-heading strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-inspector-heading small{color:var(--muted);font-size:10px}.studio-target-dot{border:2px solid rgba(0,0,0,.1);border-radius:50%;flex:0 0 auto;height:16px;width:16px}.studio-style-panel>section>h2{display:none}.studio-style-panel .target-summary{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;margin-bottom:12px;padding:0 0 12px}.studio-style-panel .target-summary>.target-icon,.studio-style-panel .target-summary>div:nth-child(2){display:none}.studio-style-panel .target-action-stack{grid-template-columns:1fr 1fr;width:100%}.studio-style-panel .quick-style-block{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:0 0 12px}.studio-style-panel .preset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-style-panel .preset-grid button{justify-content:flex-start;min-height:44px;padding:0 12px}.studio-style-panel .border-preset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.studio-style-panel .basic-adjustments{border:0;border-radius:0;margin:0;padding:2px 0 12px}.advanced-style-trigger{background:transparent;border:1px solid var(--line);font-size:11px;font-weight:800;justify-content:space-between;margin-top:4px;min-height:42px;width:100%}.studio-hint{align-items:center;background:#fffffff7;border:1px solid var(--line);border-radius:14px;bottom:24px;box-shadow:0 12px 28px #2119221f;display:flex;font-size:12px;font-weight:800;gap:14px;left:324px;padding:11px 12px 11px 16px;position:absolute;z-index:13}.studio-hint:before{color:#f59e0b;content:"TIP";font-size:10px;font-weight:900}.studio-hint button{background:transparent;border:0;font-size:18px;min-height:28px;padding:0 4px}.studio-app .statusbar{background:#fff;border-top:1px solid var(--line);gap:0;padding:0 12px}.studio-app .status-chip{background:transparent;border:0;border-radius:0;color:var(--muted);font-size:10px;min-height:48px;padding:0 14px}.studio-app .status-chip+.status-chip{border-left:1px solid var(--line)}.studio-app .status-chip.strong{background:transparent;color:var(--text)}.studio-app .status-chip.save-state{margin-left:auto}@media(max-width:1180px){.studio-app{min-width:980px}.studio-layer-browser{width:270px}.studio-inspector{right:20px;width:300px}.studio-save-status{display:none}}@media(max-width:767px){html,body,#root{height:100%;width:100%}.studio-app{grid-template-rows:56px minmax(0,1fr);height:100vh;height:100dvh;min-width:0;overflow:hidden;width:100%}.studio-toolbar{gap:4px;min-width:0;padding:0 8px}.studio-toolbar .brand{flex:0 0 38px;justify-content:center;margin-left:0}.studio-toolbar .brand-copy,.studio-project-divider,.studio-project-name,.studio-save-status{display:none}.studio-menu-trigger,.studio-toolbar .toolbar-actions button{border-radius:12px;flex:0 0 42px;font-size:0;height:42px;min-height:42px!important;padding:0!important;width:42px}.studio-menu-trigger svg,.studio-toolbar .toolbar-actions button svg{height:18px;width:18px}.studio-menu-popover{left:0;max-width:calc(100vw - 16px);top:48px}.studio-menu-popover button,.studio-menu-popover .button{font-size:12px}.studio-toolbar .toolbar-actions{gap:4px;margin-left:auto;overflow:visible;padding:0}.studio-toolbar .toolbar-actions .studio-edit-mode,.studio-toolbar .toolbar-actions .primary-action{min-height:42px;padding:0}.studio-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 68px;min-width:0}.studio-canvas{grid-column:1;grid-row:1}.studio-rail{border-right:0;border-top:1px solid var(--line);grid-column:1;grid-row:2;min-width:0;padding:5px 4px calc(5px + env(safe-area-inset-bottom));z-index:30}.studio-rail-tools{display:grid;gap:2px;grid-template-columns:repeat(6,minmax(0,1fr));width:100%}.studio-rail-footer{display:none}.studio-rail button{border-radius:12px;font-size:9px;gap:2px;min-height:56px;min-width:0;padding:5px 1px}.studio-rail button svg{height:19px;width:19px}.studio-layer-browser,.studio-inspector{bottom:10px;left:8px;max-height:min(62dvh,520px);right:8px;top:auto;width:auto;z-index:24}.studio-layer-browser{height:min(56dvh,480px)}.studio-layer-browser>.panel,.studio-inspector>.panel{border:1px solid rgba(33,25,34,.12);border-radius:20px 20px 16px 16px;box-shadow:0 -10px 36px #2119222e;max-height:min(62dvh,520px);overscroll-behavior:contain;padding:14px 14px calc(16px + env(safe-area-inset-bottom))}.studio-layer-browser>.panel{height:100%}.studio-browser-heading,.studio-inspector-heading,.studio-object-row,.studio-layer-row,.studio-style-panel .preset-grid button,.advanced-style-trigger{min-height:44px}.studio-hint{bottom:10px;font-size:11px;gap:8px;left:10px;max-width:calc(100% - 20px);padding:9px 8px 9px 12px;right:auto}.studio-hint span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-app .statusbar{display:none}.ol-zoom{right:10px;top:10px}}
