:root{--color-bg-page:#f5f5f5;--color-bg-panel:#fff;--color-bg-input:#fff;--color-bg-status:#f0f0f0;--color-bg-preview:#f5f5f5;--color-bg-leaflet:#f0f0f0;--color-text-primary:#222;--color-text-secondary:#666;--color-text-emphasis:#111;--color-text-muted:#999;--color-text-muted2:#aaa;--color-text-attribution:#999;--color-text-inverse:#fff;--color-accent:#00ae42;--color-accent-hover:#009639;--color-accent-light:#33c268;--color-btn-secondary-bg:#e8e8e8;--color-btn-secondary-text:#333;--color-btn-shape-bg:#fff;--color-btn-shape-hover:#f0f0f0;--color-btn-shape-border:#0003;--color-btn-shape-shadow:#0000001f;--color-border:#e0e0e0;--color-border-input:#d0d0d0;--color-border-section:#e5e5e5;--color-warning-bg:#fff5f5;--color-warning-text:#c62828;--color-warning-border:#ffcdd2;--color-btn-cancel-bg:#d32f2f;--color-btn-cancel-hover:#b71c1c;--color-btn-cancel-text:#fff;--color-suggestion-hover:#f5f5f5;--color-suggestion-border:#e0e0e0;--color-suggestion-shadow:#0000001f;--color-swatch-terrain:#a8de92;--color-swatch-water:#8bcfeb;--color-swatch-concrete:#b2b2ac;--color-swatch-road:#404040;--color-swatch-border:#0003;--color-rotation-bg:#00ae42eb;--color-rotation-input-border:#ffffff4d;--color-rotation-input-bg:#ffffff26;--color-rotation-unit:#fffc;--color-dimension-bg:#00ae42f2;--color-dimension-border:#ffffff40;--color-dimension-text:#fff;--color-dimension-shadow:#00000040;--color-loading-overlay:#ffffffd9;--color-loading-text:#00ae42;--color-palette-group-bg:#f8f8f8;--color-palette-label:#888;--color-section-disabled-opacity:.4;--color-overlay-backdrop:#00000080;--font-mono:"SF Mono", "Fira Code", "Cascadia Code", ui-monospace, "Menlo", "Consolas", monospace;--top-chrome-height:3.5rem}[data-theme=dark]{--color-bg-page:#121212;--color-bg-panel:#1e1e1e;--color-bg-input:#2c2c2c;--color-bg-status:#1a1a1a;--color-bg-preview:#2a2a2a;--color-bg-leaflet:#121212;--color-text-primary:#e0e0e0;--color-text-secondary:#aaa;--color-text-emphasis:#fff;--color-text-muted:#888;--color-text-muted2:#777;--color-text-attribution:#777;--color-text-inverse:#fff;--color-accent:#00ae42;--color-accent-hover:#00c44a;--color-accent-light:#33c268;--color-btn-secondary-bg:#333;--color-btn-secondary-text:#e0e0e0;--color-btn-shape-bg:#333;--color-btn-shape-hover:#3a3a3a;--color-btn-shape-border:#ffffff26;--color-btn-shape-shadow:#0000004d;--color-border:#333;--color-border-input:#3a3a3a;--color-border-section:#2a2a2a;--color-warning-bg:#3d1a1a;--color-warning-text:#ffcdd2;--color-warning-border:#6b2020;--color-btn-cancel-bg:#c62828;--color-btn-cancel-hover:#d32f2f;--color-btn-cancel-text:#fff;--color-suggestion-hover:#2a2a2a;--color-suggestion-border:#2a2a2a;--color-suggestion-shadow:#0006;--color-swatch-terrain:#7ab868;--color-swatch-water:#5da8c7;--color-swatch-concrete:#8a8a85;--color-swatch-road:#666;--color-swatch-border:#dce8e426;--color-rotation-bg:#00ae42eb;--color-rotation-input-border:#ffffff4d;--color-rotation-input-bg:#ffffff26;--color-rotation-unit:#fffc;--color-dimension-bg:#00ae42eb;--color-dimension-border:#ffffff40;--color-dimension-text:#fff;--color-dimension-shadow:#0006;--color-loading-overlay:#121212d9;--color-loading-text:#00ae42;--color-palette-group-bg:#222;--color-palette-label:#888;--color-section-disabled-opacity:.3;--color-overlay-backdrop:#000000b3}*{box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{background:var(--color-bg-page);min-width:320px;color:var(--color-text-primary);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#root{flex-direction:column;display:flex}button,input,select,textarea{font:inherit}button{background:var(--color-accent);color:var(--color-text-inverse);cursor:pointer;border:0;border-radius:8px;padding:.74rem 1rem;font-weight:700}button:hover:not(:disabled){background:var(--color-accent-hover)}button:disabled{cursor:progress;opacity:.65}button.secondary{background:var(--color-btn-secondary-bg);color:var(--color-btn-secondary-text)}input,select,textarea{border:1px solid var(--color-border-input);background:var(--color-bg-input);width:100%;color:var(--color-text-primary);border-radius:8px;padding:.68rem .72rem}textarea{resize:vertical;min-height:8rem}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2rem}label{color:var(--color-text-secondary);gap:.34rem;font-size:.9rem;font-weight:700;display:grid}.top-ribbon{background:var(--color-bg-panel);border-bottom:1px solid var(--color-border);z-index:2000;justify-content:space-between;align-items:center;gap:1.25rem;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.ribbon-left{align-items:center;min-width:0;display:flex}.ribbon-title{color:var(--color-text-emphasis);margin:0;font-size:1.25rem;font-weight:800}.ribbon-nav{flex-wrap:wrap;flex:auto;justify-content:flex-end;align-items:center;gap:.55rem 1.25rem;min-width:0;display:flex}.planet-toggle-promo{flex:none;align-items:center;gap:.65rem;min-width:0;display:inline-flex}.planet-selector-stack{flex-direction:row;align-items:stretch;gap:0;height:34px;display:inline-flex}.surface-selector-label{box-sizing:border-box;color:#fff;letter-spacing:0;text-transform:uppercase;text-align:center;white-space:normal;background:#00ae42;border:1px solid #00ae42;border-right:0;border-radius:8px 0 0 8px;justify-content:center;align-items:center;width:7.05rem;height:34px;min-height:34px;padding:0 .58rem;font-size:.6rem;font-weight:900;line-height:1.08;display:inline-flex}.planet-toggle{border:1px solid var(--color-border);background:var(--color-bg-status);border-radius:8px;align-items:center;gap:2px;padding:2px;display:inline-flex;position:relative}.planetary-toggle-choice{align-items:center;gap:.28rem;min-height:30px;display:inline-flex}.planetary-toggle-choice.active{padding-right:.22rem}.planet-toggle-beta{color:#fff;letter-spacing:0;text-transform:uppercase;pointer-events:none;background:#d32f2f;border-radius:999px;padding:2px 6px;font-size:.56rem;font-weight:900;line-height:1;position:absolute;top:-10px;right:8px;box-shadow:0 2px 5px #00000038}.planet-toggle button{color:var(--color-text-secondary);background:0 0;border-radius:6px;padding:.32rem .58rem;font-size:.78rem;font-weight:800;line-height:1}.planet-toggle button:hover:not(:disabled){background:var(--color-btn-secondary-bg)}.planet-toggle button.active{background:var(--color-accent);color:var(--color-text-inverse)}.planet-body-select{border:1px solid color-mix(in srgb, var(--color-accent) 35%, var(--color-border));background:var(--color-bg-panel);width:auto;min-width:6.3rem;max-width:7.6rem;min-height:30px;color:var(--color-text-primary);border-radius:6px;padding:.22rem 1.55rem .22rem .5rem;font-size:.78rem;font-weight:700;line-height:1}.planet-body-select:disabled{opacity:.45}.celestial-body-select-wrap{align-items:center;height:34px;min-height:34px;display:inline-flex;position:relative}.celestial-body-select-wrap:after{content:"";border-right:2px solid var(--color-text-emphasis);border-bottom:2px solid var(--color-text-emphasis);pointer-events:none;width:.46rem;height:.46rem;position:absolute;right:.72rem;transform:translateY(-20%)rotate(45deg)}.celestial-body-select{box-sizing:border-box;appearance:none;background:var(--color-bg-panel);width:8.6rem;max-width:none;height:34px;min-height:34px;color:var(--color-text-emphasis);border-color:#00ae42;border-radius:0 8px 8px 0;margin:0;padding:0 2rem 0 .78rem;font-size:.82rem;font-weight:850;line-height:34px;display:block}.celestial-body-select option{color:var(--color-text-emphasis);background:var(--color-bg-panel)}.celestial-body-select:hover{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border))}.celestial-body-select:focus{outline:2px solid color-mix(in srgb, var(--color-accent) 45%, transparent);outline-offset:2px}.lunar-surface-callout{color:#4a422f;background:#f8f0d6;border:1px solid #89765452;border-radius:8px;align-items:center;width:max-content;max-width:none;min-height:32px;padding:.28rem .5rem;display:inline-flex;position:relative;box-shadow:0 2px 8px #0000001a}.lunar-surface-callout:before{content:"";background:#f8f0d6;border-bottom:1px solid #89765452;border-left:1px solid #89765452;width:10px;height:10px;position:absolute;top:50%;left:-6px;transform:translateY(-50%)rotate(45deg)}.lunar-surface-text{z-index:1;letter-spacing:0;white-space:nowrap;font-size:.72rem;font-weight:900;line-height:1.12;display:grid;position:relative}[data-theme=dark] .lunar-surface-callout{color:#f7e9b4;background:#3a3628;border-color:#ecd79952;box-shadow:0 2px 8px #00000052}[data-theme=dark] .lunar-surface-callout:before{background:#3a3628;border-color:#ecd79952}.ribbon-nav a{color:var(--color-text-secondary);white-space:nowrap;font-size:.9rem;font-weight:600;text-decoration:none;transition:color .2s}.ribbon-nav a:hover{color:var(--color-accent)}.ribbon-menu-wrap{align-items:center;display:inline-flex;position:relative}.ribbon-menu-button{border:1px solid var(--color-border);background:var(--color-bg-status);width:2.35rem;height:2.35rem;color:var(--color-text-secondary);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0;display:inline-flex}.ribbon-menu-button:hover:not(:disabled),.ribbon-menu-button.active{background:var(--color-btn-secondary-bg);color:var(--color-text-emphasis)}.ribbon-menu-button span{background:currentColor;border-radius:999px;width:1rem;height:2px;display:block}.ribbon-menu{z-index:2100;border:1px solid var(--color-border);background:var(--color-bg-panel);border-radius:8px;width:min(16rem,100vw - 1.5rem);padding:.45rem;display:grid;position:absolute;top:calc(100% + .55rem);right:0;box-shadow:0 12px 34px #00000029}.ribbon-menu-section{gap:.1rem;padding:.35rem 0;display:grid}.ribbon-menu-section+.ribbon-menu-section{border-top:1px solid var(--color-border-section)}.ribbon-menu a{min-height:2.25rem;color:var(--color-text-secondary);border-radius:6px;align-items:center;padding:.48rem .65rem;font-size:.9rem;font-weight:700;display:flex}.ribbon-menu a:hover,.ribbon-menu a.active{background:var(--color-btn-secondary-bg);color:var(--color-text-emphasis)}.ribbon-menu a.active{border-bottom:0;padding-bottom:.48rem}.ribbon-menu-primary{display:none!important}.ribbon-support-section a{color:var(--color-text-muted);font-weight:650}@media (width<=768px){.top-ribbon{align-items:center;gap:.65rem;padding:.75rem}.ribbon-nav{flex-wrap:nowrap;flex:none;justify-content:flex-end;gap:.55rem}.planet-toggle-promo{flex-wrap:nowrap;justify-content:flex-end}.primary-ribbon-link{display:none}.ribbon-menu-primary{display:flex!important}.ribbon-menu{right:-.1rem}.ribbon-left{flex:auto;justify-content:flex-start}}@media (width<=460px){.top-ribbon{flex-wrap:wrap;gap:.45rem;padding-inline:.55rem}.ribbon-nav{flex:1 0 100%;order:2;justify-content:flex-end}.ribbon-title{font-size:1.05rem}.planet-toggle button{padding:.3rem .42rem;font-size:.72rem}.planetary-toggle-choice{gap:.18rem}.planet-selector-stack{flex-direction:row;align-items:stretch;gap:0;height:32px}.planet-body-select{min-width:5.8rem;max-width:6.5rem;padding-left:.42rem;padding-right:1.35rem;font-size:.72rem}.surface-selector-label{border-right:0;border-radius:8px 0 0 8px;width:6.25rem;height:32px;min-height:32px;margin-bottom:0;padding:0 .42rem;font-size:.52rem}.celestial-body-select{border-color:#00ae42;border-radius:0 8px 8px 0;width:7.2rem;max-width:none;height:32px;min-height:32px;padding-left:.58rem;padding-right:1.65rem;font-size:.74rem;line-height:32px}.celestial-body-select-wrap:after{width:.38rem;height:.38rem;right:.58rem}.ribbon-menu-button{width:2.15rem;height:2.15rem}}.app-shell{flex:1;grid-template-columns:minmax(0,1fr) 585px;min-height:0;display:grid}.flyover-backdrop{inset:0;top:var(--top-chrome-height,3.5rem);z-index:1500;background:#00000059;animation:.2s flyover-fade-in;position:fixed}[data-theme=dark] .flyover-backdrop{background:#0000008c}@keyframes flyover-fade-in{0%{opacity:0}to{opacity:1}}.flyover-panel{background:var(--color-bg-page);overscroll-behavior:contain;width:1120px;max-width:92vw;height:100%;animation:.25s flyover-slide-in;position:absolute;top:0;right:0;overflow:hidden auto;box-shadow:-4px 0 24px #0000002e}@keyframes flyover-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.flyover-close{float:right;z-index:10;background:var(--color-bg-panel);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;margin-right:.75rem;font-size:1.35rem;font-weight:700;line-height:1;transition:background .15s,color .15s;display:flex;position:sticky;top:.75rem;box-shadow:0 1px 4px #0000001a}.flyover-close:hover{background:var(--color-btn-secondary-bg);color:var(--color-text-emphasis)}.flyover-body{padding:0 0 2rem}.flyover-body .page-container{max-width:none;margin:0;padding:.5rem 2rem 3rem}.flyover-body .page-container h1{margin-top:0;padding-top:0;font-size:1.75rem}@media (width<=768px){.flyover-backdrop{top:var(--top-chrome-height,3.5rem);bottom:0}.flyover-panel{border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:85vh;animation:.25s flyover-slide-up;top:auto;bottom:0}@keyframes flyover-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.flyover-body .page-container{padding:.5rem 1.25rem 3rem}.flyover-body .page-container h1{font-size:1.5rem}}.stats-bar{z-index:1990;background:var(--color-bg-panel);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:.45rem;padding:.3rem 1rem;font-size:.72rem;font-weight:600;display:flex;position:relative}.stats-bar-item{align-items:center;gap:.15rem;display:inline-flex}.stats-bar-item strong{color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.stats-bar-item-secondary{opacity:.55;font-size:.68rem}.stats-bar-divider{background:var(--color-text-muted);opacity:.4;border-radius:50%;width:2px;height:2px}.stats-bar-info-icon{width:.9rem;height:.9rem;color:var(--color-text-muted);opacity:.55;cursor:help;background:0 0;border:1px solid;border-radius:50%;flex:0 0 .9rem;justify-content:center;align-items:center;margin-left:.15rem;padding:0;font:700 .62rem/1 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:inline-flex}.stats-bar-info-icon:hover,.stats-bar-info-icon:focus-visible{opacity:.85;color:var(--color-text-secondary)}@media (width<=620px){.stats-bar{gap:.3rem;padding:.25rem .5rem;font-size:.65rem}.stats-bar-item-secondary{display:none}}.single-instance-screen{place-items:center;min-height:100vh;padding:1rem;display:grid}.single-instance-card{border:1px solid var(--color-border);background:var(--color-bg-panel);border-radius:8px;gap:1rem;width:min(100%,420px);padding:1.25rem;display:grid}.single-instance-card p{color:var(--color-text-secondary);margin:0;line-height:1.45}.map-panel{grid-template-rows:auto minmax(0,1fr);gap:.75rem;min-width:0;padding:1rem;display:grid}.map-toolbar{grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:.75rem;display:grid}.search-form{grid-template-columns:minmax(0,1fr) auto;gap:.5rem;display:grid}.map{height:100%;min-height:540px}.leaflet-container{background:var(--color-bg-leaflet)}.map-wrapper{z-index:0;isolation:isolate;border:1px solid var(--color-border);border-radius:8px;height:100%;min-height:540px;position:relative;overflow:hidden}.map.drawing-active,.map-wrapper.drawing-active{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.map-wrapper .map{height:100%;min-height:540px}.map-shape-buttons{z-index:1000;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;top:10px;left:10px}.moon-map-wrapper .map-shape-buttons{top:10px}.moon-landmark-filter{width:178px;position:relative}.moon-landmark-filter summary{border:2px solid var(--color-btn-shape-border);background:var(--color-btn-shape-bg);min-height:34px;color:var(--color-text-primary);box-shadow:0 1px 4px var(--color-btn-shape-shadow);cursor:pointer;border-radius:4px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.5rem;padding:0 .62rem;font-size:.78rem;font-weight:800;line-height:1;list-style:none;display:grid}.moon-landmark-filter summary::-webkit-details-marker{display:none}.moon-landmark-filter summary:after{content:"v";color:var(--color-text-muted);transform-origin:50%;font-size:.78rem;transition:transform .15s}.moon-landmark-filter[open] summary:after{transform:rotate(180deg)}.moon-landmark-filter summary span{min-width:0}.moon-landmark-filter summary small{color:var(--color-text-muted);font-size:.68rem;font-weight:800;line-height:1}.moon-landmark-filter-menu{z-index:1002;border:1px solid var(--color-border);background:var(--color-bg-panel);border-radius:8px;width:min(320px,100vw - 28px);max-height:min(390px,100vh - 180px);padding:.35rem;display:grid;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 10px 22px #00000042}.moon-landmark-country-block{gap:.2rem;display:grid}.moon-landmark-country-block+.moon-landmark-country-block{margin-top:.1rem}.moon-landmark-country-row{grid-template-columns:1.8rem minmax(0,1fr);align-items:center;gap:.25rem;display:grid}.moon-landmark-country-expand{width:1.8rem;height:2rem;color:var(--color-text-muted);background:0 0;border:0;border-radius:5px;place-items:center;padding:0;font-size:.72rem;font-weight:900;line-height:1;display:grid}.moon-landmark-country-expand:hover:not(:disabled),.moon-landmark-country-expand:focus-visible{background:var(--color-btn-shape-hover);color:var(--color-text-primary)}.moon-landmark-country-expand span{transition:transform .15s}.moon-landmark-country-expand.active span{transform:rotate(180deg)}.moon-landmark-country-option{min-height:2rem;color:var(--color-text-secondary);cursor:pointer;border-radius:5px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.35rem .42rem;font-size:.78rem;font-weight:800;display:grid}.moon-landmark-country-option:hover{background:var(--color-btn-shape-hover);color:var(--color-text-primary)}.moon-landmark-country-option input{width:auto;accent-color:var(--color-accent);margin:0}.moon-landmark-country-option span{overflow-wrap:anywhere;min-width:0}.moon-landmark-country-option small{color:var(--color-text-muted);font-size:.7rem;font-weight:800}.moon-landmark-site-list{border-left:2px solid var(--color-border-section);gap:.18rem;margin:0 0 .3rem 2.05rem;padding:.2rem 0 .2rem .45rem;display:grid}.moon-landmark-site-button{width:100%;min-height:2.25rem;color:var(--color-text-secondary);text-align:left;background:0 0;border:1px solid #0000;border-radius:5px;gap:.1rem;padding:.38rem .48rem;display:grid}.moon-landmark-site-button:hover:not(:disabled),.moon-landmark-site-button:focus-visible,.moon-landmark-site-button:active:not(:disabled){border-color:var(--color-border);background:var(--color-btn-shape-hover);color:var(--color-text-primary)}.moon-landmark-site-button span{overflow-wrap:anywhere;font-size:.76rem;font-weight:900;line-height:1.12}.moon-landmark-site-button small{overflow-wrap:anywhere;color:var(--color-text-muted);font-size:.68rem;font-weight:700;line-height:1.18}.moon-projection-control{border:1px solid var(--color-border);background:var(--color-bg-panel);border-radius:6px;align-items:center;gap:2px;padding:3px;display:inline-flex}.moon-projection-control button{height:30px;color:var(--color-text-secondary);background:0 0;border-radius:4px;padding:0 .55rem;font-size:.78rem;line-height:1}.moon-projection-control button:hover:not(:disabled),.moon-projection-control button.active{background:var(--color-accent);color:var(--color-text-inverse)}.shape-btn{border:2px solid var(--color-btn-shape-border);background:var(--color-btn-shape-bg);min-width:34px;height:34px;color:var(--color-text-primary);cursor:pointer;white-space:nowrap;box-shadow:0 1px 4px var(--color-btn-shape-shadow);border-radius:4px;justify-content:center;align-items:center;padding:0 .65rem;font-size:.78rem;font-weight:700;line-height:1;display:flex}.shape-btn:hover{background:var(--color-btn-shape-hover)}.shape-btn.active{background:var(--color-accent);color:var(--color-text-inverse);border-color:var(--color-accent)}.selection-resize-handle{touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;display:flex!important}.selection-resize-handle span{border:2px solid var(--color-text-inverse);background:var(--color-accent);border-radius:4px;width:14px;height:14px;display:block;box-shadow:0 1px 5px #00000040}.selection-resize-handle-nw,.selection-resize-handle-se{cursor:nwse-resize}.selection-resize-handle-ne,.selection-resize-handle-sw{cursor:nesw-resize}.polygon-vertex-marker{border:3px solid var(--color-accent);box-sizing:border-box;background:#fff;border-radius:50%;box-shadow:0 1px 5px #00000047;width:18px!important;height:18px!important}.polygon-vertex-marker.is-close-target{box-shadow:0 1px 5px #00000047,0 0 0 4px #00ae4238}.polygon-cursor-counter{pointer-events:none;background:0 0;border:0;width:0!important;height:0!important}.polygon-cursor-counter span{background:var(--color-dimension-bg);border:1px solid var(--color-dimension-border);min-width:38px;color:var(--color-dimension-text);text-align:center;box-shadow:0 1px 5px var(--color-dimension-shadow);white-space:nowrap;border-radius:6px;padding:3px 7px;font-size:12px;font-weight:800;line-height:1;position:absolute;top:10px;left:12px}.rotation-onbox{z-index:1000;pointer-events:auto;background:var(--color-rotation-bg);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:flex;position:absolute;box-shadow:0 2px 8px #0000004d}.rotation-onbox-label{color:var(--color-text-inverse);font-size:11px}.rotation-onbox-slider{width:70px;accent-color:var(--color-text-inverse);cursor:pointer;vertical-align:middle;border:0;padding:0}.rotation-onbox-input{text-align:center;background:var(--color-rotation-input-bg);color:var(--color-text-inverse);border-radius:4px;font-size:11px;border:1px solid var(--color-rotation-input-border)!important;width:38px!important;padding:1px 3px!important}.rotation-onbox-unit{color:var(--color-rotation-unit);font-size:13px}.control-panel{background:var(--color-bg-panel);border-left:1px solid var(--color-border);align-content:start;gap:1rem;height:calc(100vh - 3.5rem);padding:1.25rem;display:grid;overflow-y:auto}.control-panel-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.theme-toggle{background:var(--color-btn-secondary-bg);height:30px;color:var(--color-btn-secondary-text);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 10px;line-height:1;display:flex}.theme-toggle .theme-label{text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:500}.theme-toggle:hover:not(:disabled){background:var(--color-btn-shape-hover)}.settings-section{gap:.75rem;padding-top:.25rem;display:grid}.settings-section+.settings-section{border-top:1px solid var(--color-border-section);padding-top:1rem}.service-info-banner{color:#666;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:.5rem;padding:.6rem 1rem;font-size:.85rem;font-weight:500}[data-theme=dark] .service-info-banner{color:#aaa;background:#1a1a1a;border-color:#333}.service-disruption-banner{color:#fff;text-align:center;background:#d32f2f;border-radius:6px;margin-bottom:.5rem;padding:.6rem 1rem;font-size:.85rem;font-weight:600}.selection-warning-banner{color:#c62828;background:#fff5f5;border:1px solid #ffcdd2;border-radius:6px;margin-bottom:.5rem;padding:.6rem 1rem;font-size:.85rem;font-weight:500}[data-theme=dark] .selection-warning-banner{color:#ffcdd2;background:#3d1a1a;border-color:#6b2020}.settings-section h2{color:var(--color-text-secondary);letter-spacing:0;text-transform:uppercase;font-size:.82rem;font-weight:800}.color-features-section,.feature-minimums-section,.building-settings-section,.model-settings-section,.moon-marker-settings-section{gap:0}.settings-section-summary{cursor:pointer;color:var(--color-text-secondary);letter-spacing:0;text-transform:uppercase;align-items:center;gap:.65rem;font-size:.82rem;font-weight:800;list-style:none;display:flex}.settings-section-summary>span:first-child{flex:1;min-width:0}.settings-section-summary::-webkit-details-marker{display:none}.settings-section-summary:after{content:"v";color:var(--color-text-muted);transform-origin:50%;font-size:.78rem;transition:transform .15s}.color-features-section[open] .settings-section-summary:after,.feature-minimums-section[open] .settings-section-summary:after,.building-settings-section[open] .settings-section-summary:after,.model-settings-section[open] .settings-section-summary:after,.moon-marker-settings-section[open] .settings-section-summary:after{transform:rotate(180deg)}.settings-section-summary strong{border:1px solid var(--color-border-input);background:var(--color-bg-input);color:var(--color-text-muted);text-transform:none;border-radius:999px;padding:.18rem .45rem;font-size:.68rem;font-weight:800;line-height:1}.color-features-body,.feature-minimums-body,.building-settings-body,.model-settings-body,.moon-marker-settings-body{gap:.75rem;padding-top:.75rem;display:grid}.settings-note{color:var(--color-text-muted);margin:0;font-size:.82rem;font-weight:700;line-height:1.35}.settings-subgroup{border:1px solid var(--color-border-input);background:var(--color-bg-input);border-radius:8px;gap:.55rem;padding:.7rem;display:grid}.settings-subgroup+.settings-subgroup{margin-top:.25rem}.settings-subgroup-header{gap:.12rem;display:grid}.settings-subgroup-header span{color:var(--color-text-secondary);letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:900}.settings-subgroup-header small{color:var(--color-text-muted);font-size:.74rem;font-weight:700;line-height:1.3}.generation-mode-group{border-left:3px solid var(--color-accent)}.color-mode-group{border-left:3px solid var(--color-text-muted)}.eyebrow{color:var(--color-accent);letter-spacing:0;text-transform:uppercase;margin:0 0 .25rem;font-size:.76rem;font-weight:800}h1,h2{color:var(--color-text-primary);margin:0}h1{font-size:1.8rem;line-height:1.05}h2{font-size:1rem}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:.75rem;display:grid}.control-grid>.preset-setting{grid-column:1}.setting-hint{color:var(--color-text-muted);margin-top:.35rem;font-size:.72rem;font-weight:600;line-height:1.35;display:block}.color-inline-control{grid-template-columns:2.5rem minmax(0,max-content);align-items:center;gap:.45rem;margin-top:.35rem;display:grid}.color-inline-control input[type=color]{cursor:pointer;border-radius:6px;width:2.5rem;height:2rem;padding:.1rem}.color-inline-control button{border-radius:5px;height:2rem;min-height:2rem;padding:0 .75rem;font-size:.76rem}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.segmented-option{border:1px solid var(--color-border-input);background:var(--color-bg-input);min-height:2.4rem;color:var(--color-text-secondary);cursor:pointer;text-align:center;border-radius:8px;justify-content:center;align-items:center;font-size:.84rem;font-weight:800;transition:border-color .15s,background .15s,color .15s;display:flex}.segmented-option input{opacity:0;pointer-events:none;position:absolute}.segmented-option.active{border-color:var(--color-accent);background:var(--color-btn-shape-hover);color:var(--color-text-primary)}.segmented-option:hover{border-color:var(--color-accent)}.button-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.button-row.has-cancel{grid-template-columns:repeat(3,minmax(0,1fr))}button.patch-notes-banner{border:1px solid var(--color-accent);background:var(--color-bg-panel);min-height:68px;color:var(--color-text-primary);text-align:left;border-radius:8px;grid-template-columns:64px minmax(0,1fr) auto;align-items:stretch;padding:0;display:grid;overflow:hidden;box-shadow:0 8px 22px #00ae4214}button.patch-notes-banner:hover:not(:disabled){border-color:var(--color-accent-hover);background:var(--color-bg-panel);box-shadow:0 10px 28px #00ae4229}.patch-notes-banner-icon{background:linear-gradient(145deg, var(--color-accent-light), var(--color-accent-hover));color:#fff;place-items:center;padding-right:6px;display:grid;position:relative}.patch-notes-banner-icon:after{content:"";background:inherit;clip-path:polygon(0 0,100% 0,0 100%);width:15px;height:100%;position:absolute;top:0;right:-14px}.patch-notes-banner-icon svg{fill:#fff;stroke:#fff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:31px;height:31px}.patch-notes-banner-copy{align-content:center;gap:.16rem;min-width:0;padding:.72rem .5rem .72rem 1.3rem;display:grid}.patch-notes-banner-copy strong{color:var(--color-accent);letter-spacing:.055em;text-transform:uppercase;font-size:.84rem;font-weight:900;line-height:1.1}.patch-notes-banner-copy span{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;line-height:1.25;overflow:hidden}.patch-notes-banner-arrow{color:var(--color-accent);place-items:center;padding:0 .9rem 0 .35rem;font-size:2rem;font-weight:400;line-height:1;display:grid}button.cancel{background:var(--color-btn-cancel-bg);color:var(--color-btn-cancel-text)}button.cancel:hover:not(:disabled){background:var(--color-btn-cancel-hover)}.selection-summary{border:1px solid var(--color-border-input);background:var(--color-bg-input);border-radius:8px;gap:.45rem .75rem;padding:.72rem;display:grid}.selection-summary div{color:var(--color-text-muted);grid-template-columns:minmax(0,1fr) auto;gap:.75rem;font-size:.88rem;display:grid}.selection-summary strong{color:var(--color-text-emphasis);font-weight:800}.palette-note{border:1px solid var(--color-border-input);background:var(--color-bg-input);color:var(--color-text-secondary);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .75rem;padding:.72rem;font-size:.82rem;font-weight:700;display:grid}.palette-note span{align-items:center;gap:.42rem;min-width:0;display:flex}.palette-presets{gap:.5rem;display:grid}.palette-preset-button{text-align:left;gap:.18rem;padding:.4rem .55rem;font-size:.85rem;display:grid}.palette-preset-button span{font-weight:800}.palette-preset-button small{color:var(--color-text-muted);font-size:.72rem;font-weight:700;line-height:1.25}.palette-preset-button.active small{color:var(--color-text-secondary)}.palette-preset-button.active{border-color:var(--color-accent);background:var(--color-btn-shape-hover);color:var(--color-text-primary)}.size-presets{flex-wrap:wrap;justify-content:flex-start;gap:.35rem;margin-top:.3rem;display:flex}.size-preset-btn{text-align:center;flex:none;min-width:2.55rem;padding:.25rem .52rem;font-size:.72rem;font-weight:800}.size-preset-btn.active{outline:2px solid var(--color-accent);outline-offset:1px}.four-color-presets{gap:.4rem;display:grid}.palette-preset-note{color:var(--color-text-muted);font-size:.78rem;font-weight:700}.four-color-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.generation-presets{gap:.45rem;display:grid}.generation-preset-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.generation-preset-option{text-align:left;gap:.18rem;min-height:3.35rem;display:grid}.generation-preset-option span{font-weight:800}.generation-preset-option small{color:var(--color-text-muted);font-size:.72rem;font-weight:700;line-height:1.25}.generation-preset-option.active small{color:var(--color-text-secondary)}.four-color-option{min-height:3.35rem}.city-palette{border:1px solid var(--color-border-input);background:var(--color-bg-input);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:.72rem;display:grid}.city-palette label{flex-direction:row;justify-content:space-between;align-items:center;gap:.6rem;font-size:.8rem;display:flex}.city-palette input[type=color]{border-radius:6px;width:2.25rem;height:1.8rem;padding:.1rem}.road-widths{border:1px solid var(--color-border-input);background:var(--color-bg-input);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;padding:.72rem;display:grid}.road-widths label{font-size:.78rem}.road-widths input{padding:.48rem .5rem}.road-width-input-group{align-items:center;gap:.35rem;display:flex}.road-width-mm{color:var(--color-text-muted2);white-space:nowrap;font-size:.72rem}.swatch{border:1px solid var(--color-swatch-border);border-radius:4px;flex:none;width:.85rem;height:.85rem}.swatch.terrain{background:var(--color-swatch-terrain)}.swatch.water{background:var(--color-swatch-water)}.swatch.concrete{background:var(--color-swatch-concrete)}.swatch.road{background:var(--color-swatch-road)}.preview-panel{gap:.75rem;display:grid}.preview-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.preview-header span{color:var(--color-text-muted);font-size:.85rem;font-weight:700}.report-issue-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:.35rem .85rem;font-size:.8rem;font-weight:600;line-height:1.4;transition:border-color .15s,color .15s}.report-issue-btn:hover:not(:disabled){border-color:var(--color-warning-text);color:var(--color-warning-text)}.report-issue-btn:disabled{opacity:.5;cursor:not-allowed}.preview-panel img,.mesh-preview,.empty-preview{aspect-ratio:1.25;border:1px solid var(--color-border);background:var(--color-bg-preview);border-radius:8px;width:100%}.preview-panel img{object-fit:contain;display:block}.mesh-preview{overflow:hidden}.mesh-preview canvas{cursor:grab;width:100%;height:100%;display:block}.mesh-preview canvas:active{cursor:grabbing}.empty-preview{color:var(--color-text-muted);text-align:center;place-items:center;padding:1rem;display:grid}.preview-loading{aspect-ratio:1.25;border:1px solid var(--color-border);background:var(--color-bg-preview);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;padding:2rem;display:flex}.progress-bar-track{background:var(--color-border);border-radius:5px;width:80%;max-width:260px;height:10px;overflow:hidden}.progress-bar-fill{background:var(--color-accent,#00ae42);border-radius:5px;height:100%;transition:width .5s}.progress-percent{color:var(--color-accent,#00ae42);font-size:1.8rem;font-weight:800;line-height:1;font-family:var(--font-mono)}.progress-phase-label{color:var(--color-text-muted);text-align:center;font-size:.85rem}.progress-queue-position{color:var(--color-warning,#e6a817);text-align:center;font-size:.82rem;font-weight:600;font-family:var(--font-mono);margin-top:2px}.progress-log-toggle{color:var(--color-text-muted2);border:1px solid var(--color-border);cursor:pointer;background:0 0;border-radius:4px;margin-top:.25rem;padding:.25rem .75rem;font-size:.78rem}.progress-log-toggle:hover{background:var(--color-bg-panel);color:var(--color-text)}.preview-loading-spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent,#00ae42);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite preview-spin}@keyframes preview-spin{to{transform:rotate(360deg)}}.preview-loading-phase{color:var(--color-text);text-align:center;font-size:.95rem;font-weight:700}.preview-loading-phase.error{color:var(--color-warning-text)}.preview-loading-error-message{background:var(--color-warning-bg);width:100%;color:var(--color-warning-text);border:1px solid var(--color-warning-border);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;border-radius:6px;padding:1rem;font-size:.85rem}.preview-retry-btn{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;cursor:pointer;border-radius:6px;margin-top:.75rem;padding:.5rem 1.25rem;font-size:.85rem;font-weight:600;transition:opacity .15s}.preview-retry-btn:hover{opacity:.85}.preview-loading-log{width:100%;max-height:16rem;font-size:.82rem;font-family:var(--font-mono);color:var(--color-text-muted);background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:4px;margin:0;padding:.5rem;line-height:1.5;list-style:none;overflow-y:auto}.preview-loading-log li{border-bottom:1px dashed var(--color-border);padding:.2rem 0}.preview-loading-log li:last-child{color:var(--color-text-primary);border-bottom:none;font-weight:700}.preview-loading-log .log-time{color:var(--color-text-muted2);-webkit-user-select:none;user-select:none;margin-right:.5rem}.preview-time-label{z-index:20;border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg-panel) 92%, transparent);color:var(--color-text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:999px;padding:.35rem .7rem;font-size:.78rem;font-weight:700;position:absolute;top:.75rem;left:.75rem;box-shadow:0 8px 18px #0f172a1f}.preview-log-pill{z-index:20;border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg-panel) 92%, transparent);color:var(--color-text);border-radius:999px;padding:.35rem .7rem;font-size:.78rem;font-weight:800;position:absolute;top:.75rem;right:.75rem;box-shadow:0 8px 18px #0f172a1f}.preview-log-pill:hover{border-color:var(--color-accent,#00ae42);color:var(--color-accent,#00ae42)}.preview-log-overlay{z-index:90;background:var(--color-overlay-backdrop,#00000059);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:8px;justify-content:stretch;align-items:stretch;padding:.75rem;display:flex;position:absolute;inset:0}.preview-log-card{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg-panel) 96%, transparent);border-radius:8px;flex-direction:column;gap:.65rem;width:100%;min-height:0;padding:.8rem;display:flex;box-shadow:0 16px 32px #0f172a2e}.preview-log-card-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.preview-log-card-header div{gap:.1rem;display:grid}.preview-log-card-header span{color:var(--color-text-muted);text-transform:uppercase;font-size:.76rem;font-weight:800}.preview-log-card-header strong{color:var(--color-text-emphasis);font-size:.95rem}.preview-log-close{border:1px solid var(--color-border);background:var(--color-bg-panel);color:var(--color-text);border-radius:999px;padding:.35rem .65rem;font-size:.78rem;font-weight:800}.preview-history-log{flex:1;max-height:none}.preview-source-strip{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg-panel) 86%, transparent);color:var(--color-text-muted);border-radius:6px;flex-wrap:wrap;align-items:center;gap:.35rem .75rem;margin-top:.5rem;padding:.5rem .65rem;font-size:.78rem;display:flex}.preview-source-strip strong{color:var(--color-text-emphasis);text-transform:uppercase;font-size:.8rem}.preview-source-strip.has-overture{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-border));background:color-mix(in srgb, var(--color-accent) 10%, var(--color-bg-panel))}.preview-attribution-strip{align-items:flex-start}.preview-attribution-strip span{overflow-wrap:anywhere;flex:18rem;line-height:1.35}.preview-source-actions{flex-wrap:wrap;flex:100%;justify-content:flex-end;gap:.5rem;display:flex}.preview-source-actions button,.export-compliance-actions button{padding:.35rem .55rem;font-size:.78rem}.build-plate-controls{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-bg-panel) 82%, transparent);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .65rem;display:flex}.build-plate-controls>span{color:var(--color-text-muted);text-transform:uppercase;white-space:nowrap;font-size:.78rem;font-weight:800}.build-plate-options{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.build-plate-option{border:1px solid var(--color-border);border-radius:6px;padding:.34rem .6rem;font-size:.74rem;font-weight:800;line-height:1.1}.build-plate-option.active{border-color:var(--color-accent);background:var(--color-btn-shape-hover);color:var(--color-text-primary)}.moon-preview-marker-toggle{min-height:2.75rem;padding-top:1.35rem}.moon-preview-marker-field.disabled{opacity:.55}.moon-preview-marker-field input[type=color]{cursor:pointer;min-height:2.35rem;padding:.2rem}.moon-preview-marker-toggle.disabled{opacity:.55}.preview-stats-details{margin-top:.5rem}.preview-stats-summary{cursor:pointer;color:var(--color-text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.75rem;padding:.35rem 0;font-size:.85rem;display:flex}.preview-stats-summary strong{font-size:.8rem;font-family:var(--font-mono)}.preview-stats-details[open] .preview-stats-summary{margin-bottom:.5rem}.stats-grid{color:var(--color-text-muted);gap:.35rem;font-size:.88rem;display:grid}.stats-grid>div{grid-template-columns:minmax(0,140px) 1fr;align-items:baseline;gap:.75rem;display:grid}.stats-grid strong{color:var(--color-text-emphasis);text-align:right;font-weight:800;font-family:var(--font-mono)}.warnings{color:var(--color-warning-text);margin:0;padding-left:1.1rem;font-size:.88rem}.status{background:var(--color-bg-status);min-height:2.4rem;color:var(--color-text-emphasis);border-radius:8px;margin:0;padding:.75rem}.status.warning{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.attribution{color:var(--color-text-attribution);margin:0;font-size:.75rem;line-height:1.35}.mobile-tabs-container{display:none}@media (width<=980px){.mobile-tabs-container{background:var(--color-bg-panel);border-bottom:1px solid var(--color-border);z-index:1010;padding:.5rem .75rem;display:block;position:sticky;top:0}.mobile-tabs{background:var(--color-bg-page);border:1px solid var(--color-border);border-radius:10px;grid-template-columns:1fr 1fr;gap:.25rem;padding:3px;display:grid}.mobile-tab-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:.6rem .5rem;font-size:.85rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.mobile-tab-btn:hover{color:var(--color-text-primary)}.mobile-tab-btn.active{background:var(--color-bg-panel);color:var(--color-accent);box-shadow:0 2px 6px #00000014}[data-theme=dark] .mobile-tab-btn.active{box-shadow:0 2px 6px #0000004d}.mobile-tab-badge{background-color:var(--color-accent);width:8px;height:8px;box-shadow:0 0 0 2px var(--color-bg-panel), 0 0 8px var(--color-accent);border-radius:50%;animation:2s infinite pulse-badge;position:absolute;top:8px;right:12px}@keyframes pulse-badge{0%{transform:scale(.95);box-shadow:0 0 #00ae42b3}70%{transform:scale(1);box-shadow:0 0 0 6px #00ae4200}to{transform:scale(.95);box-shadow:0 0 #00ae4200}}.app-shell{flex-direction:column;grid-template-columns:none;height:100%;display:flex;overflow:hidden}.app-shell.mobile-tab-map .control-panel,.app-shell.mobile-tab-settings .map-panel{display:none}.map-panel,.control-panel{flex:1;height:100%;min-height:0}.control-panel{border-left:0;max-height:none;overflow-y:auto}.map-wrapper,.map{height:100%!important;min-height:0!important}}@media (width<=620px){.map-panel,.control-panel{padding:.75rem}.map-toolbar,.search-form,.control-grid,.segmented-control,.button-row,.four-color-options,.generation-preset-options,.palette-note,.road-widths{grid-template-columns:1fr}.map-wrapper,.map{min-height:360px}.build-plate-controls{flex-direction:column;align-items:stretch}.build-plate-options{justify-content:stretch}.build-plate-option{flex:calc(50% - .35rem)}}.checkbox-container{color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:.5rem;margin:.25rem 0;font-size:.9rem;font-weight:700;display:flex}.checkbox-container input[type=checkbox]{cursor:pointer;width:auto;margin:0}.color-checkbox-row{cursor:pointer;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.5rem;font-size:.8rem;display:grid!important}.color-checkbox-row input[type=checkbox]{cursor:pointer;width:auto;margin:0}.color-checkbox-label{color:var(--color-text-secondary);font-size:.8rem;font-weight:700}.color-checkbox-row input[type=color]{cursor:pointer;border-radius:6px;width:2.25rem;height:1.8rem;padding:.1rem}.dashed-toggle{cursor:pointer;width:14px;height:14px;accent-color:var(--color-accent);flex-shrink:0;margin:0 4px 0 2px}.dashed-toggle:disabled{opacity:.35;cursor:default}.blank-water-row{opacity:.85;padding-left:1.75rem;font-style:italic;grid-template-columns:auto 1fr!important}.blank-water-row.disabled{opacity:.4;pointer-events:none}.checkbox-label{color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;display:flex!important}.checkbox-label input[type=checkbox]{cursor:pointer;width:auto;margin:0}.building-group{border:1px solid var(--color-border-section);background:var(--color-palette-group-bg);border-radius:8px;flex-direction:column;grid-column:1/-1;gap:.25rem;padding:.5rem .6rem;display:flex}.building-parent{margin-bottom:.1rem}.building-children{border-left:2px solid var(--color-border-section);flex-direction:column;gap:.2rem;margin-top:.1rem;margin-left:.1rem;padding-left:.65rem;display:flex}.building-subtype{opacity:1;transition:opacity .15s}.building-subtype.disabled{opacity:var(--color-section-disabled-opacity)}.building-subtype.disabled input[type=color]{cursor:default}.palette-group{background:var(--color-palette-group-bg);flex-direction:column;gap:.2rem;padding:.5rem .6rem;display:flex}.palette-group-label{color:var(--color-palette-label);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.palette-group-children{border-left:2px solid var(--color-border-section);flex-direction:column;gap:.2rem;padding-left:.65rem;display:flex}.section-disabled{opacity:var(--color-section-disabled-opacity)}.map-dimension-label{pointer-events:none!important;background:0 0!important;border:none!important;align-items:center!important;display:flex!important}.width-label{justify-content:center!important}.height-label{justify-content:flex-end!important}.map-dimension-label.oversize div{background:var(--color-warning-bg)!important;color:var(--color-warning-text)!important;border-color:var(--color-warning-border)!important}.map-dimension-label div{background:var(--color-dimension-bg);color:var(--color-dimension-text);border:1px solid var(--color-dimension-border);text-align:center;white-space:nowrap;box-shadow:0 2px 6px var(--color-dimension-shadow);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:6px;padding:3px 8px;font-size:.72rem;font-weight:700}.search-input-container{width:100%;position:relative}.suggestions-dropdown{z-index:2000;background:var(--color-bg-input);border:1px solid var(--color-border);box-shadow:0 4px 12px var(--color-suggestion-shadow);border-radius:8px;max-height:220px;margin-top:4px;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.suggestions-dropdown li{color:var(--color-text-primary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:.65rem .75rem;font-size:.88rem;transition:background .15s;overflow:hidden}.suggestions-dropdown li:hover,.suggestions-dropdown li.active{background:var(--color-suggestion-hover);color:var(--color-accent)}.suggestions-dropdown li:not(:last-child){border-bottom:1px solid var(--color-suggestion-border)}.map-loading-overlay{background:var(--color-loading-overlay);z-index:9999;color:var(--color-loading-text);place-items:center;font-size:1.2rem;font-weight:800;display:grid;position:absolute;inset:0}[data-theme=dark] .leaflet-tile{filter:invert()hue-rotate(180deg)brightness(.75)contrast(.85)!important}.leaflet-tile.planetary-basemap-tile{mix-blend-mode:normal!important}[data-theme=dark] .leaflet-tile.planetary-basemap-tile{filter:none!important}[data-theme=dark] .leaflet-container{background:var(--color-bg-leaflet)!important}.moon-landmark-label{pointer-events:none;width:auto!important;height:auto!important}.moon-landmark-label .moon-landmark-dot{background:#d32f2f;border:2px solid #fff;border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:4px;box-shadow:0 0 0 2px #00000059}.moon-landmark-label .moon-landmark-text{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#11110fd6;border:1px solid #ffffff3d;border-radius:6px;gap:1px;min-width:116px;max-width:250px;margin-left:14px;padding:5px 8px 6px;display:grid;box-shadow:0 3px 10px #00000052}.moon-landmark-label strong,.moon-landmark-label small{overflow-wrap:anywhere;white-space:normal}.moon-landmark-label strong{letter-spacing:0;font-size:.76rem;font-weight:850;line-height:1.12}.moon-landmark-label small{color:#ffffffbf;font-size:.62rem;font-weight:650;line-height:1.18}.page-container{max-width:800px;margin:0 auto;padding:3rem 1.5rem 5rem}.page-container h1{color:var(--color-text-emphasis);margin-bottom:1.5rem;font-size:2.2rem}.page-content{color:var(--color-text-secondary);font-size:1.05rem;line-height:1.6}.page-content p{margin-bottom:1.25rem}.page-content ul{margin-bottom:1.5rem;padding-left:1.5rem}.page-content li{margin-bottom:.5rem}.page-content strong{color:var(--color-text-emphasis)}.patch-version{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:10px;margin-bottom:1.25rem;padding:1.25rem 1.5rem}.patch-version-header{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.75rem;display:flex}.patch-version-date{color:var(--color-text-emphasis);font-size:1.1rem;font-weight:700}.patch-version-label{color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent);border-radius:99px;padding:.15rem .6rem;font-size:.85rem;font-weight:600}.patch-version-list{color:var(--color-text-secondary);margin-bottom:0;padding-left:1.5rem;font-size:.98rem;line-height:1.65}.patch-version-list li{margin-bottom:.35rem}.patch-version-list li:last-child{margin-bottom:0}.attribution-footer-note{background:var(--color-bg-panel);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:8px;margin-top:1.5rem;padding:1rem 1.25rem;font-size:.95rem}.contact-card{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:8px;gap:.5rem;margin-bottom:1rem;padding:1rem;display:flex}.contact-card a{color:var(--color-accent);font-weight:600;text-decoration:none}.project-cards{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.project-card{background:var(--color-bg-panel);border:1px solid var(--color-border);color:inherit;border-radius:8px;align-items:flex-start;gap:.75rem;padding:1rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.project-card:hover{border-color:var(--color-accent);background:var(--color-bg-input)}.project-card-icon{flex-shrink:0;font-size:1.5rem;line-height:1}.project-card-body{flex-direction:column;gap:.2rem;display:flex}.project-card-body strong{color:var(--color-text-emphasis);font-size:1.05rem}.project-card-desc{color:var(--color-text-secondary);font-size:.95rem;line-height:1.5}.pricing-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem;display:grid}.pricing-card{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:1rem;padding:2rem;display:flex}.pricing-card.premium{border-color:var(--color-accent);position:relative;box-shadow:0 4px 20px #00ae4226}.pricing-card.premium:before{content:"RECOMMENDED";background:var(--color-accent);color:#fff;letter-spacing:.05em;border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:800;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.pricing-card h2{margin:0;font-size:1.5rem}.pricing-card .price{color:var(--color-text-emphasis);font-size:2.5rem;font-weight:800}.pricing-card .period{color:var(--color-text-muted);font-size:1rem;font-weight:600}.pricing-card ul{border-top:1px solid var(--color-border-section);margin-top:1rem;padding:1rem 0 0;list-style:none}.pricing-card li{margin-bottom:.75rem;padding-left:1.5rem;position:relative}.pricing-card li:before{content:"✓";color:var(--color-accent);font-weight:800;position:absolute;left:0}.ribbon-nav a.active{color:var(--color-accent);border-bottom:2px solid var(--color-accent);padding-bottom:2px;font-weight:800}.ribbon-nav .ribbon-menu a.active{background:var(--color-btn-secondary-bg);color:var(--color-text-emphasis);border-bottom:0;padding-bottom:.48rem}.contact-page{max-width:1040px}.contact-layout{grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);align-items:start;gap:4rem;display:grid}.contact-intro{position:sticky;top:6rem}.page-eyebrow{color:var(--color-accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.65rem;font-size:.76rem;font-weight:800;display:block}.contact-intro h1{margin:0 0 1rem}.contact-intro>p{color:var(--color-text-secondary);line-height:1.65}.contact-direct{border-top:1px solid var(--color-border-section);padding-top:1rem;font-size:.9rem}.contact-direct a{color:var(--color-accent);font-weight:700}.contact-form{border:1px solid var(--color-border);background:var(--color-bg-panel);border-radius:12px;gap:1.1rem;padding:1.5rem;display:grid}.contact-form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.field-help{color:var(--color-text-muted);font-size:.78rem;font-weight:500}.contact-consent{grid-template-columns:none;align-items:flex-start;gap:.65rem;font-weight:500;line-height:1.45;display:flex}.contact-consent input{width:auto;margin-top:.2rem}.contact-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-status{border-radius:8px;margin:0;padding:.8rem;font-size:.9rem;font-weight:700}.contact-status.sent{color:var(--color-accent-hover);background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.contact-status.error{color:var(--color-warning-text);background:var(--color-warning-bg);border:1px solid var(--color-warning-border)}.field-optional{color:var(--color-text-muted);text-transform:none;letter-spacing:normal;font-size:.78rem;font-weight:500}.field-highlight{outline:3px solid var(--color-accent);outline-offset:2px;transition:outline .3s,border-color .3s;border-color:var(--color-accent)!important}.dialog-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;animation:.15s dialog-fade-in;display:flex;position:fixed;inset:0}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}.dialog-box{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:14px;width:calc(100% - 2rem);max-width:420px;padding:1.8rem;animation:.2s dialog-slide-up;box-shadow:0 12px 40px #0000004d}@keyframes dialog-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.dialog-box p{color:var(--color-text);margin:0 0 .8rem;line-height:1.5}.dialog-box p:first-child{font-size:1.1rem}.dialog-actions{justify-content:flex-end;gap:.7rem;margin-top:1.3rem;display:flex}.dialog-btn{cursor:pointer;color:#fff;background:var(--color-accent);border:none;border-radius:8px;padding:.55rem 1.2rem;font-size:.9rem;font-weight:600;transition:opacity .15s}.dialog-btn:hover{opacity:.85}.dialog-btn.secondary{color:var(--color-text);border:1px solid var(--color-border);background:0 0}.dialog-btn.secondary:hover{background:var(--color-bg-hover)}@media (width<=760px){.contact-layout{grid-template-columns:1fr;gap:1.5rem}.contact-intro{position:static}.contact-form-row{grid-template-columns:1fr}}.modal-overlay{background:var(--color-overlay-backdrop,#000000a6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;place-items:center;animation:.2s ease-out fadeIn;display:grid;position:fixed;inset:0}.modal-card{background:var(--color-bg-panel);border:1px solid var(--color-border);border-radius:12px;gap:1.25rem;width:90%;max-width:440px;padding:1.75rem;animation:.2s ease-out slideUp;display:grid;box-shadow:0 12px 30px #00000040}.export-modal-card{max-width:640px;max-height:min(90vh,760px);overflow:auto}.modal-card h3{color:var(--color-text-primary);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:800}.modal-card p{color:var(--color-text-secondary);margin:0;font-size:.92rem;line-height:1.45}.export-note{background:var(--color-bg-muted);color:var(--color-text-muted);text-align:center;border-radius:6px;margin-top:.75rem;padding:.5rem .75rem;font-size:.82rem}.modal-card .input-group{gap:.5rem;display:grid}.modal-card .input-group label{color:var(--color-text-muted);text-transform:uppercase;font-size:.8rem;font-weight:700}.export-compliance-summary{border:1px solid var(--color-border);background:var(--color-bg-status);border-radius:8px;gap:.8rem;padding:.9rem;display:grid}.export-compliance-header,.export-compliance-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.export-compliance-header strong{color:var(--color-text-primary)}.export-compliance-header a{font-size:.85rem;font-weight:700}.rights-summary-grid{grid-template-columns:minmax(8rem,.9fr) minmax(0,1.1fr);gap:.45rem .9rem;font-size:.86rem;display:grid}.rights-summary-grid span{color:var(--color-text-muted)}.rights-summary-grid strong{color:var(--color-text-primary);overflow-wrap:anywhere}.export-compliance-warning{color:var(--color-text-secondary);background:#f49b001f;border:1px solid #f49b0059;border-radius:6px;padding:.6rem .7rem}.modal-checkbox{color:var(--color-text-secondary);grid-template-columns:auto 1fr;align-items:flex-start;gap:.55rem;font-size:.86rem;line-height:1.4;display:grid}.modal-checkbox input{margin-top:.15rem}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.report-modal textarea{border:1px solid var(--color-border-input);background:var(--color-bg-input);width:100%;color:var(--color-text-primary);resize:vertical;border-radius:6px;padding:.6rem .75rem;font-family:inherit;font-size:.9rem;line-height:1.5}.report-modal textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 2px #00ae4226}.report-coords{background:var(--color-bg-status);border:1px solid var(--color-border);border-radius:6px;align-items:flex-start;gap:.5rem;padding:.6rem .75rem;font-size:.8rem;display:flex}.report-coords-label{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-weight:600}.report-coords-values{color:var(--color-text-secondary);font-family:var(--font-mono);word-break:break-all}.report-status{margin:0;font-size:.85rem;line-height:1.4}.report-status.success{color:var(--color-accent)}.report-status.error{color:var(--color-warning-text)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.preview-pane-wrapper{width:100%;position:relative}.preview-warning-overlay{background:var(--color-overlay-backdrop,#000000bf);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;box-sizing:border-box;border-radius:8px;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out fadeIn;display:flex;position:absolute;inset:0}.preview-warning-card{background:var(--color-bg-panel);border:1px solid var(--color-border);text-align:center;border-radius:12px;flex-direction:column;gap:.75rem;width:95%;max-width:380px;padding:1.25rem;animation:.2s ease-out slideUp;display:flex;box-shadow:0 10px 25px #0000004d}.preview-warning-icon{margin-bottom:.25rem;font-size:2rem}.preview-warning-card h3{color:var(--color-warning-text);letter-spacing:-.01em;margin:0;font-size:1.15rem;font-weight:800}.preview-warning-card p{color:var(--color-text-primary);margin:0;font-size:.9rem;line-height:1.4}.preview-warning-card .preview-warning-hint{color:var(--color-text-secondary);font-size:.85rem;line-height:1.35}.preview-warning-actions{flex-direction:column;gap:.5rem;margin-top:.75rem;display:flex}.preview-warning-actions button{cursor:pointer;border:none;border-radius:6px;width:100%;padding:.65rem 1rem;font-size:.88rem;font-weight:700;transition:all .15s}.preview-warning-actions .btn-accept{background:var(--color-accent);color:var(--color-text-inverse)}.preview-warning-actions .btn-accept:hover{background:var(--color-accent-hover)}.preview-warning-actions .btn-alter{background:var(--color-btn-secondary-bg);color:var(--color-btn-secondary-text);border:1px solid var(--color-border)}.preview-warning-actions .btn-alter:hover{filter:brightness(.95)}.preview-warning-actions .btn-cancel-warning{color:var(--color-text-muted);background:0 0}.preview-warning-actions .btn-cancel-warning:hover{color:var(--color-text-primary)}.compute-time-banner{background:var(--color-bg-panel);min-height:68px;color:var(--color-text-primary);text-align:left;border:1.5px solid #ffb300;border-radius:8px;grid-template-columns:64px minmax(0,1fr);align-items:stretch;margin-top:16px;margin-bottom:12px;padding:0;display:grid;overflow:hidden;box-shadow:0 8px 22px #ffb30014}.compute-time-banner-icon{color:#1a1a1a;background:#ffb300;place-items:center;padding-right:6px;display:grid;position:relative}.compute-time-banner-icon:after{content:"";background:inherit;clip-path:polygon(0 0,100% 0,0 100%);width:15px;height:100%;position:absolute;top:0;right:-14px}.compute-time-banner-icon svg{width:31px;height:31px}.compute-time-banner-copy{min-width:0;color:var(--color-text-primary);align-content:center;gap:.12rem;padding:.72rem .5rem .72rem 1.6rem;font-size:.86rem;font-weight:600;line-height:1.35;display:grid}.compute-time-banner-copy strong{color:var(--color-text-emphasis);font-size:.9rem;font-weight:850}.compute-time-banner-copy span{color:var(--color-text-secondary);font-size:.8rem;font-weight:650}.seo-landing-page{max-width:980px}.seo-landing{gap:1.2rem;display:grid}.seo-landing h1{margin-bottom:.25rem}.seo-landing-intro{max-width:760px;color:var(--color-text-secondary);font-size:1.02rem;line-height:1.55}.seo-landing-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);align-items:start;gap:1.25rem;display:grid}.seo-landing-copy{gap:1rem;display:grid}.seo-feature-list{color:var(--color-text-primary);margin:0;padding-left:1.25rem;line-height:1.55}.seo-feature-list li+li{margin-top:.55rem}.seo-detail-sections{gap:.8rem;display:grid}.seo-detail-sections section{gap:.25rem;display:grid}.seo-detail-sections h2{margin:0;font-size:1rem}.seo-detail-sections p{color:var(--color-text-secondary);margin:0;font-size:.94rem;line-height:1.5}.seo-primary-link{background:var(--color-accent);width:fit-content;min-height:42px;color:var(--color-text-inverse);border-radius:6px;justify-content:center;align-items:center;padding:.7rem 1rem;font-weight:800;text-decoration:none;display:inline-flex}.seo-primary-link:hover,.seo-primary-link:focus-visible{background:var(--color-accent-hover)}.seo-landing-media{gap:.5rem;margin:0;display:grid}.seo-landing-media img{aspect-ratio:16/9;object-fit:cover;border:1px solid var(--color-border);background:var(--color-bg-panel);border-radius:8px;width:100%;display:block}.seo-landing-media figcaption{color:var(--color-text-secondary);font-size:.85rem;line-height:1.4}.seo-faq-section{gap:.55rem;max-width:820px;padding-top:.25rem;display:grid}.seo-faq-section h2{margin:0 0 .15rem;font-size:1.05rem}.seo-faq-section details{border:1px solid var(--color-border);background:var(--color-bg-panel);border-radius:6px}.seo-faq-section summary{cursor:pointer;min-height:38px;padding:.55rem .75rem;font-weight:800}.seo-faq-section p{color:var(--color-text-secondary);margin:0;padding:0 .75rem .75rem;font-size:.94rem;line-height:1.5}.seo-related-links{flex-wrap:wrap;gap:.55rem;padding-top:.25rem;display:flex}.seo-related-links.compact{margin:1rem 0}.seo-related-links a{border:1px solid var(--color-border);background:var(--color-bg-panel);min-height:36px;color:var(--color-text-primary);border-radius:6px;align-items:center;padding:.45rem .65rem;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.seo-related-links a:hover,.seo-related-links a:focus-visible{border-color:var(--color-accent);color:var(--color-accent)}@media (width<=760px){.seo-landing-grid{grid-template-columns:1fr}}
