@import "https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Instrument+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&family=Spline+Sans+Mono:wght@400;500&display=swap";
:root{--brand:#c08b40;--brand-light:#d4a35c;--brand-dim:#c08b401f;--bg-body:#f8f9fa;--panel:#fff;--item-bg:#f8f9fa;--overlay-bg:#fffffff5;--sheet-bg:#fff;--ink:#0f172a;--ink-secondary:#475569;--ink-muted:#94a3b8;--line:#0000000f;--strong-line:#0000001f;--border:#00000014;--positive:#10b981;--negative:#ef4444;--focus-ring:#c08b4073;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #0000001f}[data-theme=dark]{--bg-body:#080f18;--panel:#0f172ad9;--item-bg:#111b27;--overlay-bg:#0a141ff5;--sheet-bg:#0f172a;--ink:#f1f5f9;--ink-secondary:#94a3b8;--ink-muted:#64748b;--line:#ffffff0f;--strong-line:#ffffff1f;--border:#92b0c824;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #0000008c}*,:before,:after{box-sizing:border-box}html,body{color:var(--ink);background-color:var(--bg-body);width:100%;min-height:100dvh;margin:0;font-family:Inter,Instrument Sans,system-ui,sans-serif;transition:background-color .3s,color .3s;overflow-x:hidden}body:before{content:"";z-index:-1;background:radial-gradient(circle at 84% 14%, var(--brand-dim), transparent 42%), radial-gradient(circle at 12% 86%, var(--brand-dim), transparent 38%), repeating-linear-gradient(90deg, var(--line) 0, var(--line) 1px, transparent 1px, transparent 24px);pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}[data-theme=light] body{background:linear-gradient(160deg,#fff,#f8fafc 45%,#f1f5f9 100%)}[data-theme=dark] body{background:linear-gradient(160deg,#080f18,#0f172a 45%,#111827 100%)}#root{background-color:#0000;min-height:100dvh}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}
.skeleton-pulse{background:var(--line);background-size:200% 100%;border-radius:4px;animation:2s linear infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.studio-skeleton{background-color:var(--bg-body);grid-template:"header header"64px"map sidebar"1fr/1fr 360px;width:100vw;height:100dvh;display:grid;overflow:hidden}.skeleton-header{background-color:var(--panel);border-bottom:1px solid var(--border);grid-area:header;align-items:center;gap:32px;padding:0 24px;display:flex}.skeleton-logo{background-color:var(--line);border-radius:8px;width:120px;height:32px}.skeleton-search{background-color:var(--item-bg);border-radius:20px;width:400px;height:40px}.skeleton-actions{gap:12px;margin-left:auto;display:flex}.skeleton-btn{background-color:var(--line);border-radius:10px;width:40px;height:40px}.skeleton-map{background-color:var(--item-bg);grid-area:map;position:relative}.skeleton-sidebar{background-color:var(--panel);border-left:1px solid var(--border);flex-direction:column;grid-area:sidebar;gap:20px;padding:24px;display:flex}.skeleton-card{background-color:var(--item-bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;width:100%;height:140px;padding:16px;display:flex}.skeleton-text{background-color:var(--line);border-radius:6px;height:12px}.skeleton-text.title{width:60%;height:16px}.skeleton-text.short{width:40%}@media (max-width:1024px){.studio-skeleton{grid-template:"header"56px"map"1fr"nav"64px/1fr}.skeleton-sidebar{display:none}.skeleton-nav{background-color:var(--panel);border-top:1px solid var(--border);grid-area:nav;justify-content:space-around;align-items:center;display:flex}.skeleton-search{width:200px}}
.app-shell{max-width:1780px;margin:0 auto;padding:24px}.app-header,.general-header{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:14px;display:grid}.general-header-actions{align-items:center;gap:8px;display:inline-flex}.install-header-wrap{display:inline-flex;position:relative}.general-header-text-btn{border:1px solid var(--border);color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:0 0;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;gap:0;padding:7px 14px;font-family:Spline Sans Mono,monospace;font-size:.76rem;font-weight:600;display:inline-flex}.general-header-text-btn:disabled{opacity:.48;cursor:default}.general-header-btn-label{display:inline}.general-header-btn-icon{display:none}.install-help-modal-backdrop{z-index:600;background:var(--overlay-bg);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.install-help-modal{border:1px solid var(--line);background:var(--sheet-bg);width:min(420px,100vw - 24px);box-shadow:var(--shadow-lg);border-radius:14px;padding:18px 14px 14px;position:relative}.install-help-modal-close{border:1px solid var(--line);background:var(--item-bg);width:28px;height:28px;color:var(--ink-secondary);border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:10px;right:10px}.install-help-modal-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink);margin:0 28px 12px 0;font-family:Spline Sans Mono,monospace;font-size:.82rem}.install-help-modal-text{color:var(--ink-secondary);margin:0;font-family:Spline Sans Mono,monospace;font-size:.72rem;line-height:1.5}pre.install-help-modal-text{white-space:pre-wrap;word-break:break-word;max-height:52vh;overflow:auto}.install-help-steps{gap:10px;margin:0;padding:0;list-style:none;display:grid}.install-help-steps li{color:var(--ink-secondary);grid-template-columns:24px 1fr;align-items:center;gap:10px;font-family:Spline Sans Mono,monospace;font-size:.72rem;line-height:1.45;display:grid}.install-help-step-icon{border:1px solid var(--line);background:var(--item-bg);width:24px;height:24px;color:var(--ink-secondary);border-radius:7px;justify-content:center;align-items:center;display:inline-flex}.install-help-step-icon svg{width:14px;height:14px}.install-help-emphasis{color:var(--ink);font-style:normal;font-weight:700}.brand-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.brand-copy{min-width:0}.brand-logo{width:clamp(64px,7vw,102px);height:auto;filter:drop-shadow(var(--shadow-md));flex:none;margin-left:auto}.app-kicker{text-transform:uppercase;letter-spacing:.16em;opacity:.74;margin:0;font-family:Spline Sans Mono,monospace;font-size:.76rem}.app-header h1{letter-spacing:.03em;color:var(--ink);text-shadow:none;margin:6px 0;font-family:Bebas Neue,sans-serif;font-size:clamp(2.35rem,6.2vw,4.7rem);line-height:.9}.app-copy{opacity:.86;max-width:1000px;color:var(--ink-secondary);margin:0;font-size:1rem}.app-grid{grid-template-columns:minmax(340px,410px) minmax(0,1fr);grid-template-areas:"config preview""config inspector";align-items:start;gap:14px;display:grid}.settings-panel,.preview-panel,.inspector-card,.info-panel-group{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow-lg);border-radius:16px}.settings-panel{grid-area:config;padding:0;overflow:hidden}.accordion-item{border-bottom:1px solid var(--line);background:var(--item-bg)}.accordion-item:last-child{border-bottom:none}.accordion-item.accordion-item--open{background:var(--item-bg)}.accordion-header{width:100%;color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;background:var(--item-bg);border:none;align-items:center;gap:12px;padding:20px 16px;font-family:Spline Sans Mono,monospace;font-size:.78rem;font-weight:600;transition:color .18s,background .18s;display:flex}.accordion-header:hover{color:var(--ink);background:var(--line)}.accordion-header.is-open{color:var(--ink)}.accordion-icon{width:18px;height:18px;color:var(--ink-secondary);flex-shrink:0}.accordion-label{text-align:left;flex:1}.accordion-chevron{opacity:.6;flex-shrink:0;width:16px;height:16px;transition:transform .26s cubic-bezier(.4,0,.2,1)}.accordion-header.is-open .accordion-chevron{opacity:.9;transform:rotate(180deg)}.accordion-body{background:var(--item-bg);opacity:0;visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .26s cubic-bezier(.4,0,.2,1);display:grid;overflow:hidden}.accordion-body.is-open{opacity:1;visibility:visible;grid-template-rows:1fr}.accordion-body-inner{min-height:0;padding:0 14px;overflow:hidden}.accordion-body.is-open .accordion-body-inner{padding-bottom:14px}@media (min-width:769px){.accordion-body-inner>.panel-block>h2,.accordion-body-inner .map-settings-theme-part>h2,.accordion-body-inner .map-settings-layout-part>h2{display:none}}.preview-panel{grid-area:preview;padding:3px}.info-panel{grid-area:inspector;grid-template-columns:1fr;gap:12px;display:grid}.app-grid{grid-template-columns:minmax(320px,390px) minmax(0,1fr)}@media (max-width:980px){.app-header,.general-header{grid-template-columns:1fr}.app-grid{grid-template-columns:1fr;grid-template-areas:"config""preview""inspector"}.info-panel{grid-template-columns:1fr}}@media (max-width:760px){.app-shell{padding:14px}.brand-logo{width:100px}}.install-prompt{border:1px solid var(--line);background:var(--sheet-bg);-webkit-backdrop-filter:blur(8px);color:var(--ink-secondary);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px 14px;font-size:.84rem;display:flex}.install-prompt-text{flex:auto;min-width:0;line-height:1.45}.install-prompt-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}button.install-prompt-btn{border:1px solid var(--border);background:var(--ink);width:auto;color:var(--bg-body);cursor:pointer;white-space:nowrap;box-shadow:0 0 10px var(--focus-ring);border-radius:999px;margin:0;padding:7px 14px;font-size:.8rem;font-weight:700;transition:border-color .15s,box-shadow .15s}button.install-prompt-btn:hover{background:var(--ink);opacity:.9;box-shadow:var(--shadow-md);transform:translateY(-1px)}button.install-prompt-dismiss{border:1px solid var(--border);width:auto;color:var(--ink-secondary);cursor:pointer;letter-spacing:.015em;box-sizing:border-box;background:0 0;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:7px 14px;font-size:.8rem;font-weight:700;line-height:1;transition:color .15s,border-color .15s,background .15s;display:inline-flex}button.install-prompt-dismiss:hover{color:var(--ink);border-color:var(--line);background:var(--item-bg)}.install-prompt-share-icon{font-size:1em;font-style:normal;display:inline-block}.install-prompt-mobile-icon{vertical-align:-.15em;color:currentColor;width:1.05em;height:1.05em;margin-right:8px;display:inline-block}
.panel-block+.panel-block{margin-top:12px}.mobile-section--theme-settings .map-settings-layout-part,.mobile-section--layout-settings .map-settings-theme-part{display:none}.panel-block h2{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-secondary);margin:0 0 8px;font-family:Spline Sans Mono,monospace;font-size:.76rem}label{color:var(--ink);margin-bottom:9px;font-size:.84rem;font-weight:600;display:block}.field-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.field-grid.triple{grid-template-columns:repeat(3,minmax(0,1fr))}.map-dimension-fields{grid-template-columns:1fr;gap:10px;display:grid}.map-size-fields-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.distance-slider-field{gap:8px;margin-bottom:0;display:grid}.distance-slider-field>span{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:10px;display:grid}.distance-slider-value{letter-spacing:.02em;color:var(--ink);font-family:Spline Sans Mono,monospace}.distance-slider-input{text-align:right;appearance:textfield;border-radius:10px;width:100%;min-height:48px;margin-top:0;padding:12px;font-family:Spline Sans Mono,monospace;font-size:.82rem}.distance-slider-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.distance-slider-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.distance-slider{appearance:none;cursor:pointer;background:0 0;border:none;outline:none;width:100%;height:20px;margin:0;padding:0;display:block}.distance-slider::-webkit-slider-runnable-track{border:1px solid var(--border);background:var(--line);box-sizing:border-box;border-radius:999px;height:10px}.distance-slider::-webkit-slider-thumb{appearance:none;border:2px solid var(--border);background:var(--ink);width:20px;height:20px;box-shadow:var(--shadow-sm);box-sizing:border-box;cursor:grab;border-radius:999px;margin-top:-5px}.distance-slider::-moz-range-track{border:1px solid var(--border);background:var(--line);box-sizing:border-box;border-radius:999px;height:10px}.distance-slider::-moz-range-thumb{border:2px solid var(--border);background:var(--ink);width:20px;height:20px;box-shadow:var(--shadow-sm);box-sizing:border-box;border-radius:999px}.distance-slider-meta{height:16px;color:var(--ink-secondary);margin-top:5px;font-family:Spline Sans Mono,monospace;font-size:.66rem;position:relative}.distance-slider-meta-mark{white-space:nowrap;line-height:1;position:absolute;top:0}.field-grid.keep-two-mobile{grid-template-columns:repeat(2,minmax(0,1fr))}.map-dimension-fields label{margin-bottom:0}.map-details-section{margin-top:6px}.map-details-subtitle{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);margin:0 0 8px;font-family:Spline Sans Mono,monospace;font-size:.72rem}.map-details-card{background:var(--item-bg);border:none;border-radius:12px;gap:10px;padding:0;display:grid}.map-details-card .map-dimension-fields{gap:0}.form-control-tall,.map-dimension-input{min-height:48px;padding:12px}.toggle-field{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.theme-switch{justify-content:center;align-items:center;width:58px;height:34px;display:inline-flex;position:relative}.theme-switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.theme-switch-track{background:var(--line);border-radius:999px;width:58px;height:34px;transition:background-color .16s;display:block;position:relative}.theme-switch-track:after{content:"";background:var(--bg-body);width:26px;height:26px;box-shadow:var(--shadow-sm);border-radius:999px;transition:transform .16s;position:absolute;top:4px;left:4px}.theme-switch input:checked+.theme-switch-track{background:var(--brand)}.theme-switch input:checked+.theme-switch-track:after{transform:translate(24px)}.theme-switch input:focus-visible+.theme-switch-track{box-shadow:0 0 0 3px var(--focus-ring)}.credits-toggle-field{margin-top:10px}.credits-hint{color:var(--ink-muted);margin:2px 0 0;font-size:.74rem;font-weight:400;line-height:1.45}.support-modal{width:min(420px,100%);max-height:unset;box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:14px;position:relative;overflow:hidden}.support-modal__close{border:1px solid var(--border);background:var(--item-bg);width:28px;height:28px;color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:10px;right:10px}.support-modal__close svg{width:14px;height:14px}.support-modal__close:hover,.support-modal__close:focus-visible{filter:none;background:var(--item-bg-hover);transform:none}.support-modal__body{background:var(--sheet-bg);-webkit-background-clip:padding-box;background-clip:padding-box;gap:14px;padding:18px 18px 16px;display:grid}.support-modal__headline{color:var(--ink);letter-spacing:-.01em;margin:0;font-size:1.05rem;font-weight:700;line-height:1.35}.support-modal__text{color:var(--ink-secondary);margin:0;font-size:1rem;line-height:1.6}.support-modal__text strong{color:var(--ink);font-weight:700}.support-modal__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;margin-top:6px;display:flex}.support-modal__kofi{border:1px solid var(--border);background:var(--brand);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:6px;padding:10px 20px;font-size:.84rem;font-weight:700;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s,color .15s;display:inline-flex}.support-modal__kofi:hover,.support-modal__kofi:focus-visible{filter:none;border-color:var(--border);background:var(--brand);box-shadow:var(--shadow-sm);color:var(--ink);transform:none}.support-modal__instagram{border:1px solid var(--border);background:var(--brand);color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:6px;padding:10px 20px;font-size:.84rem;font-weight:700;text-decoration:none;transition:border-color .15s,background .15s,box-shadow .15s,color .15s;display:inline-flex}.support-modal__instagram svg{width:16px;height:16px}.support-modal__instagram:hover,.support-modal__instagram:focus-visible{filter:none;border-color:var(--ink-secondary);background:var(--brand);box-shadow:var(--shadow-sm);color:var(--ink);transform:none}.support-modal__dismiss{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 4px;font-size:.8rem;font-weight:500;transition:color .15s}.support-modal__dismiss:hover,.support-modal__dismiss:focus-visible{filter:none;color:var(--ink);transform:none}input,select,button{font:inherit}input:not([type=checkbox]):not([type=radio]),select{border:1px solid var(--border);background:var(--item-bg);width:100%;color:var(--ink);border-radius:10px;outline:none;margin-top:4px;padding:9px 10px;transition:border-color .16s,box-shadow .16s}input::placeholder{color:var(--ink-muted)}input:not([type=checkbox]):not([type=radio]):focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.location-autocomplete{margin-top:4px;position:relative}.location-autocomplete input{margin-top:0}.location-input-wrap{position:relative}.location-search-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.location-input-wrap input{padding-right:34px}button.location-current-btn{border:1px solid var(--border);background:var(--item-bg);width:48px;min-height:48px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;gap:6px;margin:0;padding:0;font-size:.72rem;font-weight:700;display:inline-flex}.location-current-btn svg{width:22px;height:22px}button.location-current-btn:not(:disabled):hover,button.location-current-btn:focus-visible{filter:none;border-color:var(--brand);background:var(--item-bg-hover);transform:none}.location-permission-message{color:var(--negative);margin:8px 0 0;font-size:.73rem;line-height:1.45}.location-suggestions{border:1px solid var(--border);background:var(--sheet-bg);box-shadow:var(--shadow-lg);z-index:30;border-radius:10px;max-height:220px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.location-suggestion{width:100%;color:var(--ink);text-align:left;background:0 0;border:none;border-radius:8px;padding:8px 10px;font-size:.82rem;font-weight:500}.location-suggestion:hover,.location-suggestion:focus-visible{background:var(--item-bg-hover)}.location-suggestion:not(:disabled):hover{filter:none;transform:none}.location-suggestion-status{color:var(--ink-secondary);padding:8px 10px;font-size:.78rem}.theme-note{color:var(--ink-muted);margin:0 0 8px;font-size:.8rem}.theme-active-label{color:var(--ink);margin:0;font-size:.84rem;font-weight:600}.theme-section{border:1px solid var(--border);background:var(--item-bg);border-radius:12px;margin:0 0 10px;padding:10px}.theme-summary-header,.theme-edit-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.theme-summary-header .theme-active-label,.theme-edit-header .theme-active-label{flex:auto;min-width:0}.theme-edit-actions{align-items:center;gap:6px;display:inline-flex}.theme-summary-view .theme-card{margin:0}.theme-summary-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.theme-summary-copy{flex:auto;min-width:0}.theme-summary-label{letter-spacing:.03em;color:var(--ink);text-transform:uppercase;margin:0;font-size:1rem;font-weight:700}.theme-summary-label-name{color:var(--ink);text-transform:uppercase;margin:0;font-size:1rem;font-weight:700}.card-scroll-list{display:block}.card-scroll-list .theme-card,.card-scroll-list .layout-card{margin:0 0 8px}.card-scroll-list .theme-card:last-child,.card-scroll-list .layout-card:last-child{margin-bottom:0}.mobile-section--theme-settings .accordion-body-inner{scrollbar-width:none;-ms-overflow-style:none}.mobile-section--theme-settings .accordion-body-inner::-webkit-scrollbar{display:none}.theme-slider{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-ms-overflow-style:none;gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.theme-slider::-webkit-scrollbar{display:none}.theme-slider-wrap{padding:0 12px;position:relative}.theme-slider-chevron{z-index:2;width:28px;height:36px;color:var(--ink-secondary);pointer-events:none;background:linear-gradient(90deg, var(--item-bg), transparent);justify-content:center;align-items:center;font-size:1.15rem;font-weight:700;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.theme-slider-chevron--left{left:-8px}.theme-slider-chevron--right{background:linear-gradient(270deg, var(--item-bg), transparent);right:-8px}.theme-slider .theme-card{scroll-snap-align:start;flex:0 0 calc(33.3333% - 5.33333px);width:calc(33.3333% - 5.33333px);min-width:calc(33.3333% - 5.33333px)}.theme-summary-actions{justify-content:flex-end;margin-top:8px;display:flex}.theme-summary-footer{justify-content:flex-start;align-items:flex-start;gap:10px;margin-top:8px;display:flex}button.theme-customize-btn{border:1px solid var(--border);background:var(--item-bg);width:42px;min-height:42px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;gap:5px;margin:0;padding:0;font-size:.72rem;font-weight:700;line-height:1;display:inline-flex}.theme-summary-head .theme-customize-btn{flex:none}button.theme-customize-btn:not(:disabled):hover,button.theme-customize-btn:focus-visible{filter:none;border-color:var(--border);background:#2f4f66f2;transform:none}.marker-add-btn{gap:6px;padding:9px 14px;font-size:.78rem}.theme-customize-icon{color:currentColor;justify-content:center;align-items:center;width:19px;height:19px;display:inline-flex}.theme-customize-icon svg{fill:currentColor;width:19px;height:19px}button.theme-edit-done-btn{border:1px solid var(--border);background:var(--item-bg);width:auto;color:var(--ink);border-radius:8px;margin:0;padding:5px 10px;font-size:.72rem;font-weight:700}button.theme-edit-done-btn:not(:disabled):hover,button.theme-edit-done-btn:focus-visible{filter:none;border-color:var(--focus-ring);background:var(--item-bg-hover);transform:none}button.theme-reset-all-btn{border:1px solid var(--border);background:var(--panel);width:auto;color:var(--ink);border-radius:8px;margin:0;padding:5px 10px;font-size:.72rem;font-weight:700}button.theme-reset-all-btn:not(:disabled):hover,button.theme-reset-all-btn:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:none}.color-editor-screen{margin:0}.color-editor-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.color-editor-target-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:10px;display:grid}button.color-editor-target{border:1px solid var(--border);background:var(--item-bg);border-radius:9px;justify-items:center;gap:4px;width:100%;margin:0;padding:6px;display:grid}button.color-editor-target.is-active{border-color:var(--focus-ring);box-shadow:0 0 0 2px var(--focus-ring)}button.color-editor-target:not(:disabled):hover,button.color-editor-target:focus-visible{filter:none;border-color:var(--focus-ring);background:var(--item-bg);transform:none}.color-editor-target-swatch{border:1px solid var(--border);border-radius:6px;width:100%;height:34px}.color-editor-target-name{color:var(--ink-muted);text-align:center;font-size:.66rem;line-height:1.2}.layout-active-label{color:var(--ink);margin:0 0 8px;font-size:.84rem;font-weight:600}.layout-summary-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.layout-summary-copy{flex:auto;min-width:0}.layout-summary-label{letter-spacing:.03em;color:var(--ink);text-transform:uppercase;margin:0;font-size:1rem;font-weight:700}.layout-summary-label-name{text-transform:uppercase}.layout-summary-description{color:var(--ink);margin:8px 0 0;font-size:.78rem;line-height:1.42}.section-summary-label{letter-spacing:.03em;color:var(--ink);text-transform:uppercase;margin:0 0 10px;font-size:1rem;font-weight:700}.section-summary-label-name{text-transform:uppercase}.layout-custom-editor{margin-bottom:10px}.layout-inline-groups{gap:10px;margin-bottom:10px;display:grid}.layout-inline-group h3{letter-spacing:.06em;color:var(--ink-muted);text-transform:uppercase;margin:0 0 6px;font-size:.92rem;font-weight:700}.layout-inline-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:126px;gap:8px;width:100%;display:grid}.layout-inline-group,.layout-picker-group{grid-template-columns:1fr;align-items:start;display:grid}.theme-card{text-align:left;border:1px solid var(--border);background:var(--item-bg);border-radius:12px;justify-self:start;width:100%;min-height:108px;margin:0 0 10px;padding:0;transition:border-color .18s,box-shadow .18s,background .18s;position:relative;overflow:hidden}.theme-card.theme-card--map-raster{min-height:0;margin:0 0 10px;padding:0}.theme-card.theme-card--map-raster .theme-map-slice-thumb{width:100%;height:auto;display:block}.theme-card.is-active,.theme-card.is-selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-ring)}.theme-card:hover,.theme-card:focus-within{filter:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-ring);background:var(--item-bg-hover);transform:none}.theme-card-name{background:color-mix(in srgb, var(--item-bg) 78%, transparent);-webkit-backdrop-filter:blur(4px);letter-spacing:.015em;text-transform:none;color:var(--ink);text-shadow:none;white-space:nowrap;text-overflow:ellipsis;z-index:2;border-radius:8px;margin:0;padding:4px 8px;font-size:.72rem;font-weight:700;line-height:1.2;position:absolute;bottom:7px;left:8px;right:8px;overflow:hidden}.theme-card-palette{filter:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;width:100%;height:100%;min-height:108px;display:grid}.theme-card-palette--full{grid-template-columns:repeat(auto-fit,minmax(20px,1fr));gap:0}.theme-card.is-selected .theme-card-palette,.theme-card:hover .theme-card-palette,.theme-card:focus-within .theme-card-palette{filter:none}.theme-card-swatch{width:100%;height:100%;min-height:108px;box-shadow:none;border-right:1px solid #d6e9f729;transition:margin-left .18s}.theme-card-swatch:last-child{border-right:none}.theme-card-name-shadow{pointer-events:none;z-index:1;background:0 0;height:100%;position:absolute;bottom:0;left:0;right:0}.theme-card-description{color:var(--ink-muted);flex:auto;min-width:0;margin:10px 0 0;font-size:.78rem;line-height:1.42}.theme-summary-footer .theme-customize-btn{flex:none;margin:0}.layout-card{text-align:left;border:1px solid var(--border);background:var(--item-bg);border-radius:12px;flex-direction:column;align-items:flex-start;width:100%;height:126px;margin:0 0 10px;padding:8px;display:flex;overflow:hidden}.layout-card.is-selected{border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-ring);background:var(--item-bg)}.layout-card:not(.is-selected):focus-visible{filter:none;border-color:var(--brand);background:var(--item-bg-hover);transform:none}.layout-card-copy{flex-direction:column;justify-content:flex-start;min-width:0;padding:0;display:flex}.layout-card-name{letter-spacing:.03em;text-transform:uppercase;color:var(--ink);margin:0;font-size:.72rem;font-weight:700}.layout-card-meta{letter-spacing:.03em;color:var(--ink-muted);text-transform:uppercase;margin:3px 0 0;font-family:Spline Sans Mono,monospace;font-size:.64rem}.layout-card-symbol{object-fit:contain;background:0 0;border:none;width:calc(100% - 8px);height:68px;margin:10px 4px 0;padding:0;display:block}.layout-card-description{color:var(--ink);margin:8px 0 0;font-size:.78rem;line-height:1.42}.picker-modal-backdrop{z-index:9999;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;justify-content:center;align-items:center;padding:14px;display:flex;position:fixed;inset:0}.picker-modal{border:1px solid var(--border);background:var(--sheet-bg);width:min(560px,100%);max-height:86vh;box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;padding:12px;display:flex}.picker-modal-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.picker-modal-header h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);margin:0;font-family:Spline Sans Mono,monospace;font-size:.76rem}button.picker-modal-close{border:1px solid var(--border);background:var(--item-bg);width:28px;height:28px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;font-size:.8rem;line-height:1;display:inline-flex}button.picker-modal-close:focus-visible{filter:none;background:var(--item-bg-hover);transform:none}.picker-modal-body{padding-right:3px;display:block;overflow-y:auto}.picker-option-list{gap:8px;display:grid}.picker-option-list .theme-card,.picker-option-list .layout-card{margin:0}.layout-picker-groups{gap:12px;display:grid}.layout-picker-group h4{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);margin:0 0 7px;font-family:Spline Sans Mono,monospace;font-size:.9rem}.layout-picker-group .picker-option-list{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:126px;width:100%}.picker-modal-footer{justify-content:flex-end;margin-top:10px;display:flex}button.picker-modal-done{border:1px solid var(--border);background:var(--item-bg);color:var(--ink);padding:8px 12px}button.picker-modal-done:focus-visible{filter:none;background:var(--item-bg-hover);transform:none}.palette-editor-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;display:grid}button.palette-color-item{border:1px solid var(--border);background:var(--item-bg);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:5px;width:100%;margin:0;padding:5px;display:flex}button.palette-color-item.is-active{border-color:var(--border);box-shadow:var(--shadow-sm)}button.palette-color-item:not(:disabled):hover,button.palette-color-item:focus-visible{filter:none;border-color:var(--border);background:var(--item-bg);transform:none}.palette-color-swatch{border:1px solid var(--border);border-radius:5px;width:100%;height:44px;display:block}.palette-color-name{color:var(--ink);word-break:break-word;text-align:center;font-size:.7rem;font-weight:500;line-height:1.2;display:block}.color-picker-popup{border:1px solid var(--border);background:var(--panel);max-width:500px;box-shadow:var(--shadow-sm);border-radius:12px;margin:0 auto;padding:15px;position:relative}.color-preset-grid{grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:8px;display:grid}.color-picker-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}button.color-preset-cell{aspect-ratio:1;cursor:pointer;border:2px solid #0000;border-radius:6px;min-height:30px;margin:0;padding:0;transition:border-color .1s,transform .1s}button.color-preset-cell.is-active{border-color:var(--ink);box-shadow:var(--shadow-sm)}button.color-preset-cell:not(:disabled):hover,button.color-preset-cell:focus-visible{filter:none;border-color:var(--ink-secondary);transform:scale(1.08)}button.color-grid-action{border:1px solid var(--border);background:var(--panel);min-height:44px;color:var(--ink);letter-spacing:.01em;text-align:center;border-radius:9px;justify-content:center;align-items:center;margin:0;padding:0 8px;font-size:.82rem;font-weight:700;line-height:1.05;display:flex}button.color-grid-action.is-active{border-color:var(--focus-ring);background:#2d4e66fa}button.color-grid-action:not(:disabled):hover,button.color-grid-action:focus-visible{filter:none;border-color:var(--focus-ring);background:#2d4e66fa;transform:none}button.color-grid-reset{border-color:var(--border);color:var(--ink)}.color-manual-panel{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-sm);border-radius:10px;margin-top:10px;padding:12px}.color-custom-panel{gap:11px;display:grid}.color-picker-frame{border:1px solid var(--border);background:var(--panel);border-radius:12px;padding:10px}.color-picker-frame .react-colorful{width:100%;height:220px}.color-picker-frame .react-colorful__saturation{border-bottom:none;border-radius:10px 10px 0 0}.color-picker-frame .react-colorful__hue{border-radius:999px;height:20px;margin-top:10px}.color-picker-frame .react-colorful__interactive{border-radius:inherit}.color-picker-frame .react-colorful__pointer{width:20px;height:20px;box-shadow:var(--shadow-sm);border-width:2px}label.color-field-label{color:var(--ink);flex-direction:column;gap:2px;margin-bottom:0;font-size:.68rem;font-weight:600;display:flex}.color-hex-input{letter-spacing:.04em;background:var(--panel);border-color:var(--ink-secondary);border-radius:10px;width:100%;min-height:50px;margin-top:0;padding:12px 14px;font-family:Spline Sans Mono,monospace;font-size:1rem}.markers-summary-card{gap:10px;display:grid}.markers-summary-copy{color:var(--ink);margin:0;font-size:.78rem;line-height:1.45}.markers-summary-preview{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.markers-summary-preview-count{border:1px solid var(--border);background:var(--panel);min-width:28px;height:28px;color:var(--ink-secondary);border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-family:Spline Sans Mono,monospace;font-size:.68rem;display:inline-flex}.markers-section__copy,.markers-section__empty,.markers-section__hint{color:var(--ink);margin:0;font-size:.78rem;line-height:1.45}.markers-section__content{gap:12px;margin-top:12px;display:grid}.markers-section-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.markers-section-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.marker-info-wrap{display:inline-flex;position:relative}.marker-info-wrap--bottom{justify-self:end}button.marker-info-btn{border:1px solid var(--border);background:var(--panel);width:24px;height:24px;color:var(--ink);border-radius:999px}button.marker-info-btn:not(:disabled):hover,button.marker-info-btn:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:none}.marker-info-btn svg{width:13px;height:13px}.marker-info-popover{z-index:8;border:1px solid var(--border);background:var(--panel);width:min(320px,70vw);color:var(--ink);opacity:0;pointer-events:none;border-radius:8px;padding:8px 10px;font-size:.72rem;line-height:1.45;transition:opacity .14s;position:absolute;top:calc(100% + 6px);right:0}.marker-info-wrap:hover .marker-info-popover,.marker-info-wrap:focus-within .marker-info-popover{opacity:1}.markers-section__list{gap:10px;display:grid}.markers-section__mobile-strip{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none;align-items:stretch;gap:7px;padding-top:10px;padding-bottom:2px;padding-right:16px;display:flex;overflow-x:auto}.markers-section__mobile-strip::-webkit-scrollbar{display:none}.markers-section__marker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.marker-mobile-card{scroll-snap-align:start;border:1px solid var(--border);background:var(--panel);border-radius:10px;flex:0 0 clamp(90px,30%,116px);min-width:clamp(90px,30%,116px);position:relative}.marker-mobile-card.is-selected{border-color:var(--focus-ring);box-shadow:var(--shadow-sm)}button.marker-mobile-card__select{width:100%;min-height:72px;color:var(--ink);background:0 0;border:none;border-radius:10px;align-content:center;justify-items:center;gap:7px;margin:0;padding:8px 6px 7px;display:grid}button.marker-mobile-card__select:not(:disabled):hover,button.marker-mobile-card__select:focus-visible{filter:none;background:var(--panel);transform:none}.marker-mobile-card__label{text-align:center;width:100%;color:var(--ink);white-space:normal;word-break:break-word;font-size:.64rem;font-weight:700;line-height:1.25}button.marker-mobile-card__delete{z-index:1;border:1px solid var(--border);background:var(--panel);width:28px;height:28px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:absolute;top:0;right:0;transform:translate(35%,-35%)}button.marker-mobile-card__delete svg{width:15px;height:15px}button.marker-mobile-card__delete:not(:disabled):hover,button.marker-mobile-card__delete:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:translate(35%,-35%)}.markers-section__actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.markers-section__actions .marker-row__icon-btn{flex:1 1 0;min-width:0}button.marker-delete-all-btn{background:var(--panel);border-color:var(--border);width:100%;min-height:40px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;gap:8px;margin:0;padding:8px 12px;display:inline-flex}button.marker-delete-all-btn:not(:disabled):hover,button.marker-delete-all-btn:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:none}.marker-delete-confirm-modal{width:min(420px,100%);max-height:unset}.marker-delete-modal__body{background:var(--brand);gap:12px;padding:16px;display:grid}.marker-delete-modal__headline{color:var(--ink);margin:0;font-size:1rem;font-weight:700}.marker-delete-modal__text{color:var(--ink-secondary);margin:0;font-size:.9rem}.marker-delete-modal__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}button.marker-delete-modal__cancel{border:1px solid var(--border);background:var(--item-bg);width:auto;color:var(--ink);border-radius:9px;margin:0;padding:8px 12px}button.marker-delete-modal__cancel:not(:disabled):hover,button.marker-delete-modal__cancel:focus-visible{filter:none;border-color:var(--focus-ring);background:#2c4e66fa;transform:none}button.marker-delete-modal__confirm{border:1px solid var(--border);background:var(--panel);width:auto;color:var(--ink);border-radius:9px;align-items:center;gap:8px;margin:0;padding:8px 12px;display:inline-flex}button.marker-delete-modal__confirm:not(:disabled):hover,button.marker-delete-modal__confirm:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:none}.marker-settings-card,.marker-editor-card{border:1px solid var(--border);background:var(--panel);border-radius:12px;gap:10px;padding:12px;display:grid}.marker-editor-card.is-disabled{opacity:.55}.marker-settings-card__header{justify-content:space-between;align-items:center;gap:10px;display:flex}.marker-settings-card__header h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink);margin:0;font-family:Spline Sans Mono,monospace;font-size:.72rem}button.marker-settings-card__reset-btn{background:var(--panel);border-color:var(--border);width:auto;color:var(--ink);margin:0;padding:7px 10px}.marker-editor-toolbar-btn{justify-content:center;min-width:108px}.marker-editor-toolbar-btn--danger{background:var(--panel);border-color:var(--border);color:var(--ink)}.marker-editor-toolbar-btn--danger:not(:disabled):hover,.marker-editor-toolbar-btn--danger:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:none}.marker-settings-card__theme-color{gap:6px;display:grid}.marker-settings-card__theme-label{color:var(--ink);font-size:.84rem;font-weight:600}.marker-header-action-btn{min-width:128px}.marker-header-settings-btn.is-compact{width:40px;min-width:40px;padding:0}.marker-header-action-btn.is-active{border-color:var(--focus-ring);background:var(--panel)}.marker-settings-toggle-hint{width:100%;color:var(--ink-secondary);margin:0;font-size:.72rem;line-height:1.35}.marker-settings-card__theme-note{color:var(--ink-secondary);margin:0;font-size:.74rem;line-height:1.45}.marker-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.marker-row__summary{align-items:center;gap:10px;min-width:0;display:flex}.marker-row__title{color:var(--ink);font-size:.84rem;font-weight:700}.marker-row__actions{align-items:center;gap:8px;display:flex}button.marker-row__icon-btn{background:var(--panel);border-color:var(--border);width:auto;min-width:90px;height:38px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;gap:7px;margin:0;padding:0 12px;display:inline-flex}.marker-row__icon-btn-icon{justify-content:center;align-items:center;display:inline-flex}.marker-row__icon-btn-label{letter-spacing:.02em;font-size:.76rem}button.marker-row__icon-btn--danger{background:var(--panel);border-color:var(--border);min-width:38px;color:var(--ink);padding:0}.marker-editor-card__details{border-top:1px solid var(--border);gap:10px;padding-top:10px;display:grid}.marker-editor-card__stack{gap:10px;display:grid}.marker-editor-card__size-row,.marker-editor-card__color-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:4px;display:grid}.marker-editor-card__size-slider{appearance:none;cursor:pointer;background:0 0;border:none;outline:none;width:100%;height:26px;margin:0;padding:0;display:block}.marker-editor-card__size-slider::-webkit-slider-runnable-track{border:1px solid var(--border);background:var(--line);box-sizing:border-box;border-radius:999px;height:12px}.marker-editor-card__size-slider::-webkit-slider-thumb{appearance:none;width:22px;height:22px;box-shadow:var(--shadow-sm);box-sizing:border-box;background:radial-gradient(circle at 35% 35%,#4ca9cd,#2a7fa0 70%);border:2px solid #e8f3fb;border-radius:999px;margin-top:-6px}.marker-editor-card__size-slider::-moz-range-track{border:1px solid var(--border);background:var(--line);box-sizing:border-box;border-radius:999px;height:12px}.marker-editor-card__size-slider::-moz-range-thumb{width:22px;height:22px;box-shadow:var(--shadow-sm);box-sizing:border-box;background:radial-gradient(circle at 35% 35%,#4ca9cd,#2a7fa0 70%);border:2px solid #e8f3fb;border-radius:999px}.marker-editor-card__size-slider::-moz-range-progress{background:var(--brand);border-radius:999px;height:12px}.marker-editor-card__size-input{width:88px}.marker-editor-card__color-input{cursor:pointer;border-radius:10px;width:54px;min-width:54px;min-height:48px;padding:4px}.marker-editor-card__color-row--readonly{grid-template-columns:auto auto;justify-content:start}.marker-editor-card__color-swatch{border:1px solid var(--border);background:var(--bg-body);border-radius:10px;width:48px;min-width:48px;min-height:48px}.marker-color-control{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}button.marker-color-display-btn{background:0 0;border:none;align-items:center;gap:8px;width:auto;margin:0;padding:0;display:inline-flex}button.marker-color-display-btn:not(:disabled):hover,button.marker-color-display-btn:focus-visible{filter:none;transform:none}button.marker-color-edit-btn{border:1px solid var(--border);background:var(--panel);width:auto;color:var(--ink);border-radius:8px;margin:0;padding:5px 10px;font-size:.72rem;font-weight:700}button.marker-color-edit-btn:not(:disabled):hover,button.marker-color-edit-btn:focus-visible{filter:none;border-color:var(--focus-ring);background:var(--panel);transform:none}.marker-editor-card__color-value{border:1px solid var(--border);background:var(--item-bg);min-height:48px;color:var(--ink);letter-spacing:.04em;border-radius:10px;align-items:center;padding:0 12px;font-family:Spline Sans Mono,monospace;font-size:.8rem;display:inline-flex}.marker-editor-card__icon-field{margin-bottom:0}.marker-picker{gap:10px;margin-top:6px;display:grid}.marker-picker__section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink);margin:0;font-size:.72rem;font-weight:700}.marker-picker__divider{background:#97b7cf38;width:100%;height:1px}.marker-picker__divider--actions{margin-top:-2px}.marker-picker__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}button.marker-picker__option{border:1px solid var(--border);background:var(--panel);border-radius:10px;justify-items:center;gap:6px;margin:0;padding:8px 6px;display:grid}button.marker-picker__option--uploaded{position:relative}button.marker-picker__option--upload-tile,button.marker-picker__option--toggle{border-style:dashed;border-color:var(--border);background:var(--panel)}button.marker-picker__option.is-selected{border-color:var(--focus-ring);box-shadow:var(--shadow-sm)}button.marker-picker__option:not(:disabled):hover,button.marker-picker__option:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:none}.marker-picker__label{color:var(--ink-secondary);font-size:.68rem;line-height:1.2}.marker-picker__uploaded-empty{color:var(--ink-secondary);margin:0;font-size:.74rem}.marker-picker__upload-plus{border:1px solid var(--border);width:30px;height:30px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex}.marker-picker__toggle-sign{width:30px;height:30px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;font-size:1.4rem;font-weight:700;line-height:1;display:inline-flex}.marker-picker__remove-uploaded{border:1px solid var(--border);background:var(--panel);width:18px;height:18px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;font-size:.72rem;line-height:1;display:inline-flex;position:absolute;top:4px;right:4px}.marker-picker__remove-uploaded:hover,.marker-picker__remove-uploaded:focus-visible{border-color:var(--border);background:var(--panel)}.marker-picker__actions{flex-wrap:wrap;gap:8px;display:flex}button.marker-picker__toggle,button.marker-picker__upload{background:var(--panel);border-color:var(--border);width:auto;color:var(--ink);border-radius:9px;align-items:center;gap:6px;margin:0;padding:7px 10px;font-size:.74rem;display:inline-flex}button.marker-picker__clear-uploaded{background:var(--panel);border-color:var(--border);color:var(--ink)}.marker-picker__file-input{display:none}.marker-picker__error{color:var(--ink);margin:0;font-size:.72rem}.marker-visual{width:var(--marker-size);height:var(--marker-size);color:var(--marker-color);justify-content:center;align-items:center;display:inline-flex}.marker-settings-screen .marker-visual,.markers-summary-preview .marker-visual{filter:drop-shadow(0 0 1px #ffffffd1)drop-shadow(0 0 3px #050d14b8)}.marker-visual__icon,.marker-visual__image{width:100%;height:100%}.marker-visual__image-mask{width:100%;height:100%;-webkit-mask-image:var(--marker-mask-url);mask-image:var(--marker-mask-url);-webkit-mask-image:var(--marker-mask-url);background:currentColor;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.marker-visual__icon{color:inherit;justify-content:center;align-items:center;display:inline-flex}.marker-visual__icon svg{width:100%;height:100%;display:block}.marker-visual__image{object-fit:contain}.marker-visual--photo{filter:drop-shadow(0 2px 6px #00000059);overflow:visible}.marker-visual__photo-pin{flex-direction:column;align-items:center;width:100%;height:100%;display:flex;position:relative}.marker-visual__photo-pin-frame{border:3px solid var(--marker-color);background:#00000026;border-radius:16%;flex:1;width:100%;min-height:0;overflow:hidden}.marker-visual__photo-img{object-fit:cover;width:100%;height:100%;display:block}.marker-visual__photo-pointer{clip-path:polygon(0 0,100% 0,50% 100%);background:var(--marker-color);flex-shrink:0;width:12px;height:7px;margin-top:-1px}.marker-visual__photo-pin--circle .marker-visual__photo-pin-frame{border-radius:50%}.marker-visual__photo-pin--square .marker-visual__photo-pin-frame{border-radius:4px}.marker-visual__photo-pin--rounded .marker-visual__photo-pin-frame{border-radius:16%}.marker-visual__photo-pin--pin{clip-path:path("M 50 0 C 22.4 0 0 22.4 0 50 C 0 77.6 50 120 50 120 C 50 120 100 77.6 100 50 C 100 22.4 77.6 0 50 0 Z");width:100%;height:120%;display:block;position:relative}.marker-visual__photo-pin--pin .marker-visual__photo-pin-frame{border:none;border-radius:0;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.marker-visual__photo-pin--heart{clip-path:polygon(50% 100%,44% 94%,35% 85%,22% 73%,12% 63%,4% 53%,0% 42%,0% 35%,0% 25%,3% 17%,8% 10%,15% 5%,22% 2%,30% 0%,35% 0%,40% 1%,45% 3%,48% 6%,50% 10%,52% 6%,55% 3%,60% 1%,65% 0%,70% 0%,78% 2%,85% 5%,92% 10%,97% 17%,100% 25%,100% 35%,100% 42%,96% 53%,88% 63%,78% 73%,65% 85%,56% 94%,50% 100%);width:100%;height:100%;display:block;position:relative}.marker-visual__photo-pin--heart .marker-visual__photo-pin-frame{border:none;border-radius:0;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.marker-visual__photo-pin--heart .marker-visual__photo-img{object-fit:cover;width:100%;height:100%}.marker-picker__photo-shapes{flex-wrap:wrap;gap:6px;display:flex}.marker-picker__photo-shape-btn{cursor:pointer;background:#ffffff0a;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:4px;min-width:54px;padding:6px 8px;transition:border-color .15s,background .15s;display:flex}.marker-picker__photo-shape-btn:hover{background:#ffffff14}.marker-picker__photo-shape-btn.is-selected{border-color:var(--accent,#7c8cf8);background:#7c8cf81f}.marker-picker__photo-shape-label{color:var(--text-secondary,#aaa);white-space:nowrap;font-size:10px}.marker-editor-card__shape-row{align-items:center;gap:10px;display:flex}.marker-editor-card__shape-chips{flex-wrap:wrap;gap:4px;display:flex}.marker-editor-card__shape-chip{border:1.5px solid var(--border,#333);color:var(--text-secondary,#aaa);cursor:pointer;background:0 0;border-radius:6px;padding:3px 10px;font-size:11px;transition:border-color .15s,background .15s,color .15s}.marker-editor-card__shape-chip:hover{background:#ffffff0f}.marker-editor-card__shape-chip.is-active{border-color:var(--accent,#7c8cf8);color:var(--text-primary,#fff);background:#7c8cf824}.marker-editor-card__photo-row{align-items:center;gap:10px;display:flex}.marker-editor-card__photo-preview{align-items:center;gap:8px;display:flex}.marker-editor-card__photo-thumb{object-fit:cover;border:2px solid var(--border);border-radius:6px;width:40px;height:40px}.action-row{gap:8px;margin-top:10px;display:grid}.export-map-label{text-transform:uppercase;letter-spacing:.09em;color:var(--ink);margin:0;font-family:Spline Sans Mono,monospace;font-size:.72rem}.action-row>button{width:100%;padding:8px 12px}.download-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}button.download-format-btn{grid-auto-flow:column;justify-content:center;align-items:center;gap:8px;min-height:42px;margin:0;padding:10px 12px;display:grid}button.export-map-btn{border:1px solid var(--border);background:var(--brand);color:var(--ink)}button.export-map-btn:not(:disabled):hover,button.export-map-btn:focus-visible{border-color:var(--border);background:var(--brand)}.download-btn-icon{justify-content:center;align-items:center;display:inline-flex}.download-btn-icon svg{width:20px;height:20px}.download-btn-icon.is-spinning{animation:.9s linear infinite export-icon-spin}.download-btn-icon path{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}@keyframes export-icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}button{cursor:pointer;border:1px solid #0000;border-radius:11px;padding:10px 12px;font-weight:700;transition:transform .14s,filter .14s}button.icon-only-btn{justify-content:center;align-items:center;padding:0;display:inline-flex}button:not(:disabled):hover{filter:brightness(1.05);transform:translateY(-1px)}button.theme-card:not(:disabled):hover,button.theme-card:focus-visible{filter:none;transform:none}.picker-option-list--themes{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.picker-option-list--themes .theme-card{width:100%}button:disabled{opacity:.52;cursor:not-allowed}button[type=submit]{background:var(--brand);color:var(--ink)}button.location-clear-btn{z-index:1;border:1px solid var(--border);background:var(--panel);width:20px;height:20px;color:var(--ink);border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}button.location-clear-btn:not(:disabled):hover,button.location-clear-btn:focus-visible{filter:none;background:#2f4f66f2;transform:translateY(-50%)}.ghost{border-color:var(--border);color:var(--ink);background:#ff844f24}.status,.error{margin:10px 0 0;font-size:.8rem}.status{color:var(--positive)}.error{color:var(--negative)}@media (max-width:760px){.field-grid,.field-grid.triple{grid-template-columns:1fr}.field-grid.keep-two-mobile{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-summary-header,.theme-edit-header{flex-direction:row;align-items:center}.card-scroll-list{white-space:nowrap;overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:8px;display:flex;overflow-x:auto}.card-scroll-list::-webkit-scrollbar{display:none}.card-scroll-list .theme-card{scroll-snap-align:start;filter:brightness(.75);flex:0 0 min(72vw,280px);width:min(72vw,280px);min-height:144px;margin:0}.card-scroll-list .theme-card .theme-card-palette,.card-scroll-list .theme-card .theme-card-swatch{min-height:144px}.layout-inline-groups,.layout-picker-groups{overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:8px;display:flex;overflow-x:auto}.layout-inline-groups::-webkit-scrollbar{display:none}.layout-picker-groups::-webkit-scrollbar{display:none}.layout-inline-group,.layout-picker-group,.layout-inline-list.card-scroll-list,.picker-option-list.card-scroll-list{display:contents}.layout-inline-group h3,.layout-picker-group h4{display:none}.layout-inline-groups .layout-card,.layout-picker-groups .layout-card{scroll-snap-align:start;flex:0 0 min(44vw,164px);width:min(44vw,164px);height:168px;margin:0}.layout-inline-groups .layout-card .layout-card-symbol,.layout-picker-groups .layout-card .layout-card-symbol{object-fit:contain;width:calc(100% - 8px);height:104px;margin:10px 4px 0}.theme-edit-actions{justify-content:flex-end;width:auto}.palette-editor-grid,.color-editor-target-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.color-preset-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.color-picker-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.color-picker-popup{max-width:100%;padding:15px}button.color-preset-cell{min-height:40px}button.color-grid-action{min-height:48px;font-size:.84rem}.color-picker-frame .react-colorful{height:200px}.marker-settings-card__header,.marker-row{flex-direction:column;align-items:stretch}.marker-color-control{align-items:stretch}.marker-picker__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.markers-section__marker-grid,.routes-section__content{grid-template-columns:repeat(2,minmax(0,1fr))}.marker-row__actions{justify-content:flex-end}.color-hex-input{min-height:56px;font-size:1.04rem}.form-control-tall,.map-dimension-input{min-height:56px;padding:13px 12px}.action-row{grid-template-columns:1fr}.picker-modal-backdrop{padding:8px}.picker-modal{max-height:92vh;padding:10px}}@media (min-width:761px){.theme-mobile-slider{display:none}.theme-summary-view>.theme-card{display:block}.picker-option-list--themes .theme-card:hover .theme-card-swatch,.picker-option-list--themes .theme-card:focus-visible .theme-card-swatch{margin-left:4px}.picker-option-list--themes .theme-card:hover .theme-card-swatch:first-child,.picker-option-list--themes .theme-card:focus-visible .theme-card-swatch:first-child{margin-left:0}}.poster-route-overlay{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.poster-route-canvas{width:100%;height:100%;display:block}.routes-settings-screen{margin-top:16px}.routes-section__content{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px;display:grid}.routes-section__empty{color:var(--ink-secondary);background:var(--item-bg);border:1px dashed #ffffff1f;border-radius:8px;grid-column:1/-1;margin:0;padding:12px;font-size:.85rem}.routes-section__empty code{background:var(--item-bg);border-radius:3px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:.8em}.routes-section__error{color:var(--ink);border:1px solid var(--border);background:#dc44321f;border-radius:6px;margin:8px 0 0;padding:8px 12px;font-size:.85rem}.route-card{background:var(--item-bg);border:1px solid var(--border);border-radius:8px;padding:0;transition:border-color .15s,background .15s;position:relative}.route-card.is-open{background:var(--item-bg);border-color:var(--ink-secondary);grid-column:1/-1}button.route-card__summary{width:100%;color:var(--ink);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;align-items:center;gap:6px;margin:0;padding:10px 8px;display:flex}.route-card.is-open button.route-card__summary{text-align:left;flex-direction:row;align-items:center;gap:12px;padding:10px 40px 10px 12px}button.route-card__summary:not(:disabled):hover,button.route-card__summary:focus-visible{filter:none;background:var(--item-bg);transform:none}.route-card__swatch{border:1px solid var(--border);border-radius:5px;flex:none;width:22px;height:22px}.route-card__meta{flex-direction:column;align-items:center;gap:2px;width:100%;min-width:0;display:flex}.route-card.is-open .route-card__meta{text-align:left;flex:auto;align-items:flex-start}.route-card__label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.8rem;font-weight:600;overflow:hidden}.route-card.is-open .route-card__label{font-size:.9rem}.route-card__distance{color:var(--ink-secondary);font-variant-numeric:tabular-nums;font-size:.72rem}.route-card.is-open .route-card__distance{font-size:.75rem}button.route-card__delete{z-index:1;border:1px solid var(--border);background:var(--panel);width:28px;height:28px;color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:absolute;top:0;right:0;transform:translate(35%,-35%)}button.route-card__delete svg{width:15px;height:15px}button.route-card__delete:not(:disabled):hover,button.route-card__delete:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:translate(35%,-35%)}.route-card__body{border-top:1px solid var(--border);flex-direction:column;gap:12px;padding:12px;display:flex}.route-card__field{flex-direction:column;gap:6px;display:flex}.route-card__field label{color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.route-card__field input[type=range]{width:100%}.route-card__value{color:var(--ink-secondary);font-variant-numeric:tabular-nums;font-size:.8rem}.route-card__color-toggle{border:1px solid var(--border);cursor:pointer;width:40px;height:28px;color:var(--ink);border-radius:6px;justify-content:center;align-items:center;padding:0;transition:border-color .15s,transform .15s;display:inline-flex}.route-card__color-toggle:hover{border-color:var(--ink-secondary);transform:scale(1.05)}.route-card__style-toggle{background:var(--item-bg);border-radius:6px;gap:4px;padding:2px;display:inline-flex}.route-card__style-btn{color:var(--ink-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1 1 0;justify-content:center;align-items:center;gap:8px;padding:6px 10px;font-size:.8rem;transition:background .15s,color .15s;display:inline-flex}.route-card__style-btn:hover{color:var(--ink)}.route-card__style-preview{color:currentColor;flex:none}.route-card__style-btn.is-active{background:var(--item-bg);color:var(--ink)}button.route-card__done{z-index:1;border:1px solid var(--border);background:var(--panel);width:28px;height:28px;color:var(--ink);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:absolute;top:0;right:0;transform:translate(35%,-35%)}button.route-card__done svg{width:15px;height:15px}button.route-card__done:not(:disabled):hover,button.route-card__done:focus-visible{filter:none;border-color:var(--border);background:var(--panel);transform:translate(35%,-35%)}.route-card__endpoint-rows{gap:8px;display:flex}button.route-card__endpoint-row{background:var(--item-bg);border:1px solid var(--border);color:var(--ink);cursor:pointer;border-radius:6px;flex:1 1 0;align-items:center;gap:10px;padding:8px 10px;transition:background .15s,border-color .15s;display:inline-flex}button.route-card__endpoint-row:not(:disabled):hover,button.route-card__endpoint-row:focus-visible{background:var(--item-bg);border-color:var(--ink-secondary)}.route-card__endpoint-row-icon{flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.route-card__endpoint-row-label{letter-spacing:.02em;font-size:.82rem;font-weight:600}.route-card__actions{border-top:1px solid var(--border);justify-content:flex-end;padding-top:4px;display:flex}.route-card__endpoint-toggle{border:1px solid var(--border);background:var(--item-bg);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:40px;height:28px;padding:0;transition:border-color .15s,background .15s;display:inline-flex}.route-card__endpoint-toggle:hover,.route-card__endpoint-toggle[aria-expanded=true]{border-color:var(--ink-secondary);background:var(--item-bg)}.route-card__endpoint-picker{background:var(--item-bg);border:1px solid var(--border);border-radius:6px;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px;padding:6px;display:grid}button.route-card__endpoint-option{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;width:34px;height:34px;margin:0;padding:0;transition:background .15s,border-color .15s;display:inline-flex}button.route-card__endpoint-option:not(:disabled):hover,button.route-card__endpoint-option:focus-visible{filter:none;background:var(--item-bg);border-color:var(--ink-secondary);transform:none}button.route-card__endpoint-option.is-selected{background:var(--item-bg);border-color:var(--ink-secondary)}
.fluid-select-field-label{gap:6px;width:100%;display:grid}.typography-font-select.fluid-select{width:100%}.fluid-select{align-items:stretch;gap:0;width:100%;min-height:0;display:flex;position:relative}.fluid-select__leading{border:1px solid var(--line);background:linear-gradient(145deg, var(--item-bg) 0%, color-mix(in srgb, var(--item-bg), #fff 40%) 100%);width:42px;color:var(--ink-muted);border-right:none;border-radius:10px 0 0 10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.fluid-select__trigger{border:1px solid var(--line);min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:#fff;border-radius:10px;flex:1;align-items:center;gap:8px;padding:10px 38px 10px 12px;font-size:.88rem;font-weight:500;transition:border-color .2s cubic-bezier(.4,0,.2,1),box-shadow .22s cubic-bezier(.4,0,.2,1),transform .18s;display:inline-flex;position:relative;box-shadow:inset 0 1px #ffffff8c,0 2px 6px #0000000a}.fluid-select__trigger:is(:focus-visible,:focus){border-color:var(--brand-light);box-shadow:inset 0 1px 0 #ffffff59, 0 0 0 3px var(--focus-ring), 0 4px 14px #00000014;outline:none}[data-theme=dark] .fluid-select__trigger:focus-visible,[data-theme=dark] .fluid-select__trigger:focus{border-color:var(--brand)}.fluid-select__trigger:hover:not(:disabled){border-color:var(--strong-line)}.fluid-select__trigger:active:not(:disabled){transform:scale(.996)}.fluid-select__trigger--with-leading{border-left-width:0;border-radius:0 10px 10px 0}[data-theme=dark] .fluid-select__trigger{background:linear-gradient(155deg, color-mix(in srgb, var(--sheet-bg), #fff 4%) 0%, var(--sheet-bg) 90%);box-shadow:inset 0 1px #ffffff0a,0 2px 10px #0003}.fluid-select__value{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;line-height:1.45;overflow:hidden}.fluid-select__chevron{width:16px;height:16px;color:var(--ink-muted);pointer-events:none;flex-shrink:0;transition:rotate .22s cubic-bezier(.4,0,.2,1),color .15s;position:absolute;top:50%;right:12px;translate:0 -50%}.fluid-select__chevron.is-open{color:var(--brand);rotate:180deg}.fluid-select__trigger:hover .fluid-select__chevron,.fluid-select__trigger:focus-visible .fluid-select__chevron{color:var(--brand)}.fluid-select__list{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffffa;border:1px solid #94a3b852;border-radius:12px;padding:6px;animation:.2s cubic-bezier(.32,.72,0,1) both fluid-select-pop-in;overflow:hidden auto;box-shadow:0 4px 6px #0000000a,0 22px 50px #0f172a29,inset 0 1px #ffffffe6}.fluid-select__list--top{animation-name:fluid-select-pop-in-up}[data-theme=dark] .fluid-select__list{background:#0f172af7;border-color:#94b0c838;box-shadow:0 4px 6px #0003,0 26px 60px #00000080,inset 0 1px #ffffff0a}.fluid-select__option{width:calc(100% - 4px);font:inherit;text-align:left;cursor:pointer;color:var(--ink-secondary);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;margin:0 auto 3px;padding:9px 10px;font-size:.86rem;font-weight:500;transition:background .16s cubic-bezier(.4,0,.2,1),color .16s,transform .12s;display:flex}.fluid-select__option:last-child{margin-bottom:0}.fluid-select__option.is-highlighted,.fluid-select__option:focus-visible{color:var(--ink);background:#c08b401f}.fluid-select__option:hover{background:var(--item-bg);transform:translate(1px)}.fluid-select__option.is-selected{color:var(--ink);font-weight:600}.fluid-select__option.is-selected:before{content:"";background:var(--brand);border-radius:50%;flex-shrink:0;width:6px;height:6px;box-shadow:0 0 0 2px #c08b4040}.fluid-select--stacked-field{display:grid}.fluid-select--stacked-field .fluid-select__leading{width:auto}.fluid-select--stacked-field .fluid-select__trigger{border-radius:10px;min-height:48px;padding:12px 42px 12px 12px}@keyframes fluid-select-pop-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fluid-select-pop-in-up{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}
.poster-viewport{border:1px solid var(--strong-line);background:var(--sheet-bg);border-radius:14px;place-items:center;min-height:850px;display:grid;position:relative;overflow:hidden}.poster-viewport:before{content:"";pointer-events:none;background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:26px 26px;position:absolute;inset:0}.poster-map-toolbar.map-controls{flex-shrink:0;justify-content:center;width:100%}.poster-frame{z-index:1;aspect-ratio:var(--poster-aspect,2 / 3);width:min(100%, calc(82vh * var(--poster-aspect,.666667)));border:1px solid var(--border);max-width:100%;max-height:82vh;box-shadow:var(--shadow-sm);background-color:var(--poster-bg,transparent);border-radius:4px;position:relative;overflow:hidden}.poster-ghost-canvas{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.map-container{border-radius:inherit;position:absolute;inset:0;overflow:hidden}.map-preview-loading{background:color-mix(in srgb, var(--poster-bg,var(--sheet-bg)) 55%, var(--bg-body))}.map-container .maplibregl-control-container{display:none}.poster-fade{pointer-events:none;z-index:2;height:25%;position:absolute;left:0;right:0}.poster-fade--top{top:0}.poster-fade--bottom{bottom:0}.poster-text-overlay{pointer-events:none;z-index:4;position:absolute;inset:0;container-type:size}.poster-marker-overlay{z-index:3;pointer-events:none;position:absolute;inset:0}.poster-route-endpoints{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.poster-route-endpoint{pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.poster-marker-overlay.is-edit-mode{pointer-events:none;touch-action:none;overscroll-behavior:contain}.poster-marker{pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.poster-marker.is-draggable{pointer-events:auto;cursor:grab;touch-action:none}.poster-marker.is-draggable:after{content:"";width:calc(var(--marker-size,32px) + 20px);height:calc(var(--marker-size,32px) + 20px);pointer-events:auto;background:0 0;min-width:44px;min-height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.poster-marker.is-draggable.is-dragging{cursor:grabbing}.poster-marker.is-selected{filter:none}.poster-marker.is-selected .marker-visual{border:2px solid var(--marker-highlight-color,#5eceffe6);box-shadow:var(--shadow-sm);border-radius:999px}.poster-marker.is-selected .marker-visual--photo{box-shadow:none;outline:2px solid var(--marker-highlight-color,#5eceffe6);outline-offset:2px;border:none;border-radius:0}.poster-city{text-transform:uppercase;text-align:center;white-space:pre-wrap;margin:0;font-weight:700;line-height:1.1;position:absolute;left:0;right:0;transform:translateY(-50%)}.poster-divider{border:0;border-top:2px solid;height:0;margin:0;position:absolute;left:40%;right:40%;transform:translateY(-50%)}.poster-country{text-transform:uppercase;text-align:center;margin:0;font-size:2.6cqh;font-weight:300;line-height:1.2;position:absolute;left:0;right:0;transform:translateY(-50%)}.poster-coords{text-align:center;opacity:.75;margin:0;font-family:Spline Sans Mono,monospace;font-size:1.6cqh;font-weight:400;position:absolute;left:0;right:0;transform:translateY(-50%)}.poster-attribution,.poster-credits{text-align:right;opacity:.55;font-family:Spline Sans Mono,monospace;font-size:.85cqh;font-weight:300;position:absolute}@media (max-width:980px){.poster-viewport{min-height:400px}.poster-frame{width:min(100%, calc(68vh * var(--poster-aspect,.666667)));max-height:68vh}}.map-controls{flex-direction:column;align-items:center;gap:6px;display:flex}.map-controls-section{margin-top:5px}.map-control-group{flex-wrap:nowrap;justify-content:center;align-items:center;gap:6px;display:flex}.map-control-slider-row{grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:8px;width:min(560px,100%);display:grid}.map-control-slider{appearance:none;background:var(--line);border:1px solid var(--border);width:100%;height:7px;box-shadow:var(--shadow-sm);border-radius:999px;margin:0}.map-control-slider::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid var(--border);background:var(--ink);width:16px;height:16px;box-shadow:var(--shadow-sm);cursor:pointer;border-radius:50%}.map-control-slider::-moz-range-thumb{border:1px solid var(--border);background:var(--ink);width:16px;height:16px;box-shadow:var(--shadow-sm);cursor:pointer;border-radius:50%}.map-control-slider::-moz-range-track{background:var(--line);border:1px solid var(--border);border-radius:999px;height:7px}.map-control-btn{border:1px solid var(--border);background:var(--sheet-bg);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:5px;padding:6px 12px;font-family:Spline Sans Mono,monospace;font-size:.78rem;transition:background .15s,border-color .15s;display:inline-flex}.map-control-btn:hover:not(:disabled){background:var(--item-bg);border-color:var(--line)}.map-control-btn:disabled{opacity:.5;cursor:default}.map-control-btn--primary{background:var(--ink);color:var(--bg-body);border-color:var(--ink)}.map-control-btn--primary svg{color:currentColor}.map-control-btn--primary:hover:not(:disabled){background:var(--brand);border-color:var(--brand);color:#fff}.map-control-btn--primary:focus-visible:not(:disabled){outline:2px solid var(--focus-ring);outline-offset:2px}.map-control-btn--mode{justify-content:center;min-width:120px}.map-control-btn--marker-toggle{justify-content:center;min-width:150px}.map-control-btn.is-active{background:var(--line);border-color:var(--border)}.map-control-btn--marker-reset{background:var(--negative);border-color:var(--negative);color:var(--ink)}.map-control-btn--marker-reset:hover:not(:disabled){border-color:var(--ink);background:#dc2626}.map-control-btn--danger{background:var(--negative);border-color:var(--negative);color:var(--ink)}.map-control-btn--danger:hover:not(:disabled){border-color:var(--ink);background:#dc2626}.map-control-hint{background:var(--item-bg);color:var(--ink-secondary);text-align:center;white-space:pre-line;border-radius:7px;align-items:center;gap:5px;margin:0;padding:4px 8px;font-family:Spline Sans Mono,monospace;font-size:.7rem;display:flex}.map-control-hint-icon{flex-shrink:0;font-size:.8em}.settings-info-card{border:1px solid var(--border);background:var(--sheet-bg);color:var(--ink);border-radius:10px;margin:10px;padding:12px}.settings-info-title{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-secondary);margin:0 0 8px;font-family:Spline Sans Mono,monospace;font-size:.82rem}.settings-info-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 14px;margin:0;display:grid}.settings-info-row{gap:2px;margin:0;display:grid}.settings-info-row dt{text-transform:uppercase;letter-spacing:.03em;color:var(--ink-secondary);margin:0;font-family:Spline Sans Mono,monospace;font-size:.68rem}.settings-info-row dd{color:var(--ink);margin:0;font-size:.86rem}@media (max-width:700px){.map-control-group{flex-wrap:wrap;width:100%}.map-control-btn{min-height:38px;padding:8px 10px;font-size:.74rem}.map-control-btn--mode,.map-control-btn--marker-toggle{justify-content:flex-start;min-width:0}.map-control-hint{font-size:.65rem}.map-control-slider-row{grid-template-columns:auto minmax(120px,1fr) auto}}
.inspector-card{padding:12px}.info-panel-group{gap:12px;padding:14px;display:grid}.info-panel-section+.info-panel-section{border-top:1px solid var(--line);padding-top:12px}.inspector-card h3,.info-panel-section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);margin:0 0 8px;font-family:Spline Sans Mono,monospace;font-size:.78rem}.swatch-row{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-bottom:8px;display:grid}.swatch{aspect-ratio:1;border:1px solid var(--border);border-radius:7px}.inspector-copy,.inspector-card p,.info-panel-section p{opacity:.9;color:var(--ink-secondary);margin:0;font-size:.83rem;line-height:1.45}.inspector-card p+p,.info-panel-section p+p{margin-top:7px}.repo-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.github-badge{border:1px solid var(--border);background:var(--item-bg);color:var(--ink);border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:.78rem;font-weight:600;line-height:1;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}.github-badge:hover,.github-badge:focus-visible{border-color:var(--ink);background:var(--ink);color:var(--ink)}.stars-badge{color:var(--ink);border-color:var(--ink)}.stars-badge:hover,.stars-badge:focus-visible{color:var(--ink);border-color:var(--ink);background:#b45309}.badge-icon{flex:none;width:16px;height:16px}.footer-links{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.footer-link{border:1px solid var(--border);background:var(--item-bg);color:var(--ink);border-radius:999px;align-items:center;padding:6px 10px;font-size:.78rem;font-weight:600;line-height:1;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}.footer-link:hover,.footer-link:focus-visible{border-color:var(--border);background:var(--panel);color:var(--ink)}.footer-links-note{color:var(--ink-secondary);opacity:.8;margin:0;font-family:Spline Sans Mono,monospace;font-size:.76rem}.hug-copy{color:var(--ink-secondary);margin:12px 20px;font-size:.82rem;line-height:1.5}.hug-rows{gap:10px;margin-top:10px;display:grid}.hug-row{gap:5px;display:grid}.hug-row-label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-secondary);font-family:Spline Sans Mono,monospace;font-size:.7rem;font-weight:500}.hug-row-content{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.hug-credits-note{color:var(--ink);align-items:center;gap:7px;font-size:.8rem;font-weight:500;display:inline-flex}.hug-check-icon{width:12px;height:12px;color:var(--ink);flex:none}.social-links-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.social-badge{border:1px solid var(--border);background:var(--item-bg);width:36px;height:36px;color:var(--ink);border-radius:10px;flex:none;justify-content:center;align-items:center;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s,transform .12s;display:inline-flex}a.social-badge:hover,a.social-badge:focus-visible{border-color:var(--border);background:var(--panel);color:var(--ink);transform:translateY(-1px)}.social-badge--inactive{opacity:.35;cursor:default}.social-icon{flex:none;width:16px;height:16px}
.app-footer{text-align:center;justify-items:center;gap:8px;margin-top:14px;padding:0 2px;display:grid}.source-note{opacity:.74;color:var(--ink);margin:0;font-family:Spline Sans Mono,monospace;font-size:.8rem}.source-link{color:var(--ink);text-underline-offset:2px;font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.source-link:hover,.source-link:focus-visible{color:var(--ink)}.made-note{text-align:center;color:var(--ink);margin:0;font-size:.82rem}.heart{color:var(--ink);margin:0 2px}.footer-legal-links{align-items:center;gap:12px;display:flex}.footer-legal-links a{color:var(--ink-muted);font-family:Spline Sans Mono,monospace;font-size:.75rem;text-decoration:none;transition:color .15s}.footer-legal-links a:hover{color:var(--ink);text-decoration:underline}.footer-legal-links .separator{color:var(--ink-muted);opacity:.5;font-size:.75rem}@media (min-width:769px){.app-footer.desktop-footer{border-top:1px solid var(--border-subtle,#0000000d);grid-template-columns:1fr auto 1fr;align-items:center;width:100%;margin-top:10px;padding:12px 20px;display:grid}.desktop-footer-left{justify-self:start}.desktop-footer-middle{justify-self:center}.desktop-footer-right{justify-self:end}}
.updates-modal-backdrop{z-index:200;background:var(--overlay-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.updates-modal{background:var(--sheet-bg);border:1px solid var(--border);width:min(760px,100%);max-height:min(90vh,820px);box-shadow:var(--shadow-lg);border-radius:18px;flex-direction:column;display:flex;position:relative;overflow:hidden}.updates-modal-progress{background:var(--line);width:100%;height:8px}.updates-modal-progress-bar{background:var(--brand);height:100%;transition:width .22s}.updates-modal-close{border:1px solid var(--border);background:var(--item-bg);width:36px;height:36px;color:var(--ink-secondary);cursor:pointer;border-radius:999px;place-items:center;padding:0;display:grid;position:absolute;top:16px;right:16px}.updates-modal-close-icon{font-size:1.15rem}.updates-modal-header{padding:28px 28px 14px}.updates-version-badge{border:1px solid var(--border);color:var(--ink);letter-spacing:.04em;text-transform:uppercase;background:#4cc19029;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:700;display:inline-block}.updates-modal-header h2{letter-spacing:.03em;margin:12px 0 6px;font-family:Bebas Neue,sans-serif;font-size:clamp(2.1rem,4vw,3rem);line-height:.95}.updates-released-on{color:var(--ink-muted);margin:0}.updates-modal-content{padding:10px 28px 16px;overflow-y:auto}.updates-modal-content h3{margin:0 0 14px;font-size:1.4rem}.updates-step-image{border:1px solid var(--line);background:var(--item-bg);object-fit:cover;border-radius:12px;width:100%;margin-top:16px}.updates-points{gap:10px;margin:0;padding:0;list-style:none;display:grid}.updates-point{border:1px solid var(--line);background:var(--item-bg);border-radius:12px;grid-template-columns:28px 1fr;align-items:start;gap:10px;padding:10px 12px;display:grid}.updates-point-icon{font-size:1.05rem;line-height:1.45}.updates-point-text{color:var(--ink);flex-direction:column;gap:2px;display:flex}.updates-point-label{text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:700}.updates-point--new{border-color:var(--border)}.updates-point--new .updates-point-label{color:var(--ink)}.updates-point--fixed{border-color:var(--border)}.updates-point--fixed .updates-point-label{color:var(--ink)}.updates-point--improved{border-color:var(--ink-secondary)}.updates-point--improved .updates-point-label{color:var(--ink)}.updates-point--info{border-color:var(--border)}.updates-point--info .updates-point-label{color:var(--ink)}.updates-point--community{border-color:var(--border)}.updates-point--community .updates-point-label{color:var(--ink)}.updates-point--docs{border-color:var(--ink-secondary)}.updates-point--docs .updates-point-label{color:var(--ink)}.updates-point--roadmap{border-color:var(--border)}.updates-point--roadmap .updates-point-label{color:var(--ink)}.updates-point--removed{border-color:var(--ink-secondary)}.updates-point--removed .updates-point-label{color:var(--ink)}.updates-point--security{border-color:var(--border)}.updates-point--security .updates-point-label{color:var(--ink)}.updates-point--breaking{border-color:var(--border)}.updates-point--breaking .updates-point-label{color:var(--ink)}.updates-point--major{border-color:var(--border)}.updates-point--major .updates-point-label{color:var(--ink)}.updates-point--perf{border-color:var(--border)}.updates-point--perf .updates-point-label{color:var(--ink)}.updates-point--core{border-color:var(--border)}.updates-point--core .updates-point-label{color:var(--ink)}.updates-modal-footer{padding:12px 28px 24px}.updates-footer-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.updates-skip-row{align-items:center;gap:8px;font-size:.95rem;display:inline-flex}.updates-skip-row input{accent-color:var(--ink);width:18px;height:18px}.updates-actions{gap:10px;display:flex}.updates-actions button{border:1px solid var(--border);background:var(--item-bg);min-width:90px;color:var(--ink);cursor:pointer;border-radius:10px;padding:9px 14px}.updates-actions button:disabled{opacity:.45;cursor:not-allowed}.updates-next-button{border-color:var(--positive)!important;background:#10b9811a!important}.updates-okay-button{border-color:var(--brand)!important;background:var(--brand-dim)!important}@media (max-width:720px){.updates-modal-header,.updates-modal-content,.updates-modal-footer{padding-left:18px;padding-right:18px}.updates-modal{max-height:92vh}}
.export-modal-backdrop{z-index:220;background:var(--overlay-bg);-webkit-backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.export-modal{border:1px solid var(--line);background:var(--panel);width:min(100%,360px);box-shadow:var(--shadow-sm);border-radius:14px;padding:12px}.export-modal-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.export-modal-header h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);margin:0;font-family:Spline Sans Mono,monospace;font-size:.8rem}.export-modal-close{border:1px solid var(--line);background:var(--panel);width:30px;height:30px;color:var(--ink-secondary);border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.export-modal-close svg{width:14px;height:14px}.export-modal-actions{grid-template-columns:1fr;gap:8px;display:grid}.export-modal-support-label{text-align:center;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-secondary);margin:14px 0 8px;font-family:Spline Sans Mono,monospace;font-size:.84rem}.export-modal-option{text-transform:uppercase;letter-spacing:.05em;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:50px;padding:0 12px;font-family:Spline Sans Mono,monospace;font-size:.92rem;font-weight:700;display:inline-flex}.export-modal-option:disabled{opacity:.6}.export-modal-option--png{background:var(--item-bg);border-color:var(--ink-secondary);color:var(--ink)}.export-modal-option--pdf{background:var(--panel);border-color:var(--border);color:var(--ink)}.export-modal-option--svg{background:var(--brand);border-color:var(--brand);color:#fff}.export-modal-option-icon{width:24px;height:24px}.export-modal-option-icon.is-spinning{animation:.9s linear infinite export-modal-spin}@keyframes export-modal-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mobile-export-social-links{justify-content:center;align-items:center;gap:8px;width:100%;margin-top:10px;display:inline-flex}.mobile-export-social-links .general-header-social-btn{border:1px solid var(--border);background:var(--panel);width:50px;height:50px;color:var(--ink-secondary);border-radius:9px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.mobile-export-social-links .general-header-social-btn svg{width:24px;height:24px}.mobile-export-social-links .general-header-social-btn--github{gap:8px;width:auto;min-width:126px;padding:0 14px}.mobile-export-social-links .general-header-github-stars{letter-spacing:.02em;align-items:center;gap:4px;font-family:Spline Sans Mono,monospace;font-size:.75rem;font-weight:600;display:inline-flex}.mobile-export-social-links .general-header-github-stars svg{width:13px;height:13px}.mobile-export-social-links .general-header-github-stars-count{transform:translateY(2px)}.export-fab-trigger-desktop{z-index:101;border:1px solid var(--border);background:var(--item-bg);height:44px;color:var(--ink);box-shadow:var(--shadow-sm);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-family:Spline Sans Mono,monospace;font-size:.78rem;font-weight:600;transition:background .18s,box-shadow .18s;display:none;position:fixed;bottom:52px;right:18px}.export-fab-trigger-desktop:hover{box-shadow:var(--shadow-sm);background:#f1f8fd}.export-fab-trigger-desktop svg{width:16px;height:16px}
.panel-ad-label{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-secondary);text-align:center;margin:0 0 6px;font-family:Spline Sans Mono,monospace;font-size:.65rem}.panel-ad-slot{flex-direction:column;align-items:center;width:100%;padding:12px 0;display:flex}.sidebar-ad-slot{background:var(--panel);-webkit-backdrop-filter:blur(10px);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:inherit;flex-direction:column;align-items:center;padding:12px;display:flex}.support-modal__ad{flex-direction:column;align-items:center;margin-top:14px;display:flex}
.mobile-nav-wrapper,.mobile-nav,.mobile-marker-edit-done,.mobile-marker-size-bar{display:none}@media (max-width:768px),(hover:none) and (pointer:coarse){html,body{overscroll-behavior-x:none;background-color:var(--bg-body)}.mobile-nav-wrapper{bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:300;align-items:center;gap:8px;display:flex;position:fixed;left:16px;right:16px}html[data-display-mode=standalone] .mobile-nav-wrapper{bottom:calc(4px + env(safe-area-inset-bottom,0px))}.mobile-nav{background:var(--overlay-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);min-width:0;height:60px;box-shadow:var(--shadow-sm);border-radius:26px;flex:1;display:flex;position:relative;overflow:hidden}.mobile-nav-scroll-container{flex:1;min-width:0;height:100%;position:relative;overflow:hidden}.mobile-nav-tabs{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;height:100%;display:flex;position:relative;overflow-x:auto}.mobile-nav-tabs::-webkit-scrollbar{display:none}.mobile-nav-fade{display:none}.mobile-nav-fade:after{content:none}.mobile-nav-tab{min-width:48px;color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;z-index:1;background:0 0;border:none;border-radius:20px;flex-direction:column;flex:1 0 0;justify-content:center;align-items:center;gap:3px;margin:0;padding:6px 4px;font-family:Spline Sans Mono,monospace;font-size:.58rem;font-weight:600;transition:color .15s;display:flex;position:relative}.mobile-nav-tab:not(:disabled):hover{filter:none;transform:none}.mobile-nav-tab.is-active{color:var(--brand)}.mobile-nav-indicator{pointer-events:none;z-index:0;background:#c08b4024;border-radius:20px;transition:transform .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1);position:absolute;top:6px;bottom:6px;left:0}.mobile-nav-icon{width:22px;height:22px}.mobile-nav-label{line-height:1}.mobile-export-fab-trigger{right:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:101;border:1px solid var(--border);background:var(--item-bg);width:60px;height:44px;color:var(--ink);box-shadow:var(--shadow-sm);opacity:1;border-radius:14px;justify-content:center;align-items:center;transition:opacity .22s,transform .22s;display:inline-flex;position:fixed;transform:translateY(0)}.mobile-export-fab-trigger svg{width:18px;height:18px}.mobile-export-fab-trigger.is-hidden{opacity:0;pointer-events:none;transform:translateY(8px)}.mobile-marker-edit-done{left:16px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:101;border:1px solid var(--border);background:var(--panel);min-height:42px;color:var(--ink);box-shadow:var(--shadow-sm);letter-spacing:.03em;text-transform:uppercase;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-family:Spline Sans Mono,monospace;font-size:.72rem;display:inline-flex;position:fixed}.mobile-marker-edit-done svg{width:14px;height:14px}html[data-display-mode=standalone] .mobile-marker-edit-done{bottom:calc(74px + env(safe-area-inset-bottom,0px))}.mobile-export-modal-backdrop{z-index:220;background:var(--overlay-bg);-webkit-backdrop-filter:blur(6px);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.mobile-export-modal{border:1px solid var(--line);background:var(--panel);width:min(100%,360px);box-shadow:var(--shadow-sm);border-radius:14px;padding:12px}.mobile-export-modal-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.mobile-export-modal-header h3{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);margin:0;font-family:Spline Sans Mono,monospace;font-size:.8rem}.mobile-export-modal-close{border:1px solid var(--line);background:var(--panel);width:30px;height:30px;color:var(--ink-secondary);border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.mobile-export-modal-close svg{width:14px;height:14px}.mobile-export-modal-actions{grid-template-columns:1fr;gap:8px;display:grid}.mobile-export-social-links{justify-content:center;align-items:center;gap:8px;width:100%;margin-top:10px;display:inline-flex}.mobile-export-support-label{text-align:center;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-secondary);margin:14px 0 8px;font-family:Spline Sans Mono,monospace;font-size:.84rem}.mobile-export-social-links .general-header-social-btn{border:1px solid var(--border);background:var(--panel);width:50px;height:50px;color:var(--ink-secondary);border-radius:9px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.mobile-export-social-links .general-header-social-btn svg{width:24px;height:24px}.mobile-export-social-links .general-header-social-btn--github{gap:8px;width:auto;min-width:126px;padding:0 14px}.mobile-export-social-links .general-header-github-stars{letter-spacing:.02em;align-items:center;gap:4px;font-family:Spline Sans Mono,monospace;font-size:.75rem;font-weight:600;display:inline-flex}.mobile-export-social-links .general-header-github-stars svg{width:13px;height:13px}.mobile-export-social-links .general-header-github-stars-count{transform:translateY(2px)}.mobile-export-option{text-transform:uppercase;letter-spacing:.05em;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:50px;padding:0 12px;font-family:Spline Sans Mono,monospace;font-size:.92rem;font-weight:700;display:inline-flex}.mobile-export-option:disabled{opacity:.6}.mobile-export-option--png{background:var(--item-bg);border-color:var(--ink-secondary);color:var(--ink)}.mobile-export-option--pdf{background:var(--panel);border-color:var(--border);color:var(--ink)}.mobile-export-option--svg{background:var(--brand);border-color:var(--border);color:var(--ink)}.mobile-export-option-icon{width:24px;height:24px}.mobile-export-option-icon.is-spinning{animation:.9s linear infinite mobile-export-spin}@keyframes mobile-export-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mobile-persistent-settings{z-index:10;background:var(--sheet-bg);border:1px solid var(--border);box-shadow:var(--shadow-sm);overscroll-behavior:auto;-webkit-overflow-scrolling:touch;border-radius:14px;max-height:42vh;margin:0 8px;padding:10px 12px 14px;position:relative;overflow-y:auto}.mobile-persistent-settings .settings-panel{background:var(--sheet-bg);box-shadow:none;border:none;border-radius:0;margin:0;padding:0}.mobile-persistent-settings .accordion-item,.mobile-persistent-settings .accordion-body,.mobile-persistent-settings .map-dimension-fields{background:var(--sheet-bg)}.mobile-persistent-settings .panel-block h2,.accordion-header{display:none}.accordion-body{opacity:1;visibility:inherit;grid-template-rows:1fr}.accordion-body-inner{padding:0}.accordion-item{border-bottom:none}.app-shell{padding:0;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));background:var(--bg-body)}html[data-display-mode=standalone] .app-shell{padding-top:env(safe-area-inset-top,0px)}.general-header{z-index:35;background:var(--overlay-bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;margin-bottom:0;padding:6px 14px 4px;display:flex;position:sticky;top:0}.general-header .desktop-brand{align-items:center;gap:10px;min-width:0;display:inline-flex}.general-header .desktop-brand-logo{width:90px;height:auto}.general-header .desktop-brand-copy{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.general-header .desktop-brand-title{letter-spacing:.03em;color:var(--ink);margin:0;font-family:Bebas Neue,sans-serif;font-size:1.56rem;line-height:.95}.general-header .desktop-brand-kicker{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-secondary);margin:0;font-family:Spline Sans Mono,monospace;font-size:.48rem}.general-header-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.desktop-header-social{display:none}.general-header-text-btn{border:1px solid var(--border);background:var(--panel);width:34px;height:34px;color:var(--ink-secondary);border-radius:9px;justify-content:center;align-items:center;padding:0;display:inline-flex}.general-header-btn-label{display:none}.general-header-btn-icon{justify-content:center;align-items:center;display:inline-flex}.general-header-btn-icon svg{width:16px;height:16px}.install-help-modal{width:min(360px,100vw - 24px)}.install-help-modal-title{font-size:.78rem}.install-help-steps li,.install-help-modal-text{font-size:.68rem}.app-copy{display:none}.app-shell>.install-prompt{z-index:35;width:auto;margin:10px 12px 0}.mobile-location-row-wrap{z-index:30;pointer-events:auto;margin:8px;display:block;position:relative}.mobile-location-row-wrap.is-hidden{display:none}.mobile-location-row-wrap .dsk-loc-bar{width:100%}.mobile-location-row-wrap .dsk-loc-bar .location-search-stack{width:100%;position:relative}.mobile-location-row-wrap .dsk-loc-bar .location-search-main-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.mobile-location-row-wrap .dsk-loc-bar .location-search-row{background:var(--panel);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-sm);border-radius:12px;align-items:center;gap:6px;padding:2px 6px;display:flex}.mobile-location-row-wrap .dsk-loc-bar .location-search-icons{align-items:center;gap:8px;display:inline-flex}.mobile-location-row-wrap .dsk-loc-bar .location-search-icon{width:24px;height:24px;color:var(--ink-secondary);pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-location-row-wrap .dsk-loc-bar .location-input-wrap{flex:auto;min-width:0}.mobile-location-row-wrap .dsk-loc-bar .location-input-wrap input{min-height:30px;color:var(--ink);box-shadow:none;background:0 0;border:none;border-radius:0;margin-top:0;padding:2px 22px 2px 8px;font-family:Spline Sans Mono,monospace;font-size:16px}.mobile-location-row-wrap .dsk-loc-bar .location-input-wrap input:focus{box-shadow:none;border-color:#0000}.mobile-location-row-wrap .dsk-loc-bar button.location-clear-btn{width:32px;min-width:32px;height:32px;min-height:32px;color:var(--ink-secondary);background:0 0;border:none;border-radius:0;justify-content:center;align-items:center;font-size:1.2rem;line-height:1;display:inline-flex;right:-3px}.mobile-location-row-wrap .dsk-loc-bar button.location-row-icon-btn{border:1px solid var(--border);background:var(--panel);width:30px;height:30px;color:var(--ink);border-radius:9px;justify-content:center;align-items:center;padding:0;display:inline-flex}.mobile-location-row-wrap .dsk-loc-bar button.location-row-icon-btn svg{width:17px;height:17px}.mobile-location-row-wrap .dsk-loc-bar .location-row-icon-btn.is-locating .location-current-icon{animation:.9s linear infinite mobile-location-spin}.mobile-location-row-wrap .dsk-loc-bar .location-suggestions{border:1px solid var(--border);background:var(--overlay-bg);box-shadow:var(--shadow-sm);z-index:8;border-radius:10px;max-height:220px;margin-top:0;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.mobile-location-row-wrap .dsk-loc-bar .location-suggestion{color:var(--ink-secondary);text-align:left;border-radius:7px;padding:8px 10px;font-family:Spline Sans Mono,monospace;font-size:.76rem}.mobile-location-row-wrap .dsk-loc-bar .location-permission-message{border:1px solid var(--border);background:var(--panel);color:var(--ink-secondary);border-radius:8px;margin-top:4px;padding:8px 10px;font-family:Spline Sans Mono,monospace;font-size:.7rem;line-height:1.4}.mobile-location-row-wrap .dsk-loc-bar .dsk-loc-coords{display:none}.mobile-location-row-wrap .dsk-loc-bar.show-coords .dsk-loc-coords{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-sm);border-radius:10px;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;padding:8px 9px;display:grid}.mobile-location-row-wrap .dsk-loc-bar .dsk-loc-coords label{color:var(--ink-secondary);margin-bottom:0;font-size:.72rem}.mobile-location-row-wrap .dsk-loc-bar .dsk-loc-coords input{background:var(--panel);border-color:var(--border);min-height:34px;color:var(--ink);border-radius:8px;margin-top:5px;padding:6px 9px;font-family:Spline Sans Mono,monospace;font-size:.75rem}.mobile-marker-size-bar{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-sm);z-index:30;border-radius:10px;gap:6px;margin:6px 8px 0;padding:8px 10px;display:grid;position:relative}.mobile-marker-size-bar__label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-secondary);margin:0;font-family:Spline Sans Mono,monospace;font-size:.66rem}.mobile-marker-size-bar__controls{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.mobile-marker-size-bar__slider{width:100%;margin:0}.mobile-marker-size-bar__value{text-align:right;min-width:42px;color:var(--ink);font-family:Spline Sans Mono,monospace;font-size:.72rem}@keyframes mobile-location-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app-grid{grid-template-columns:1fr;grid-template-areas:"preview""config";gap:0}.app-grid>.info-panel,.app-grid>.settings-panel{display:none}.app-shell>.app-footer{color:var(--ink-muted);text-align:center;box-shadow:none;background:0 0;border:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;padding:24px 16px;font-size:.68rem;display:flex}.app-shell>.app-footer .desktop-footer-left,.app-shell>.app-footer .desktop-footer-middle{display:none}.app-shell>.app-footer .desktop-footer-right{justify-content:center;width:100%;display:flex}.app-shell>.app-footer .footer-legal-links{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.app-shell>.app-footer .desktop-footer-info-btn{display:none}.app-shell>.app-footer .desktop-footer-attribution{max-width:none;box-shadow:none;text-align:center;color:var(--ink-muted);background:0 0;border:none;border-radius:0;padding:0;font-size:.64rem;line-height:1.4;display:block;position:static}.app-shell>.app-footer .source-link{color:var(--ink-muted);font-size:.68rem;text-decoration:none}.preview-panel{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0 0 12px}.desktop-right-panel{display:none!important}.poster-viewport{background:0 0;border:none;border-radius:0;min-height:auto;margin:0;padding:0 12px}.poster-ghost-layer{z-index:0;opacity:.42;filter:blur(5px)saturate(.78)brightness(.84);pointer-events:none;display:none;position:absolute;inset:0}.poster-viewport:before{display:none}.poster-viewport .poster-frame{width:100%}.poster-frame{z-index:2;border:1px solid var(--border);max-height:150vh;box-shadow:var(--shadow-sm);border-radius:8px;margin-bottom:0;overflow:hidden}.poster-map-toolbar.map-controls{z-index:12;flex-shrink:0;width:100%;margin-bottom:8px;padding-top:12px;position:relative;top:auto;left:auto;transform:none}.poster-map-toolbar.map-controls .map-control-group{justify-content:center;width:100%}.map-controls-section{border-top:1px solid var(--border);margin:0 8px;padding:8px 10px}.settings-panel{border:1px solid var(--line);background:var(--sheet-bg);box-shadow:var(--shadow-sm);border-radius:14px;margin:8px 8px 0;padding:14px}.settings-info-card .settings-info-list{grid-template-rows:repeat(3,auto);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}[data-mobile-tab=location] .mobile-section:not(.mobile-section--location),[data-mobile-tab=theme] .mobile-section:not(.mobile-section--theme-settings),[data-mobile-tab=layout] .mobile-section:not(.mobile-section--layout-settings),[data-mobile-tab=layout] .mobile-section--layers,[data-mobile-tab=layout] .mobile-section--markers,[data-mobile-tab=layers] .mobile-section:not(.mobile-section--layers),[data-mobile-tab=markers] .mobile-section:not(.mobile-section--markers),[data-mobile-tab=routes] .mobile-section:not(.mobile-section--routes),[data-mobile-tab=style] .mobile-section:not(.mobile-section--style){display:none}.mobile-section{animation:none}.download-row{grid-template-columns:1fr;gap:10px}button.download-format-btn{min-height:50px;font-size:.9rem}.about-modal-backdrop{z-index:260;background:var(--overlay-bg);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.about-modal{border:1px solid var(--border);background:var(--sheet-bg);width:min(560px,100vw - 24px);max-height:min(82vh,760px);box-shadow:var(--shadow-sm);border-radius:16px;padding:20px 16px 16px;position:relative;overflow-y:auto}.about-modal-close{border:1px solid var(--border);width:28px;height:28px;color:var(--ink-secondary);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:12px;right:12px}.about-modal .info-panel{display:block}.about-modal .info-panel-group{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}}
