:root{--bg: #f4f8f7;--bg-welcome: linear-gradient(165deg, #e8f5f3 0%, #f4f8f7 42%, #eef6f4 100%);--surface: #ffffff;--primary: #0d9488;--primary-dark: #0f766e;--text: #134e4a;--text-muted: #64748b;--warning: #ca8a04;--danger: #dc2626;--good: #16a34a;--border: #cfe8e4;--border-card: #e2e8f0;--shadow-card: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 16px rgba(15, 23, 42, .06);--shadow-tab: 0 -4px 20px rgba(15, 23, 42, .06);--font-display: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--focus-ring: 0 0 0 3px rgba(13, 148, 136, .35);font-family:var(--font-body);line-height:1.5;color:var(--text);background-color:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg)}#root{min-height:100dvh}h1,h2,.welcome-title,.page-title,.section-heading,.step-title,.summary-text{font-family:var(--font-display)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page{padding:20px;padding-bottom:calc(24px + env(safe-area-inset-bottom));max-width:720px;margin:0 auto}.page.scroll{padding-bottom:calc(28px + env(safe-area-inset-bottom))}.page-enter{animation:page-enter .22s ease-out}@media(prefers-reduced-motion:reduce){.page-enter{animation:none}}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dashboard-cards .dashboard-kpi-card{animation:card-enter .24s ease-out both}@media(prefers-reduced-motion:reduce){.dashboard-cards .dashboard-kpi-card{animation:none}}.dashboard-cards .dashboard-kpi-card:nth-child(1){animation-delay:.02s}.dashboard-cards .dashboard-kpi-card:nth-child(2){animation-delay:.05s}.dashboard-cards .dashboard-kpi-card:nth-child(3){animation-delay:.08s}.dashboard-cards .dashboard-kpi-card:nth-child(4){animation-delay:.11s}.dashboard-cards .dashboard-kpi-card:nth-child(5){animation-delay:.14s}.dashboard-cards .dashboard-kpi-card:nth-child(6){animation-delay:.17s}.dashboard-cards .dashboard-kpi-card:nth-child(7){animation-delay:.2s}.dashboard-cards .dashboard-kpi-card:nth-child(8){animation-delay:.23s}.dashboard-kpi-card{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.dashboard-kpi-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-card)}.dashboard-kpi-card:focus-visible{outline:none;box-shadow:var(--focus-ring),var(--shadow-card)}.dashboard-kpi-tap-hint{margin-top:10px;margin-bottom:0}.weather-summary-card .weather-card-title{margin-bottom:0}.weather-summary-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.weather-summary-today-temp{font-size:1.75rem;font-weight:700;font-family:var(--font-display);line-height:1.1}.weather-air-temp--cool{color:#1d4ed8}.weather-air-temp--mild{color:#0f766e}.weather-air-temp--warm{color:#c2410c}.weather-air-temp--hot{color:#b91c1c}.weather-summary-today-line{margin-top:4px;margin-bottom:8px}.weather-summary-metrics{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:10px}.weather-summary-rain{font-size:.875rem;font-weight:600}.weather-summary-rain-label{font-weight:600;color:var(--text-muted)}.weather-summary-hint{margin:0 0 10px;font-size:.9rem}.weather-summary-link{display:inline-block;margin-top:4px}.weather-summary-loading{display:flex;align-items:center;gap:12px}.metric-detail-back{display:inline-block;margin-bottom:8px}.metric-detail-legend{margin-top:4px}.metric-detail-chart-card{margin-top:12px}.maintenance-activity-teaser{margin-top:8px}.maintenance-activity-teaser .btn{margin-top:12px}@keyframes card-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.welcome{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding-bottom:24px;background:var(--bg-welcome)}.welcome-inner{width:100%;max-width:420px;margin:0 auto}.welcome-title{font-size:2rem;font-weight:700;color:var(--primary-dark);letter-spacing:-.02em;margin:0 0 10px;line-height:1.15}.welcome-sub{font-size:.9375rem;line-height:1.55;color:var(--text-muted);margin:0 0 14px}.welcome-card{background:var(--surface);border-radius:16px;padding:24px;border:1px solid var(--border-card);box-shadow:var(--shadow-card)}.welcome-card .btn-primary{width:100%}.sign-in-error-block{margin-top:20px;padding:14px 16px;border-radius:12px;background:#fef2f2;border:1px solid #fecaca}.sign-in-error-hint{margin-top:8px!important;font-size:.8125rem!important}.page-title{font-size:1.375rem;font-weight:700;color:var(--primary-dark);margin:0 0 8px;letter-spacing:-.02em}.kicker{color:var(--text-muted);font-size:.8125rem;margin:0 0 4px}.text-body{margin:0;line-height:1.5}.text-muted{color:var(--text-muted);margin:0}.text-small-muted{font-size:.8125rem;color:var(--text-muted);margin:4px 0 0}.text-warning{color:var(--warning);font-size:.9375rem;line-height:1.5}.text-danger{color:var(--danger);font-size:.875rem;line-height:1.4;margin:0 0 16px}.center-stack{display:flex;flex-direction:column;align-items:center;margin:24px 0;gap:14px}.center-flex{min-height:100dvh;display:flex;align-items:center;justify-content:center}.spinner{width:42px;height:42px;border:3px solid var(--border);border-top-color:var(--primary);border-right-color:#0d948859;border-radius:50%;animation:spin .75s linear infinite;box-shadow:0 0 0 1px #0d948814 inset}.spinner-sm{width:22px;height:22px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.btn{font:inherit;font-family:var(--font-display);cursor:pointer;border:none;border-radius:12px;padding:14px 24px;min-height:44px;font-weight:600;font-size:1rem;transition:background .15s ease,color .15s ease,transform .12s ease,box-shadow .15s ease}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 4px 14px #0d948859}.btn-secondary{background:transparent;color:var(--primary-dark);border:2px solid var(--primary);width:100%;margin-bottom:20px}.btn-secondary:hover:not(:disabled){background:#0d94880f}.btn-secondary-missing-hint{box-shadow:0 0 0 2px #0d948833}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-block{display:block;width:100%;margin-bottom:10px}.btn-mt{margin-top:28px}.btn-ghost{background:transparent;color:var(--danger);margin-top:20px;width:100%}.btn-ghost:hover:not(:disabled){background:#dc26260f}.card{background:var(--surface);border-radius:14px;padding:16px;margin-bottom:12px;border:1px solid var(--border-card);box-shadow:var(--shadow-card)}.card-status-good{border-left:4px solid var(--good);padding-left:13px}.card-status-warn{border-left:4px solid var(--warning);padding-left:13px}.card-status-neutral{border-left:4px solid #94a3b8;padding-left:13px}.card-compact{padding:14px}.card-summary{background:linear-gradient(135deg,#ecfdf5,#f0fdf9);border-color:#bbf7d0}.card-title{font-weight:600;margin:0}.row-between{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.param-label{font-weight:600}.status-pill{flex-shrink:0;font-size:.6875rem;font-weight:700;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;border-radius:999px;line-height:1}.status-pill-good{background:#dcfce7;color:#166534}.status-pill-low,.status-pill-high{background:#fef9c3;color:#854d0e}.status-pill-unknown{background:#f1f5f9;color:#475569}.value-large{font-size:1.5rem;font-weight:700;font-family:var(--font-display);color:var(--primary-dark);margin:8px 0 0}.alert{margin-top:8px;padding:14px;border-radius:12px}.alert-ok{background:#dcfce7}.alert-warn{background:#fef9c3}.alert-text{margin:0;font-weight:500}.link-inline{display:inline-block;margin-top:20px;color:var(--primary);font-weight:600;text-decoration:none;border-radius:6px;transition:color .15s ease}.link-inline:hover{color:var(--primary-dark);text-decoration:underline}.link-inline:focus-visible{outline:none;box-shadow:var(--focus-ring)}.strip-hint{margin-top:24px;font-size:.75rem;color:var(--text-muted)}.field-label{display:block;font-weight:600;font-family:var(--font-display);margin:12px 0 6px}.input{width:100%;background:var(--surface);border:1px solid var(--border-card);border-radius:10px;padding:12px 14px;font-size:1.0625rem;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.input:hover:not(:focus){border-color:#cbd5e1}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0d948833}.input::placeholder{color:#94a3b8}.input-with-suffix{display:flex;align-items:stretch;border-radius:10px;border:1px solid var(--border-card);background:var(--surface);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.input-with-suffix:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #0d948833}.input-with-suffix .input{border:none;border-radius:0;box-shadow:none;flex:1;min-width:0}.input-with-suffix .input:focus{box-shadow:none}.input-suffix{display:flex;align-items:center;padding:0 14px;font-size:.9375rem;font-weight:600;color:var(--text-muted);background:#f8fafc;border-left:1px solid var(--border-card)}.settings-section{margin-top:24px;padding:20px;background:var(--surface);border-radius:14px;border:1px solid var(--border-card);box-shadow:var(--shadow-card)}.settings-section:first-of-type{margin-top:20px}.settings-section-title{font-family:var(--font-display);font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 4px}.settings-section-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.settings-section-head .settings-section-title{margin:0;flex:1;min-width:0}.settings-section-action{flex-shrink:0}.settings-setup-overview{margin-top:0}.settings-setup-summary{list-style:none;margin:0;padding:0}.settings-setup-summary li{margin:0 0 10px;font-size:.9375rem;line-height:1.45;color:var(--text)}.settings-setup-summary li:last-child{margin-bottom:0}.settings-language-active-summary{margin:10px 0 14px;font-weight:600}.settings-subsection-title{font-size:1rem;font-weight:700;color:var(--primary-dark);margin:20px 0 8px}.settings-subsection-title:first-child{margin-top:8px}.settings-volume-label{margin-top:20px}.settings-section .field-label:first-of-type{margin-top:0}.settings-actions{margin-top:8px}.settings-footer{margin-top:32px;padding-top:24px;border-top:1px solid var(--border-card)}.test-page .btn-secondary{margin-top:0}.section-heading{margin:28px 0 12px;font-size:1.125rem;font-weight:700;color:var(--primary-dark)}.summary-text{font-weight:600;color:var(--primary-dark);margin:0}.step-title{font-size:1.0625rem;font-weight:700;margin:0 0 8px}.dose-text{margin:10px 0 0;font-weight:600;color:var(--primary-dark)}.guidance-flow-context{margin-bottom:4px}.guidance-flow-context p:last-child{margin-bottom:0}.guidance-dose-breakdown{margin:12px 0 0;border-radius:12px;border:1px solid var(--border-card);background:var(--surface-muted, #f8fafc);overflow:hidden}.guidance-dose-breakdown-summary{cursor:pointer;padding:12px 14px;font-weight:600;font-size:.9rem;color:var(--primary-dark);list-style:none}.guidance-dose-breakdown-summary::-webkit-details-marker{display:none}.guidance-dose-breakdown-summary:before{content:"▸ ";opacity:.7}.guidance-dose-breakdown[open] .guidance-dose-breakdown-summary:before{content:"▾ "}.guidance-dose-breakdown-body{padding:0 14px 14px;border-top:1px dashed var(--border-card)}.guidance-dose-breakdown-label{margin:12px 0 6px;font-weight:600}.guidance-dose-breakdown-body .guidance-dose-breakdown-label:first-child{margin-top:10px}.guidance-formula-pattern{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8125rem;line-height:1.5;color:var(--text);word-break:break-word}.guidance-dose-terms{margin:0}.guidance-dose-term-row{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:8px 0;border-bottom:1px solid var(--border-card);font-size:.875rem}.guidance-dose-term-row:last-child{border-bottom:none}.guidance-dose-term-row dt{margin:0;font-weight:500;color:var(--text-muted)}.guidance-dose-term-row dd{margin:0;font-variant-numeric:tabular-nums;text-align:right;color:var(--text)}.guidance-dose-result{margin:0 0 4px;font-size:.9375rem}.bullet{margin:6px 0 0;line-height:1.4}.safety-heading{margin:16px 0 8px;font-weight:700;color:var(--danger)}.note-box{margin-top:20px;padding:16px;background:#f1f5f9;border-radius:12px;border:1px solid var(--border-card)}.settings-about-link{margin-top:8px}.settings-firebase-note{margin-top:20px;padding:12px 14px;background:#f1f5f9;border-radius:12px}.btn-sm{padding:10px 16px;font-size:.875rem;width:auto;align-self:flex-start;min-height:44px}.sync-banner{flex-shrink:0;display:flex;flex-direction:column;gap:10px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));background:#fef9c3;border-bottom:1px solid #fde047;font-size:.875rem;color:var(--text)}.sync-banner p{margin:0;line-height:1.4}.app-shell{min-height:100dvh;display:flex;flex-direction:column}.app-header{flex-shrink:0;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top));background:#fffffff0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-card);box-shadow:0 1px #0f172a0a}.app-menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-6px -6px -6px -10px;padding:0;border:none;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;transition:background .15s ease}.app-menu-btn:hover{background:#0d948814}.app-menu-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.app-header-title-block{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.app-header-page-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--primary)}.app-header-page-icon svg{width:26px;height:26px}.app-header-title{margin:0;font-size:1.125rem;font-weight:700;font-family:var(--font-display);color:var(--text);line-height:1.2;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-drawer-layer{position:fixed;inset:0;z-index:40;pointer-events:none}.nav-drawer-layer>*{pointer-events:auto}.nav-drawer-backdrop{position:absolute;inset:0;border:none;margin:0;padding:0;background:#0f172a66;cursor:pointer;animation:backdrop-in .2s ease-out}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.nav-drawer-backdrop{animation:none}}.nav-drawer{position:absolute;top:0;left:0;bottom:0;width:min(300px,88vw);background:var(--surface);box-shadow:8px 0 32px #0f172a1f;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);animation:drawer-in .22s ease-out}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.nav-drawer{animation:none}}.nav-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 12px 14px 14px;border-bottom:1px solid var(--border-card)}.nav-drawer-brand-row{display:flex;align-items:center;gap:12px;min-width:0;flex:1;padding-right:4px}.nav-drawer-logo{flex-shrink:0;width:44px;height:44px;border-radius:12px;box-shadow:0 1px 3px #0f172a1f}.nav-drawer-brand-text{display:flex;flex-direction:column;gap:2px;min-width:0}.nav-drawer-app-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem;line-height:1.25;letter-spacing:-.02em;color:var(--text)}.nav-drawer-menu-caption{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.nav-drawer-close{width:44px;height:44px;border:none;border-radius:10px;background:transparent;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer}.nav-drawer-close:hover{background:#0f172a0f;color:var(--text)}.nav-drawer-links{display:flex;flex-direction:column;padding:8px 10px 16px;gap:2px;overflow-y:auto}.nav-drawer-link{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;font-size:.9375rem;font-weight:600;font-family:var(--font-display);color:#64748b;text-decoration:none;transition:color .15s ease,background .15s ease}.nav-drawer-icon{display:flex;color:currentColor;flex-shrink:0}.nav-drawer-link:hover{color:var(--primary);background:#0d94880f}.nav-drawer-link:focus-visible{outline:none;box-shadow:var(--focus-ring)}.nav-drawer-link-active{color:var(--primary-dark);background:#ecfdf5}.nav-drawer-link-active .nav-drawer-icon{color:var(--primary)}.app-main{flex:1;overflow-y:auto;min-height:0}.maintenance-highlight{margin-bottom:20px}.maintenance-highlight .section-heading{margin-top:0}.vacation-advice-list{margin:12px 0 0;padding-left:1.25rem}.vacation-advice-list li{margin:.35em 0}.vacation-clear-row{margin-top:12px}.water-balance-rows{list-style:none;margin:12px 0 0;padding:0}.water-balance-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border-card);font-size:.875rem}.water-balance-row:last-child{border-bottom:none}.water-balance-date{font-weight:600;color:var(--text)}.water-balance-mm,.water-balance-L{font-variant-numeric:tabular-nums;white-space:nowrap}.water-balance-pct-note{margin:10px 0 0}.water-balance-volet-note{margin:6px 0 0}.water-balance-disclaimer{margin:10px 0 0}.settings-pool-cover-check{margin-top:16px}.water-balance-log-btn{margin-top:14px}.water-add-estimate{margin:12px 0}.water-add-pct{margin:8px 0 0}.maintenance-water-detail{margin-top:8px}.maintenance-guidance{margin-top:12px;line-height:1.45}.maintenance-log-when-card{margin-bottom:16px;overflow:hidden}.maintenance-log-when-card .input{min-width:0;-webkit-appearance:none;appearance:none;text-align:center}.maintenance-log-when-hint{margin-top:8px;margin-bottom:0}.maintenance-log-row-head{display:flex;flex-direction:column;align-items:stretch;gap:8px;margin-bottom:4px}.maintenance-log-row-title{margin:0;line-height:1.35}.maintenance-log-delete.btn-ghost{align-self:flex-end;width:auto;max-width:100%;margin-top:0;padding:6px 12px;font-size:.875rem}.pump-temp-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.pump-temp-row .input{width:7rem;max-width:100%}.checkbox-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px;cursor:pointer}.checkbox-row input{margin-top:4px;flex-shrink:0}.checkbox-title{font-weight:600;display:block;margin-bottom:4px}.pump-plan-empty{margin:12px 0 0}.pump-plan{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-card)}.pump-plan-total{margin:0 0 8px;font-size:1.0625rem}.pump-plan-list{margin:0 0 12px;padding-left:1.25rem}.pump-plan-list li{margin:4px 0}.pump-schedule-heading{margin:16px 0 8px!important;font-size:1rem!important}.pump-schedule-block{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-card)}.pump-schedule-subheading{margin-top:0}.pump-schedule-saved{margin-top:14px;margin-bottom:8px}.pump-schedule-saved-heading{margin:0 0 6px;font-size:.9375rem;font-weight:700}.pump-schedule-saved-empty{margin:0}.pump-schedule-day-bar-caption{margin:0 0 6px}.pump-day-bar-wrap{margin:0 0 12px}.pump-day-bar-wrap--dragging{cursor:grabbing}.pump-day-bar{position:relative;height:30px;border-radius:8px;overflow:visible}.pump-day-bar-track{position:absolute;inset:0;border-radius:8px;background:var(--border-card);opacity:.85}.pump-day-bar-on{position:absolute;top:2px;bottom:2px;background:var(--primary);opacity:.88;border-radius:5px;min-width:3px;box-sizing:border-box}.pump-day-bar--interactive .pump-day-bar-on--drag{touch-action:none;cursor:grab;top:0;bottom:0;opacity:.92}.pump-day-bar--interactive .pump-day-bar-on--drag:hover{filter:brightness(1.06)}.pump-day-bar--interactive .pump-day-bar-on--drag:active{cursor:grabbing}.pump-day-bar-ticks{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--text-muted, #64748b);margin-top:6px;padding:0 1px}.pump-schedule-saved-list{list-style:none;margin:0 0 10px;padding:0}.pump-schedule-saved-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:8px 0;border-bottom:1px solid var(--border-card);font-size:.9375rem}.pump-schedule-saved-line:last-child{border-bottom:none}.pump-schedule-saved-line-no{color:var(--text-muted, #64748b);font-variant-numeric:tabular-nums;min-width:1.25rem}.pump-schedule-saved-line-range{font-weight:600;font-variant-numeric:tabular-nums}.pump-schedule-saved-line-meta{margin-left:auto;color:var(--text-muted, #64748b);font-size:.875rem;font-variant-numeric:tabular-nums}.pump-schedule-total{margin:0;font-weight:600;font-size:.9375rem;font-variant-numeric:tabular-nums}.pump-schedule-total--saved{padding-top:4px;border-top:1px dashed var(--border-card);margin-top:4px}.pump-schedule-edit{margin-top:18px;padding-top:16px;border-top:1px solid var(--border-card)}.pump-schedule-edit--compact{margin-top:14px;padding-top:12px}.pump-schedule-bar-drag-hint{margin:0 0 8px}.pump-schedule-window-rows{list-style:none;margin:8px 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.pump-schedule-window-row{border:1px solid var(--border-card);border-radius:10px;background:var(--surface-elevated, rgba(255, 255, 255, .04));padding:10px 12px}.pump-schedule-window-row-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.pump-schedule-window-row-text{min-width:0;flex:1}.pump-schedule-window-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2px}.pump-schedule-readout--compact{font-size:1.0625rem;margin:4px 0 2px}.pump-schedule-readout-sub--compact{margin:0}.pump-schedule-edit-btn{flex-shrink:0;align-self:flex-start}.pump-schedule-window-expanded{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-card)}.pump-schedule-remove--inline,.dashboard-empty-tests{margin-top:12px}.pump-schedule-adjust-label{margin:0 0 4px;font-size:.9375rem;font-weight:700}.pump-schedule-group-label{margin-top:4px}.pump-schedule-window-cards{list-style:none;margin:12px 0 10px;padding:0;display:flex;flex-direction:column;gap:14px}.pump-schedule-window-card{padding:14px 14px 12px;border-radius:12px;border:1px solid var(--border-card);background:var(--surface-elevated, rgba(255, 255, 255, .04))}.pump-schedule-window-card-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px}.pump-schedule-window-number{font-size:.8125rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted, #64748b)}.pump-schedule-badge{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary-dark, #0f766e)}.pump-schedule-window-card .pump-schedule-remove{margin-left:auto}.pump-schedule-readout{margin:0 0 4px;font-size:1.375rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em}.pump-schedule-readout-sep{font-weight:500;opacity:.7}.pump-schedule-readout-sub{margin:0 0 12px}.pump-schedule-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}.pump-schedule-control{display:flex;flex-direction:column;gap:6px;min-width:0}.pump-schedule-control-label{font-size:.75rem;font-weight:600;color:var(--text-muted, #64748b)}.pump-schedule-control-arrow{padding-bottom:10px;color:var(--text-muted, #64748b);font-size:1.125rem}.pump-schedule-time{width:7rem;max-width:100%}.pump-schedule-remove{flex-shrink:0}.pump-schedule-add{margin-bottom:8px}.pump-schedule-overnight{margin:12px 0}.pump-schedule-footer{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border-card)}@media(min-width:480px){.pump-schedule-footer{flex-direction:row;align-items:center;justify-content:space-between}.pump-schedule-save{width:auto;min-width:10rem}}.pump-schedule-footer-meta{display:flex;flex-direction:column;gap:4px}.pump-schedule-unsaved{font-size:.875rem;font-weight:600;color:#b45309}.pump-schedule-in-sync{font-size:.875rem;color:var(--text-muted, #64748b)}.pump-schedule-total--draft{font-weight:600}.pump-schedule-save:disabled{opacity:.45;cursor:not-allowed}.pump-schedule-save{margin-top:0}.pump-schedule-avg{margin-top:12px}.pump-schedule-insight{margin-top:16px}.pump-schedule-insight-title{margin-top:0}.pump-schedule-insight-list{margin:0;padding-left:1.25rem}.pump-schedule-insight-list li{margin:6px 0}.pump-schedule-insight-details.pump-schedule-insight{padding:0;overflow:hidden}.pump-schedule-insight-summary{list-style:none;cursor:pointer;padding:12px 14px;margin:0;font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text)}.pump-schedule-insight-summary::-webkit-details-marker{display:none}.pump-schedule-insight-details[open] .pump-schedule-insight-summary{border-bottom:1px solid var(--border-card)}.pump-schedule-insight-details .pump-schedule-insight-list{padding:12px 14px 14px}.pump-schedule-insight-details .text-small-muted{padding:0 14px 14px;margin:0}.pump-plan-notes-details{margin-top:12px;padding:0;border-radius:10px;border:1px solid var(--border-card);background:var(--surface)}.pump-plan-notes-summary{list-style:none;cursor:pointer;padding:10px 12px;font-size:.8125rem;font-weight:600;color:var(--primary-dark)}.pump-plan-notes-summary::-webkit-details-marker{display:none}.pump-plan-notes-details[open] .pump-cost-note{margin-top:0;padding:0 12px}.pump-plan-notes-details .pump-disclaimer,.pump-plan-notes-details .pump-safety-note{padding:0 12px 12px;margin:8px 0 0}.maintenance-pump-care-details{padding:0;overflow:hidden}.maintenance-pump-care-summary{list-style:none;cursor:pointer;padding:14px 16px}.maintenance-pump-care-summary::-webkit-details-marker{display:none}.maintenance-pump-care-details .maintenance-pump-care-body{margin:0;padding:0 16px 16px}.weather-uv-reference{margin:10px 0 12px;padding:0;border-radius:10px;border:1px solid var(--border-card);background:var(--surface)}.weather-uv-reference-summary{list-style:none;cursor:pointer;padding:8px 10px;font-size:.75rem;font-weight:600;color:var(--primary-dark)}.weather-uv-reference-summary::-webkit-details-marker{display:none}.weather-uv-reference[open] .weather-uv-legend{padding:0 10px 10px}.weather-card-intro-help{margin-top:4px;margin-bottom:10px}.weather-card-foot-help{margin-top:14px}details.guidance-extra-context{margin-top:8px;margin-bottom:16px;border:1px solid var(--border-card);border-radius:12px;padding:12px 14px 16px;background:var(--surface)}details.guidance-extra-context summary{cursor:pointer;font-weight:600;font-size:.9375rem;color:var(--primary-dark)}.guidance-extra-context-body{margin-top:14px;padding-top:14px;border-top:1px solid var(--border-card)}.guidance-extra-context-body>*+*{margin-top:16px}.guidance-circulation{margin-bottom:0}.guidance-circulation-list{margin:0;padding-left:1.25rem}.guidance-circulation-list li{margin:6px 0}.guidance-log-summary-link{margin-top:12px;margin-bottom:0}.guidance-log-error{margin-top:10px;color:var(--danger)}.guidance-step-actions{margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.guidance-step-logged-msg{color:var(--good)}.guidance-step-dedupe-hint{max-width:260px}.chemical-modal-circulation-tip{margin-top:12px}.pump-cost-note{margin-top:8px}.pump-disclaimer{margin-top:12px;font-style:italic}.weather-card{margin-bottom:20px}.weather-card-title{margin:0 0 6px;font-size:1.0625rem;font-weight:700;color:var(--primary-dark)}.weather-loading{padding:12px 0}.weather-uv-scale-title{margin:0 0 6px}.weather-uv-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:0;list-style:none}.weather-uv-legend-dot{width:14px;height:14px;border-radius:999px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0f172a1f}.weather-uv--low{background:linear-gradient(145deg,#4ade80,#22c55e)}.weather-uv--moderate{background:linear-gradient(145deg,#facc15,#eab308)}.weather-uv--high{background:linear-gradient(145deg,#fb923c,#ea580c)}.weather-uv--veryHigh{background:linear-gradient(145deg,#f87171,#dc2626)}.weather-uv--extreme{background:linear-gradient(145deg,#a78bfa,#7c3aed)}.weather-uv--none{background:#e2e8f0}.weather-uv-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:.8125rem;font-weight:700;font-variant-numeric:tabular-nums;border:1px solid transparent;max-width:100%}.weather-uv-pill--sm{padding:3px 8px;font-size:.75rem}.weather-uv-pill .weather-uv-pill-label{font-weight:600;opacity:.92}.weather-uv-pill.weather-uv--low{background:#dcfce7;color:#14532d;border-color:#86efac}.weather-uv-pill.weather-uv--moderate{background:#fef9c3;color:#713f12;border-color:#fde047}.weather-uv-pill.weather-uv--high{background:#ffedd5;color:#7c2d12;border-color:#fdba74}.weather-uv-pill.weather-uv--veryHigh{background:#fee2e2;color:#7f1d1d;border-color:#fca5a5}.weather-uv-pill.weather-uv--extreme{background:#ede9fe;color:#4c1d95;border-color:#c4b5fd}.weather-uv-pill.weather-uv--none{background:#f1f5f9;color:#64748b;border-color:#cbd5e1}.weather-precip--none{color:#64748b}.weather-precip--trace{color:#0369a1}.weather-precip--light{color:#0284c7}.weather-precip--moderate{color:#0369a1;font-weight:700}.weather-precip--heavy{color:#0c4a6e;font-weight:700}.weather-precip-track{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.weather-precip-track--none{background:#f1f5f9}.weather-precip-track--trace{background:#e0f2fe}.weather-precip-track--light{background:#bae6fd}.weather-precip-track--moderate{background:#7dd3fc}.weather-precip-track--heavy{background:#38bdf8}.weather-precip-fill{height:100%;border-radius:999px;min-width:0;transition:width .2s ease}.weather-precip-fill.weather-precip--none{background:transparent}.weather-precip-fill.weather-precip--trace{background:linear-gradient(90deg,#7dd3fc,#38bdf8)}.weather-precip-fill.weather-precip--light{background:linear-gradient(90deg,#38bdf8,#0284c7)}.weather-precip-fill.weather-precip--moderate{background:linear-gradient(90deg,#0284c7,#0369a1)}.weather-precip-fill.weather-precip--heavy{background:linear-gradient(90deg,#0369a1,#0c4a6e)}.weather-daily-strip{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 16px}.weather-day-pill{flex:1 1 100px;min-width:88px;padding:10px 12px;background:#f8fafc;border:1px solid var(--border-card);border-radius:10px;display:flex;flex-direction:column;gap:6px}.weather-day-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.weather-day-temp{font-size:1.25rem;font-weight:700}.weather-day-temp.weather-air-temp--cool{color:#1d4ed8}.weather-day-temp.weather-air-temp--mild{color:#0f766e}.weather-day-temp.weather-air-temp--warm{color:#c2410c}.weather-day-temp.weather-air-temp--hot{color:#b91c1c}.weather-day-metrics{display:flex;flex-direction:column;gap:8px;margin-top:2px}.weather-precip-block{display:flex;flex-direction:column;gap:4px}.weather-precip-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:.75rem}.weather-precip-heading{font-weight:600;color:var(--text-muted)}.weather-precip-mm{font-weight:700;font-variant-numeric:tabular-nums}.weather-day-meta{font-size:.75rem;color:var(--text-muted)}.weather-day-pool-temp{font-size:.8rem;font-weight:600;color:var(--primary)}.weather-pool-temp-forecast-note{margin:-8px 0 12px}.weather-hints{margin:0 0 12px;padding-left:1.25rem}.weather-hints li{margin:8px 0;line-height:1.45}.weather-no-hints{margin:8px 0 12px}.weather-attribution{margin:0}.weather-attribution a{color:var(--text-muted)}.weather-coord-input{width:100%;max-width:20rem;margin-bottom:12px}.weather-settings-actions .btn-mt{margin-top:10px}.test-water-temp-hint{margin:-6px 0 8px}.test-section{margin-top:36px;padding-top:8px;border-top:1px solid var(--border-card)}.test-section-intro{margin:0 0 14px}.reading-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.reading-history-card{margin-bottom:0}.reading-history-meta{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.reading-history-meta-end{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;max-width:100%}.reading-history-delete.btn-ghost{width:auto;min-height:44px;padding:10px 12px;font-size:.875rem;color:var(--warning);font-weight:600}.reading-history-delete.btn-ghost:hover:not(:disabled){color:#b45309;background:#f59e0b1a}.reading-history-time{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--text)}.reading-history-time-unknown{color:var(--text-muted);font-weight:600}.reading-source-pill{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:5px 10px;border-radius:999px;background:#f1f5f9;color:var(--text-muted)}.reading-source-pill-scan{background:#0d94881f;color:var(--primary-dark)}.reading-history-dl{margin:0;display:grid;gap:8px}.reading-history-dl-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.9375rem}.reading-history-dl-row dt{margin:0;color:var(--text-muted);font-weight:600}.reading-history-dl-row dd{margin:0;font-weight:700;color:var(--primary-dark);font-family:var(--font-display)}.trend-legend{display:flex;align-items:center;gap:10px;font-size:.8125rem;color:var(--text-muted);margin:0 0 14px}.trend-legend-swatch{width:18px;height:10px;border-radius:3px;background:#22c55e33;border:1px solid rgba(34,197,94,.45);flex-shrink:0}.trend-grid{display:grid;gap:12px}.trend-grid.trend-grid-single{grid-template-columns:1fr}@media(min-width:560px){.trend-grid{grid-template-columns:1fr 1fr}.trend-grid.trend-grid-single{grid-template-columns:1fr}}.trend-card{margin-bottom:0}.water-temp-ref-note{margin:0 0 6px;font-size:.75rem}.water-temp-trend-line{stroke:var(--primary)}.water-temp-trend-dot{fill:var(--primary)}.weather-outlook-subheading{margin:16px 0 8px;font-size:1rem;font-weight:600;font-family:var(--font-display);color:var(--text)}.weather-pool-temp-outlook .weather-outlook-disclaimer{margin-top:8px;margin-bottom:0}.water-temp-latest .value-inline{font-variant-numeric:tabular-nums}.trend-chart-header{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}.trend-chart-title{margin:0;font-weight:700;font-size:.9375rem;font-family:var(--font-display);color:var(--text)}.trend-chart-ideal{font-size:.6875rem;font-weight:600;color:var(--text-muted);white-space:nowrap}.trend-chart-svg{display:block;max-width:100%;height:auto}.trend-ideal-band{fill:#22c55e24}.trend-line{stroke:var(--primary-dark);stroke-linecap:round;stroke-linejoin:round;fill:none}.trend-dot{fill:var(--primary);stroke:var(--surface);stroke-width:1.5}.trend-chart-axis{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:.6875rem;color:var(--text-muted);line-height:1.3}.trend-chart-empty .trend-chart-title{margin-bottom:4px}.trend-chart-muted{margin:0;font-size:.8125rem;color:var(--text-muted)}.trend-chart-svg--interactive{min-height:112px}@media(pointer:coarse){.trend-chart-svg--interactive{min-height:140px}}.trend-chart-tooltip-note{display:block;margin-top:4px;font-size:.6875rem;font-weight:500;color:var(--text-muted)}.chart-range-block{margin:12px 0 10px}.chart-range-heading{margin:0 0 8px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.chart-range-segmented{display:flex;width:100%;max-width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--border-card);background:var(--surface-elevated, #f1f5f9);box-shadow:inset 0 1px #ffffff80}.chart-range-segment{flex:1 1 0;min-width:0;min-height:44px;padding:10px 6px;margin:0;font:inherit;font-size:.8125rem;font-weight:600;line-height:1.15;border:none;border-left:1px solid var(--border-card);background:transparent;color:var(--primary-dark);cursor:pointer;transition:background .15s ease,color .15s ease;-webkit-tap-highlight-color:transparent}.chart-range-segment:first-child{border-left:none}.chart-range-segment-label{display:block;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-range-segment:hover:not(.chart-range-segment--active){background:#0d948812}.chart-range-segment--active{background:var(--primary);color:#fff}.chart-range-segment:focus-visible{outline:none;position:relative;z-index:1;box-shadow:inset 0 0 0 2px #ffffff8c}.chart-range-segment--active:focus-visible{box-shadow:inset 0 0 0 2px #ffffff59}@media(pointer:coarse){.chart-range-segment{min-height:48px;padding-top:12px;padding-bottom:12px}}.chart-range-label{margin:0 0 10px}.chart-stats-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 12px;margin:0 0 14px;padding:12px 14px;border-radius:10px;background:var(--surface-elevated, #f1f5f9);border:1px solid var(--border-card)}.chart-stats-item{margin:0;min-width:0}.chart-stats-label{margin:0 0 2px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.chart-stats-value{margin:0;font-size:1.0625rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary-dark);line-height:1.2}@media(max-width:360px){.chart-stats-summary{grid-template-columns:1fr;gap:8px}}.trend-chart--touch-scrub{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.trend-chart--interactive .trend-chart-hit-area{cursor:crosshair;touch-action:none}.trend-chart-vline{stroke:#0f172a61;stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.trend-dot--hover{stroke:var(--primary-dark);stroke-width:2}.trend-chart-tooltip-wrap{min-height:2.75rem;margin-top:6px;padding:8px 10px;border-radius:8px;background:var(--surface-elevated, #f1f5f9);border:1px solid var(--border-card)}.trend-chart-tooltip-wrap--idle{min-height:1.5rem;padding:6px 10px}.trend-chart-tooltip-idle{display:block;min-height:.5rem}.trend-chart-tooltip{display:flex;flex-direction:column;gap:2px}.trend-chart-tooltip-date{font-size:.75rem;color:var(--text-muted)}.trend-chart-tooltip-value{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--primary-dark)}.trend-chart-tooltip-placeholder{font-size:.8125rem;color:var(--text-muted);line-height:1.35}.pool-water-temp-chart-card{margin-top:12px}.water-temp-latest-pool-page{margin:12px 0 8px}.pool-water-temp-care-cta{margin-top:16px}.chemical-modal-backdrop{position:fixed;inset:0;z-index:200;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;padding:0;animation:scan-backdrop-in .2s ease-out}@media(min-width:540px){.chemical-modal-backdrop{align-items:center;padding:24px}}.chemical-modal{width:100%;max-width:440px;max-height:min(92dvh,720px);overflow:auto;background:var(--surface);border-radius:20px 20px 0 0;box-shadow:0 -8px 40px #0f172a1f,var(--shadow-card);padding:22px 20px 28px;animation:scan-sheet-up .28s cubic-bezier(.22,1,.36,1)}.activity-category-modal{display:flex;flex-direction:column;max-height:calc(100dvh - env(safe-area-inset-top,0px) - 12px);padding:0;overflow:hidden}.activity-category-modal-scroll{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:18px 18px 12px}.activity-category-modal .chemical-modal-title{margin-top:0}.activity-category-modal .chemical-modal-lead{margin-bottom:12px}.activity-category-modal-footer{flex-shrink:0;margin:0;padding:12px 18px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border-card);background:var(--surface);box-shadow:0 -4px 16px #0f172a0f}.activity-category-modal-footer .btn-block{margin-bottom:0}.input-date-native{display:block;width:100%;max-width:100%;box-sizing:border-box;min-height:48px;font-size:1rem}@media(min-width:540px){.chemical-modal{border-radius:20px;max-height:min(88dvh,680px)}.activity-category-modal{max-height:min(88dvh,640px)}.activity-category-modal-scroll{padding:22px 22px 14px}.activity-category-modal-footer{padding-left:22px;padding-right:22px}}.chemical-modal-title{font-size:1.35rem;margin:0 0 8px;letter-spacing:-.02em;color:var(--text);font-family:var(--font-display)}.chemical-modal-lead{margin:0 0 16px}.chemical-modal-advice{margin-bottom:20px}.chemical-modal-advice-heading{margin:0 0 8px;font-size:1rem;font-family:var(--font-display)}.chemical-modal-warn{margin:10px 0 0;color:var(--primary-dark)}.chemical-advice-steps{list-style:none;margin:12px 0 0;padding:0}.chemical-advice-step{margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--border-card)}.chemical-advice-step:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.chemical-advice-step-title{margin:0 0 4px;font-weight:700;font-size:.9375rem}.chemical-advice-reason{margin:0 0 6px}.chemical-advice-dose{margin:0 0 4px;font-size:.875rem}.chemical-modal-guidance-link{display:inline-block;margin-top:8px}.chemical-modal-form-heading{margin:0 0 10px;font-size:1rem;font-family:var(--font-display)}.chemical-select{min-height:48px;margin-bottom:4px}.chemical-textarea{min-height:72px;resize:vertical;margin-bottom:4px}.chemical-field-hint{margin:-4px 0 14px}.chemical-modal-disclaimer{margin:14px 0 16px}.chemical-modal-actions .btn-block{margin-bottom:10px}.chemical-modal-actions .btn-block:last-child{margin-bottom:0}.activity-modal-when-hint{margin-bottom:12px}.activity-category-list{display:flex;flex-direction:column;gap:10px;margin:8px 0 4px}.activity-category-modal .activity-category-list+.chemical-modal-actions{margin-top:8px}.maintenance-log-activity-cta{margin-top:4px}.maintenance-chemical-detail{margin:10px 0 8px;padding-top:8px;border-top:1px dashed var(--border-card)}.maintenance-chemical-grams{margin:0 0 4px}@media(prefers-reduced-motion:reduce){.chemical-modal-backdrop,.chemical-modal{animation:none}}.expert-page{display:flex;flex-direction:column;gap:0;padding-top:16px}.expert-page-header{margin-bottom:14px}.expert-page-title{margin-bottom:8px}.expert-page-lead{margin-bottom:12px}.expert-page-lead-wrap{margin-bottom:0}.expert-context-details{margin-bottom:14px;padding:0;overflow:hidden}.expert-context-summary{list-style:none;cursor:pointer;padding:14px 40px 14px 16px;font-weight:700;font-family:var(--font-display);font-size:.9375rem;color:var(--primary-dark);position:relative}.expert-context-summary::-webkit-details-marker{display:none}.expert-context-summary:after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:translateY(-60%) rotate(45deg);transition:transform .15s ease}.expert-context-details[open] .expert-context-summary:after{transform:translateY(-20%) rotate(-135deg)}.expert-context-body{padding:0 16px 16px;border-top:1px solid var(--border-card)}.expert-context-body .text-body{margin:10px 0 0}.expert-context-body .text-body:first-of-type{margin-top:12px}.expert-context-note{margin:12px 0 0}.expert-stub-banner{margin-bottom:12px}.expert-chat-shell{display:flex;flex-direction:column;gap:0;margin:0 -20px 8px;padding:0}@media(min-width:760px){.expert-chat-shell{margin-left:0;margin-right:0;border-radius:16px;overflow:hidden;border:1px solid var(--border-card)}}.expert-chat-thread{flex:1;min-height:min(42vh,360px);max-height:min(52vh,520px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:#f7f7f8;padding:8px 0 16px}.expert-chat-shell--active .expert-chat-thread{min-height:min(36vh,320px)}.expert-thread-empty{padding:28px 20px 36px;max-width:520px;margin:0 auto}.expert-empty-lead{margin:0 0 16px;line-height:1.5;font-size:.9375rem;color:var(--text-muted);text-align:center}.expert-try-label{margin:0 0 12px;font-size:.8125rem;font-weight:600;color:var(--text-muted);font-family:var(--font-display);text-align:center}.expert-suggestions{display:flex;flex-direction:column;gap:8px}@media(min-width:420px){.expert-suggestions{flex-direction:row;flex-wrap:wrap;justify-content:center}.expert-suggestion-chip{flex:1 1 calc(50% - 4px);min-width:140px}}.expert-suggestion-chip{text-align:left;white-space:normal;line-height:1.35;padding:12px 14px;font-size:.875rem;font-weight:600}.expert-suggestion-chip-primary{font-weight:700}.expert-turn{display:flex;gap:12px;padding:14px 16px;align-items:flex-start}.expert-turn-assistant{border-bottom:1px solid rgba(15,23,42,.06)}.expert-turn-assistant:last-of-type{border-bottom:none}.expert-turn-user{flex-direction:row;justify-content:flex-end;background:var(--surface);border-bottom:1px solid rgba(15,23,42,.06)}.expert-turn-loading{border-bottom:none}.expert-turn-avatar{flex-shrink:0;width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center}.expert-turn-avatar svg{width:18px;height:18px}.expert-turn-avatar-ai{background:linear-gradient(145deg,#ccfbf1,#99f6e4);color:var(--primary-dark);border:1px solid rgba(13,148,136,.25)}.expert-turn-avatar-user{background:#e2e8f0;color:#475569;border:1px solid var(--border-card)}.expert-turn-main{flex:1;min-width:0}.expert-turn-user .expert-turn-main{flex:0 1 auto;max-width:min(92%,560px);display:flex;justify-content:flex-end}.expert-bubble{font-size:.9375rem;line-height:1.55;white-space:pre-wrap;word-break:break-word}.expert-bubble-assistant{color:var(--text);padding:2px 0 0}.expert-bubble-user{background:var(--primary);color:#fff;padding:10px 14px;border-radius:18px 18px 4px;box-shadow:0 1px 2px #0f172a14}.expert-typing{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:.875rem;padding:4px 0}.expert-composer-outer{position:sticky;bottom:0;z-index:3;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg) 55%,rgba(244,248,247,.92));border-top:1px solid rgba(15,23,42,.06)}.expert-toolbar{display:flex;justify-content:flex-end;margin-bottom:10px}.expert-clear-btn{min-height:40px;padding:8px 12px;font-size:.8125rem}.expert-composer-card{display:flex;align-items:flex-end;gap:10px;max-width:720px;margin:0 auto;padding:10px 12px;background:var(--surface);border:1px solid #e2e8f0;border-radius:20px;box-shadow:0 0 0 1px #0f172a0a,0 4px 20px #0f172a14}.expert-composer-input{flex:1;min-width:0;min-height:44px;max-height:160px;padding:8px 4px;border:none;background:transparent;font:inherit;font-size:1rem;line-height:1.45;color:var(--text);resize:none;outline:none}.expert-composer-input::placeholder{color:#94a3b8}.expert-composer-send{flex-shrink:0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:none;border-radius:12px;background:var(--primary);color:#fff;cursor:pointer;transition:background .15s ease,opacity .15s ease}.expert-composer-send svg{width:20px;height:20px}.expert-composer-send:hover:not(:disabled){background:var(--primary-dark)}.expert-composer-send:disabled{opacity:.38;cursor:not-allowed}.expert-composer-send:focus-visible{outline:none;box-shadow:var(--focus-ring)}.expert-disclaimer{margin-top:8px;line-height:1.45;padding-bottom:env(safe-area-inset-bottom,0px)}@media(prefers-reduced-motion:reduce){.expert-context-summary:after{transition:none}}.info-page .info-page-lead{margin-bottom:1.25rem}.info-section{margin-top:1.5rem}.info-section:first-of-type{margin-top:.5rem}.info-subheading{margin:1rem 0 .5rem;font-size:.95rem;font-weight:600;color:var(--text-muted)}.info-back-settings{margin-top:2rem;padding-bottom:env(safe-area-inset-bottom,12px)}
