.auth-gate{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:2rem 1.5rem;background:#f5f7fa;background-image:radial-gradient(ellipse 50% 50% at 75% 15%,rgba(59,130,246,.04) 0%,transparent 70%),radial-gradient(ellipse 40% 40% at 20% 80%,rgba(16,185,129,.04) 0%,transparent 60%)}.auth-card{position:relative;z-index:2;text-align:center;max-width:520px;width:100%;padding:3rem 3.5rem 3.5rem;background:#ffffffb3;border:1px solid rgba(0,0,0,.06);border-radius:1.5rem;box-shadow:0 8px 40px #0000000f;animation:auth-fade-in .8s cubic-bezier(.16,1,.3,1) both}@keyframes auth-fade-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.auth-illustration{width:100%;max-width:480px;margin-bottom:2rem;opacity:.4;pointer-events:none}.auth-title{font-family:Cormorant Garamond,Georgia,serif;font-size:3rem;font-weight:600;line-height:1;margin-bottom:.5rem;letter-spacing:-.01em;color:#1a2332}.auth-subtitle{font-family:Inter,sans-serif;font-size:.6875rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;margin-bottom:2rem;color:#64748b}.auth-tagline{font-family:Inter,sans-serif;font-size:.9375rem;font-weight:400;line-height:1.5;margin-bottom:2.5rem;color:#475569}.auth-btn-container{display:flex;justify-content:center;animation:auth-btn-in .6s cubic-bezier(.16,1,.3,1) .4s both}@keyframes auth-btn-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.auth-gate{padding:1.5rem 1rem}.auth-title{font-size:2.25rem}.auth-card{padding:2rem 1.5rem 2.5rem}.auth-illustration{width:100%;max-width:400px}}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:1200px;display:flex;justify-content:space-around;background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 0;padding-bottom:max(6px,env(safe-area-inset-bottom));z-index:100}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;color:var(--color-text-tertiary);text-decoration:none;font-size:11px;font-weight:500;transition:color var(--transition)}.nav-item.active{color:var(--color-accent)}.nav-item svg{transition:color var(--transition)}.nav-icon-wrap{position:relative;display:inline-flex}.sync-badge{position:absolute;top:-4px;right:-8px;min-width:16px;height:16px;border-radius:8px;background:#f59e0b;color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 3px;line-height:1}.sync-spinner{position:absolute;top:-4px;right:-8px;width:14px;height:14px;border:2px solid var(--color-accent, #3b82f6);border-top-color:transparent;border-radius:50%;animation:nav-spin .8s linear infinite}@keyframes nav-spin{to{transform:rotate(360deg)}}.welcome-card{margin:var(--space-md) auto;max-width:800px;text-align:center;padding:var(--space-xl)}.welcome-card h2{margin-bottom:var(--space-sm)}.welcome-card p{color:var(--color-text-secondary);font-size:14px}.stats-row{display:flex;gap:var(--space-sm);padding:0 var(--space-md);margin-bottom:var(--space-md);max-width:800px;margin-left:auto;margin-right:auto}.stat-card{flex:1;text-align:center;padding:var(--space-md) var(--space-sm)}.stat-value{font-family:var(--font-heading);font-size:28px;font-weight:600;color:var(--color-text)}.stat-value.stat-danger{color:var(--color-danger)}.stat-label{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.section{margin-bottom:var(--space-lg)}.dashboard-grid{display:flex;flex-direction:column;gap:var(--space-md, 12px);padding:0 16px}@media(min-width:640px){.dashboard-grid{display:grid;grid-template-columns:repeat(2,1fr)}}.service-alert-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm, 8px);text-decoration:none;color:inherit}.service-alert-card strong{flex:1;min-width:0;word-wrap:break-word;color:var(--color-text)}.service-alert-card.overdue{border-left:3px solid var(--color-danger)}.service-alert-card.due-soon{border-left:3px solid var(--color-warning)}.error-banner{background:var(--color-danger-light);color:var(--color-danger);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:13px;margin-bottom:var(--space-sm)}.rec-card{border-left:3px solid var(--color-border)}.rec-card.rec-high{border-left-color:var(--color-danger)}.rec-card.rec-medium{border-left-color:var(--color-warning)}.rec-card.rec-low{border-left-color:var(--color-accent)}.rec-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xs)}.rec-priority{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:8px}.priority-high{background:var(--color-danger-light);color:var(--color-danger)}.priority-medium{background:var(--color-warning-light);color:var(--color-warning)}.priority-low{background:var(--color-accent-light);color:var(--color-accent)}.rec-timing{font-size:12px;color:var(--color-text-secondary)}.rec-card strong{display:block;color:var(--color-text);margin-bottom:4px}.rec-desc{font-size:13px;color:var(--color-text-secondary);line-height:1.4}.rec-cost{display:inline-block;margin-top:var(--space-sm);font-size:12px;color:var(--color-text-tertiary)}.recent-visit-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);text-decoration:none;color:inherit;border-left:3px solid var(--color-success, #22c55e)}.recent-visit-info{flex:1;min-width:0}.recent-visit-info strong{display:block;color:var(--color-text);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-visit-meta{font-size:12px;color:var(--color-text-secondary)}.rec-header-right{display:flex;align-items:center;gap:var(--space-sm)}.rec-dismiss{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:16px;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition);line-height:1}.rec-dismiss:hover{background:var(--color-danger-light);color:var(--color-danger)}.chevron{color:var(--color-text-tertiary);font-size:20px;flex-shrink:0}.quick-actions{display:flex;gap:var(--space-sm);padding:0 var(--space-md);max-width:800px;margin:0 auto}.quick-actions .btn{flex:1;text-align:center}.property-address{color:var(--color-text-secondary);font-size:14px}.profile-section{margin-bottom:var(--space-xl)}.profile-section-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-md) var(--space-sm)}.profile-section-header h2{font-size:18px}.btn-sm{padding:6px 14px;font-size:13px}.facts-list,.systems-list{margin:0 var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.fact-group+.fact-group,.system-group+.system-group{border-top:1px solid var(--color-border-light)}.fact-group-header,.system-group-header{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:12px 16px;background:none;border:none;cursor:pointer;text-align:left;font-size:14px;color:var(--color-text);transition:background var(--transition)}.fact-group-header:hover,.system-group-header:hover{background:var(--color-bg)}.fact-group-header strong,.system-group-header strong{flex:1;font-size:14px}.fact-summary{font-size:12px;color:var(--color-text-tertiary);max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.expand-icon{color:var(--color-text-tertiary);font-size:16px;transition:transform .2s;flex-shrink:0}.expand-icon.open{transform:rotate(90deg)}.fact-group-body{padding:0 16px 12px}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}.detail-row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0}.detail-label{font-size:12px;color:var(--color-text-tertiary);flex-shrink:0}.detail-value{font-size:13px;color:var(--color-text);text-align:right}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.edit-grid .form-group{margin-bottom:0}.edit-grid .form-wide{grid-column:1 / -1}.form-toggle{display:flex;flex-direction:column}.toggle-btn{padding:8px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:14px;cursor:pointer;transition:all var(--transition);text-align:center}.toggle-btn.active{background:var(--color-success-light);color:var(--color-success);border-color:var(--color-success)}.notes-text{font-size:13px;color:var(--color-text-secondary);line-height:1.5}.system-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.component-count{font-size:12px;color:var(--color-text-tertiary);background:var(--color-bg);padding:1px 8px;border-radius:10px;min-width:20px;text-align:center}.system-group-body{padding:0 16px 8px}.component-row{display:flex;align-items:center;gap:var(--space-sm);padding:6px 0 6px 32px;text-decoration:none;color:inherit;font-size:13px;border-top:1px solid var(--color-border-light);transition:background var(--transition)}.component-row:first-child{border-top:none}.component-row:hover{background:var(--color-bg)}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.status-confirmed{background:var(--color-success)}.status-dot.status-unknown{background:var(--color-warning)}.status-dot.status-ai-suggested{background:var(--color-accent)}.component-name{flex:1;color:var(--color-text)}.component-make,.component-year{font-size:11px;color:var(--color-text-tertiary)}.empty-systems{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:10px 16px;border-top:1px solid var(--color-border-light);align-items:center}.empty-systems-label{font-size:11px;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px}.empty-system-chip{font-size:12px;color:var(--color-text-secondary);background:var(--color-bg);border:1px dashed var(--color-border);padding:2px 8px;border-radius:12px;text-decoration:none;transition:border-color var(--transition)}.empty-system-chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.empty-group{text-align:center;padding:var(--space-md);color:var(--color-text-tertiary);font-size:13px;grid-column:1 / -1}.system-detail-title{display:flex;align-items:center;gap:var(--space-md)}.system-icon-lg{font-size:36px}.component-card{position:relative}.component-card.editing{border-color:var(--color-accent)}.component-header{display:flex;align-items:flex-start;justify-content:space-between}.component-info{display:flex;align-items:center;gap:var(--space-sm);flex:1;min-width:0}.component-info strong{color:var(--color-text)}.component-actions{display:flex;gap:4px;flex-shrink:0}.btn-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--color-text-tertiary);font-size:18px;transition:all var(--transition)}.btn-icon:hover{background:var(--color-danger-light);color:var(--color-danger)}.btn-icon-edit:hover{background:var(--color-accent-light);color:var(--color-accent)}.component-details{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.detail-chip{background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:4px;padding:2px 8px;font-size:12px;color:var(--color-text-secondary)}.component-condition{margin-top:var(--space-sm);font-size:12px;color:var(--color-warning)}.component-serial{margin-top:var(--space-sm);font-size:12px;color:var(--color-text-tertiary);font-family:monospace}.component-notes{margin-top:var(--space-sm);font-size:13px;color:var(--color-text-secondary);white-space:pre-line}.component-specs{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border-light)}.spec-row{display:flex;justify-content:space-between;padding:3px 0;font-size:12px}.spec-key{color:var(--color-text-tertiary);text-transform:capitalize}.spec-val{color:var(--color-text-secondary)}.component-card .edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.component-card .form-wide{grid-column:1 / -1}.edit-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md);justify-content:flex-end}.photo-capture{cursor:pointer;margin-bottom:var(--space-md);overflow:hidden}.photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--color-text-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.photo-placeholder span{font-size:14px}.photo-hint{font-size:12px!important;color:var(--color-text-tertiary)}.photo-preview{width:100%;max-height:240px;object-fit:contain;border-radius:var(--radius-sm)}.analyzing-banner{background:var(--color-accent-light);color:var(--color-accent);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:13px;font-weight:500;text-align:center;margin-bottom:var(--space-md);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.error-banner{background:var(--color-danger-light);color:var(--color-danger);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:13px;margin-bottom:var(--space-md)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--color-accent);border-right-color:transparent;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-specs{font-size:13px}.ai-specs-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.ai-badge{background:var(--color-accent-light);color:var(--color-accent);padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.services-grid{display:flex;flex-direction:column;gap:var(--space-md, 12px);padding:0 16px}@media(min-width:640px){.services-grid{display:grid;grid-template-columns:repeat(2,1fr)}}.service-section{margin-bottom:var(--space-lg)}.service-section-title{font-family:var(--font-body);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);padding:0 var(--space-md);margin-bottom:var(--space-sm)}.overdue-title{color:var(--color-danger)}.due-soon-title{color:var(--color-warning)}.service-card{text-decoration:none;color:inherit;display:block}.service-card.status-overdue{border-left:3px solid var(--color-danger)}.service-card.status-due-soon{border-left:3px solid var(--color-warning)}.service-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.service-header strong{flex:1;min-width:0;word-wrap:break-word;color:var(--color-text)}.service-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm);font-size:12px;color:var(--color-text-secondary)}.service-freq{text-transform:capitalize}.service-provider:before{content:"·"}.service-cost:before{content:"·"}.service-components{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.services-tab-bar{display:flex;gap:0;padding:0 16px;margin-bottom:16px;border-bottom:1px solid var(--color-border, #e0e0e0)}.services-tab{flex:1;padding:10px 0;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:color .15s,border-color .15s}.services-tab:hover{color:var(--color-text)}.services-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.history-spend-bar{display:flex;gap:12px;margin-bottom:12px;padding:12px;background:var(--color-surface, #f8f8f8);border-radius:8px}.history-spend-item{flex:1;text-align:center}.history-spend-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);margin-bottom:2px}.history-spend-value{display:block;font-size:18px;font-weight:600;color:var(--color-text)}.history-filters{display:flex;gap:8px;margin-bottom:16px}.history-search{flex:1;min-width:0}.history-year-select{width:auto;min-width:100px}.history-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.history-visit-card{text-decoration:none;color:inherit;display:block}.history-visit-header{display:flex;justify-content:space-between;align-items:center}.history-visit-date{font-weight:600;font-size:14px}.history-visit-cost{font-weight:600;font-size:14px;color:var(--color-text)}.history-visit-files{font-size:12px;color:var(--color-text-secondary);background:var(--color-surface, #f0f0f0);padding:2px 6px;border-radius:4px}.history-visit-services{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.history-visit-service-chip{font-size:12px;padding:2px 8px;border-radius:12px;background:var(--color-primary-light, rgba(79, 70, 229, .1));color:var(--color-primary)}.history-visit-provider{font-size:12px;color:var(--color-text-secondary);margin-top:4px}.history-visit-notes{font-size:12px;color:var(--color-text-secondary);margin-top:4px;line-height:1.4}.chevron{font-size:18px;color:var(--color-text-secondary)}.component-checklist{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-sm);max-height:200px;overflow-y:auto}.checklist-group{margin-bottom:var(--space-sm)}.checklist-group:last-child{margin-bottom:0}.checklist-group-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary);padding:4px 0}.checklist-item{display:flex;align-items:center;gap:var(--space-sm);padding:6px 4px;cursor:pointer;font-size:14px;color:var(--color-text)}.checklist-item input[type=checkbox]{width:16px;height:16px;flex-shrink:0}.checklist-make{font-size:12px;color:var(--color-text-tertiary);margin-left:auto}.selected-components{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.selected-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;background:var(--color-accent);color:#fff;font-size:12px;cursor:pointer}.selected-chip:hover{opacity:.8}.detail-row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--color-border-light)}.detail-row:last-child{border-bottom:none}.linked-component{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.log-form h3{font-family:var(--font-body);font-size:15px;font-weight:600}.history-list{display:flex;flex-direction:column;gap:var(--space-sm)}.history-card{padding:12px}.history-header{display:flex;justify-content:space-between;align-items:center}.history-date{font-weight:500;font-size:14px}.history-cost{font-weight:600;color:var(--color-text)}.history-provider{font-size:13px;color:var(--color-text-secondary);margin-top:2px}.service-notes{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border-light);font-size:13px;color:var(--color-text-secondary);line-height:1.5}.history-also{font-size:12px;color:var(--color-accent);margin-top:4px}.history-notes{font-size:13px;color:var(--color-text-secondary);margin-top:var(--space-sm)}.editable-value{cursor:pointer;border-bottom:1px dashed var(--color-text-secondary);padding-bottom:1px}.inline-date-input{font:inherit;font-size:14px;padding:4px 6px;border:1px solid var(--color-border-light);border-radius:4px;background:var(--color-surface);color:var(--color-text)}.history-attachment-badge{font-size:11px;color:var(--color-text-secondary);background:var(--color-surface);padding:2px 6px;border-radius:4px}.pdf-upload-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.pdf-upload-header strong{font-size:14px;color:var(--color-text)}.pdf-hint{font-size:12px;color:var(--color-text-tertiary)}.pdf-file-list{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--space-sm)}.pdf-file-row{display:flex;align-items:center;gap:var(--space-sm);padding:6px 8px;background:var(--color-bg);border-radius:var(--radius-sm);font-size:13px}.pdf-file-icon{font-size:10px;font-weight:700;color:var(--color-danger);background:var(--color-danger-light);padding:2px 6px;border-radius:3px;flex-shrink:0}.pdf-file-icon.file-other{color:var(--color-text-secondary);background:var(--color-bg)}.pdf-file-name{flex:1;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-file-size{font-size:11px;color:var(--color-text-tertiary);flex-shrink:0}.pdf-actions{display:flex;gap:var(--space-sm)}.parse-error{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--color-danger-light);color:var(--color-danger);border-radius:var(--radius-sm);font-size:13px}.ai-parsed-banner{margin-top:var(--space-sm);padding:var(--space-sm);background:var(--color-accent-light);border-radius:var(--radius-sm);font-size:13px}.ai-parsed-banner strong{color:var(--color-accent);font-size:12px}.ai-parsed-list{margin:4px 0 4px 16px;padding:0;color:var(--color-text)}.ai-parsed-list li{margin-bottom:2px}.ai-parsed-hint{display:block;font-size:11px;color:var(--color-text-tertiary);margin-top:4px}.gmail-panel{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border-light)}.gmail-search-row{display:flex;gap:var(--space-sm);margin-bottom:var(--space-sm)}.gmail-search-row input{flex:1}.gmail-results{max-height:350px;overflow-y:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-sm)}.gmail-email-row{border-bottom:1px solid var(--color-border-light)}.gmail-email-row:last-child{border-bottom:none}.gmail-email-header{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:10px 12px;background:none;border:none;cursor:pointer;text-align:left;transition:background var(--transition)}.gmail-email-header:hover,.gmail-email-row.expanded .gmail-email-header{background:var(--color-bg)}.gmail-expand-icon{color:var(--color-text-tertiary);font-size:16px;flex-shrink:0;transition:transform .2s}.gmail-expand-icon.open{transform:rotate(90deg)}.gmail-email-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.gmail-email-subject{font-size:13px;font-weight:500;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gmail-email-meta{font-size:11px;color:var(--color-text-tertiary)}.gmail-email-body{padding:0 12px 10px}.gmail-snippet{font-size:12px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:8px;white-space:pre-wrap;word-break:break-word}.gmail-snippet p{margin:0}.gmail-show-more{background:none;border:none;color:var(--color-accent);font-size:12px;cursor:pointer;padding:2px 0;margin-top:4px}.gmail-show-more:hover{text-decoration:underline}.gmail-attachments{display:flex;flex-direction:column;gap:4px}.gmail-select-all{background:none;border:none;color:var(--color-primary);font-size:13px;cursor:pointer;padding:4px 0;text-align:left}.gmail-select-all:hover{text-decoration:underline}.gmail-attach-row{display:flex;align-items:center;gap:var(--space-sm);padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);font-size:13px}.gmail-attach-row:hover{background:var(--color-surface)}.gmail-attach-row.selected{background:var(--color-success-light)}.gmail-attach-row input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--color-success)}.gmail-attach-name{flex:1;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gmail-attach-size{font-size:11px;color:var(--color-text-tertiary);flex-shrink:0}.visit-checklist-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.visit-checklist-header strong{font-size:14px;color:var(--color-text)}.visit-count{font-size:12px;color:var(--color-text-tertiary)}.visit-group-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-tertiary);padding:var(--space-sm) 0 var(--space-xs);border-top:1px solid var(--color-border-light)}.visit-service-search{width:100%;margin-bottom:8px;font-size:13px;padding:6px 10px}.visit-service-list{max-height:280px;overflow-y:auto;border:1px solid var(--color-border-light);border-radius:6px}.visit-service-row{display:flex;align-items:center;gap:var(--space-sm);padding:7px 10px;border-bottom:1px solid var(--color-border-light);cursor:pointer;transition:background var(--transition)}.visit-service-row:last-child{border-bottom:none}.visit-service-row:hover{background:var(--color-bg)}.visit-service-row.checked{background:var(--color-success-light)}.visit-service-row input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:var(--color-success)}.visit-service-name{font-size:13px;color:var(--color-text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.visit-service-freq{font-size:11px;color:var(--color-text-tertiary);text-transform:capitalize;white-space:nowrap;flex-shrink:0}.visit-services-list{display:flex;flex-wrap:wrap;gap:6px}.visit-service-chip{text-decoration:none;cursor:pointer}.visit-notes{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border-light)}.visit-notes p{margin-top:4px;font-size:14px;line-height:1.5;color:var(--color-text-secondary);white-space:pre-wrap}.attachments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.attachment-card{cursor:pointer;padding:0;overflow:hidden;border:none;font:inherit;text-align:left;transition:box-shadow .15s}.attachment-card:hover:not(:disabled){box-shadow:0 2px 8px #00000026}.attachment-card:disabled{cursor:default}.attachment-card.loading .attachment-thumb{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.attachment-thumb{width:100%;height:100px;display:flex;align-items:center;justify-content:center;background:var(--color-surface);overflow:hidden}.attachment-thumb img{width:100%;height:100%;object-fit:cover}.attachment-icon{font-size:20px;font-weight:700;color:var(--color-text-secondary);opacity:.5}.attachment-spinner{font-size:12px;color:var(--color-text-secondary)}.attachment-name{padding:6px 8px;font-size:11px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-overlay{position:fixed;inset:0;z-index:1000;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:16px}.preview-content{background:var(--color-card);border-radius:12px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.preview-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border-light)}.preview-name{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-close{font-size:24px;line-height:1;padding:4px 8px}.preview-body{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;min-height:200px}.preview-body img{max-width:100%;max-height:70vh;object-fit:contain}.preview-body iframe{width:100%;height:70vh;border:none}.preview-body p{padding:32px;color:var(--color-text-secondary)}.preview-actions{padding:12px 16px;border-top:1px solid var(--color-border-light);display:flex;justify-content:center}.provider-grid{display:flex;flex-direction:column;gap:var(--space-md, 12px);padding:0 16px}@media(min-width:640px){.provider-grid{display:grid;grid-template-columns:repeat(2,1fr)}}.provider-grid .provider-edit-full{grid-column:1 / -1}.provider-card{display:flex;flex-direction:column}.provider-card .btn{margin-top:auto;align-self:flex-start}.provider-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm, 8px)}.provider-header strong{flex:1;min-width:0;word-wrap:break-word;color:var(--color-text)}.provider-trade{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-accent);background:var(--color-accent-light);padding:2px 8px;border-radius:10px;white-space:nowrap;flex-shrink:0}.provider-company{font-size:13px;color:var(--color-text-secondary);margin-top:2px}.provider-contact{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-sm);font-size:13px}.provider-contact a{color:var(--color-accent);word-break:break-all}.provider-notes{margin-top:var(--space-sm);font-size:13px;color:var(--color-text-secondary)}.app{max-width:1200px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg)}.app-content{flex:1;padding-bottom:80px}.page{padding:var(--space-md);max-width:800px;margin:0 auto;width:100%}.page-header{padding:var(--space-lg) var(--space-md) var(--space-md);max-width:800px;margin:0 auto;width:100%}.page-header h1{margin-bottom:var(--space-xs)}.page-header p{color:var(--color-text-secondary);font-size:14px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);transition:box-shadow var(--transition)}.card:hover{box-shadow:0 2px 8px var(--color-shadow)}.card-list{display:flex;flex-direction:column;gap:var(--space-sm);padding:0 var(--space-md);max-width:800px;margin:0 auto;width:100%}@media(min-width:640px){.card-list.card-grid{display:grid;grid-template-columns:repeat(2,1fr)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px 20px;border-radius:var(--radius-sm);font-weight:500;font-size:14px;transition:all var(--transition)}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg)}.btn-full{width:100%}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-confirmed{background:var(--color-success-light);color:var(--color-success)}.status-unknown{background:var(--color-warning-light);color:var(--color-warning)}.status-ai-suggested{background:var(--color-accent-light);color:var(--color-accent)}.status-overdue{background:var(--color-danger-light);color:var(--color-danger)}.status-due-soon{background:var(--color-warning-light);color:var(--color-warning)}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.5px}.form-row{display:flex;gap:var(--space-sm)}.form-row>*{flex:1}.section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);max-width:800px;margin:0 auto;width:100%}.section-header h2{font-size:18px}.empty-state{text-align:center;padding:var(--space-2xl) var(--space-md);color:var(--color-text-secondary)}.empty-state p{margin-top:var(--space-sm);font-size:14px}:root{--color-bg: #fafaf9;--color-surface: #ffffff;--color-text: #1c1917;--color-text-secondary: #78716c;--color-text-tertiary: #a8a29e;--color-border: #e7e5e4;--color-border-light: #f5f5f4;--color-accent: #2563eb;--color-accent-light: #eff6ff;--color-success: #16a34a;--color-success-light: #f0fdf4;--color-warning: #d97706;--color-warning-light: #fffbeb;--color-danger: #dc2626;--color-danger-light: #fef2f2;--color-shadow: rgba(0, 0, 0, .06);--font-heading: "Cormorant Garamond", Georgia, serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--transition: .2s ease}[data-theme=dark]{--color-bg: #0c0a09;--color-surface: #1c1917;--color-text: #fafaf9;--color-text-secondary: #a8a29e;--color-text-tertiary: #78716c;--color-border: #292524;--color-border-light: #1c1917;--color-accent: #60a5fa;--color-accent-light: #172554;--color-success: #4ade80;--color-success-light: #052e16;--color-warning: #fbbf24;--color-warning-light: #451a03;--color-danger: #f87171;--color-danger-light: #450a0a;--color-shadow: rgba(0, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow-x:hidden}body{font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{font-family:var(--font-heading);font-weight:600;line-height:1.2;color:var(--color-text)}h1{font-size:28px}h2{font-size:22px}h3{font-size:18px}a{color:var(--color-accent);text-decoration:none}button{font-family:var(--font-body);cursor:pointer;border:none;background:none;font-size:14px}input,select,textarea{font-family:var(--font-body);font-size:15px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;width:100%;transition:border-color var(--transition)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent)}textarea{resize:vertical}
