*{box-sizing:border-box}html{height:100%;height:-webkit-fill-available}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex;flex-direction:column;background-color:#f7f7f7;color:#333;overflow:hidden;margin:0;padding:0;min-height:100vh;min-height:-webkit-fill-available;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;contain:layout style paint}#main-container{display:flex;flex:1;height:100vh}#map{width:65%;height:100vh;cursor:grab;box-shadow:0 8px 16px #0000001a;transition:cursor .2s ease-in-out;transform:translateZ(0);will-change:transform;contain:layout style paint}@media(min-width:769px){#mobile-header{display:none}}#map:active{cursor:grabbing}#bbox-panel{width:35%;height:100vh;background-color:#fff;border-left:1px solid #ddd;padding:30px;box-sizing:border-box;overflow-y:auto;box-shadow:-2px 0 10px #0000000d;display:flex;flex-direction:column}.integrated-user-menu{background:linear-gradient(135deg,#1976d214,#1565c00d);border-radius:12px;padding:20px;margin-bottom:24px;border:1px solid rgba(25,118,210,.15);box-shadow:0 2px 8px #0000000d;transition:all .3s ease}.integrated-user-menu.collapsed{padding:16px 20px}.integrated-user-info{display:flex;align-items:center;gap:15px;margin-bottom:0;position:relative}.integrated-menu-toggle-wrapper{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:8px}.integrated-menu-toggle-text{font-size:.85rem;font-weight:600;color:#1976d2;white-space:nowrap;transition:color .3s ease;user-select:none}.integrated-menu-toggle-wrapper:hover .integrated-menu-toggle-text{color:#1565c0}.integrated-menu-toggle{background:#1976d21a;border:1px solid rgba(25,118,210,.2);border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#1976d2;padding:0;flex-shrink:0}.integrated-menu-toggle:hover{background:#1976d233;border-color:#1976d266;transform:scale(1.05)}.integrated-menu-toggle svg{transition:transform .3s ease}.integrated-menu-collapsible{max-height:1000px;opacity:1;overflow:hidden;transition:max-height .4s ease,opacity .3s ease,margin-top .3s ease;margin-top:0}.integrated-user-menu.collapsed .integrated-menu-collapsible{max-height:0;opacity:0;margin-top:0}.integrated-user-menu.collapsed .integrated-user-info{margin-bottom:0}.integrated-user-avatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem;color:#fff;flex-shrink:0;overflow:hidden;border:3px solid rgba(255,255,255,.5);box-shadow:0 4px 12px #00000026}.integrated-user-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.integrated-user-details{flex:1;min-width:0;margin-right:120px}.integrated-user-name{font-size:1.1rem;font-weight:700;color:#1a2332;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.integrated-user-email{font-size:.85rem;color:#64748b;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.integrated-menu-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(25,118,210,.2),transparent);margin:16px 0}.integrated-menu-links{display:flex;flex-direction:column;gap:8px}.integrated-menu-link{display:flex;align-items:center;gap:12px;padding:10px 14px;color:#475569;text-decoration:none;border-radius:8px;transition:all .3s;font-size:.95rem;font-weight:500;background:#ffffff80;border:1px solid rgba(25,118,210,.1)}.integrated-menu-link:hover{background:#1976d21a;color:#1976d2;transform:translate(4px)}.integrated-menu-link.highlight{background:#4caf501a;color:#2e7d32;border:1px solid rgba(76,175,80,.3);font-weight:600}.integrated-menu-link.highlight:hover{background:#4caf5033;color:#1b5e20}.integrated-menu-link svg{flex-shrink:0}.integrated-menu-actions{display:flex;flex-direction:column;gap:8px}.integrated-menu-button{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff9;border:1px solid rgba(25,118,210,.15);border-radius:8px;color:#475569;cursor:pointer;transition:all .3s;font-size:.95rem;font-weight:500;font-family:inherit;text-align:left;width:100%}.integrated-menu-button:hover{background:#1976d21f;color:#1976d2;transform:translate(4px);border-color:#1976d24d}.integrated-menu-button svg{flex-shrink:0}.integrated-menu-button.logout{color:#dc2626;border-color:#dc262633}.integrated-menu-button.logout:hover{background:#dc26261a;border-color:#dc262666;color:#b91c1c}.personal-info-footer{margin-top:auto;border-top:2px solid #e2e8f0;display:flex;align-items:center;gap:15px;background:linear-gradient(135deg,#673ab70d,#9c27b00d);padding:20px;border-radius:12px;box-shadow:0 2px 8px #0000000d}.personal-info-footer .profile-pic{width:60px;height:60px;border-radius:50%;border:3px solid #9c27b0;flex-shrink:0;box-shadow:0 4px 12px #9c27b04d}.personal-info-footer .personal-text{flex:1;min-width:0}.personal-info-footer .personal-text h4{font-size:1rem;margin:0 0 4px;color:#4a148c;font-weight:700}.personal-info-footer .personal-text .nickname{font-style:italic;color:#7b1fa2;margin:0;font-size:.9rem;font-weight:500}.personal-info{display:flex;align-items:center;padding-bottom:20px;margin-bottom:20px;border-bottom:2px solid #eee}.profile-pic{width:70px;height:70px;border-radius:50%;margin-right:15px;border:2px solid #ddd}.personal-text h2{font-size:1.5em;margin:0 0 5px;color:#333}.personal-text .nickname{font-style:italic;color:#777;margin-bottom:5px}.personal-text a{color:#007bff;text-decoration:none;font-size:1em}.personal-text a:hover{text-decoration:underline}#bbox-panel hr{border:0;border-bottom:1px solid #eee;margin-bottom:20px}#bbox-panel h2{color:#333;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #eee;font-size:24px}.map-elements-card{margin:0 12px 24px;padding:12px;border:1px solid rgba(45,83,116,.16);border-radius:16px;background:radial-gradient(circle at 100% 0,rgba(126,87,194,.11),transparent 38%),linear-gradient(155deg,#fffffffa,#f4f9fcfa);box-shadow:0 10px 24px #20405817}.map-elements-card-header{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:0 2px 11px}.map-elements-eyebrow{display:block;margin-bottom:2px;color:#558078;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}#bbox-panel .map-elements-card-header h2{margin:0;padding:0;border:0;color:#1f3e4d;font-size:18px;line-height:1.1}.map-elements-card-header p{margin:4px 0 0;color:#71838d;font-size:10px;line-height:1.35}.map-elements-tabs{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:6px;border:1px solid rgba(45,83,116,.12);border-radius:14px;background:#eef5f7c7;box-shadow:0 4px 12px #22445b12;backdrop-filter:blur(10px)}.map-elements-tab{--map-tab-rgb: 25, 118, 210;--map-tab-start: #1976d2;--map-tab-end: #3569c8;position:relative;min-width:0;min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 7px;border:1px solid rgba(var(--map-tab-rgb),.28);border-radius:10px;color:rgb(var(--map-tab-rgb));background:linear-gradient(145deg,rgba(var(--map-tab-rgb),.16),rgba(var(--map-tab-rgb),.08));box-shadow:0 3px 8px rgba(var(--map-tab-rgb),.1);font-family:inherit;font-size:12px;font-weight:800;line-height:1;cursor:pointer;transition:color .2s,background .2s,border-color .2s,box-shadow .2s,transform .2s}.map-elements-tab[data-map-elements-tab=boxes]{--map-tab-rgb: 25, 118, 210;--map-tab-start: #1976d2;--map-tab-end: #405fc3}.map-elements-tab[data-map-elements-tab=tracks]{--map-tab-rgb: 117, 72, 181;--map-tab-start: #7e57c2;--map-tab-end: #5e35b1}.map-elements-tab[data-map-elements-tab=pins]{--map-tab-rgb: 171, 71, 188;--map-tab-start: #ab47bc;--map-tab-end: #8e24aa}.map-elements-tab svg{width:20px;height:20px;padding:3px;box-sizing:border-box;flex:0 0 auto;fill:currentColor;border-radius:6px;background:rgba(var(--map-tab-rgb),.13)}.map-elements-tab:hover{color:rgb(var(--map-tab-rgb));border-color:rgba(var(--map-tab-rgb),.48);background:linear-gradient(145deg,rgba(var(--map-tab-rgb),.22),rgba(var(--map-tab-rgb),.12));box-shadow:0 5px 12px rgba(var(--map-tab-rgb),.17);transform:translateY(-1px)}.map-elements-tab.active{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--map-tab-start),var(--map-tab-end));box-shadow:0 6px 14px rgba(var(--map-tab-rgb),.3);transform:translateY(-2px)}.map-elements-tab.active svg{background:#fff3}.map-elements-tab:focus-visible{outline:3px solid rgba(var(--map-tab-rgb),.3);outline-offset:2px}.map-elements-tab .map-elements-tab-count{position:absolute;top:3px;right:3px;min-width:17px;height:17px;padding:0 4px;align-items:center;justify-content:center;border-radius:999px;color:rgb(var(--map-tab-rgb));background:#ffffffb8;border:1px solid rgba(var(--map-tab-rgb),.18);font-size:9px;font-weight:850;line-height:1}.map-elements-tab.active .map-elements-tab-count{color:#fff;background:#ffffff38;border-color:#ffffff2e}.map-elements-panels{padding-top:12px}.map-elements-panel[hidden]{display:none!important}.map-elements-panel.active{animation:map-elements-panel-in .2s ease}@keyframes map-elements-panel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.map-elements-panel .pin-section,.map-elements-panel .track-section{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.map-elements-panel #bbox-list{margin:0}.map-elements-panel #bbox-list li{margin-bottom:12px;padding:14px}.map-elements-panel #bbox-list li:last-child,.map-elements-panel #track-list li:last-child,.map-elements-panel #pin-list li:last-child{margin-bottom:0}.map-elements-panel .track-section-header,.map-elements-panel .pin-section-header{margin:0 0 10px;padding:0 1px 9px;border-bottom:1px solid #e0eaed}.map-elements-panel .track-section-header p,.map-elements-panel .pin-section-header p{margin:0;color:#6b808a;font-size:10px;line-height:1.4}#bbox-list{list-style:none;padding:0}#bbox-list li{margin-bottom:25px;padding:25px;border:1px solid #e2e8f0;border-radius:12px;background-color:#f9fafb;font-size:16px;box-shadow:0 4px 10px #0000000d;transition:background-color .3s,transform .3s}#bbox-list li:hover{background-color:#f0f4f8;transform:translateY(-5px)}.map-elements-panel #bbox-list li.bbox-empty-message{display:flex;flex-direction:column;gap:5px;padding:15px 13px;color:#64748b;background:linear-gradient(145deg,#eff6ffeb,#ffffffe6);border:1px dashed #93c5fd;border-radius:10px;text-align:center;font-size:12px;line-height:1.45;box-shadow:none}.map-elements-panel #bbox-list li.bbox-empty-message:hover{background:linear-gradient(145deg,#eff6ffeb,#ffffffe6);transform:none}.bbox-empty-message strong{color:#1d4ed8;font-size:13px}.bbox-empty-message b{color:#334155;font-weight:750}#bbox-list li .bbox-title-container{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}#bbox-list li .bbox-title-container span{font-weight:700;color:#333;font-size:1.1em;margin:0}#bbox-list li .bbox-title-container .bbox-title-actions{display:flex;gap:6px;align-items:center}#bbox-list li .bbox-title-container .bbox-title-actions button{padding:5px 8px;font-size:.8em;border-radius:5px;border:none;cursor:pointer;transition:background-color .3s,transform .2s;color:#000;font-weight:500;white-space:nowrap}#bbox-list li .bbox-title-container .bbox-title-actions button:hover{transform:translateY(-1px)}#bbox-list li .bbox-title-container .bbox-title-actions button:active{transform:translateY(0)}#bbox-list li .bbox-title-container .bbox-title-actions button.rename-button{background-color:#4caf50}#bbox-list li .bbox-title-container .bbox-title-actions button.rename-button:hover{background-color:#388e3c}#bbox-list li .bbox-title-container .bbox-title-actions button.toggle-button{background-color:#ff0}#bbox-list li .bbox-title-container .bbox-title-actions button.toggle-button:hover{background-color:#ee0}#bbox-list li .bbox-title-container .bbox-title-actions button.edit-button{background-color:#2196f3;color:#fff}#bbox-list li .bbox-title-container .bbox-title-actions button.edit-button:hover{background-color:#1976d2}#bbox-list li .bbox-title-container .bbox-title-actions button.delete-button{background-color:red;color:#fff}#bbox-list li .bbox-title-container .bbox-title-actions button.delete-button:hover{background-color:#d32f2f}#bbox-list li .coordinates{margin-bottom:15px;display:grid;grid-template-columns:repeat(2,1fr);gap:0px;border:1px solid black}#bbox-list li .coordinates span{display:flex;align-items:center;justify-content:center;padding:10px;background-color:#f0f4f8;color:#424242;font-size:.95em;font-weight:700;box-shadow:none;position:relative;overflow:hidden;border-right:1px solid black;border-bottom:1px solid black;font-family:Courier New,Courier,monospace}#bbox-list li .coordinates span:nth-child(2n){border-right:none}#bbox-list li .coordinates span:nth-last-child(-n+2){border-bottom:none}#bbox-list li .coordinates span:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background-color:transparent}#bbox-list li .action-buttons{display:flex;justify-content:space-between;align-items:center}#bbox-list li .action-buttons button{padding:8px 12px;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s,color .3s,box-shadow .3s;font-size:.9em;font-family:inherit;box-shadow:0 2px 6px #0000001a;outline:none;width:48%;box-sizing:border-box}#bbox-list li .action-buttons button.toggle-button{background-color:#ff0;color:#000}#bbox-list li .action-buttons button.toggle-button:hover{background-color:#ee0}#bbox-list li .action-buttons button.delete-button{background-color:red;color:#000}#bbox-list li .action-buttons button.delete-button:hover{background-color:#f44336}#map-action-toolbar.desktop-only{position:absolute;top:20px;left:10px;z-index:1001;display:none!important;align-items:center;gap:5px;padding:5px;border:1px solid rgba(48,74,98,.2);border-radius:12px;background:#ffffffed;box-shadow:0 6px 18px #1830482e;backdrop-filter:blur(12px)}@media(min-width:769px){#map-action-toolbar.desktop-only{display:flex!important}}@media(min-width:769px)and (max-width:1024px){#map-action-toolbar.desktop-only{gap:3px;padding:4px}#map-action-toolbar .map-action-group{gap:2px;padding:2px}#map-action-toolbar .map-action-group button{gap:3px;padding:5px 6px;font-size:10.5px}#map-action-toolbar .map-action-group button svg{width:15px;height:15px}}.map-action-group{display:flex;align-items:center;gap:3px;padding:3px;border-radius:9px}.map-action-area{background:#1976d214}.map-action-elements{background:#7e57c217}.map-action-divider{width:1px;height:28px;flex:0 0 auto;background:linear-gradient(transparent,rgba(55,77,96,.24),transparent)}.map-action-group button{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;padding:6px 8px;border-radius:7px;cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s,transform .2s;font-size:11.5px;font-weight:750;font-family:inherit;outline:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;pointer-events:auto;white-space:nowrap}.map-action-group button svg{width:15px;height:15px;flex:0 0 auto;fill:currentColor}#draw-bbox-button{background:#64b5f6;color:#102b42}#enter-coordinates-button{background:#1976d2;color:#fff;box-shadow:0 2px 5px #0d47a138}.map-action-group button:hover{transform:translateY(-1px)}#draw-bbox-button:hover{background-color:#2196f3;color:#fff}#enter-coordinates-button:hover{background:#0d47a1;color:#fff;box-shadow:0 3px 8px #0d47a152}#bbox-map-actions button:focus-visible{box-shadow:0 0 0 3px #1976d247}.bbox-handle-icon{background:#ff4081;border:2px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 2px #ff408126,0 2px 6px #00000040;cursor:grab;transition:transform .15s ease,box-shadow .15s ease}.bbox-handle-icon:hover{transform:scale(1.1);box-shadow:0 0 0 4px #ff408140,0 4px 10px #0000004d}#mobile-header{display:none;width:100%;height:60px;background:linear-gradient(135deg,#007bff,#0056b3);box-shadow:0 2px 10px #00000026;z-index:1001;position:relative}#mobile-toggle-button{width:100%;height:100%;background:transparent;color:#fff;border:none;padding:0;font-size:18px;font-weight:600;cursor:pointer;transition:none!important;text-align:center;line-height:60px;letter-spacing:.5px}#mobile-toggle-button:hover{background-color:#ffffff1a;transform:scale(1.02)}#mobile-toggle-button:active{background-color:#fff3;transform:scale(.98)}.mobile-only{display:none}.desktop-only{display:none!important}@media(min-width:769px){.desktop-only{display:block!important}}#mobile-draw-button{width:100%;padding:12px 16px;background-color:#ff4081;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;margin-bottom:20px;transition:all .3s ease;box-shadow:0 2px 6px #0000001a}#mobile-draw-button:hover{background-color:#f50057;transform:translateY(-2px)}#mobile-draw-button:active{transform:translateY(0)}.leaflet-control-layers{background:#fff!important;padding:6px 10px!important;border:1px solid #ccc!important;border-radius:5px!important;box-shadow:0 1px 5px #00000026!important;font-size:12px!important;min-width:auto!important}.leaflet-control-layers label{font-weight:400!important;font-size:12px!important;margin:2px 0!important;color:#333!important}.leaflet-control-layers-toggle{background-color:transparent!important;border:1px solid #ddd!important;border-radius:4px!important;width:34px!important;height:34px!important;box-shadow:0 2px 8px #00000026!important;transition:all .2s ease!important}.leaflet-control-layers-toggle:hover{background-color:#f8f9facc!important;border-color:#007bff!important}.leaflet-control-zoom{top:120px!important}.leaflet-control-zoom a{background-color:#fff!important;border:1px solid #ddd!important;color:#555!important;font-weight:700!important;transition:all .2s ease!important;width:30px!important;height:30px!important;line-height:30px!important;border-radius:4px!important}.leaflet-control-zoom a:hover{background-color:#f8f9fa!important;border-color:#007bff!important;color:#007bff!important}@media(max-width:768px){.leaflet-control-zoom{top:10px!important}}@media(min-width:769px)and (max-width:1024px){#bbox-map-actions button{font-size:12px;padding:6px 9px}}@media(min-width:1400px){#bbox-map-actions button{padding:7px 12px;font-size:13px}}.leaflet-tile-container{transition:transform .3s ease-out}.loading-spinner,.model-preview,.modal-overlay,#bbox-panel{will-change:auto}#bbox-panel{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;overscroll-behavior:contain}.loading-indicator,.progress-bar{will-change:transform,opacity;contain:layout style paint}.generation-settings{margin-top:20px;padding:15px;border:1px solid #ddd;border-radius:8px;background-color:#f8f8f8}.generation-settings h4{margin-top:0;margin-bottom:10px;color:#555}.generation-settings label{display:block;margin-bottom:5px;color:#777;font-size:.9em}.generation-settings input[type=number],.generation-settings select{width:100%;padding:8px;margin-bottom:10px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:14px}.generation-settings .nodata-sea-option{display:flex;align-items:flex-start;gap:10px;margin:4px 0 14px;padding:12px;border:1px solid #c7d2fe;border-radius:8px;background:linear-gradient(135deg,#eef2ff,#f0f9ff);color:#334155;cursor:pointer}.generation-settings .nodata-sea-option input{width:17px;height:17px;margin:2px 0 0;accent-color:#2563eb;flex:0 0 auto}.generation-settings .nodata-sea-option.is-disabled{border-color:#d8dee9;background:#f1f5f9;cursor:not-allowed;opacity:.72}.browser-only-tag{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}.nodata-sea-copy{display:grid;gap:4px;line-height:1.35}.nodata-sea-copy strong{color:#1e3a8a;font-size:13px}.nodata-sea-copy small{color:#64748b;font-size:11px}@media screen and (max-width:768px){.generation-settings input[type=number],.generation-settings select{font-size:16px}}.dimensions-container{margin-bottom:15px}.dimensions-wrapper{display:flex;align-items:center;gap:12px}.dimensions-inputs{flex:1}.dimension-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.dimension-row:last-child{margin-bottom:0}.dimension-row label{min-width:100px;margin-bottom:0;color:#555;font-size:.9em;font-weight:500}.dimension-input-group{display:flex;align-items:center;flex:1;position:relative}.dimension-input{flex:1;padding:8px 12px;border:1px solid #ccc;border-radius:4px;font-size:14px;box-sizing:border-box;transition:border-color .2s ease}.dimension-input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a}.dimension-link-button{background:transparent;border:2px solid #111;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .3s cubic-bezier(.4,0,.2,1);color:#111;flex-shrink:0;height:36px;width:36px;gap:0}.dimension-link-button:hover{background:transparent;border-color:#111}.dimension-link-button.linked{color:#111;border-color:#111}.dimension-link-button.linked:hover{background:transparent;box-shadow:0 0 0 2px #00000014}.dimension-link-button.unlinked{color:#111;opacity:1;border-color:#111}.dimension-link-button.unlinked:hover{color:#111;background:transparent;border-color:#111}.dimension-link-button:active{transform:scale(.95)}.dimension-link-button .link-icon{width:28px;height:28px;transition:all .3s cubic-bezier(.4,0,.2,1)}.dimension-link-button.linked .link-icon{animation:linkConnect .4s cubic-bezier(.175,.885,.32,1.275)}.dimension-link-button.unlinked .link-icon{animation:linkBreak .4s ease-in-out}@keyframes linkConnect{0%{transform:scale(.8) rotate(-15deg);opacity:.5}50%{transform:scale(1.1) rotate(5deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes linkBreak{0%{transform:scale(1)}25%{transform:rotate(10deg)}50%{transform:rotate(-10deg) scale(.95);opacity:1}75%{transform:rotate(5deg)}to{transform:rotate(0);opacity:1}}.generation-settings button{background-color:#26a69a;color:#fff;padding:10px 15px;border:none;border-radius:5px;cursor:pointer;font-size:1em;transition:background-color .3s}.generation-settings button:hover{background-color:#2bbbad}.generation-settings .dimension-link-button{margin-top:0!important;padding:0!important;background:transparent!important;background-color:transparent!important;border:2px solid #111!important;color:#111!important;border-radius:8px!important;width:36px!important;height:36px!important;box-shadow:none!important}.generation-settings .dimension-link-button:hover,.generation-settings .dimension-link-button:active,.generation-settings .dimension-link-button.linked,.generation-settings .dimension-link-button.unlinked{background:transparent!important;background-color:transparent!important;border-color:#111!important;color:#111!important}.generation-settings .dimension-link-button .link-icon{width:30px!important;height:30px!important}.loading-indicator{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999;color:#fff;font-size:18px}.loading-spinner{border:5px solid #f3f3f3;border-top:5px solid #26a69a;border-radius:50%;width:50px;height:50px;animation:spin 2s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-container{width:80%;max-width:400px;margin-top:15px;background-color:#f1f1f1;border-radius:5px;overflow:hidden}.progress-bar{height:10px;background-color:#26a69a;width:0%;transition:width .3s ease}.success-message{position:fixed;top:20px;right:20px;background-color:#4caf50;color:#fff;padding:15px 20px;border-radius:5px;box-shadow:0 4px 8px #0003;z-index:9999;animation:fadeIn .5s,fadeOut .5s 3.5s forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.model-preview{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff;padding:25px;border-radius:12px;box-shadow:0 5px 25px #0000004d;z-index:10000;width:90%;max-width:1000px;height:85vh;max-height:800px;display:flex;flex-direction:column;overflow:hidden}.model-preview h3{margin:0 0 15px;color:#333;font-size:22px;border-bottom:2px solid #eee;padding-bottom:10px;flex-shrink:0}.preview-3d{width:100%;flex-grow:1;border:1px solid #ddd;border-radius:5px;background-color:#f0f0f0;overflow:hidden;position:relative;margin-bottom:15px}.model-info{text-align:left;margin-bottom:10px;padding:8px 12px;background-color:#e8f5e9;border-radius:5px;border-left:4px solid #4CAF50;flex-shrink:0}.model-info p{margin:5px 0;color:#2e7d32;font-size:14px}.model-stats{text-align:left;margin-bottom:15px;padding:10px 12px;background-color:#f9f9f9;border-radius:5px;border-left:4px solid #26a69a;flex-shrink:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:5px 15px}.model-stats p{margin:5px 0;color:#555;font-size:14px}.model-actions{display:flex;justify-content:space-between;gap:15px;flex-shrink:0}.download-button{flex:1;padding:10px 15px;background-color:#64b5f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:15px;font-weight:700;transition:background-color .3s,transform .2s;display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;box-shadow:0 2px 6px #0000001a}.download-button:hover{background-color:#2196f3;transform:translateY(-2px)}.download-button:active{transform:translateY(0)}.close-button{flex:1;padding:10px 15px;background-color:#e57373;color:#000;border:none;border-radius:6px;cursor:pointer;font-size:15px;font-weight:700;transition:background-color .3s;box-shadow:0 2px 6px #0000001a}.close-button:hover{background-color:#f44336}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:9999}@media(max-width:768px){body{overflow:auto}#main-container{display:flex;flex-direction:column;height:calc(100vh - 56px);overflow:hidden}#mobile-header{display:block}#mobile-draw-button{display:block;width:100%;margin:0 0 18px;position:static;z-index:2;top:0;left:0;border-radius:12px;font-size:1em;font-weight:600;background:linear-gradient(135deg,#26a69a,#00897b)!important;color:#fff!important;border:none!important;box-shadow:0 4px 12px #26a69a4d;padding:14px 0;transition:all .3s ease}#mobile-draw-button:active{transform:scale(.98);box-shadow:0 2px 8px #26a69a4d}#draw-bbox-button,#draw-bbox-button.desktop-only{display:none!important;visibility:hidden!important}#bbox-panel{width:100%;height:0;min-height:0;max-height:none;overflow-y:auto;-webkit-overflow-scrolling:touch;order:2;padding:0;border-left:none;border-top:1px solid #ddd;border-bottom:none;display:none;position:relative;z-index:1000;background:#fff;transition:height .3s ease}#bbox-panel[style*="display: flex"]{display:flex!important;padding:16px}#map{width:100%;height:100%;flex-shrink:0;order:1;touch-action:pan-x pan-y;position:relative;z-index:1}.personal-info-footer{margin-top:24px;padding:16px;gap:12px;background:linear-gradient(135deg,#673ab714,#9c27b014);border-radius:10px}.personal-info-footer .profile-pic{width:50px;height:50px;border:2px solid #9c27b0}.personal-info-footer .personal-text h4{font-size:.95rem}.personal-info-footer .personal-text .nickname{font-size:.85rem}.personal-info{flex-direction:row;text-align:left;padding:16px;margin:0 0 16px;background:linear-gradient(135deg,#1976d214,#1565c00d);border-radius:12px;border:1px solid rgba(25,118,210,.1)}.profile-pic{width:52px;height:52px;margin:0 12px 0 0;border:2px solid rgba(25,118,210,.3);box-shadow:0 2px 8px #0000001a}.personal-text h4{font-size:1.05em;margin:0 0 4px;color:#1976d2}.personal-text .nickname{font-size:.85em;color:#666;font-style:italic}#bbox-panel h2{font-size:20px;text-align:center;margin-bottom:15px}#bbox-list li{margin-bottom:16px;padding:16px;font-size:14px;border-radius:16px;border:1px solid #e0e0e0;box-shadow:0 2px 8px #00000014}#bbox-list li .bbox-title-container{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:12px}#bbox-list li .bbox-title-container span{font-size:1.05em;color:#1976d2}#bbox-list li .bbox-title-container .bbox-title-actions{display:flex;gap:6px;width:100%}#bbox-list li .bbox-title-container .bbox-title-actions button{flex:1;min-width:0;padding:10px 8px;font-size:.85em;border-radius:8px;font-weight:600;transition:all .3s ease;border:none;cursor:pointer;white-space:nowrap}#bbox-list li .bbox-title-container .bbox-title-actions button:active{transform:scale(.98)}#bbox-list li .bbox-title-container .bbox-title-actions button.rename-button{background-color:#4caf50;color:#000}#bbox-list li .bbox-title-container .bbox-title-actions button.rename-button:hover{background-color:#388e3c}#bbox-list li .bbox-title-container .bbox-title-actions button.toggle-button{background-color:#ff0;color:#000}#bbox-list li .bbox-title-container .bbox-title-actions button.toggle-button:hover{background-color:#ee0}#bbox-list li .bbox-title-container .bbox-title-actions button.delete-button{background-color:red;color:#fff}#bbox-list li .bbox-title-container .bbox-title-actions button.delete-button:hover{background-color:#d32f2f}#bbox-list li .coordinates{grid-template-columns:1fr;font-size:.85em}#bbox-list li .coordinates span{padding:8px;border-right:none;border-bottom:1px solid black}#bbox-list li .coordinates span:last-child{border-bottom:none}#bbox-list li .action-buttons{flex-direction:row;gap:8px;margin-top:12px}#bbox-list li .action-buttons button{flex:1;padding:12px;font-size:.9em;border-radius:10px;font-weight:600;transition:all .3s ease}#bbox-list li .action-buttons button:active{transform:scale(.95)}#bbox-list li .action-buttons button.toggle-button{background:linear-gradient(135deg,#ffd54f,#ffca28);color:#000}#bbox-list li .action-buttons button.delete-button{background:linear-gradient(135deg,#ef5350,#e53935);color:#fff}#draw-bbox-button{display:none!important;visibility:hidden!important}.generation-settings{margin:12px 0 0;padding:14px;background:linear-gradient(135deg,#26a69a0d,#00897b08);border:1px solid rgba(38,166,154,.2);border-radius:12px}.generation-settings h4{font-size:1.05em;margin-bottom:12px;color:#00897b;font-weight:600}.generation-settings label{font-size:.9em;margin-bottom:6px;font-weight:500;color:#555}.generation-settings input[type=number],.generation-settings select{padding:10px;font-size:16px;border-radius:8px;border:1px solid #ddd;transition:border-color .3s ease}.generation-settings input[type=number]:focus,.generation-settings select:focus{border-color:#26a69a;outline:none}.generation-settings button{padding:14px 16px;font-size:1em;margin-top:12px;border-radius:10px;background:linear-gradient(135deg,#26a69a,#00897b);font-weight:600;box-shadow:0 4px 12px #26a69a4d;transition:all .3s ease}.generation-settings button:active{transform:scale(.98);box-shadow:0 2px 8px #26a69a4d}.model-preview{width:98vw!important;max-width:100vw!important;height:95vh!important;max-height:100vh!important;overflow-y:auto!important;padding-bottom:140px!important;margin:2vh auto 0!important;box-sizing:border-box}.model-preview h3{font-size:18px;margin-bottom:10px}.model-stats{grid-template-columns:1fr;gap:5px;padding:8px}.model-stats p,.model-info p{font-size:13px}.model-actions{position:fixed;left:0;bottom:0;width:100vw;background:linear-gradient(180deg,#fafafafa,#fffffffc);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:3000;padding:10px 12px 14px;box-shadow:0 -4px 16px #00000014;border-top:1px solid rgba(0,0,0,.08)}.model-actions>div{display:flex!important;flex-direction:column!important;gap:8px!important;width:100%!important}.model-actions>div>div:first-child{display:flex!important;flex-direction:row!important;gap:8px!important;width:100%!important}.model-actions>div>div:first-child>*{flex:1!important;display:flex!important}.model-actions>div>div:last-child{display:flex!important;flex-direction:column!important;align-items:center!important;gap:6px!important;width:100%!important}.model-actions>div>div:last-child>button,.model-actions>div>div:last-child>a{width:70%!important;max-width:280px!important}.model-actions>div>div:last-child>div[style*=font-size]{display:block!important;text-align:center!important;font-size:11px!important;color:#666!important;line-height:1.3!important;padding:0 16px!important;margin:0!important}.model-actions .download-button,.model-actions .close-button,.model-actions button,.model-actions a{flex-shrink:0!important;min-width:0!important;height:52px!important;padding:8px 12px!important;font-size:12px!important;border-radius:10px!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:8px!important;text-align:center!important;line-height:1.3!important;font-weight:600!important;box-shadow:0 2px 6px #00000014!important;white-space:nowrap!important;transition:all .2s ease!important}.model-actions .download-button svg,.model-actions .close-button svg,.model-actions button svg,.model-actions a svg{width:20px!important;height:20px!important;margin:0!important;flex-shrink:0!important}.model-actions .download-button:active,.model-actions .close-button:active,.model-actions button:active,.model-actions a:active{transform:scale(.97)!important}.loading-indicator{width:100%;padding:20px;box-sizing:border-box}.success-message{top:10px;right:10px;left:10px;padding:12px 15px;font-size:14px}.leaflet-control-layers{padding:5px 8px!important;font-size:11px!important}.leaflet-control-layers label{font-size:11px!important;margin:1px 0!important}.leaflet-control-layers-toggle{width:32px!important;height:32px!important}.leaflet-control-zoom{font-size:14px}.leaflet-control-zoom a{width:28px!important;height:28px!important;line-height:28px!important}.leaflet-control-zoom a{width:35px;height:35px;line-height:35px;font-size:16px}#mobile-header-fixed{position:fixed;top:0;left:0;right:0;width:100vw;min-width:100vw;max-width:100vw;height:60px;background:linear-gradient(135deg,#1976d2,#1565c0);box-shadow:0 2px 12px #00000026;z-index:2000;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);margin:0;border-radius:0;overflow:visible}.mobile-panel-toggle{font-size:1rem;font-weight:600;border-radius:10px!important;padding:10px 20px!important;background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.2)!important;box-shadow:0 2px 8px #0000001a!important;margin:0!important;height:44px!important;display:flex;align-items:center;justify-content:center;text-align:center;transition:all .3s ease!important;box-sizing:border-box;outline:none!important;cursor:pointer;backdrop-filter:blur(10px)}.mobile-panel-toggle:hover,.mobile-panel-toggle:active{background:#ffffff40!important;border-color:#ffffff4d!important;transform:scale(.98)}#mobile-user-menu-container{display:flex;align-items:center}.mobile-user-menu{position:relative}.mobile-user-menu-button{width:44px;height:44px;border-radius:50%;background:#ffffff26;border:2px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;padding:0;outline:none;backdrop-filter:blur(10px)}.mobile-user-menu-button:active{background:#ffffff40;transform:scale(.95)}.mobile-user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;color:#fff;overflow:hidden}.mobile-user-avatar img{width:100%;height:100%;object-fit:cover}.mobile-user-menu-dropdown{position:absolute;top:calc(100% + 12px);right:0;background:linear-gradient(135deg,#1a2332,#0f1621);border:1px solid rgba(100,181,246,.3);border-radius:16px;min-width:260px;max-width:90vw;box-shadow:0 12px 40px #00000080;opacity:0;visibility:hidden;transform:translateY(-10px) scale(.95);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:2001;overflow:hidden}.mobile-user-menu-dropdown.active{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.mobile-menu-header{padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff08}.mobile-menu-user-info{display:flex;flex-direction:column;gap:4px}.mobile-user-name{font-weight:600;color:#fff;font-size:1rem}.mobile-user-email{font-size:.85rem;color:#fff9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-menu-items{padding:8px}.mobile-menu-item{display:flex;align-items:center;gap:12px;padding:12px 14px;color:#ffffffd9;border-radius:10px;transition:all .2s ease;cursor:pointer;background:none;border:none;width:100%;text-align:left;font-size:.95rem;font-family:inherit;margin-bottom:4px}.mobile-menu-item:last-child{margin-bottom:0}.mobile-menu-item:active{background:#ffffff1f;transform:scale(.98)}.mobile-menu-item svg{flex-shrink:0}.mobile-menu-item.logout{color:#ff6b6b;margin-top:4px;border-top:1px solid rgba(255,255,255,.08);padding-top:16px}.mobile-menu-item.logout:active{background:#ff6b6b26}#main-container{padding-top:60px;padding-left:0;padding-right:0}#bbox-panel{padding-top:12px;padding-left:0;padding-right:0}.model-preview-titlebar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:8px 12px 0;box-sizing:border-box}.model-preview-titlebar h3{font-size:1.1em;margin:0;flex:1 1 auto;text-align:left;font-weight:600;color:#222}.close-button.top-right{font-size:1.3em;width:36px;height:36px;min-width:36px;min-height:36px;max-width:36px;max-height:36px;border-radius:50%;background:#eee;color:#900;border:none;margin-left:8px;margin-right:0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 1px 4px #00000012;transition:background .15s;position:static}.close-button.top-right:hover,.close-button.top-right:active{background:#ffb3b3;color:#900}.model-actions{justify-content:center}.model-actions .download-button{font-size:.98em;padding:8px 18px;border-radius:6px;margin:0 auto;min-width:0;min-height:0;max-width:220px;width:auto;display:block;box-sizing:border-box}.model-info,.model-stats{font-size:.85em!important;padding:0 6px!important;margin:0!important;line-height:1.2!important}.model-info p,.model-stats p{margin:2px 0!important;padding:0!important}.preview-3d{width:90%!important;height:40vh!important;padding:10px!important;margin:3vh auto 0!important;box-sizing:border-box;background:#f7f7f7;flex:none!important;min-height:unset!important;min-width:unset!important}.download-button{font-size:.95em!important;padding:2px 14px!important;border-radius:18px!important;margin:10px auto 0!important;display:flex!important;align-items:center!important;justify-content:center!important;min-width:auto!important;width:auto!important;max-width:100%!important;min-height:24px!important;height:auto!important;box-sizing:border-box;text-align:center!important;white-space:nowrap!important;line-height:1.1!important;gap:6px}}@media(max-width:480px){#map{height:40vh}#bbox-panel{min-height:60vh;padding:10px}.profile-pic{width:50px;height:50px}.personal-text h4{font-size:1.1em}#bbox-panel h2{font-size:18px}#bbox-list li{padding:12px;margin-bottom:12px}#bbox-list li .coordinates span{padding:6px;font-size:.8em}#draw-bbox-button{display:none!important;visibility:hidden!important}.generation-settings{padding:10px}.generation-settings input[type=number]{padding:6px}.model-preview{width:98%;height:95vh;padding:10px;margin:2.5vh auto}.model-preview h3{font-size:16px}}@media(max-width:768px)and (orientation:landscape){body{flex-direction:column}#bbox-panel{width:100%;height:auto;min-height:50vh;order:1;padding:15px;border-left:none;border-bottom:1px solid #ddd;border-top:none;border-right:none;display:none;overflow-y:auto}#map{width:100%;height:100vh;order:2}#draw-bbox-button,#draw-bbox-button.desktop-only{display:none!important;visibility:hidden!important}}@media(pointer:coarse){button,.leaflet-control a{min-height:44px;min-width:44px}#bbox-list li .action-buttons button{min-height:44px;padding:12px}.generation-settings input[type=number],.generation-settings select{min-height:44px;font-size:16px}.leaflet-control-zoom a{width:32px!important;height:32px!important;line-height:32px!important;font-size:16px!important}.leaflet-control-layers{padding:6px 8px!important}.leaflet-control-layers label{padding:2px 0!important;font-size:12px!important;min-height:20px!important}}@media(max-width:768px){#bbox-panel{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}#mobile-toggle-button{top:calc(20px + env(safe-area-inset-top));left:calc(20px + env(safe-area-inset-left))}#draw-bbox-button{display:none!important;visibility:hidden!important}}@supports (padding: max(0px)){@media(max-width:768px){body{padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom))}}}.generation-settings label[for^=resolution-reduction]{margin-top:15px}@media(min-width:769px){.mobile-only{display:none!important}#bbox-panel{display:flex!important;width:35%!important;height:100vh!important;position:static!important}#map{width:65%!important;height:100vh!important}}@media(max-width:768px){.dimensions-wrapper{flex-direction:row;align-items:center;gap:10px}.dimension-row{display:flex;align-items:center;gap:8px}.dimension-row label{min-width:92px;font-size:.88em}.dimension-link-button{width:36px;height:36px;border-radius:8px;border:2px solid #111;justify-content:center;padding:0;background:transparent}.dimension-link-button .link-icon{width:28px;height:28px}.dimension-link-button.linked,.dimension-link-button.unlinked{color:#111;border-color:#111}}.leaflet-top .leaflet-control-geocoder{margin-top:130px!important}@media(max-width:768px){.leaflet-top .leaflet-control-geocoder{margin-top:24px!important}}@media(min-width:769px){.model-preview .download-button{display:flex!important;align-items:center!important;justify-content:center!important;margin:24px auto 0!important;padding:0 10px!important;font-size:15px!important;width:90vw!important;max-width:420px!important;min-width:180px!important;height:38px!important;min-height:0!important;border-radius:8px;text-align:center;line-height:1.2;box-sizing:border-box;background:#64b5f6;color:#fff;font-weight:700;transition:background .2s}.model-preview .download-button:hover{background:#2196f3}}@media(max-width:768px){.model-preview .download-button{display:flex!important;align-items:center!important;justify-content:center!important;margin:24px auto 0!important;width:220px!important;height:44px!important;min-height:0!important;font-size:16px!important;border-radius:10px;background:#1976d2;color:#fff;font-weight:700;box-shadow:0 2px 8px #1976d21a;text-align:center;line-height:1.2;box-sizing:border-box;border:none;transition:background .2s}.model-preview .download-button:active{background:#1565c0}}@media(max-width:768px){.model-preview .download-button{height:44px!important;min-height:0!important;max-height:44px!important;line-height:44px!important;padding-top:0!important;padding-bottom:0!important;box-sizing:border-box!important}}.modal{display:none;position:fixed;z-index:10000;left:0;top:0;width:100%;height:100%;background-color:#00000080;backdrop-filter:blur(4px);animation:fadeIn .3s ease}.modal.active{display:flex;align-items:center;justify-content:center}#processing-mode-modal.active{z-index:12050}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background-color:#fff;border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0000004d;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 30px;border-bottom:2px solid #eee}.modal-header h2{margin:0;font-size:24px;color:#333;display:flex;align-items:center;gap:10px}.modal-close{background:none;border:none;font-size:32px;color:#999;cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.modal-close:hover{background:#f0f0f0;color:#333}.modal-body{padding:30px}.settings-section{margin-bottom:20px}.settings-section h3{margin:0 0 10px;font-size:20px;color:#333}.settings-description{color:#666;line-height:1.6;margin-bottom:20px}.api-key-status{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f5f5f5;border-radius:8px;margin-bottom:20px}.status-indicator{font-size:20px}#status-text{font-weight:500;color:#666}.api-key-status.configured{background:#e8f5e9}.api-key-status.configured #status-text{color:#2e7d32}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#333}.form-control{width:100%;padding:12px 16px;border:2px solid #ddd;border-radius:8px;font-size:14px;transition:border-color .3s ease;box-sizing:border-box}.form-control:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-help{display:block;margin-top:8px;color:#666;font-size:13px}.form-help a{color:#2196f3;text-decoration:none;font-weight:600}.form-help a:hover{text-decoration:underline}.button-group{display:flex;gap:12px;margin-bottom:20px}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary{background:#2196f3;color:#fff}.btn-primary:hover{background:#1976d2;transform:translateY(-1px);box-shadow:0 4px 8px #2196f34d}.btn-secondary{background:#f5f5f5;color:#666}.btn-secondary:hover{background:#e0e0e0}.btn:active{transform:translateY(0)}.settings-info{background:#fff3e0;padding:16px;border-radius:8px;border-left:4px solid #ff9800}.settings-info h4{margin:0 0 12px;font-size:16px;color:#e65100;display:flex;align-items:center;gap:8px}.settings-info ul{margin:0;padding-left:20px}.settings-info li{color:#666;margin-bottom:8px;line-height:1.5}@media(max-width:768px){.modal-content{width:95%;max-height:85vh}.modal-header{padding:20px}.modal-header h2{font-size:20px}.modal-body{padding:20px}.button-group{flex-direction:column}.btn{width:100%}}input[type=color]{width:100%;height:50px;border:2px solid #ddd;border-radius:8px;cursor:pointer;padding:4px;transition:border-color .3s ease,box-shadow .3s ease}input[type=color]:hover{border-color:#2196f3}input[type=color]:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.color-preview{margin-top:8px;min-height:60px}[id^=solid-color-controls-],[id^=topo-color-controls-]{margin-top:10px;padding:10px;background-color:#f9f9f9;border-radius:8px;border:1px solid #e0e0e0}.generation-settings select#color-mode{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600}.generation-settings h4{color:#444;font-size:16px;margin-bottom:12px}select#color-scheme{background:linear-gradient(135deg,#11998e,#38ef7d);color:#fff;font-weight:600;border:none;padding:10px}select#color-scheme option{background:#fff;color:#333}.input-valid{border:2px solid #4CAF50!important;box-shadow:0 0 0 3px #4caf501a;transition:all .3s ease}.input-invalid{border:2px solid #f44336!important;box-shadow:0 0 0 3px #f443361a;animation:shake .5s ease;transition:all .3s ease}.validation-error{color:#f44336;font-size:12px;margin-top:4px;display:block;animation:fadeIn .3s ease}.validation-summary{position:fixed;top:20px;right:20px;background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:16px;max-width:400px;z-index:10000;box-shadow:0 4px 12px #0000004d;animation:slideInRight .3s ease}.validation-summary-content h4{margin:0 0 12px;color:#856404;font-size:18px}.validation-summary-content ul{margin:0;padding-left:20px;color:#856404}.validation-summary-content li{margin-bottom:8px}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}.area-warning-notification{position:fixed;top:20px;right:20px;background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff;padding:16px 24px;border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:10001;max-width:400px;animation:slideInRight .3s ease}.area-warning-notification .warning-content{display:flex;align-items:flex-start;gap:12px}.area-warning-notification .warning-icon{font-size:24px;flex-shrink:0}.area-warning-notification .warning-text{flex:1}.area-warning-notification .warning-text strong{display:block;font-size:16px;margin-bottom:8px}.area-warning-notification .warning-text p{margin:4px 0;font-size:14px;line-height:1.4}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.area-warning-badge{background:#fff3e0;border:1px solid #ff9800;border-radius:4px;padding:10px 12px;margin-top:12px;margin-bottom:16px;font-size:12px;color:#e65100;line-height:1.5;box-shadow:0 2px 4px #ff98001a}.area-warning-badge strong{display:block;margin-bottom:6px;font-size:13px}.processing-mode-intro{text-align:center;margin-bottom:32px}.processing-mode-subtitle{font-size:16px;color:#666;margin:0;font-weight:400;line-height:1.6}.processing-mode-options{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:24px}.processing-mode-card{position:relative;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1)}.processing-mode-card .card-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 24px;border:4px solid #d0d0d0;border-radius:20px;background:linear-gradient(135deg,#fff,#f5f5f5);transition:all .4s cubic-bezier(.4,0,.2,1);height:100%;overflow:hidden;box-shadow:0 4px 12px #00000014,inset 0 0 #1976d200}.processing-mode-card .card-content:before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,#1976d2,#42a5f5);transform:scaleX(0);transform-origin:center;transition:transform .4s cubic-bezier(.4,0,.2,1)}.processing-mode-card .card-content:after{content:"✓ SELECTED";position:absolute;top:16px;right:16px;background:linear-gradient(135deg,#1976d2,#1565c0);color:#fff;padding:6px 14px;border-radius:20px;font-size:11px;font-weight:800;letter-spacing:1px;opacity:0;transform:scale(.8) translateY(-10px);transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 3px 10px #1976d266}.processing-mode-card.active .card-content{border-color:#1976d2;border-width:5px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);box-shadow:0 12px 32px #1976d24d,inset 0 0 0 3px #1976d21a;transform:translateY(-6px) scale(1.02)}.processing-mode-card.active .card-content:before{transform:scaleX(1)}.processing-mode-card.active .card-content:after{opacity:1;transform:scale(1) translateY(0)}.processing-mode-card:hover .card-content{border-color:#64b5f6;border-width:5px;transform:translateY(-8px) scale(1.03);box-shadow:0 16px 40px #00000026;cursor:pointer}.processing-mode-card.active:hover .card-content{border-color:#1565c0;box-shadow:0 16px 40px #1976d259;cursor:pointer}.processing-mode-card:active .card-content{transform:translateY(-2px) scale(.98);transition:all .1s ease}.card-icon-wrapper{margin-bottom:20px}.card-icon-circle{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#1976d2,#42a5f5);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #1976d266;transition:all .4s cubic-bezier(.4,0,.2,1)}.card-icon-circle.cloud-icon{background:linear-gradient(135deg,#ff9800,#ffb74d);box-shadow:0 6px 20px #ff980066}.processing-mode-card:hover .card-icon-circle{transform:scale(1.15) rotate(10deg);box-shadow:0 8px 24px #1976d280}.processing-mode-card.active .card-icon-circle{transform:scale(1.1);box-shadow:0 8px 24px #1976d299}.card-icon-circle svg{color:#fff;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3))}.card-details{width:100%}.card-header{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:16px}.card-title{font-size:22px;font-weight:700;color:#1a1a1a;margin:0;line-height:1.2}.card-badge{padding:6px 16px;border-radius:24px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;white-space:nowrap;box-shadow:0 2px 8px #0003;transition:all .3s ease}.card-badge-free{background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff}.card-badge-premium{background:linear-gradient(135deg,#ff9800,#ffb74d);color:#fff}.processing-mode-card.active .card-badge{transform:scale(1.05);box-shadow:0 3px 12px #0000004d}.card-description{font-size:14px;color:#666;line-height:1.6;margin:0 0 20px;min-height:42px}.card-limit-note{font-size:12px;line-height:1.4;color:#5f6368;background:#ffffffbf;border:1px solid rgba(25,118,210,.2);border-radius:8px;padding:8px 10px;margin:0 0 16px}.card-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;align-items:flex-start;width:100%}.card-features li{display:flex;align-items:center;gap:10px;font-size:13px;color:#555;font-weight:500;width:100%;padding:8px 12px;border-radius:8px;background:#fff9;transition:all .3s ease}.processing-mode-card.active .card-features li{background:#ffffffe6;color:#333}.processing-mode-card:hover .card-features li{transform:translate(4px)}.feature-icon{font-size:16px;flex-shrink:0}.cloud-notice{display:flex;align-items:flex-start;gap:14px;margin-top:20px;padding:16px 18px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);border:2px solid #ffb74d;border-radius:12px;box-shadow:0 2px 8px #ff980026}.notice-icon{font-size:24px;flex-shrink:0;line-height:1}.notice-content{flex:1}.notice-content strong{display:block;color:#e65100;font-size:14px;margin-bottom:4px}.notice-content p{color:#bf360c;font-size:13px;line-height:1.5;margin:0}.cloud-credit-packs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.cloud-pack-button{padding:10px 14px;font-size:12px;line-height:1.2;border-radius:10px;border:1px solid rgba(255,255,255,.55);background:linear-gradient(135deg,#fff,#f6f9ff);color:#0d47a1;font-weight:600;box-shadow:0 2px 8px #0d47a11a;transition:all .25s ease}.cloud-pack-button:hover{border-color:#1976d2;background:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #0d47a12e}.cloud-pack-button.is-disabled,.cloud-pack-button:disabled{cursor:not-allowed;opacity:.6;transform:none;box-shadow:none;border-color:#78787859;background:#f1f3f4;color:#5f6368}.cloud-payment-hint{display:block;margin-top:10px;color:#8d3e0f}.cloud-dev-hint{display:block;margin-top:8px;color:#7f1d1d;font-weight:600}.cloud-jobs-modal-content{max-width:900px}.cloud-jobs-expiry-note{background:#fff8e1;border:1px solid #ffe082;color:#8d6e63;border-radius:8px;padding:10px 12px;font-size:.9rem;margin-bottom:14px}.cloud-jobs-filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cloud-chip{border:1px solid #cfd8dc;background:#fff;color:#455a64;border-radius:999px;padding:6px 12px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s ease}.cloud-chip:hover{border-color:#90a4ae}.cloud-chip.active{background:#1976d2;border-color:#1976d2;color:#fff}.cloud-jobs-list{display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow-y:auto}.cloud-jobs-empty{padding:14px;border:1px dashed #cfd8dc;border-radius:8px;color:#607d8b;background:#fafcff}.cloud-job-item{border:1px solid #d9e2ec;border-radius:10px;padding:12px;background:#fff}.cloud-job-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.cloud-job-status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.cloud-job-status.submitted,.cloud-job-status.processing{background:#e3f2fd;color:#1565c0}.cloud-job-status.completed{background:#e8f5e9;color:#2e7d32}.cloud-job-status.failed{background:#ffebee;color:#c62828}.cloud-job-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 12px;font-size:.85rem;color:#455a64}.cloud-job-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.cloud-jobs-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px}#cloud-jobs-page-info{font-size:.85rem;color:#546e7a;min-width:90px;text-align:center}.processing-save-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:24px;padding:14px 24px;font-size:16px;font-weight:600;background:linear-gradient(135deg,#1976d2,#1565c0);box-shadow:0 4px 12px #1976d24d;transition:all .3s ease}.processing-save-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #1976d266;background:linear-gradient(135deg,#1565c0,#0d47a1)}.processing-save-btn svg{flex-shrink:0}@media(min-width:769px){#processing-mode-modal .modal-content{width:min(94%,900px);max-width:900px;max-height:calc(100vh - 24px)}#processing-mode-modal .modal-header{padding:14px 22px}#processing-mode-modal .modal-header h2{font-size:21px}#processing-mode-modal .modal-body{padding:14px 20px 16px}#processing-mode-modal .settings-section{margin-bottom:0}#processing-mode-modal .processing-mode-intro{margin-bottom:10px}#processing-mode-modal .processing-mode-subtitle{font-size:14px;line-height:1.35}#processing-mode-modal .processing-mode-options{gap:14px;margin-top:10px}#processing-mode-modal .processing-mode-card .card-content{padding:15px 16px 14px;border-width:3px;border-radius:15px}#processing-mode-modal .processing-mode-card.active .card-content,#processing-mode-modal .processing-mode-card:hover .card-content{border-width:3px;transform:translateY(-2px)}#processing-mode-modal .processing-mode-card.active:hover .card-content{transform:translateY(-3px)}#processing-mode-modal .processing-mode-card .card-content:before{height:4px}#processing-mode-modal .processing-mode-card .card-content:after{top:8px;right:8px;padding:4px 8px;font-size:9px}#processing-mode-modal .card-icon-wrapper{margin-bottom:8px}#processing-mode-modal .card-icon-circle{width:52px;height:52px}#processing-mode-modal .card-icon-circle svg{width:27px;height:27px}#processing-mode-modal .processing-mode-card:hover .card-icon-circle,#processing-mode-modal .processing-mode-card.active .card-icon-circle{transform:scale(1.04)}#processing-mode-modal .card-header{flex-direction:row;justify-content:center;gap:8px;margin-bottom:8px}#processing-mode-modal .card-title{font-size:18px}#processing-mode-modal .card-badge{padding:4px 9px;font-size:9px}#processing-mode-modal .card-description{min-height:34px;margin-bottom:9px;font-size:12px;line-height:1.4}#processing-mode-modal .card-features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}#processing-mode-modal .card-features li{gap:6px;min-height:31px;padding:5px 7px;font-size:11px;line-height:1.25}#processing-mode-modal .processing-mode-card:hover .card-features li{transform:none}#processing-mode-modal .feature-icon{font-size:13px}#processing-mode-modal .cloud-notice{gap:10px;margin-top:12px;padding:10px 12px}#processing-mode-modal .notice-icon{font-size:19px}#processing-mode-modal .notice-content strong{font-size:13px;margin-bottom:2px}#processing-mode-modal .notice-content p{font-size:11px;line-height:1.35}#processing-mode-modal .shared-modal-balance{margin:6px 0;padding:6px 9px}#processing-mode-modal .shared-modal-balance b{font-size:14px}#processing-mode-modal .cloud-credit-packs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:6px}#processing-mode-modal .cloud-pack-button{padding:7px 6px;font-size:10px}#processing-mode-modal .cloud-payment-hint,#processing-mode-modal .cloud-dev-hint{margin-top:5px;font-size:10px;line-height:1.3}#processing-mode-modal .processing-save-btn{margin-top:12px;padding:10px 18px;font-size:14px}}.generate-button-container{display:flex;align-items:center;gap:12px;margin-top:30px;flex-wrap:wrap}.generate-button{flex:1;min-width:200px}.processing-mode-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;transition:all .3s ease;white-space:nowrap;box-shadow:0 2px 4px #0000001a}.processing-mode-badge.browser-mode{background:linear-gradient(135deg,#f5f5f5,#e0e0e0);color:#666;border:1px solid #ccc}.processing-mode-badge.cloud-mode{background:linear-gradient(135deg,#e3f2fd,#90caf9);color:#1976d2;border:1px solid #64b5f6}@media(max-width:768px){.generate-button-container{flex-direction:row;justify-content:space-between}.generate-button{flex:0 1 auto;min-width:auto;flex-grow:1}.processing-mode-badge{font-size:10px;padding:5px 10px}}@media(max-width:768px){.processing-mode-options{grid-template-columns:1fr;gap:20px}.processing-mode-card .card-content{padding:28px 20px}.card-icon-circle{width:70px;height:70px}.card-icon-circle svg{width:36px;height:36px}.card-title{font-size:20px}.card-description{font-size:13px;min-height:auto}.card-features li{font-size:12px;padding:6px 10px}.cloud-notice{flex-direction:column;gap:10px;padding:14px}.processing-save-btn{padding:12px 20px;font-size:15px}}#place-pin-button{background-color:#ab47bc;color:#fff}#upload-gpx-button{color:#fff;background:#5e35b1;box-shadow:0 2px 5px #4527a03d}#place-pin-button:hover{background-color:#8e24aa}#upload-gpx-button:hover{color:#fff;background:#4527a0;box-shadow:0 3px 8px #311b9252}#map-element-actions button:focus-visible{box-shadow:0 0 0 3px #7e57c242}@media(min-width:769px)and (max-width:1024px){#map-element-actions button{padding:6px 9px}}@media(min-width:1400px){#map-element-actions button{padding:7px 12px;font-size:13px}}#mobile-place-pin-button{width:100%;padding:12px 16px;background-color:#ab47bc;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;margin-bottom:20px;transition:all .3s ease;box-shadow:0 2px 6px #0000001a}#mobile-place-pin-button:hover{background-color:#8e24aa;transform:translateY(-2px)}.zoom-to-bbox-button{background:none!important;border:none!important;padding:4px 6px!important;font-size:14px!important;cursor:pointer;transition:transform .2s}.zoom-to-bbox-button:hover{transform:scale(1.2)!important}.pin-section{margin-bottom:24px}.track-section{margin-bottom:26px;padding:14px;background:linear-gradient(145deg,#f8fbff,#f5f3ff);border:1px solid #dbeafe;border-radius:14px;box-shadow:0 4px 14px #2563eb0f}.track-section-header{display:grid;grid-template-columns:minmax(0,1fr);gap:10px 12px;align-items:start;margin-bottom:12px}.track-section-header h2{margin:0!important;padding:0!important;border:0!important;display:flex;align-items:center;gap:8px}.track-section-header p{margin:5px 0 0;color:#64748b;font-size:11px;line-height:1.4}.track-count-badge,.bbox-track-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:999px;font-size:11px;font-weight:800}#track-list{list-style:none;padding:0;margin:0}.track-empty-message{display:flex;flex-direction:column;gap:5px;padding:15px 13px;color:#64748b;background:linear-gradient(145deg,#f5f3fff0,#ffffffe6);border:1px dashed #b39ddb;border-radius:10px;text-align:center;font-size:12px;line-height:1.45}.track-empty-message strong{color:#5e35b1;font-size:13px}.track-empty-message b{color:#4c3a69;font-weight:750}.track-list-item{margin-top:10px;padding:12px;background:#ffffffeb;border:1px solid #dbeafe;border-radius:11px;box-shadow:0 2px 8px #1e40af0f}.track-item-header{display:flex;align-items:center;gap:8px}.track-color-line{width:5px;height:26px;border-radius:999px;flex:0 0 auto}.track-item-title{min-width:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#1e293b;font-size:14px;font-weight:750}.track-item-actions{display:flex;gap:2px}.track-action-btn{width:28px;height:28px;padding:0;border:0;border-radius:7px;background:#eff6ff;color:#334155;cursor:pointer}.track-action-btn:hover{background:#dbeafe}.track-delete-btn:hover{background:#fee2e2;color:#b91c1c}.track-item-meta{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 10px 13px}.track-item-meta span{padding:2px 6px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:650}.track-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.track-settings-grid label{position:relative;display:flex;flex-direction:column;gap:3px;color:#64748b;font-size:10px;font-weight:700}.track-settings-grid input,.track-settings-grid select{min-width:0;height:32px;padding:5px 8px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#1e293b;font-size:12px}.track-settings-grid input[type=color]{width:100%;padding:3px}.track-settings-grid label>span{position:absolute;right:8px;bottom:8px;font-size:10px;color:#94a3b8}.bbox-track-associations{margin:14px 0 20px;padding:12px;border:1px solid #c7d2fe;border-radius:11px;background:linear-gradient(145deg,#eef2ff,#faf5ff)}.bbox-track-heading{display:flex;align-items:center;justify-content:space-between;color:#3730a3;font-size:13px;font-weight:800}.bbox-track-count{min-width:20px;height:20px;font-size:10px}.bbox-track-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}.bbox-track-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;background:#ffffffd9;border-radius:8px;cursor:pointer}.bbox-track-swatch{width:18px;height:5px;border-radius:999px}.bbox-track-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#334155;font-size:12px;font-weight:700}.bbox-track-status{padding:3px 6px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.bbox-track-status.complete{background:#dcfce7;color:#166534}.bbox-track-status.partial{background:#ffedd5;color:#9a3412}.bbox-track-note,.bbox-track-empty{margin:9px 0 0;color:#64748b;font-size:10px;line-height:1.45}.gps-track-line{filter:drop-shadow(0 1px 2px rgba(15,23,42,.35))}#mobile-upload-gpx-button{border:0;border-radius:8px;padding:12px 15px;background:linear-gradient(135deg,#7e57c2,#5e35b1);color:#fff;font-size:14px;font-weight:650}.pin-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:10px;border-bottom:2px solid #e2e8f0}.pin-section-header h2{margin:0!important;padding:0!important;border:none!important;display:flex;align-items:center;gap:10px}.pin-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:#ab47bc;color:#fff;border-radius:11px;font-size:12px;font-weight:700}.pin-toggle-all-btn{background:#f3e5f5;border:1px solid #ce93d8;color:#7b1fa2;padding:5px 12px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}.pin-toggle-all-btn:hover{background:#e1bee7}#pin-list{list-style:none;padding:0;margin:0}.pin-empty-message{display:flex;flex-direction:column;gap:5px;padding:15px 13px;color:#64748b;background:linear-gradient(145deg,#faf5fcf2,#ffffffe6);border:1px dashed #ce93d8;border-radius:10px;text-align:center;font-size:12px;line-height:1.45}.pin-empty-message strong{color:#8e24aa;font-size:13px}.pin-empty-message b{color:#59405f;font-weight:750}.pin-list-item{padding:12px 16px;border:1px solid #e2e8f0;border-radius:10px;background:#fafbfc;margin-bottom:10px;transition:all .2s ease;box-shadow:0 1px 4px #0000000a}.pin-list-item:hover{background:#f0f4f8;transform:translateY(-2px);box-shadow:0 3px 8px #00000014}.pin-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.pin-item-left{display:flex;align-items:center;gap:8px;min-width:0}.pin-color-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;box-shadow:0 1px 3px #00000026}.pin-item-tag{font-weight:600;font-size:14px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pin-size-badge{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;text-transform:uppercase;flex-shrink:0}.pin-size-small{background:#e3f2fd;color:#1565c0}.pin-size-medium{background:#fff3e0;color:#e65100}.pin-size-large{background:#fce4ec;color:#c62828}.pin-item-actions{display:flex;gap:4px;flex-shrink:0}.pin-action-btn{background:none;border:none;cursor:pointer;padding:4px 6px;font-size:14px;border-radius:4px;transition:all .2s;line-height:1}.pin-action-btn:hover{background:#0000000f;transform:scale(1.15)}.pin-item-coords{display:flex;gap:16px;font-size:12px;color:#777;font-family:Courier New,monospace}.pin-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10002;animation:pinFadeIn .2s ease}@keyframes pinFadeIn{0%{opacity:0}to{opacity:1}}.pin-modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040;width:90%;max-width:400px;overflow:hidden;animation:pinSlideUp .3s ease}@keyframes pinSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.pin-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:linear-gradient(135deg,#ab47bc,#7b1fa2);color:#fff}.pin-modal-header h3{margin:0;font-size:18px}.pin-modal-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0 4px;opacity:.8;transition:opacity .2s}.pin-modal-close:hover{opacity:1}.pin-modal-body{padding:20px 24px}.pin-form-group{margin-bottom:18px}.pin-form-group:last-child{margin-bottom:0}.pin-form-group label{display:block;font-size:13px;font-weight:600;color:#555;margin-bottom:8px;text-transform:uppercase;letter-spacing:.03em}.pin-form-input{width:100%;padding:10px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:15px;transition:border-color .2s;box-sizing:border-box}.pin-form-input:focus{outline:none;border-color:#ab47bc;box-shadow:0 0 0 3px #ab47bc26}.pin-coordinates-display{display:flex;gap:16px;font-family:Courier New,monospace;font-size:13px;color:#555;background:#f5f5f5;padding:8px 12px;border-radius:6px}.pin-color-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.pin-color-option{width:100%;aspect-ratio:1;border:2px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s;padding:0;outline:none}.pin-color-option:hover{transform:scale(1.15);box-shadow:0 2px 8px #0003}.pin-color-option.selected{border-color:#333!important;box-shadow:0 0 0 2px #fff,0 0 0 4px #333;transform:scale(1.1)}.pin-size-options{display:flex;gap:8px}.pin-size-option{flex:1;padding:10px 8px;border:2px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;text-align:center;font-weight:700;font-size:16px;color:#555;transition:all .2s}.pin-size-option .pin-size-label{display:block;font-size:11px;font-weight:500;color:#999;margin-top:2px}.pin-size-option:hover{border-color:#ab47bc;background:#faf4fc}.pin-size-option.selected{border-color:#ab47bc;background:#f3e5f5;color:#7b1fa2}.pin-size-option.selected .pin-size-label{color:#9c27b0}.pin-modal-footer{display:flex;gap:10px;padding:16px 24px;background:#fafafa;border-top:1px solid #eee}.pin-btn{flex:1;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.pin-btn-cancel{background:#e0e0e0;color:#555}.pin-btn-cancel:hover{background:#bdbdbd}.pin-btn-save{background:linear-gradient(135deg,#ab47bc,#7b1fa2);color:#fff}.pin-btn-save:hover{background:linear-gradient(135deg,#9c27b0,#6a1b9a);box-shadow:0 4px 12px #9c27b04d}.pin-tooltip{background:#000c!important;color:#fff!important;border:none!important;border-radius:6px!important;padding:4px 10px!important;font-size:12px!important;font-weight:600!important;box-shadow:0 2px 8px #0000004d!important}.pin-tooltip:before{border-top-color:#000c!important}.pin-map-marker{background:none!important;border:none!important}.pin-marker-dot:hover{transform:scale(1.15)!important}@media(max-width:768px){#map-element-actions.desktop-only{display:none!important}.pin-color-grid{grid-template-columns:repeat(8,1fr);gap:4px}.pin-modal-content{width:95%;max-width:none}.pin-item-coords{flex-direction:column;gap:2px}}@media(min-width:769px){#mobile-place-pin-button{display:none!important}}@media(max-width:768px){.mobile-only{display:block!important}#mobile-header-fixed{display:flex!important}#main-container{position:fixed!important;inset:60px 0 0;height:auto!important;padding-top:0!important;overflow:hidden}#map{width:100%!important;height:100%!important}#bbox-panel{position:fixed!important;inset:60px 0 0;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;display:none;padding:14px 14px calc(92px + env(safe-area-inset-bottom)) 14px!important;border-left:none!important;border-top:1px solid #ddd!important;border-radius:16px 16px 0 0;box-shadow:0 -10px 28px #0000002e;z-index:1900;overflow-y:auto;-webkit-overflow-scrolling:touch}#bbox-panel.mobile-open{display:flex!important;flex-direction:column}#mobile-draw-button,#mobile-place-pin-button,#mobile-upload-gpx-button{display:block!important;width:100%;min-height:46px;margin-bottom:10px}#mobile-mode-hint{position:fixed;left:12px;right:12px;bottom:calc(70px + env(safe-area-inset-bottom));z-index:1849;background:#1a2332eb;color:#fff;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600;text-align:center;backdrop-filter:blur(4px);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}#mobile-mode-hint.is-visible{opacity:1;transform:translateY(0)}}@media(min-width:769px){#mobile-mode-hint,#mobile-upload-gpx-button{display:none!important}}.modal-overlay:has(+.model-preview){background:#071212bd;backdrop-filter:blur(10px)}.model-preview{width:min(97vw,1720px)!important;max-width:none!important;height:94dvh!important;max-height:none!important;padding:0!important;margin:0!important;border:1px solid rgba(255,255,255,.16);border-radius:22px!important;background:#f5f8f7;box-shadow:0 32px 90px #00141261;overflow:hidden!important;color:#173431}.model-preview-titlebar{width:100%;min-height:76px;padding:13px 18px 12px 22px!important;display:flex;align-items:center;justify-content:space-between;gap:20px;box-sizing:border-box;flex:0 0 auto;background:#fffffff0;border-bottom:1px solid #dbe7e4}.model-preview-titlecopy{min-width:0;flex:1 1 auto}.model-preview-eyebrow{display:block;margin-bottom:2px;color:#138579;font-size:10px;font-weight:800;letter-spacing:.13em;line-height:1.2;text-transform:uppercase}.model-preview .model-preview-titlebar h3{margin:0!important;padding:0!important;border:0!important;color:#153d39!important;font-size:clamp(20px,1.6vw,28px)!important;line-height:1.08}.model-preview-titlecopy p{max-width:min(58vw,820px);margin:4px 0 0;overflow:hidden;color:#66817d;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.model-preview-title-actions{display:flex;flex:0 0 auto;align-items:center;gap:10px}.model-preview .close-button.top-right{width:42px!important;height:42px!important;min-width:42px!important;flex:0 0 42px!important;margin:0!important;padding:0!important;display:grid!important;place-items:center;border:1px solid #d8e4e1;border-radius:50%!important;background:#f1f6f5!important;box-shadow:none!important;color:#31534f!important;font-size:18px!important;line-height:1!important}.model-preview .close-button.top-right:hover{border-color:#e3aaa4;background:#fff0ee!important;color:#aa3c31!important}.model-preview-workspace{min-height:0;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) clamp(310px,22vw,370px);gap:12px;flex:1 1 auto;overflow:hidden;box-sizing:border-box}.model-preview-stage{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(28,83,76,.18);border-radius:16px;background:linear-gradient(145deg,#edf8f5,#dceeea 55%,#bfded7);box-shadow:inset 0 1px #fffc}.model-preview-toolbar{min-height:54px;padding:8px 10px 8px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;box-sizing:border-box;border-bottom:1px solid rgba(41,101,93,.14);background:#fafffd9e;backdrop-filter:blur(12px)}.model-stage-label{display:flex;align-items:center;gap:8px;color:#345e59;font-size:12px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.model-stage-label>span{width:8px;height:8px;border-radius:50%;background:#20aa87;box-shadow:0 0 0 5px #20aa871f}.model-preview-tools{display:flex;align-items:center;gap:8px}.preview-tool-button{min-height:36px;padding:7px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(33,86,79,.2);border-radius:9px;background:#ffffffc7;color:#28544f;cursor:pointer;font:inherit;font-size:12px;font-weight:700;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.preview-tool-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.preview-tool-button:hover:not(:disabled){background:#fff;box-shadow:0 5px 14px #1d4c461f;transform:translateY(-1px)}.preview-tool-button:disabled{cursor:wait;opacity:.55}.preview-snapshot-button{border-color:#13796e;background:linear-gradient(135deg,#148f80,#0b7168);color:#fff}.preview-snapshot-button:hover:not(:disabled){background:linear-gradient(135deg,#18a18f,#0c796f)}.model-preview .preview-3d{width:100%!important;height:auto!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;flex:1 1 auto!important;background:transparent!important;overflow:hidden!important}.preview-3d canvas{width:100%;height:100%;display:block;cursor:grab}.preview-3d canvas:active{cursor:grabbing}.model-preview-loading,.model-preview-error{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:#426a65;font-size:13px;font-weight:700}.model-preview-loading>span{width:20px;height:20px;border:2px solid rgba(20,143,128,.2);border-top-color:#148f80;border-radius:50%;animation:spin .8s linear infinite}.model-preview-error{flex-direction:column;color:#80524d}.model-preview-error small{color:#6d817e;font-weight:500}.model-preview-sidebar{min-width:0;min-height:0;padding-right:3px;display:flex;flex-direction:column;gap:12px;overflow-x:hidden;overflow-y:auto;scrollbar-color:#afc9c4 transparent;scrollbar-width:thin}.model-preview-panel{padding:15px;border:1px solid #dce8e5;border-radius:14px;background:#fff;box-shadow:0 3px 12px #13413b0a}.model-panel-heading{margin-bottom:12px;padding-bottom:10px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:1px solid #e6efed}.model-panel-heading span{color:#1d4742;font-size:14px;font-weight:800}.model-panel-heading small{color:#78918e;font-size:10px}.model-summary-toggle{cursor:pointer;list-style:none;user-select:none}.model-summary-toggle::-webkit-details-marker{display:none}.model-summary-panel:not([open]) .model-summary-toggle{margin-bottom:0;padding-bottom:0;border-bottom-color:transparent}.model-map-elements-panel:not([open]) .model-summary-toggle{margin-bottom:0;padding-bottom:0;border-bottom-color:transparent}.model-summary-toggle:focus-visible{outline:2px solid #35a89a;outline-offset:5px;border-radius:4px}.model-panel-heading .model-summary-toggle-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;color:inherit;font-size:inherit;font-weight:inherit}.model-summary-chevron{display:inline-grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#edf5f3;color:#37635d;font-size:16px!important;font-weight:800!important;line-height:1;transition:transform .2s ease,background .2s ease}.model-summary-panel[open] .model-summary-chevron,.model-map-elements-panel[open] .model-summary-chevron{transform:rotate(180deg);background:#dff0ec}.model-summary-content,.map-preview-content{animation:model-summary-reveal .2s ease}@keyframes model-summary-reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.model-preview .model-info{margin:0 0 10px!important;padding:0!important;border:0!important;background:transparent!important}.model-preview .model-info p{margin:3px 0!important;color:#52706c!important;font-size:11px!important;line-height:1.45}.model-preview .model-stats{margin:0!important;padding:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;border:0!important;background:transparent!important}.model-stats-col{display:contents}.model-preview .model-stats p{min-width:0;min-height:49px;margin:0!important;padding:7px 8px!important;display:flex;flex-direction:column;justify-content:center;border:1px solid #e3ecea;border-radius:9px;background:#f7faf9;color:#244d48!important;font-size:11px!important;line-height:1.35;box-sizing:border-box}.model-preview .model-stats strong{margin-bottom:2px;color:#76908c;font-size:9px;font-weight:750;letter-spacing:.03em;text-transform:uppercase}.model-export-panel{flex:0 0 auto}.model-preview .model-actions{position:static!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:14px!important;background:transparent!important;box-shadow:none!important}.model-export-group{min-width:0;display:flex;flex-direction:column;gap:7px}.model-export-heading{color:#728985;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.model-preview .model-actions .download-button{width:100%!important;max-width:none!important;min-width:0!important;height:auto!important;min-height:43px!important;max-height:none!important;margin:0!important;padding:9px 12px!important;flex:0 0 auto!important;border-radius:9px!important;font-size:12px!important;line-height:1.25!important;white-space:normal!important;box-shadow:0 4px 11px #135b7c24!important}.model-preview .model-actions .download-button:hover:not(:disabled){transform:translateY(-1px)!important;box-shadow:0 6px 16px #135b7c33!important}@media(max-width:900px){.model-preview{width:98vw!important;height:97dvh!important;overflow-y:auto!important;border-radius:16px!important}.model-preview-workspace{min-height:auto;display:flex;flex-direction:column;overflow:visible}.model-preview-stage{min-height:58dvh;flex:0 0 58dvh}.model-preview-sidebar{overflow:visible}.model-preview-panel{flex:none}}@media(max-width:560px){.model-preview-titlebar{min-height:67px;padding:10px 11px 9px 15px!important;gap:10px}.model-preview-eyebrow{display:none}.model-preview .model-preview-titlebar h3{font-size:17px!important}.model-preview-titlecopy p{max-width:43vw;margin-top:3px;font-size:10px}.model-preview-title-actions{gap:6px}.model-preview-workspace{padding:7px;gap:8px}.model-preview-stage{min-height:61dvh;flex-basis:61dvh;border-radius:12px}.model-preview-toolbar{min-height:51px;padding:7px 7px 7px 11px}.model-stage-label{font-size:10px}.preview-tool-button{min-height:35px;padding:7px 9px}.preview-tool-button span{display:none}.model-preview-panel{padding:12px}}.model-visualization-panel{flex:0 0 auto}.model-visualization-panel.is-loading{opacity:.72}.model-map-elements-panel{flex:0 0 auto}.model-map-elements-panel.is-loading[open]{opacity:.78}.map-preview-status{margin:0 0 10px;padding:8px 9px;display:flex;align-items:center;gap:8px;border:1px solid #dce8e5;border-radius:9px;background:#f8fbfa;color:#5c7874;font-size:10px;font-weight:700;line-height:1.35}.map-preview-status i{width:13px;height:13px;flex:0 0 13px;border:2px solid rgba(20,143,128,.2);border-top-color:#148f80;border-radius:50%;animation:spin .8s linear infinite}.map-preview-status.is-ready{border-color:#cce8df;background:#f2fbf7;color:#237263}.map-preview-status.is-ready i{border:0;background:#26a881;box-shadow:inset 0 0 0 4px #dff6ee;animation:none}.model-map-elements-panel.has-error .map-preview-status{border-color:#f0d4cf;background:#fff6f4;color:#8c5148}.model-map-elements-panel.has-error .map-preview-status i{border:0;background:#c87467;animation:none}.map-preview-controls{display:grid;gap:11px}.map-preview-group{min-width:0;padding:9px;border:1px solid #dce8e5;border-radius:10px;background:#f8fbfa}.map-preview-track-group{border-left:3px solid #db655b}.map-preview-pin-group{border-left:3px solid #e38b37}.map-preview-group-heading{margin-bottom:7px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#315b56}.map-preview-group-heading span{font-size:10px;font-weight:850;letter-spacing:.055em;text-transform:uppercase}.map-preview-group-heading small{min-width:20px;padding:2px 6px;border-radius:999px;background:#e2eeeb;color:#58746f;font-size:9px;font-weight:800;text-align:center}.map-preview-list{display:grid;gap:6px}.map-preview-row{min-width:0;padding:7px 8px;display:grid;grid-template-columns:minmax(0,1fr) 36px auto;align-items:center;gap:7px;border:1px solid #e1ebe9;border-radius:9px;background:#fff;transition:opacity .16s ease,background .16s ease}.map-preview-row.is-hidden{background:#f4f7f6;opacity:.62}.map-preview-toggle{min-width:0;display:flex;align-items:center;gap:8px;color:#244d48;cursor:pointer}.map-preview-toggle input{width:16px;height:16px;margin:0;flex:0 0 auto;accent-color:#168f81}.map-preview-toggle span{min-width:0;display:flex;flex-direction:column}.map-preview-toggle b{max-width:100%;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.map-preview-toggle small{color:#78908c;font-size:9px}.map-preview-colour input[type=color]{width:36px;height:31px;padding:3px;display:block;border:1px solid #d5e2df;border-radius:8px;background:#fff;cursor:pointer}.map-preview-reset{min-height:31px;padding:5px 7px;border:1px solid #d8e5e2;border-radius:7px;background:#f6faf9;color:#52706c;cursor:pointer;font:inherit;font-size:9px;font-weight:750}.map-preview-reset:hover:not(:disabled){border-color:#9fcfc7;background:#edf8f5;color:#19766c}.map-preview-reset:disabled{cursor:default;opacity:.55}.map-preview-note{margin:9px 1px 0}.preview-control{margin:0 0 10px;display:grid;gap:6px;color:#4a6864;font-size:11px;font-weight:700}.preview-control>span{display:flex;align-items:center;justify-content:space-between;gap:8px}.preview-control output{color:#128276;font-size:10px;font-weight:800}.preview-control select,.preview-control input[type=number]{width:100%;min-height:37px;padding:7px 9px;border:1px solid #d6e4e1;border-radius:8px;outline:none;background:#f8fbfa;color:#244d48;font:inherit;font-size:11px}.preview-control select:focus,.preview-control input[type=number]:focus{border-color:#2b9b8e;box-shadow:0 0 0 3px #2b9b8e1c}.preview-control input[type=range]{width:100%;margin:0;accent-color:#168f81}.preview-color-control{grid-template-columns:minmax(0,1fr) 44px;align-items:center}.preview-color-control>span{grid-column:1}.preview-color-control input[type=color]{width:44px;height:32px;padding:3px;grid-column:2;grid-row:1;border:1px solid #d5e2df;border-radius:8px;background:#fff;cursor:pointer}.preview-mode-settings{margin-top:10px;padding:10px;border:1px solid #e1ece9;border-radius:10px;background:#f8fbfa}.preview-mode-settings[hidden]{display:none!important}.preview-setting-note{margin-bottom:10px;color:#718985;font-size:10px;line-height:1.45}.slope-preview-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.preview-slope-mask{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:8px 9px;border:1px solid #dce8e5;border-radius:8px;background:#fff;color:#244d48;cursor:pointer}.preview-slope-mask input{margin:2px 0 0;accent-color:#19766c}.preview-slope-mask span{display:flex;flex-direction:column;gap:2px}.preview-slope-mask b{font-size:10px}.preview-slope-mask small{color:#718985;font-size:9px;line-height:1.3}.slope-preview-legend span{min-width:0;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid #e1e9e7;border-radius:8px;background:#fff;text-align:center}.slope-preview-legend i{width:100%;height:7px;border-radius:999px}.slope-preview-legend i.gentle{background:#2ea851}.slope-preview-legend i.moderate{background:#f5c429}.slope-preview-legend i.steep{background:#db3329}.slope-preview-legend i.nodata{background:repeating-linear-gradient(135deg,#7f8b8b 0 4px,#b8c0c0 4px 8px)}.slope-preview-legend i.sea-mask{background:#789ba3}.slope-preview-legend b{color:#244d48;font-size:10px}.slope-preview-legend small{color:#78908c;font-size:8px;line-height:1.2}.preview-palette-swatch{position:relative;height:13px;margin:-2px 0 11px;border:2px solid #fff;border-radius:999px;box-shadow:0 0 0 1px #dce7e4}.preview-check-control{margin:2px 0 10px;display:flex;align-items:center;gap:8px;color:#395e59;cursor:pointer;font-size:11px;font-weight:700}.preview-check-control input{width:16px;height:16px;margin:0;accent-color:#168f81}.preview-interval-control input:disabled{cursor:not-allowed;opacity:.55}.preview-contour-result{margin:1px 0 0;color:#187f74;font-weight:750}.workspace-project-tools{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin:12px 12px 18px;padding:11px;border:1px solid rgba(25,118,210,.2);border-radius:13px;background:radial-gradient(circle at 0 0,rgba(100,181,246,.18),transparent 46%),linear-gradient(145deg,#fbfdff,#edf6ff);box-shadow:0 7px 18px #1b4d7917}.workspace-project-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:#fff;background:linear-gradient(145deg,#42a5f5,#1976d2);box-shadow:0 4px 10px #1976d240}.workspace-project-icon svg{width:19px;height:19px;fill:currentColor}.workspace-project-tools p{margin:0;color:#526779;font-size:11px;font-weight:600;line-height:1.35}.workspace-project-actions{display:block}.workspace-project-actions button{min-height:32px;padding:6px 10px;border:0;border-radius:8px;color:#fff;background:#1976d2;font-size:11px;font-weight:750;cursor:pointer;white-space:nowrap;box-shadow:0 3px 8px #1976d23b;transition:background-color .2s,transform .2s,box-shadow .2s}.workspace-project-actions button:hover{background:#0d47a1;transform:translateY(-1px);box-shadow:0 5px 11px #0d47a14d}@media(max-width:420px){.workspace-project-tools{grid-template-columns:auto minmax(0,1fr)}.workspace-project-actions{grid-column:1 / -1}.workspace-project-actions button{width:100%}}.mobile-bbox-create-actions{display:none}@media(max-width:768px){.mobile-bbox-create-actions.mobile-only{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:8px;margin-bottom:10px}.mobile-bbox-create-actions #mobile-draw-button,.mobile-bbox-create-actions #mobile-enter-coordinates-button{width:100%;min-height:40px;margin:0;padding:8px 9px;border:none;border-radius:8px;font-size:12px;font-weight:750;cursor:pointer}.mobile-bbox-create-actions #mobile-enter-coordinates-button{color:#fff;background:#d81b60;box-shadow:0 2px 6px #ad145740}.mobile-bbox-create-actions #mobile-enter-coordinates-button:active{background:#ad1457;transform:scale(.98)}}.shared-credit-notice{display:flex!important}.shared-modal-balance{display:flex;justify-content:space-between;align-items:center;margin:12px 0;padding:10px 12px;border-radius:10px;background:#1976d217}.shared-modal-balance span{color:#596979;font-size:12px}.shared-modal-balance b{color:#0d47a1;font-size:17px}.browser-export-access{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;margin:8px 0 13px;padding:12px;border:1px solid #c9d7e5;border-radius:12px;background:#f7fafc}.browser-export-access.is-locked{border-color:#f0c36a;background:linear-gradient(145deg,#fffbeb,#fff8dc)}.browser-export-access.is-unlocked{border-color:#8dd2a0;background:linear-gradient(145deg,#f0fff4,#e8f9ee)}.browser-export-access.has-error{border-color:#ef9a9a;background:#fff5f5}.browser-export-access-icon{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:10px;color:#fff;background:linear-gradient(135deg,#1976d2,#7c3aed);font-size:20px;font-weight:800}.browser-export-access-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.browser-export-access-copy strong,.browser-export-access-copy p,.browser-export-access-copy small{display:block}.browser-export-access-copy strong{color:#26384a;font-size:13px}.browser-export-access-copy p{margin:4px 0;color:#546576;font-size:11px;line-height:1.4}.browser-export-access-copy small{color:#718096;font-size:10px;overflow-wrap:anywhere}.browser-export-access-actions{display:flex;grid-column:1 / -1;gap:7px}.browser-export-access-actions .btn{flex:1;min-height:34px;padding:7px 8px;font-size:11px}.model-export-panel.is-locked .model-actions{opacity:.55}.model-export-panel.is-locked .model-actions button{cursor:not-allowed}.model-preview .project-manifest-button{width:auto!important;max-width:220px!important;min-width:0!important;min-height:42px!important;height:auto!important;margin:0!important;padding:8px 13px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:7px;border:1px solid #c9d9ee!important;border-radius:11px!important;color:#225d96!important;background:#f4f8fd!important;font-family:inherit;font-size:12px!important;font-weight:700;line-height:1.25!important;box-shadow:0 2px 7px #225d9614!important;cursor:pointer;white-space:nowrap}.model-preview .project-manifest-button:hover:not(:disabled){transform:translateY(-1px)!important;color:#174d82!important;border-color:#a8c4e4!important;background:#eaf2fb!important;box-shadow:0 5px 12px #225d9621!important}.model-preview .project-manifest-button svg{width:17px;height:17px;margin:0;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.model-preview .project-manifest-button:disabled{opacity:.58;cursor:wait;box-shadow:none!important}.model-preview .browser-export-header-button{width:auto;min-width:182px;min-height:42px;padding:8px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(70,70,185,.2);border-radius:11px;color:#fff;background:linear-gradient(135deg,#6666dc,#4b4bbb);box-shadow:0 5px 14px #4b4bbb38;font-family:inherit;font-size:13px;font-weight:800;line-height:1.2;white-space:nowrap;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.model-preview .browser-export-header-button:hover:not(:disabled){transform:translateY(-1px);background:linear-gradient(135deg,#7373e5,#4242ad);box-shadow:0 7px 17px #4b4bbb47}.model-preview .browser-export-header-button svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.model-preview .browser-export-header-button small{padding:3px 6px;border-radius:999px;color:currentColor;background:#ffffff29;font-size:9px;font-weight:800;letter-spacing:.01em;line-height:1}.model-preview .browser-export-header-button small[hidden]{display:none}.model-preview .browser-export-header-button.is-checking,.model-preview .browser-export-header-button.is-working{border-color:#d0d9e2;color:#5f6f7f;background:#edf2f6;box-shadow:none}.model-preview .browser-export-header-button.is-unlocked{border-color:#187e5b38;background:linear-gradient(135deg,#2aa879,#19845e);box-shadow:0 4px 12px #19845e2e}.model-preview .browser-export-header-button.has-error{border-color:#ef9a9a;background:linear-gradient(135deg,#b45353,#913f3f);box-shadow:none}.model-preview .browser-export-header-button:disabled{cursor:wait}.model-preview .browser-export-header-button.is-unlocked:disabled,.model-preview .browser-export-header-button.has-error:disabled{cursor:default}@media(max-width:560px){.model-preview .project-manifest-button{width:40px!important;min-width:40px!important;height:40px!important;padding:0!important;border-radius:10px!important}.model-preview .project-manifest-button span{display:none}.model-preview .project-manifest-button svg{width:18px;height:18px}.model-preview .browser-export-header-button{width:42px;min-width:42px;height:40px;min-height:40px;padding:0;border-radius:10px}.model-preview .browser-export-header-button span,.model-preview .browser-export-header-button small{display:none}.model-preview .browser-export-header-button svg{width:19px;height:19px}}.compact-project-modal{max-width:620px}.coordinate-entry-form{display:block}.coordinate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-field{display:grid;gap:5px;color:#34495e;font-size:12px;font-weight:700}.project-field-wide{margin-bottom:12px}.project-field input{width:100%;box-sizing:border-box;padding:10px;border:1px solid #ced8e2;border-radius:9px;font:inherit;font-weight:500}.project-field input:focus{border-color:#1976d2;outline:3px solid rgba(25,118,210,.12)}.project-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.purchased-models-modal-content{width:min(760px,calc(100vw - 32px));max-height:min(780px,calc(100vh - 40px))}#welcome-credit-modal{z-index:13000;padding:18px;box-sizing:border-box;background:radial-gradient(circle at 18% 18%,rgba(107,70,193,.28),transparent 32%),radial-gradient(circle at 82% 78%,rgba(30,136,229,.24),transparent 34%),#0f172ac7;backdrop-filter:blur(12px)}.welcome-credit-card{position:relative;width:min(620px,100%);max-height:calc(100vh - 36px);overflow-y:auto;box-sizing:border-box;padding:38px 42px 34px;border:1px solid rgba(255,255,255,.78);border-radius:26px;color:#243147;text-align:center;background:linear-gradient(145deg,#fffffffa,#f4f7fff7);box-shadow:0 34px 90px #0914306b,inset 0 1px #fff;animation:welcomeCreditArrive .48s cubic-bezier(.2,.9,.25,1.15)}.welcome-credit-card:before{content:"";position:absolute;inset:0 0 auto;height:7px;border-radius:26px 26px 0 0;background:linear-gradient(90deg,#6f4bc4,#397ee8,#25b6ab)}.welcome-credit-close{position:absolute;top:16px;right:17px;width:34px;height:34px;padding:0;border:0;border-radius:50%;color:#66758b;background:#eaf0f8;font:400 26px/32px Arial,sans-serif;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease}.welcome-credit-close:hover{color:#34425a;background:#dfe8f4;transform:rotate(8deg)}.welcome-credit-gift{display:grid;place-items:center;width:82px;height:82px;margin:0 auto 14px;border-radius:24px;font-size:42px;background:linear-gradient(145deg,#f1eaff,#e2f3ff);box-shadow:0 12px 28px #594bb533;transform:rotate(-3deg)}.welcome-credit-sparkle{position:absolute;color:#8b5fd3;font-size:22px;animation:welcomeCreditTwinkle 1.8s ease-in-out infinite alternate}.welcome-credit-sparkle-one{top:54px;left:22%}.welcome-credit-sparkle-two{top:94px;right:20%;color:#2e9eae;animation-delay:.5s}.welcome-credit-eyebrow{margin:0 0 5px;color:#6f4bc4;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.welcome-credit-card h2{margin:0;color:#17243b;font-size:clamp(26px,4vw,38px);line-height:1.14}.welcome-credit-lead{max-width:500px;margin:12px auto 20px;color:#607087;font-size:15px;line-height:1.55}.welcome-credit-wallet{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;text-align:left}.welcome-credit-wallet>div{display:flex;gap:11px;padding:15px;border:1px solid #dce6f4;border-radius:15px;background:#ffffffc7}.welcome-credit-wallet p{margin:0;color:#627189;font-size:12px;line-height:1.45}.welcome-credit-wallet strong{color:#253751;font-size:13px}.welcome-credit-mode-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;background:#e8f1ff}.welcome-credit-mode-icon.cloud{background:#eee9fb}.welcome-credit-balance{margin:17px 0;padding:11px 15px;border-radius:12px;color:#3b5574;font-size:13px;background:linear-gradient(90deg,#eaf7f3,#eef3ff)}.welcome-credit-balance strong{color:#176f68}.welcome-credit-campaign-note{margin:-7px auto 17px;color:#758398;font-size:11px;line-height:1.45}.welcome-credit-actions{display:grid;gap:11px;justify-items:center}.welcome-credit-primary{min-width:210px;padding:12px 26px;border:0;border-radius:12px;color:#fff;font-size:15px;font-weight:800;background:linear-gradient(135deg,#6847bf,#277cd9);box-shadow:0 9px 20px #4f4fb542;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.welcome-credit-primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px #4f4fb557}.welcome-credit-actions a{color:#526da6;font-size:12px;font-weight:700;text-decoration:none}.welcome-credit-actions a:hover{color:#314f8f;text-decoration:underline}@keyframes welcomeCreditArrive{0%{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes welcomeCreditTwinkle{0%{opacity:.4;transform:scale(.82) rotate(-10deg)}to{opacity:1;transform:scale(1.08) rotate(8deg)}}@media(max-width:600px){.welcome-credit-card{padding:34px 20px 25px;border-radius:21px}.welcome-credit-wallet{grid-template-columns:1fr}.welcome-credit-sparkle-one{left:13%}.welcome-credit-sparkle-two{right:12%}}@media(prefers-reduced-motion:reduce){.welcome-credit-card,.welcome-credit-sparkle{animation:none}}.purchased-models-modal-content .modal-header>div p{margin:4px 0 0;color:#6b7b8c;font-size:12px}.purchased-models-help{margin-bottom:13px;padding:10px 12px;border-radius:10px;color:#46617c;background:#edf6ff;font-size:11px;line-height:1.45}.purchased-models-list{display:grid;gap:10px;max-height:58vh;overflow-y:auto}.purchased-models-empty{padding:28px 15px;color:#718096;text-align:center}.purchased-model-card{padding:13px;border:1px solid #dce4ec;border-radius:12px;background:#fff;box-shadow:0 5px 14px #2b43590f}.purchased-model-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.purchased-model-heading strong,.purchased-model-heading small{display:block}.purchased-model-heading strong{color:#26384a;font-size:14px}.purchased-model-heading small{margin-top:3px;color:#7b8794;font-size:10px}.purchased-model-status{flex:0 0 auto;padding:4px 7px;border-radius:20px;color:#8a5b08;background:#fff0c2;font-size:9px;font-weight:800;text-transform:uppercase}.purchased-model-status.is-ready{color:#17663a;background:#dff5e7}.purchased-model-status.is-active{color:#1557a0;background:#e0efff}.purchased-model-card p{margin:9px 0;color:#607080;font-size:11px;line-height:1.4}.purchased-model-actions{display:flex;flex-wrap:wrap;gap:7px}.purchased-model-actions .btn{padding:7px 10px;font-size:10px}.purchased-delete-local{margin-left:auto;color:#a12727!important}@media(max-width:620px){.coordinate-grid{grid-template-columns:1fr}.browser-export-access-actions,.purchased-model-actions{flex-direction:column}.purchased-delete-local{margin-left:0}}#settings-modal.modal{background-color:#000c;backdrop-filter:blur(10px)}#settings-modal .modal-content{background-color:#fff;border:3px solid #e0e0e0;box-shadow:0 20px 60px #00000080;border-radius:16px}#settings-modal .modal-header{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:30px 35px;border-bottom:2px solid #d0d0d0;border-radius:16px 16px 0 0}#settings-modal .modal-header h2{color:#1a1a1a!important;font-weight:700;font-size:26px}#settings-modal .modal-close{background:#00000014;color:#333!important;font-weight:300}#settings-modal .modal-close:hover{background:#f4433626;color:#f44336!important;transform:rotate(90deg)}#settings-modal .modal-body{background:#fff;padding:35px}#settings-modal .settings-section h3{color:#1a1a1a!important;font-weight:700;font-size:22px;margin-bottom:15px}#settings-modal .settings-description{color:#2c3e50!important;font-size:15px;line-height:1.7;margin-bottom:25px}#settings-modal .api-key-status{background:#f5f5f5;border:2px solid #d0d0d0;padding:18px 22px;border-radius:10px;box-shadow:0 2px 8px #00000014}#settings-modal .status-indicator{font-size:24px}#settings-modal #status-text{color:#1a1a1a!important;font-weight:700;font-size:16px}#settings-modal .api-key-status.configured{background:#e8f5e9;border-color:#4caf50}#settings-modal .api-key-status.configured #status-text{color:#1b5e20!important}#settings-modal .form-group label{color:#1a1a1a!important;font-weight:700;font-size:16px;margin-bottom:10px}#settings-modal .form-control{background:#fafafa;border:2px solid #d0d0d0;color:#1a1a1a!important;font-size:15px;padding:14px 18px;border-radius:10px;font-family:Courier New,Consolas,monospace;font-weight:600}#settings-modal .form-control:focus{background:#fff;border-color:#2196f3;box-shadow:0 0 0 4px #2196f333}#settings-modal .form-control::placeholder{color:#999!important;font-weight:400}#settings-modal .form-help{color:#444!important;font-size:14px;line-height:1.6;margin-top:10px}#settings-modal .form-help a{color:#2196f3!important;font-weight:700;text-decoration:none}#settings-modal .form-help a:hover{color:#1976d2!important;text-decoration:underline}#settings-modal .btn{font-size:16px;font-weight:700;padding:14px 28px;border-radius:10px;box-shadow:0 4px 12px #00000026;transition:all .3s ease}#settings-modal .btn-primary{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff!important;border:none}#settings-modal .btn-primary:hover{background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-3px);box-shadow:0 6px 16px #2196f366}#settings-modal .btn-secondary{background:#f5f5f5;color:#1a1a1a!important;border:2px solid #d0d0d0}#settings-modal .btn-secondary:hover{background:#e8e8e8;border-color:#b0b0b0;transform:translateY(-2px)}#settings-modal .settings-info{background:linear-gradient(135deg,#e3f2fd,#f1f8ff);border-left:5px solid #2196F3;padding:24px;border-radius:12px;box-shadow:0 2px 10px #2196f326;margin-top:25px}#settings-modal .settings-info h4{color:#1a1a1a!important;font-weight:700;font-size:18px;margin-bottom:15px}#settings-modal .settings-info ul{margin:0;padding-left:22px}#settings-modal .settings-info li{color:#2c3e50!important;font-size:14px;line-height:1.8;margin-bottom:10px;font-weight:500}#settings-modal .settings-info li::marker{color:#2196f3}@media(max-width:768px){#settings-modal .modal-content{width:95%;max-height:85vh}#settings-modal .modal-header{padding:24px 20px}#settings-modal .modal-header h2{font-size:22px}#settings-modal .modal-body{padding:24px 20px}#settings-modal .btn{font-size:15px;padding:12px 20px}}#welcome-modal.modal{background-color:#000c;backdrop-filter:blur(10px)}#welcome-modal .modal-content{background-color:#fff;border:3px solid #e0e0e0;box-shadow:0 20px 60px #00000080;border-radius:16px;max-width:650px;max-height:90vh;display:flex;flex-direction:column}#welcome-modal .modal-header{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);padding:20px 30px;border-bottom:2px solid #d0d0d0;border-radius:16px 16px 0 0;flex-shrink:0}#welcome-modal .modal-header h2{color:#1a1a1a!important;font-weight:700;font-size:24px;margin:0}#welcome-modal .modal-close{background:#00000014;color:#333!important;font-weight:300}#welcome-modal .modal-close:hover{background:#f4433626;color:#f44336!important;transform:rotate(90deg)}#welcome-modal .modal-body{background:#fff;padding:25px 30px;overflow-y:auto;flex:1;min-height:0}#welcome-modal .settings-section h3{color:#1a1a1a!important;font-weight:700;font-size:20px;margin:0 0 10px}#welcome-modal .settings-description{color:#2c3e50!important;font-size:14px;line-height:1.6;margin-bottom:18px}.welcome-steps{margin:18px 0}.welcome-step{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;padding:14px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:10px;border-left:3px solid #2196F3;box-shadow:0 2px 6px #0000000f;transition:transform .2s ease,box-shadow .2s ease}.welcome-step:hover{transform:translateY(-2px);box-shadow:0 3px 10px #2196f326}.step-number{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;box-shadow:0 2px 6px #2196f34d}.step-content{flex:1}.step-content h4{color:#1a1a1a!important;font-weight:700;font-size:15px;margin:0 0 4px}.step-content p{color:#2c3e50!important;font-size:13px;line-height:1.5;margin:0}#welcome-modal .welcome-info{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border-left:4px solid #4caf50;padding:14px 18px;border-radius:10px;box-shadow:0 2px 8px #4caf501f;margin-top:18px;margin-bottom:18px}#welcome-modal .welcome-info h4{color:#1a1a1a!important;font-weight:700;font-size:15px;margin:0 0 10px}#welcome-modal .welcome-info ul{margin:0;padding-left:20px}#welcome-modal .welcome-info li{color:#2c3e50!important;font-size:13px;line-height:1.6;margin-bottom:6px;font-weight:500}#welcome-modal .welcome-info li:last-child{margin-bottom:0}#welcome-modal .welcome-info li::marker{color:#4caf50}.welcome-checkbox-container{margin:18px 0;padding:14px;background:#f5f5f5;border:2px solid #d0d0d0;border-radius:8px}.welcome-checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;color:#1a1a1a!important;font-size:14px;font-weight:600;margin:0}.welcome-checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#2196F3;flex-shrink:0}.welcome-checkbox-label span{color:#1a1a1a!important;user-select:none}#welcome-modal .btn{font-size:15px;font-weight:700;padding:12px 24px;border-radius:10px;box-shadow:0 4px 12px #00000026;transition:all .3s ease;cursor:pointer;border:none;width:100%}#welcome-modal .btn-primary{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff!important}#welcome-modal .btn-primary:hover{background:linear-gradient(135deg,#1976d2,#1565c0);transform:translateY(-2px);box-shadow:0 6px 16px #2196f366}@media(max-width:768px){#welcome-modal .modal-content{width:95%;max-width:95%;max-height:92vh;margin:4vh auto}#welcome-modal .modal-header{padding:16px 18px}#welcome-modal .modal-header h2{font-size:20px}#welcome-modal .modal-body{padding:18px}#welcome-modal .settings-section h3{font-size:18px;margin-bottom:8px}#welcome-modal .settings-description{font-size:13px;margin-bottom:14px}.welcome-steps{margin:14px 0}.welcome-step{padding:12px;gap:10px;margin-bottom:10px}.step-number{width:28px;height:28px;font-size:14px}.step-content h4{font-size:14px;margin-bottom:3px}.step-content p{font-size:12px;line-height:1.4}#welcome-modal .welcome-info{padding:12px 14px;margin-top:14px;margin-bottom:14px}#welcome-modal .welcome-info h4{font-size:14px;margin-bottom:8px}#welcome-modal .welcome-info li{font-size:12px;line-height:1.5;margin-bottom:5px}.welcome-checkbox-container{padding:12px;margin:14px 0}.welcome-checkbox-label{font-size:13px;gap:8px}.welcome-checkbox-label input[type=checkbox]{width:16px;height:16px}#welcome-modal .btn{font-size:14px;padding:11px 18px}}
