*,*: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:15px;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:.3125rem .5625rem;background:#0f172a;color:#f8fafc;flex-shrink:0}.app-header h1{margin:0;font-size:1.0625rem;font-weight:600}.app-header nav{display:flex;gap:.4375rem}.app-header a{color:#cbd5e1;font-size:.9375rem}.app-header a.active,.app-header a:hover{color:#fff;text-decoration:none}.app-body{display:flex;flex:1;min-height:0}.sidebar{width:341px;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 .4375rem .4375rem}.sidebar-loading-hint{margin:.4375rem .3125rem;font-size:.875rem;color:#64748b}.sidebar-error-banner{margin:.4375rem .3125rem;padding:.4375rem;background:#fef2f2;border:1px solid #fecaca;border-radius:.375rem;display:flex;flex-direction:column;gap:.3125rem}.sidebar-error-banner .error-text{margin:0}.place-search{position:relative;padding:.4375rem .4375rem .3125rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.place-search-label{display:block}.place-search-input{width:100%;padding:.3125rem .375rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#f8fafc;font-size:.9375rem}.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:.1875rem 0}.place-search-group+.place-search-group{border-top:1px solid #f1f5f9}.place-search-group-title{margin:0;padding:.0625rem .375rem;font-size:.75rem;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:.25rem .4375rem;border:none;background:transparent;text-align:left;cursor:pointer}.place-search-item:hover{background:#f1f5f9}.place-search-item-name{font-size:.9375rem;font-weight:500;color:#1e293b}.place-search-item-sub{font-size:.8125rem;color:#64748b;margin-top:.0625rem}.place-search-status,.place-search-hint{margin:0;padding:.25rem .375rem;font-size:.875rem;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:.5625rem}.sidebar-section h2{margin:0 0 .25rem;font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.layer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1875rem}.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:.1875rem;padding:.25rem .375rem}.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:1.75rem;padding:.0625rem;line-height:1}.layer-notes-preview{font-size:.875rem;color:#64748b;margin:0 0 .25rem;font-style:italic}.btn-text{border:none;background:none;cursor:pointer;font-size:.875rem;color:#64748b;padding:.0625rem .1875rem;flex-shrink:0}.btn-text.danger:hover{color:#dc2626}.btn-block{width:100%}.new-layer-section{margin-top:.3125rem}.new-layer-form{display:flex;flex-direction:column;gap:.3125rem;margin-top:.3125rem}.new-layer-form input{padding:.3125rem .375rem;border:1px solid #cbd5e1;border-radius:.25rem;font-size:.9375rem}.tool-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.25rem;padding:.5625rem .3125rem;font-size:.9375rem;line-height:1.2;min-height:3.00625rem}.tool-icon{font-size:1.1875rem;line-height:1}.onboarding{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;padding:.4375rem .5625rem;margin-bottom:.4375rem}.onboarding h2{margin:0 0 .1875rem;font-size:.9375rem;color:#1e40af}.onboarding ol{margin:0;padding-left:.9375rem;font-size:.875rem;color:#334155;line-height:1.3}.layer-name-btn{flex:1;text-align:left;border:none;background:none;cursor:pointer;font-weight:600;font-size:.9375rem;padding:.0625rem;min-width:0}.layer-details{border-top:1px solid #f1f5f9;padding:.25rem .375rem .375rem;background:#fafafa}.layer-subsection{margin-bottom:.375rem}.layer-subsection strong{display:block;font-size:.875rem;color:#475569;margin-bottom:.125rem}.item-list{list-style:none;margin:0;padding:0}.item-row{display:flex;align-items:center;justify-content:space-between;gap:.25rem;padding:.0625rem 0;font-size:.9375rem}.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:.0625rem .1875rem;margin:0 -.1875rem}.item-row.selected button:first-child{color:#2563eb;font-weight:600}.btn-icon{border:none;background:none;cursor:pointer;color:#64748b;font-size:1.875rem;line-height:1;padding:.0625rem .125rem}.btn-icon.danger:hover{color:#dc2626}.route-mode-fieldset{border:1px solid #e2e8f0;border-radius:.25rem;padding:.375rem;margin:0}.route-mode-fieldset legend{padding:0 .125rem;font-size:.875rem;font-weight:600;color:#475569}.route-mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.1875rem}.route-mode-option{display:flex;align-items:center;justify-content:center;padding:.3125rem .125rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#f8fafc;font-size:.875rem;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.sidebar-embedded-panel{margin-top:.125rem;padding:.1875rem .25rem}.route-mode-toolbar{display:flex;align-items:stretch;gap:.125rem}.route-mode-close{flex-shrink:0;align-self:stretch;display:flex;align-items:center;justify-content:center;min-width:2rem;padding:0 .125rem}.travel-route-form{gap:.125rem}.travel-route-form .route-mode-toolbar .route-mode-grid{flex:1;min-width:0;gap:.125rem}.travel-route-form .tool-hint{margin:0;line-height:1.25;font-size:.8125rem}.travel-route-form .error-text{margin:0;font-size:.875rem}.travel-route-form .form-actions{gap:.125rem;padding-top:0}.travel-route-footer{display:flex;align-items:center;gap:.3125rem;flex-wrap:wrap}.travel-route-save-hint{flex:1;min-width:6rem;margin:0}.travel-route-actions{margin-left:auto;flex-shrink:0}.travel-route-panel .empty-state{margin:0}.route-endpoint-field{position:relative;display:flex;flex-direction:column;gap:.125rem}.route-endpoint-search-row{display:flex;align-items:center;gap:.25rem}.route-endpoint-search-row .route-endpoint-label{flex-shrink:0;width:2.5rem}.route-endpoint-search-row .route-endpoint-search{flex:1;min-width:0}.route-endpoint-browse-row{display:flex;align-items:stretch;gap:.25rem}.route-endpoint-browse-row .route-endpoint-browse-btn{flex:1;min-width:0;width:auto}.route-endpoint-browse-row .route-endpoint-map-btn{flex-shrink:0;white-space:nowrap}.route-endpoint-header{display:flex;align-items:center;justify-content:space-between;gap:.1875rem}.route-endpoint-label{font-size:.875rem;font-weight:600;color:#475569}.route-endpoint-map-btn,.route-endpoint-browse-btn{padding:.3125rem .375rem;min-height:0}.route-endpoint-selected{display:flex;align-items:center;justify-content:space-between;gap:.1875rem;padding:.125rem .25rem;background:#fff;border:1px solid #bfdbfe;border-radius:.25rem}.route-endpoint-selected-name{font-size:.875rem;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:.3125rem .375rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#fff;font-size:.9375rem}.route-endpoint-results{background:#fff;border:1px solid #e2e8f0;border-radius:.375rem;box-shadow:0 4px 16px #0f172a1f;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.route-endpoint-results-overlay{z-index:2000}.sidebar.route-dropdown-open .sidebar-scroll,.sidebar.route-dropdown-open .travel-route-panel{overflow:hidden}.sidebar.route-dropdown-open .place-search{pointer-events:none}.route-stats{margin:0;font-size:.9375rem;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:.9375rem}.item-row-meta{font-size:.8125rem;color:#64748b;font-weight:500}.tool-hint{font-size:.875rem;color:#64748b;margin:0 0 .3125rem;line-height:1.3}.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem}.btn{padding:.375rem .4375rem;border:none;border-radius:.25rem;cursor:pointer;font-size:.875rem;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:.25rem .375rem;font-size:.875rem;flex-shrink:0}.draw-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;padding:.25rem .375rem;background:#fff;border-bottom:1px solid #e2e8f0;font-size:.875rem;flex-shrink:0}.form-grid select{padding:.3125rem .375rem;border:1px solid #cbd5e1;border-radius:.25rem;background:#fff;font-size:.9375rem}.field-label{display:block;font-size:.875rem;color:#475569;margin-bottom:.125rem}.type-badge{display:inline-block;font-size:.875rem;font-weight:600;color:#475569;background:#f1f5f9;padding:.0625rem .3125rem;border-radius:.1875rem;margin:0}.route-endpoints{margin:0;font-size:.9375rem;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:.0625rem;border-bottom:1px solid #e2e8f0;margin-bottom:.375rem}.sidebar-embedded-panel{margin-top:.375rem;padding:.4375rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem}.sidebar-embedded-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3125rem}.sidebar-embedded-panel h3{margin:0;font-size:.9375rem;color:#1e3a8a}.inspector-header{display:flex;align-items:center;justify-content:space-between;padding:.125rem .4375rem;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.inspector-header h3{margin:0;font-size:1rem;line-height:1.2}.inspector-header-compact{padding:2px .4375rem}.inspector-header-compact h3{line-height:1}.inspector-header-compact .btn-icon{font-size:1.625rem;padding:0}.inspector-body{padding:.4375rem;overflow-y:auto;flex:1}.color-picker{display:flex;flex-direction:column;gap:.25rem}.color-swatches{display:flex;flex-wrap:wrap;gap:.1875rem}.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:.25rem;font-size:.875rem;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:.3125rem}.form-grid label{display:flex;flex-direction:column;gap:.0625rem;font-size:.875rem;color:#475569}.form-grid input,.form-grid textarea{padding:.3125rem .375rem;border:1px solid #cbd5e1;border-radius:.25rem;font-size:.9375rem}.form-grid textarea{min-height:2.6875rem;resize:vertical}.form-grid textarea.location-notes{min-height:unset}.form-actions{display:flex;flex-wrap:wrap;gap:.25rem}.popup-content h3{margin:0 0 .0625rem;font-size:.9375rem}.popup-content p{margin:.0625rem 0;font-size:.875rem;color:#475569}.loading,.empty-state{color:#64748b;font-size:.9375rem}.empty-state.small{font-size:.875rem;margin:.0625rem 0}.center{padding:.9375rem}.error-text{color:#dc2626;font-size:.9375rem}.auth-gate{display:flex;align-items:center;justify-content:center;flex:1;padding:.9375rem}.auth-card{background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;padding:1.1875rem;width:100%;max-width:22rem;box-shadow:0 2px 16px #0f172a14}.auth-card h2{margin:0 0 .3125rem;font-size:1.125rem}.auth-card p{margin:0 0 .6875rem;color:#64748b;font-size:.9375rem}.auth-card form{display:flex;flex-direction:column;gap:.4375rem}.auth-card input{padding:.375rem .4375rem;border:1px solid #cbd5e1;border-radius:.25rem;width:100%;font-size:.9375rem}.password-field{position:relative;display:block}.password-field input{padding-right:3.4375rem}.password-toggle{position:absolute;top:50%;right:.375rem;transform:translateY(-50%);border:none;background:transparent;color:#2563eb;font-size:.875rem;font-weight:500;cursor:pointer;padding:.0625rem}.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:.6875rem .6875rem .4375rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.ask-ai-sidebar-header h3{margin:0;font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.ask-ai-sidebar-list{flex:1;min-height:0;overflow-y:auto;padding:.3125rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ask-ai-sidebar-empty{margin:.4375rem;font-size:.875rem;color:#94a3b8}.ask-ai-saved-item{display:flex;align-items:stretch;gap:.0625rem;margin-bottom:.125rem;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:.0625rem;padding:.375rem .4375rem;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:.875rem;font-weight:500;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.ask-ai-saved-date{font-size:.75rem;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:.3125rem;padding:.3125rem .4375rem}.ask-ai-label-editor-header{padding:0}.ask-ai-label-input{width:100%;padding:.375rem .4375rem;border:1px solid #cbd5e1;border-radius:.375rem;font-size:.9375rem;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:.125rem;flex-wrap:wrap}.ask-ai-label-save,.ask-ai-label-cancel{padding:.25rem .5625rem;min-height:1.9375rem;font-size:.875rem}.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:.125rem;flex-shrink:0}.ask-ai-saved-view{flex:1;min-height:0;overflow-y:auto;padding:.9375rem;display:flex;flex-direction:column;gap:.6875rem;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:.1875rem;flex-wrap:wrap;margin-bottom:.0625rem}.ask-ai-bubble-actions{display:flex;align-items:center;gap:.125rem;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:.4375rem .6875rem;min-height:2.3125rem;font-size:.9375rem;line-height:1.2}.ask-ai-page .ask-ai-save-btn{padding:.5rem 1.0625rem;min-height:2.5625rem;font-size:1rem;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:.875rem;font-weight:600;color:#16a34a;padding:.3125rem .0625rem}.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:.9375rem 0 .4375rem;line-height:1.3;color:#0f172a}.markdown-content h1{font-size:1.3125rem}.markdown-content h2{font-size:1.125rem}.markdown-content h3{font-size:1rem}.markdown-content p{margin:.4375rem 0}.markdown-content ul,.markdown-content ol{margin:.4375rem 0;padding-left:1.1875rem}.markdown-content li{margin:.1875rem 0}.markdown-content li>p{margin:.0625rem 0}.markdown-content strong{font-weight:600}.markdown-content hr{border:none;border-top:1px solid #e2e8f0;margin:.6875rem 0}.markdown-content a{color:#2563eb}.markdown-content code{font-family:Consolas,Courier New,monospace;font-size:.875em;background:#f1f5f9;padding:.0625rem .1875rem;border-radius:.1875rem}.markdown-content pre{margin:.4375rem 0;padding:.5625rem;background:#0f172a;color:#f8fafc;border-radius:.375rem;overflow-x:auto}.markdown-content pre code{background:none;padding:0;color:inherit}.markdown-content blockquote{margin:.4375rem 0;padding-left:.6875rem;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:.5625rem .6875rem;border-radius:.5rem;font-size:1rem;line-height:1.4;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:.3125rem;padding:.4375rem .6875rem;border-bottom:1px solid #e2e8f0;background:#fff;flex-shrink:0}.ask-ai-header h2{margin:0;font-size:1.1875rem;font-weight:600;color:#0f172a}.ask-ai-subtitle{margin:.125rem 0 0;font-size:.875rem;color:#64748b}.ask-ai-clear{flex-shrink:0}.ask-ai-messages{flex:1;min-height:0;overflow-y:auto;padding:.9375rem;display:flex;flex-direction:column;gap:.6875rem;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ask-ai-empty{max-width:40rem;margin:.9375rem auto 0;padding:.9375rem;background:#fff;border:1px solid #e2e8f0;border-radius:.5rem;color:#475569}.ask-ai-empty p{margin:0 0 .4375rem}.ask-ai-empty ul{margin:0;padding-left:1.0625rem}.ask-ai-empty li{margin-bottom:.1875rem}.ask-ai-bubble{max-width:44rem;display:flex;flex-direction:column;gap:.125rem}.ask-ai-bubble-user{align-self:flex-end}.ask-ai-bubble-assistant{align-self:flex-start}.ask-ai-bubble-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.ask-ai-bubble-content{padding:.5625rem .6875rem;border-radius:.5rem;font-size:1rem;line-height:1.4;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:.875rem;color:#64748b;font-style:italic}.ask-ai-progress{padding:.5625rem .6875rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;margin-bottom:.3125rem}.ask-ai-progress-header{display:flex;align-items:center;justify-content:space-between;gap:.4375rem;margin-bottom:.4375rem}.ask-ai-progress-title{font-size:.875rem;font-weight:600;color:#334155}.ask-ai-progress-elapsed{font-size:.8125rem;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:.25rem}.ask-ai-progress-step{display:flex;align-items:flex-start;gap:.375rem;font-size:.875rem;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.3}.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.3}.ask-ai-progress-hint{margin:.4375rem 0 0;font-size:.8125rem;color:#94a3b8}.ask-ai-progress-preamble{margin:.4375rem 0 0;padding:.375rem .4375rem;font-size:.8125rem;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-stream-cursor{display:inline-block;width:.5rem;height:1rem;margin-left:.0625rem;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:.3125rem;align-items:flex-end;padding:.4375rem .6875rem;padding-bottom:calc(.4375rem + 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:.4375rem .5625rem;border:1px solid #cbd5e1;border-radius:.375rem;background:#fff;font-size:1.0625rem;resize:vertical;min-height:4.4375rem;max-height:12rem}.ask-ai-send{flex-shrink:0;min-width:5.5rem}.ask-ai-composer-actions{display:flex;flex-direction:column;gap:.25rem;flex-shrink:0}@media(max-width:768px){.app-header{flex-wrap:wrap;align-items:center;gap:.125rem .5625rem;padding:.1875rem .75rem;min-height:1.5625rem}.app-header h1{font-size:1.375rem;flex:1;min-width:0;line-height:1.2}.app-header nav{gap:.375rem;flex-wrap:wrap;justify-content:flex-end;align-items:center}.app-header a{font-size:1.1875rem;font-weight:500;padding:.1875rem .5625rem;min-height:1.34375rem;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:.5rem .6875rem;border:none;background:none;font-size:.9375rem;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:.5625rem .6875rem;gap:.4375rem}.ask-ai-header h2{font-size:1.0625rem}.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:.6875rem}.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:.125rem}.ask-ai-page .ask-ai-delete-btn,.ask-ai-page .ask-ai-saved-delete-btn,.ask-ai-page .ask-ai-saved-rename-btn{padding:.4375rem .6875rem;font-size:.9375rem;min-height:2.4375rem}.ask-ai-page .ask-ai-save-btn{padding:.5625rem 1.1875rem;font-size:1.0625rem;min-height:2.8125rem}.ask-ai-empty{margin-top:.4375rem;padding:.6875rem}.ask-ai-composer{flex-direction:column;align-items:stretch;gap:.3125rem;padding:.4375rem .5625rem;padding-bottom:calc(.4375rem + env(safe-area-inset-bottom,0px))}.ask-ai-composer-actions{flex-direction:row;gap:.3125rem}.ask-ai-input{min-height:3.4375rem;max-height:8rem}.ask-ai-composer-actions .ask-ai-send{flex:1;min-width:0;width:auto;min-height:2.6875rem;font-size:.875rem;padding:.4375rem .5625rem;white-space:normal;line-height:1.15}.auth-gate{padding:.6875rem}.auth-card{max-width:none}}
