*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;color:#1e293b;background:#f8fafc}button,input,select,textarea{font:inherit}a{color:#2563eb;text-decoration:none}.app-shell{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.375rem .625rem;background:#0f172a;color:#f8fafc;flex-shrink:0}.app-header h1{margin:0;font-size:1rem;font-weight:600}.app-header nav{display:flex;gap:.5rem}.app-header a{color:#cbd5e1;font-size:.875rem}.app-header a.active,.app-header a:hover{color:#fff;text-decoration:none}.app-body{display:flex;flex:1;min-height:0}.sidebar{width:284px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid #e2e8f0}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 .5rem .5rem}.place-search{position:relative;padding:.5rem .5rem .375rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.place-search-label{display:block}.place-search-input{width:100%;padding:.375rem .4375rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#f8fafc;font-size:.875rem}.place-search-input:focus{outline:2px solid #93c5fd;border-color:#2563eb;background:#fff}.place-search-results{position:absolute;left:.5rem;right:.5rem;top:calc(100% - .125rem);z-index:1000;background:#fff;border:1px solid #e2e8f0;border-radius:.375rem;box-shadow:0 4px 16px #0f172a1f;max-height:240px;overflow-y:auto}.place-search-group{padding:.25rem 0}.place-search-group+.place-search-group{border-top:1px solid #f1f5f9}.place-search-group-title{margin:0;padding:.125rem .4375rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.place-search-list{list-style:none;margin:0;padding:0}.place-search-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:.3125rem .5rem;border:none;background:transparent;text-align:left;cursor:pointer}.place-search-item:hover{background:#f1f5f9}.place-search-item-name{font-size:.875rem;font-weight:500;color:#1e293b}.place-search-item-sub{font-size:.75rem;color:#64748b;margin-top:.0625rem}.place-search-status,.place-search-hint{margin:0;padding:.3125rem .4375rem;font-size:.8125rem;color:#64748b}.place-search-hint{border-top:1px solid #f1f5f9;color:#b45309;background:#fffbeb}.map-area{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.map-container{flex:1;min-height:0}.leaflet-container{height:100%;width:100%}.path-visual{pointer-events:none!important}.sidebar-section{margin-bottom:.625rem}.sidebar-section h2{margin:0 0 .3125rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.layer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.layer-item{border:1px solid #e2e8f0;border-radius:.375rem;background:#fff;overflow:hidden}.layer-item.active,.layer-item.selected{border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb1f}.layer-item-header{display:flex;align-items:center;gap:.25rem;padding:.3125rem .4375rem}.layer-visibility{display:flex;align-items:center;cursor:pointer}.layer-color-swatch-btn{width:14px;height:14px;border-radius:50%;border:1px solid #fff;box-shadow:0 0 0 1px #00000026;cursor:pointer;flex-shrink:0;padding:0}.expand-btn{border:none;background:none;cursor:pointer;color:#64748b;font-size:.8125rem;padding:.125rem;line-height:1}.layer-notes-preview{font-size:.8125rem;color:#64748b;margin:0 0 .3125rem;font-style:italic}.btn-text{border:none;background:none;cursor:pointer;font-size:.8125rem;color:#64748b;padding:.0625rem .25rem;flex-shrink:0}.btn-text.danger:hover{color:#dc2626}.btn-block{width:100%}.new-layer-section{margin-top:.375rem}.new-layer-form{display:flex;flex-direction:column;gap:.375rem;margin-top:.375rem}.new-layer-form input{padding:.375rem .4375rem;border:1px solid #cbd5e1;border-radius:.25rem;font-size:.875rem}.tool-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.3125rem;padding:.5rem .375rem;font-size:.875rem;line-height:1.2;min-height:2.375rem}.tool-icon{font-size:1.125rem;line-height:1}.onboarding{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;padding:.5rem .625rem;margin-bottom:.5rem}.onboarding h2{margin:0 0 .25rem;font-size:.875rem;color:#1e40af}.onboarding ol{margin:0;padding-left:1rem;font-size:.8125rem;color:#334155;line-height:1.45}.layer-name-btn{flex:1;text-align:left;border:none;background:none;cursor:pointer;font-weight:600;font-size:.875rem;padding:.125rem;min-width:0}.layer-details{border-top:1px solid #f1f5f9;padding:.3125rem .4375rem .4375rem;background:#fafafa}.layer-subsection{margin-bottom:.4375rem}.layer-subsection strong{display:block;font-size:.8125rem;color:#475569;margin-bottom:.1875rem}.item-list{list-style:none;margin:0;padding:0}.item-row{display:flex;align-items:center;justify-content:space-between;gap:.3125rem;padding:.125rem 0;font-size:.875rem}.item-row button{border:none;background:none;cursor:pointer;text-align:left;padding:0;color:#334155}.item-row.selected{background:#eff6ff;border-radius:.1875rem;padding:.125rem .25rem;margin:0 -.25rem}.item-row.selected button:first-child{color:#2563eb;font-weight:600}.btn-icon{border:none;background:none;cursor:pointer;color:#64748b;font-size:.875rem;line-height:1;padding:.0625rem .1875rem}.btn-icon.danger:hover{color:#dc2626}.route-mode-fieldset{border:1px solid #e2e8f0;border-radius:.25rem;padding:.4375rem;margin:0}.route-mode-fieldset legend{padding:0 .1875rem;font-size:.8125rem;font-weight:600;color:#475569}.route-mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.25rem}.route-mode-option{display:flex;align-items:center;justify-content:center;padding:.375rem .1875rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#f8fafc;font-size:.8125rem;cursor:pointer}.route-mode-option.selected{border-color:#2563eb;background:#eff6ff;color:#1d4ed8;font-weight:600}.route-mode-option input{position:absolute;opacity:0;pointer-events:none}.travel-route-panel{margin-top:.25rem;padding:.3125rem .375rem}.travel-route-panel .sidebar-embedded-header{margin-bottom:.1875rem}.travel-route-panel h3{line-height:1.2}.travel-route-form{gap:.25rem}.travel-route-form label{gap:.125rem}.travel-route-form .route-mode-fieldset{padding:.25rem .3125rem}.travel-route-form .route-mode-grid{gap:.1875rem}.travel-route-form .tool-hint{margin:0;line-height:1.3}.travel-route-form .error-text{margin:0}.travel-route-form .form-actions{gap:.25rem;padding-top:.0625rem}.travel-route-panel .empty-state{margin:0 0 .3125rem}.route-endpoint-field{position:relative;display:flex;flex-direction:column;gap:.1875rem}.route-endpoint-header{display:flex;align-items:center;justify-content:space-between;gap:.25rem}.route-endpoint-label{font-size:.8125rem;font-weight:600;color:#475569}.route-endpoint-map-btn{padding:.25rem .4375rem;min-height:0}.route-endpoint-selected{display:flex;align-items:center;justify-content:space-between;gap:.25rem;padding:.1875rem .3125rem;background:#fff;border:1px solid #bfdbfe;border-radius:.25rem}.route-endpoint-selected-name{font-size:.8125rem;font-weight:500;color:#1e3a8a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-endpoint-clear{flex-shrink:0}.route-endpoint-search,.route-endpoint-select{width:100%;padding:.375rem .4375rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#fff;font-size:.875rem}.route-endpoint-results{position:absolute;left:0;right:0;top:calc(100% - .125rem);z-index:1001;background:#fff;border:1px solid #e2e8f0;border-radius:.375rem;box-shadow:0 4px 16px #0f172a1f;max-height:180px;overflow-y:auto}.route-stats{margin:0;font-size:.875rem;font-weight:600;color:#0f172a}.item-row button:first-child{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.0625rem;text-align:left;background:none;border:none;padding:0;cursor:pointer;color:inherit;min-width:0}.item-row-title{font-size:.875rem}.item-row-meta{font-size:.75rem;color:#64748b;font-weight:500}.tool-hint{font-size:.8125rem;color:#64748b;margin:0 0 .375rem;line-height:1.35}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:.3125rem}.btn{padding:.4375rem .5rem;border:none;border-radius:.25rem;cursor:pointer;font-size:.8125rem;font-weight:500}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-secondary{background:#e2e8f0;color:#334155}.btn-secondary:hover{background:#cbd5e1}.btn-secondary.active-tool{background:#dbeafe;color:#1d4ed8;box-shadow:inset 0 0 0 1px #93c5fd}.btn-danger{background:#dc2626;color:#fff}.status-bar{background:#eff6ff;border-bottom:1px solid #bfdbfe;color:#1e40af;padding:.3125rem .4375rem;font-size:.8125rem;flex-shrink:0}.draw-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.3125rem;padding:.3125rem .4375rem;background:#fff;border-bottom:1px solid #e2e8f0;font-size:.8125rem;flex-shrink:0}.form-grid select{padding:.375rem .4375rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#fff;font-size:.875rem}.field-label{display:block;font-size:.8125rem;color:#475569;margin-bottom:.1875rem}.coords-hint{color:#94a3b8}.type-badge{display:inline-block;font-size:.8125rem;font-weight:600;color:#475569;background:#f1f5f9;padding:.125rem .375rem;border-radius:.1875rem;margin:0}.route-endpoints{margin:0;font-size:.875rem;color:#334155;font-weight:500}.inspector-panel{position:absolute;top:0;right:0;bottom:0;z-index:1000;width:min(292px,100%);max-width:100%;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-2px 0 16px #0f172a1a;display:flex;flex-direction:column;overflow:hidden}.inspector-backdrop{display:none;position:absolute;top:0;right:0;bottom:0;left:0;z-index:999;border:none;padding:0;background:#0f172a59;cursor:pointer}.tools-section{position:sticky;top:0;z-index:2;background:#fff;padding-bottom:.125rem;border-bottom:1px solid #e2e8f0;margin-bottom:.4375rem}.sidebar-embedded-panel{margin-top:.4375rem;padding:.5rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem}.sidebar-embedded-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375rem}.sidebar-embedded-panel h3{margin:0;font-size:.875rem;color:#1e3a8a}.inspector-header{display:flex;align-items:center;justify-content:space-between;padding:.375rem .5rem;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.inspector-header h3{margin:0;font-size:.9375rem}.inspector-body{padding:.5rem;overflow-y:auto;flex:1}.color-picker{display:flex;flex-direction:column;gap:.3125rem}.color-swatches{display:flex;flex-wrap:wrap;gap:.25rem}.color-swatch-btn{width:18px;height:18px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.color-swatch-btn.selected{border-color:#1e293b;box-shadow:0 0 0 1px #fff,0 0 0 2px #1e293b}.color-custom{display:flex;align-items:center;gap:.3125rem;font-size:.8125rem;color:#475569}.color-custom input[type=color]{width:28px;height:22px;border:1px solid #cbd5e1;border-radius:.1875rem;padding:0;cursor:pointer}.form-grid{display:grid;gap:.375rem}.form-grid label{display:flex;flex-direction:column;gap:.125rem;font-size:.8125rem;color:#475569}.form-grid input,.form-grid textarea{padding:.375rem .4375rem;border:1px solid #cbd5e1;border-radius:.25rem;font-size:.875rem}.form-grid textarea{min-height:2.75rem;resize:vertical}.form-actions{display:flex;flex-wrap:wrap;gap:.3125rem}.coords-meta{margin:0;font-size:.8125rem;color:#64748b}.popup-content h3{margin:0 0 .125rem;font-size:.875rem}.popup-content p{margin:.125rem 0;font-size:.8125rem;color:#475569}.loading,.empty-state{color:#64748b;font-size:.875rem}.empty-state.small{font-size:.8125rem;margin:.125rem 0}.center{padding:1rem}.error-text{color:#dc2626;font-size:.875rem}.auth-gate{display:flex;align-items:center;justify-content:center;flex:1;padding:1rem}.auth-card{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;padding:1.25rem;width:100%;max-width:22rem;box-shadow:0 2px 16px #0f172a14}.auth-card h2{margin:0 0 .375rem;font-size:1.0625rem}.auth-card p{margin:0 0 .75rem;color:#64748b;font-size:.875rem}.auth-card form{display:flex;flex-direction:column;gap:.5rem}.auth-card input{padding:.4375rem .5rem;border:1px solid #cbd5e1;border-radius:.25rem;width:100%;font-size:.875rem}.password-field{position:relative;display:block}.password-field input{padding-right:3.5rem}.password-toggle{position:absolute;top:50%;right:.375rem;transform:translateY(-50%);border:none;background:transparent;color:#2563eb;font-size:.8125rem;font-weight:500;cursor:pointer;padding:.125rem}.password-toggle:hover{color:#1d4ed8}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:768px){.app-body{flex-direction:column}.sidebar{width:100%;max-height:38vh;border-right:none;border-bottom:1px solid #e2e8f0}.sidebar-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.tools-section{position:static;top:auto}.sidebar-travel-open{max-height:56vh}.sidebar-travel-open .layers-section{display:none}.sidebar-travel-open .travel-route-panel{max-height:calc(56vh - 9.5rem);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.route-mode-grid{grid-template-columns:repeat(2,1fr)}.inspector-backdrop{display:block}.inspector-panel{position:absolute;left:0;right:0;bottom:0;top:auto;width:100%;max-height:min(50vh,100%);border-left:none;border-top:1px solid #e2e8f0;box-shadow:0 -4px 16px #0f172a26}}.ask-ai-page{display:flex;flex-direction:row;flex:1;min-height:0;background:#f8fafc;overflow:hidden}.ask-ai-mobile-tabs{display:none}.ask-ai-sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid #e2e8f0}.ask-ai-sidebar-header{padding:.75rem .75rem .5rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.ask-ai-sidebar-header h3{margin:0;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.ask-ai-sidebar-list{flex:1;min-height:0;overflow-y:auto;padding:.375rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ask-ai-sidebar-empty{margin:.5rem;font-size:.8125rem;color:#94a3b8}.ask-ai-saved-item{display:flex;align-items:stretch;gap:.125rem;margin-bottom:.1875rem;border-radius:.375rem}.ask-ai-saved-item.selected{background:#eff6ff}.ask-ai-saved-item-btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.4375rem .5rem;border:none;background:none;cursor:pointer;text-align:left;border-radius:.375rem}.ask-ai-saved-item-btn:hover{background:#f1f5f9}.ask-ai-saved-item.selected .ask-ai-saved-item-btn:hover{background:transparent}.ask-ai-saved-title{font-size:.8125rem;font-weight:500;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.ask-ai-saved-date{font-size:.6875rem;color:#94a3b8}.ask-ai-saved-delete-btn,.ask-ai-saved-rename-btn{flex-shrink:0;align-self:center}.ask-ai-label-editor{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem;padding:.375rem .5rem}.ask-ai-label-editor-header{padding:0}.ask-ai-label-input{width:100%;padding:.4375rem .5rem;border:1px solid #cbd5e1;border-radius:.375rem;font-size:.875rem;font-weight:500;color:#1e293b;background:#fff}.ask-ai-label-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.ask-ai-label-editor-actions{display:flex;gap:.1875rem;flex-wrap:wrap}.ask-ai-label-save,.ask-ai-label-cancel{padding:.3125rem .625rem;min-height:2rem;font-size:.8125rem}.ask-ai-header-title{min-width:0;flex:1}.ask-ai-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.ask-ai-header-actions{display:flex;gap:.1875rem;flex-shrink:0}.ask-ai-saved-view{flex:1;min-height:0;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ask-ai-saved-question{align-self:flex-end;max-width:44rem}.ask-ai-bubble-header{display:flex;align-items:center;justify-content:space-between;gap:.25rem;flex-wrap:wrap;margin-bottom:.125rem}.ask-ai-bubble-actions{display:flex;align-items:center;gap:.1875rem;flex-wrap:wrap;margin-left:auto}.ask-ai-page .ask-ai-delete-btn,.ask-ai-page .ask-ai-saved-delete-btn,.ask-ai-page .ask-ai-saved-rename-btn,.ask-ai-page .ask-ai-header-actions .btn,.ask-ai-page .ask-ai-clear,.ask-ai-page .ask-ai-send{padding:.5rem .75rem;min-height:2.375rem;font-size:.875rem;line-height:1.2}.ask-ai-page .ask-ai-save-btn{padding:.5625rem 1.125rem;min-height:2.625rem;font-size:.9375rem;font-weight:600;line-height:1.2;box-shadow:0 1px 3px #2563eb40}.ask-ai-page .ask-ai-save-btn:hover:not(:disabled){box-shadow:0 2px 6px #2563eb59}.ask-ai-page .ask-ai-save-btn:disabled{opacity:.75}.ask-ai-saved-badge{font-size:.8125rem;font-weight:600;color:#16a34a;padding:.375rem .125rem}.markdown-content{word-break:break-word}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin:1rem 0 .5rem;line-height:1.3;color:#0f172a}.markdown-content h1{font-size:1.25rem}.markdown-content h2{font-size:1.0625rem}.markdown-content h3{font-size:.9375rem}.markdown-content p{margin:.5rem 0}.markdown-content ul,.markdown-content ol{margin:.5rem 0;padding-left:1.25rem}.markdown-content li{margin:.25rem 0}.markdown-content li>p{margin:.125rem 0}.markdown-content strong{font-weight:600}.markdown-content hr{border:none;border-top:1px solid #e2e8f0;margin:.75rem 0}.markdown-content a{color:#2563eb}.markdown-content code{font-family:Consolas,Courier New,monospace;font-size:.875em;background:#f1f5f9;padding:.0625rem .25rem;border-radius:.1875rem}.markdown-content pre{margin:.5rem 0;padding:.625rem;background:#0f172a;color:#f8fafc;border-radius:.375rem;overflow-x:auto}.markdown-content pre code{background:none;padding:0;color:inherit}.markdown-content blockquote{margin:.5rem 0;padding-left:.75rem;border-left:3px solid #cbd5e1;color:#475569}.ask-ai-bubble-assistant .markdown-content.ask-ai-bubble-content,.ask-ai-bubble-assistant .ask-ai-bubble-content.markdown-content{background:#fff;color:#1e293b;border:1px solid #e2e8f0;padding:.625rem .75rem;border-radius:.5rem;font-size:.9375rem;line-height:1.5;white-space:normal}.ask-ai-bubble-user .ask-ai-bubble-content{white-space:pre-wrap}.ask-ai-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.375rem;padding:.5rem .75rem;border-bottom:1px solid #e2e8f0;background:#fff;flex-shrink:0}.ask-ai-header h2{margin:0;font-size:1.125rem;font-weight:600;color:#0f172a}.ask-ai-subtitle{margin:.1875rem 0 0;font-size:.8125rem;color:#64748b}.ask-ai-clear{flex-shrink:0}.ask-ai-messages{flex:1;min-height:0;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ask-ai-empty{max-width:40rem;margin:1rem auto 0;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;color:#475569}.ask-ai-empty p{margin:0 0 .5rem}.ask-ai-empty-hint{font-size:.875rem;line-height:1.45;color:#1e40af;padding:.5rem .625rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem}.ask-ai-empty ul{margin:0;padding-left:1.125rem}.ask-ai-empty li{margin-bottom:.25rem}.ask-ai-bubble{max-width:44rem;display:flex;flex-direction:column;gap:.1875rem}.ask-ai-bubble-user{align-self:flex-end}.ask-ai-bubble-assistant{align-self:flex-start}.ask-ai-bubble-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.ask-ai-bubble-content{padding:.625rem .75rem;border-radius:.5rem;font-size:.9375rem;line-height:1.5;word-break:break-word}.ask-ai-bubble-user .ask-ai-bubble-content:not(.markdown-content){white-space:pre-wrap}.ask-ai-bubble-user .ask-ai-bubble-content{background:#2563eb;color:#fff}.ask-ai-bubble-assistant .ask-ai-bubble-content{background:#fff;color:#1e293b;border:1px solid #e2e8f0}.ask-ai-status{margin:0;font-size:.8125rem;color:#64748b;font-style:italic}.ask-ai-progress{padding:.625rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-bottom:.375rem}.ask-ai-progress-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.ask-ai-progress-title{font-size:.8125rem;font-weight:600;color:#334155}.ask-ai-progress-elapsed{font-size:.75rem;font-weight:500;color:#64748b;font-variant-numeric:tabular-nums}.ask-ai-progress-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3125rem}.ask-ai-progress-step{display:flex;align-items:flex-start;gap:.4375rem;font-size:.8125rem;color:#94a3b8}.ask-ai-progress-step.done{color:#64748b}.ask-ai-progress-step.active{color:#1e40af;font-weight:500}.ask-ai-progress-step-icon{flex-shrink:0;width:1rem;text-align:center;line-height:1.35}.ask-ai-progress-step.active .ask-ai-progress-step-icon{animation:ask-ai-pulse 1.2s ease-in-out infinite}.ask-ai-progress-step-label{line-height:1.35}.ask-ai-progress-hint{margin:.5rem 0 0;font-size:.75rem;color:#94a3b8}.ask-ai-progress-preamble{margin:.5rem 0 0;padding:.4375rem .5rem;font-size:.75rem;line-height:1.4;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:.375rem}.ask-ai-progress-preamble-label{font-weight:600;color:#64748b}.ask-ai-quick-progress-status{display:flex;align-items:flex-start;gap:.4375rem;font-size:.8125rem}.ask-ai-quick-progress-icon{flex-shrink:0;width:1rem;text-align:center;line-height:1.35;color:#1e40af;animation:ask-ai-pulse 1.2s ease-in-out infinite}.ask-ai-quick-progress-label{line-height:1.35;color:#475569}.ask-ai-map-snapshot{margin-top:.625rem}.ask-ai-map-snapshot-img{display:block;width:100%;max-width:40rem;border-radius:.5rem;border:1px solid #e2e8f0;box-shadow:0 2px 8px #0f172a14}.ask-ai-map-edit-actions{margin-top:.5rem}.ask-ai-open-map-btn{display:inline-flex;text-decoration:none}.map-edit-snapshot-hidden{position:fixed;left:-10000px;top:0;opacity:0;pointer-events:none;overflow:hidden}.ask-ai-stream-cursor{display:inline-block;width:.5rem;height:1rem;margin-left:.125rem;vertical-align:text-bottom;background:#2563eb;border-radius:1px;animation:ask-ai-blink 1s step-end infinite}@keyframes ask-ai-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes ask-ai-blink{0%,to{opacity:1}50%{opacity:0}}.ask-ai-error{margin:0}.ask-ai-composer{display:flex;gap:.375rem;align-items:flex-end;padding:.5rem .75rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px));border-top:1px solid #e2e8f0;background:#fff;flex-shrink:0}.ask-ai-input{flex:1;min-width:0;padding:.5rem .625rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;font-size:1rem;resize:vertical;min-height:4.5rem;max-height:12rem}.ask-ai-send{flex-shrink:0;min-width:5.5rem;white-space:nowrap}.ask-ai-composer-actions{display:flex;flex-direction:column;gap:.25rem;flex-shrink:0}.ask-ai-send-quick,.ask-ai-send-detailed{font-weight:600}@media(max-width:768px){.app-header{flex-wrap:wrap;align-items:center;gap:.3125rem .625rem;padding:.4375rem .8125rem;min-height:3.1875rem}.app-header h1{font-size:1.3rem;flex:1;min-width:0;line-height:1.2}.app-header nav{gap:.4375rem;flex-wrap:wrap;justify-content:flex-end;align-items:center}.app-header a{font-size:1.125rem;font-weight:500;padding:.4375rem .625rem;min-height:2.75rem;display:inline-flex;align-items:center;border-radius:.3125rem}.app-header a.active{background:#ffffff1f}.ask-ai-page{flex-direction:column}.ask-ai-mobile-tabs{display:flex;flex-shrink:0;border-bottom:1px solid #e2e8f0;background:#fff}.ask-ai-mobile-tab{flex:1;padding:.5625rem .75rem;border:none;background:none;font-size:.875rem;font-weight:500;color:#64748b;cursor:pointer;border-bottom:2px solid transparent}.ask-ai-mobile-tab.active{color:#2563eb;border-bottom-color:#2563eb}.ask-ai-page[data-mobile-tab=chat] .ask-ai-sidebar,.ask-ai-page[data-mobile-tab=saved] .ask-ai-main{display:none}.ask-ai-sidebar{width:100%;flex:1;min-height:0;max-height:none;border-right:none;border-bottom:none}.ask-ai-main{flex:1;min-height:0}.ask-ai-header{flex-direction:column;align-items:stretch;padding:.625rem .75rem;gap:.5rem}.ask-ai-header h2{font-size:1rem}.ask-ai-subtitle{display:none}.ask-ai-header-actions{flex-wrap:wrap}.ask-ai-header-actions .btn{flex:1;min-width:0}.ask-ai-messages,.ask-ai-saved-view{padding:.75rem}.ask-ai-bubble{max-width:100%}.ask-ai-bubble-user,.ask-ai-saved-question,.ask-ai-bubble-assistant{align-self:stretch}.ask-ai-bubble-header{flex-wrap:wrap;gap:.1875rem}.ask-ai-page .ask-ai-delete-btn,.ask-ai-page .ask-ai-saved-delete-btn,.ask-ai-page .ask-ai-saved-rename-btn{padding:.5rem .75rem;font-size:.875rem;min-height:2.5rem}.ask-ai-page .ask-ai-save-btn{padding:.625rem 1.25rem;font-size:1rem;min-height:2.875rem}.ask-ai-empty{margin-top:.5rem;padding:.75rem}.ask-ai-composer{flex-direction:column;align-items:stretch;gap:.375rem;padding:.5rem .625rem;padding-bottom:calc(.5rem + env(safe-area-inset-bottom,0px))}.ask-ai-composer-actions{flex-direction:row;gap:.375rem}.ask-ai-input{min-height:3.5rem;max-height:8rem}.ask-ai-composer-actions .ask-ai-send{flex:1;min-width:0;min-height:2.75rem;font-size:.8125rem;padding:.5rem .625rem;white-space:normal;line-height:1.15}.auth-gate{padding:.75rem}.auth-card{max-width:none}}
