.login-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;padding-top:max(32px,var(--safe-top));padding-left:max(32px,var(--safe-left));padding-right:max(32px,var(--safe-right));padding-bottom:max(32px,var(--safe-bottom));background:radial-gradient(circle at 10% 10%,rgba(37,99,235,.08),transparent 28%),#f8fafc}.login-shell--technician{background:linear-gradient(165deg,var(--bg) 0%,#0c1929 45%,#111827 100%)}.login-shell__intro{text-align:center;margin-bottom:48px}.login-shell__tagline{margin-top:8px;color:#6b7280;font-size:16px}.login-shell--technician .login-shell__tagline{color:var(--muted)}.login-shell__footer{margin:22px 0 0;font-size:12px;color:#9ca3af;text-align:center}.login-auth-layout{width:min(1040px,100%);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);overflow:hidden;border:1px solid #dbe3ec;border-radius:20px;background:#fff;box-shadow:0 24px 70px #0f172a24}.login-shell--technician .login-auth-layout{border-color:var(--border);background:var(--surface);box-shadow:0 24px 70px #0000006b}.login-aside{min-height:660px;display:flex;flex-direction:column;justify-content:space-between;padding:52px;color:#fff;background:radial-gradient(circle at 82% 12%,rgba(255,255,255,.12),transparent 30%),linear-gradient(140deg,#0c1a35,#1e40af 58%,#0e5c5c)}.login-aside__eyebrow{display:block;margin-top:52px;color:#bfdbfe;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.login-aside h2{max-width:430px;margin:12px 0 16px;color:#fff;font-size:clamp(34px,4vw,48px);line-height:1.05;letter-spacing:-.045em}.login-aside>div>p{max-width:440px;margin:0;color:#ffffffbf;font-size:16px;line-height:1.65}.login-aside__benefits{display:grid;gap:14px;margin:46px 0;padding:0;list-style:none}.login-aside__benefits li{display:flex;align-items:center;gap:12px;color:#ffffffe6;font-size:14px}.login-aside__benefits li>span{width:24px;height:24px;display:grid;place-items:center;flex:0 0 24px;border-radius:50%;color:#1e40af;background:#fff;font-size:12px;font-weight:800}.login-aside__note{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#ffffff14}.login-aside__note>span{font-size:24px}.login-aside__note strong,.login-aside__note small{display:block}.login-aside__note strong{font-size:13px}.login-aside__note small{margin-top:2px;color:#ffffffa8;font-size:11px;line-height:1.45}.login-shell--technician .login-shell__footer{color:var(--muted)}.login-card{background:#fff;border-radius:16px;padding:36px 32px;width:100%;max-width:400px;box-shadow:0 4px 24px #00000014}.login-auth-layout .login-card{max-width:none;min-width:0;border-radius:0;padding:48px 52px;box-shadow:none}.login-auth-layout--native{width:min(440px,100%);display:block;overflow:visible;border:0;background:transparent;box-shadow:none}.login-auth-layout--native .login-card{border-radius:16px;box-shadow:0 4px 24px #00000014}.login-shell--technician .login-card{background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 40px #00000073}.login-card__head{text-align:center;margin-bottom:28px}.login-card--auth .login-card__head{text-align:left;margin-bottom:26px}.login-card__logo{display:none;margin-bottom:24px}.login-card__role{margin-top:6px;font-size:13px;font-weight:600}.login-card--auth .login-card__role{display:inline-flex;align-items:center;min-height:26px;margin:0 0 10px;padding:0 10px;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.login-shell--technician .login-card--auth .login-card__role{border-color:#3b82f659;background:#3b82f61a}.login-card__title{margin:0;color:#111827;font-size:30px;line-height:1.15;letter-spacing:-.025em}.login-shell--technician .login-card__title{color:var(--text)}.login-card__subtitle{margin:8px 0 0;color:#64748b;font-size:13px;line-height:1.55}.login-shell--technician .login-card__subtitle{color:var(--muted)}.login-google-btn{width:100%;padding:12px 16px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1f2937;font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px;box-shadow:0 1px 2px #0000000f;cursor:pointer;font-family:inherit;transition:opacity .15s,border-color .15s}@media (hover: hover){.login-google-btn:hover:not(:disabled){border-color:#94a3b8;background:#f8fafc}}.login-shell--technician .login-google-btn{background:var(--bg);border-color:var(--border);color:var(--text);box-shadow:none}.login-google-btn:disabled{opacity:.45;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:10px;margin-bottom:20px}.login-divider__line{flex:1;height:1px;background:#e2e8f0}.login-shell--technician .login-divider__line{background:var(--border)}.login-divider__text{font-size:12px;color:#9ca3af}.login-shell--technician .login-divider__text{color:var(--muted)}.login-label{font-size:12px;font-weight:600;color:#374151;display:block;margin-bottom:4px}.login-form{display:flex;flex-direction:column;gap:14px}.login-card input[type=email],.login-card input[type=password]{min-height:46px;padding:11px 12px;border-color:#cbd5e1;background:#fff;color:#111827}.login-card input[type=email]:focus,.login-card input[type=password]:focus{border-color:#2563eb;outline:3px solid rgba(37,99,235,.14)}.login-shell--technician .login-card input[type=email],.login-shell--technician .login-card input[type=password]{border-color:var(--border);background:var(--bg);color:var(--text)}.login-field-hint{display:block;margin-top:5px;color:#94a3b8;font-size:11px}.login-shell--technician .login-label{color:var(--text)}.login-consent{display:flex;gap:10px;align-items:flex-start;cursor:pointer;padding:10px 12px;border-radius:8px}.login-consent--owner{background:#eff6ff;border:1px solid #bfdbfe}.login-consent--tech{background:#3b82f614;border:1px solid var(--border)}.login-consent__text{font-size:12px;color:#374151;line-height:1.5}.login-shell--technician .login-consent__text{color:var(--muted)}.login-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:8px 12px;color:#b91c1c;font-size:13px}.login-error--prominent{margin-bottom:16px;padding:10px 12px}.login-submit{width:100%;min-height:46px;border:0;border-radius:8px;color:#fff;font-size:14px;font-weight:700;transition:filter .15s,transform .15s}.login-submit:disabled{cursor:not-allowed}@media (hover: hover){.login-submit:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}}.login-shell--technician .login-error{background:#ef44441f;border-color:#ef444459;color:#fca5a5}.login-muted{color:#6b7280}.login-shell--technician .login-muted{color:var(--muted)}.login-text{color:#374151}.login-shell--technician .login-text{color:var(--text)}.login-link-muted{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:12px;font-family:inherit}.login-shell--technician .login-link-muted{color:var(--muted)}.login-link-muted--sm{font-size:13px}.login-shell--choose{justify-content:center}.login-role-layout{width:min(1080px,100%);padding:54px;border:1px solid #dbe3ec;border-radius:20px;background:#fff;box-shadow:0 24px 70px #0f172a1f}.login-role-layout__head{max-width:680px;margin:0 auto 38px;text-align:center}.login-role-layout__head>span{display:block;margin-top:26px;color:#2563eb;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.login-role-layout__head h1{margin:9px 0 12px;color:#111827;font-size:clamp(34px,5vw,48px);line-height:1.08;letter-spacing:-.045em}.login-role-layout__head p{max-width:620px;margin:0 auto;color:#64748b;font-size:15px;line-height:1.65}.login-role-card{position:relative;width:auto;min-height:280px;display:flex;flex-direction:column;align-items:flex-start;padding:28px;overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff;color:#111827;text-align:left;font-family:inherit;box-shadow:0 2px 8px #0f172a0d;transition:border-color .16s,box-shadow .16s,transform .16s}.login-role-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--login-role-accent)}@media (hover: hover){.login-role-card:hover{border-color:var(--login-role-accent);background:#fff;box-shadow:0 14px 30px #0f172a1c;transform:translateY(-3px)}}.login-role-card:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:3px}.login-role-card__icon{width:50px;height:50px;display:grid;place-items:center;margin-bottom:20px;border-radius:12px;color:var(--login-role-accent);background:#eff6ff}.login-role-card--landlord .login-role-card__icon{background:#fffbeb}.login-role-card__icon svg{width:27px;height:27px}.login-role-card__title{font-weight:700;font-size:17px;color:#111827;margin-bottom:8px}.login-role-card__desc{flex:1;margin:0;font-size:13px;color:#6b7280;line-height:1.5}.login-role-card__cta{margin-top:20px;color:var(--login-role-accent);font-size:13px;font-weight:700}.login-role-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:none}.login-role-layout__guest{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:30px;padding-top:24px;border-top:1px solid #e2e8f0;color:#64748b;font-size:13px}.login-role-layout__guest a{color:#2563eb;font-weight:700;text-decoration:none}@media (max-width: 900px){.login-shell{padding:24px;padding-top:max(24px,var(--safe-top));padding-left:max(24px,var(--safe-left));padding-right:max(24px,var(--safe-right));padding-bottom:max(24px,var(--safe-bottom))}.login-auth-layout{width:min(480px,100%);display:block;overflow:visible;border:0;background:transparent;box-shadow:none}.login-aside{display:none}.login-auth-layout .login-card{border-radius:16px;padding:38px 36px;box-shadow:0 10px 36px #0f172a1a}.login-card__logo{display:block}.login-role-layout{width:min(560px,100%);padding:38px}.login-role-cards{grid-template-columns:1fr;gap:14px}.login-role-card{min-height:0}}@media (max-width: 520px){.login-shell{justify-content:flex-start;padding:16px;padding-top:max(16px,var(--safe-top));padding-left:max(16px,var(--safe-left));padding-right:max(16px,var(--safe-right));padding-bottom:max(16px,var(--safe-bottom))}.login-auth-layout .login-card{padding:30px 22px;border-radius:14px}.login-card__title{font-size:27px}.login-shell__footer{margin-top:18px;padding:0 10px}.login-role-card{width:100%}.login-role-layout{padding:30px 20px;border-radius:14px}.login-role-layout__head{margin-bottom:28px}.login-role-layout__head h1{font-size:32px}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:root{--bg: #0f1419;--surface: #1a2332;--border: #2d3a4d;--text: #e6edf3;--muted: #8b9cb3;--accent: #3b82f6;--success: #22c55e;--warn: #eab308;--danger: #ef4444;font-family:Segoe UI,system-ui,sans-serif;line-height:1.5;color:var(--text);background:var(--bg);--touch-min: 44px}[data-theme=light]{--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #0f172a;--muted: #64748b;--accent: #2563eb;--success: #16a34a;--warn: #ca8a04;--danger: #dc2626;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100vh;min-height:100dvh}#root{min-height:100vh;min-height:100dvh}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:.5rem 1rem;min-height:var(--touch-min);min-width:var(--touch-min)}@media (min-width: 768px){button{min-height:0;min-width:0}}@media (hover: hover){button:hover{background:#243044}}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{filter:brightness(1.1)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;width:100%;min-height:var(--touch-min)}@media (max-width: 767px){input,select,textarea{font-size:16px}}@media (min-width: 768px){input,select,textarea{min-height:0}}input::placeholder,textarea::placeholder{color:var(--muted)}input[type=checkbox],input[type=radio]{-moz-appearance:auto;appearance:auto;-webkit-appearance:auto;width:auto;min-height:0;padding:0;margin:0;border:none;border-radius:0;background:none;accent-color:var(--accent);flex:0 0 auto}label{display:block;font-size:.875rem;color:var(--muted);margin-bottom:.25rem}select{cursor:pointer}.prop-switcher{margin-bottom:4px}.prop-switcher__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.prop-switcher__pill{border:1px solid #e2e8f0;background:#fff;color:#374151;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500;cursor:pointer;min-height:0}.prop-switcher__pill--active{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8;font-weight:600}.prop-switcher__add{border:1px dashed #93c5fd;background:transparent;color:#2563eb;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;min-height:0}.prop-switcher__manage{margin-top:8px;background:none;border:none;padding:0;font-size:12px;color:#6b7280;cursor:pointer;min-height:0;text-decoration:underline}.prop-portfolio-card{text-align:left;width:100%;padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s}.prop-portfolio-card:hover{border-color:#2563eb}.prop-portfolio-card__name{font-weight:700;font-size:15px;color:#111827}.prop-portfolio-card__addr{font-size:12px;color:#6b7280;margin-top:4px}.prop-portfolio-card__stats{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:10px;font-size:12px;color:#374151}.prop-portfolio-card__warn{color:#dc2626;font-weight:600}.prop-portfolio-card__warranty{color:#b45309;font-weight:600}.portfolio-attention{margin-top:20px}.portfolio-attention__title{margin:0 0 10px;font-size:15px;font-weight:700;color:#111827}.portfolio-attention__list{list-style:none;margin:0;padding:0;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;background:#fff}.portfolio-attention__item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid #f1f5f9;font-size:13px;color:#374151}.portfolio-attention__item:first-child{border-top:none}.portfolio-attention__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.portfolio-attention__item--overdue .portfolio-attention__dot{background:#ef4444}.portfolio-attention__item--warranty .portfolio-attention__dot{background:#f59e0b}.portfolio-attention__main{flex:1;min-width:0}.portfolio-attention__where{color:#6b7280}.portfolio-attention__detail{flex-shrink:0;font-size:12px;color:#6b7280;white-space:nowrap}.portfolio-attention__more{margin:8px 0 0;font-size:12px;color:#6b7280}.prop-tech-link{font-size:13px;font-weight:600;color:#2563eb;text-decoration:none;padding:8px 14px;border:1px solid #93c5fd;border-radius:8px;background:#eff6ff}.prop-inline-link{background:none;border:none;padding:0;color:#2563eb;cursor:pointer;font-weight:600;font-size:13px;min-height:0}.prop-diy-badge{font-size:11px;background:#f0fdf4;color:#059669;border-radius:4px;padding:2px 6px}.prop-manage-row{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}@media (pointer: coarse){input,select,textarea{font-size:16px!important}}@media (max-width: 480px){.uml-label{display:none}}:root{--bp-sm: 480px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px;--touch-min: 44px;--spacing-touch: .75rem;--safe-top: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--safe-right: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--safe-bottom: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--safe-left: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--container-max: 1200px;--container-padding: 1rem}@media (min-width: 480px){:root{--container-padding: 1.25rem}}@media (min-width: 768px){:root{--container-padding: 1.5rem}}.tech-welcome-banner{margin:0;padding:.5rem var(--container-padding);padding-left:max(var(--container-padding),var(--safe-left));padding-right:max(var(--container-padding),var(--safe-right));font-size:.875rem;color:var(--muted);background:var(--surface, var(--bg));border-bottom:1px solid var(--border)}.tech-welcome-banner strong{color:var(--text);font-weight:600}.tech-welcome-banner__email{font-size:.8125rem}.lay-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.lay-header{flex-shrink:0;padding:var(--spacing-touch) var(--container-padding);padding-top:max(var(--spacing-touch),var(--safe-top));padding-left:max(var(--container-padding),var(--safe-left));padding-right:max(var(--container-padding),var(--safe-right));border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.75rem;background:var(--surface);position:sticky;top:0;z-index:50}@media (min-width: 768px){.lay-header{flex-direction:row;align-items:center;justify-content:space-between;padding-top:max(.625rem,var(--safe-top));padding-bottom:.625rem}}.lay-header__top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%}.lay-header__top-start{display:flex;align-items:center;gap:.75rem;min-width:0}@media (min-width: 768px){.lay-header__top{width:auto;flex:0 0 auto}}.lay-header__brand{margin:0;font-size:clamp(1.1rem,4vw,1.25rem);font-weight:600}.header-menu-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--touch-min);min-width:var(--touch-min);height:var(--touch-min);padding:0;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s}@media (hover: hover){.header-menu-btn:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:var(--accent)}}.header-menu-btn__icon{display:block}.lay-header__menu--mobile{display:inline-flex}@media (min-width: 768px){.lay-header__menu--mobile{display:none}}.equiptic-logo{flex-shrink:0}.lay-header__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.lay-header__actions a{font-size:.85rem;color:var(--muted);text-decoration:none;padding:.35rem .6rem;border-radius:6px;transition:color .12s,background .12s}@media (hover: hover){.lay-header__actions a:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;min-width:36px;height:36px;padding:0;font-size:16px;line-height:1;border-radius:8px;cursor:pointer;transition:background .12s,border-color .12s}@media (hover: hover){.theme-toggle:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:var(--accent)}}@media (min-width: 480px){.lay-header__actions{gap:.75rem}}.lay-header__date-input{width:auto;min-width:140px;font-size:.875rem}.lay-main{flex:1;width:100%;max-width:var(--container-max);margin:0 auto;padding:var(--container-padding);padding-bottom:max(var(--container-padding),var(--safe-bottom));overflow-x:hidden}.lay-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;padding:var(--container-padding);padding-left:max(var(--container-padding),var(--safe-left));padding-right:max(var(--container-padding),var(--safe-right));padding-bottom:max(var(--container-padding),var(--safe-bottom));display:flex;align-items:center;justify-content:center;overflow:auto}.resp-show-md{display:none}@media (min-width: 768px){.resp-show-md{display:block}}.resp-hide-md{display:block}@media (min-width: 768px){.resp-hide-md{display:none}}.resp-stack{display:flex;flex-direction:column;gap:.75rem}@media (min-width: 768px){.resp-stack{flex-direction:row;align-items:center}}.resp-grid-2{display:grid;gap:.75rem;grid-template-columns:1fr}@media (min-width: 480px){.resp-grid-2{grid-template-columns:repeat(2,1fr)}}.resp-grid-3{display:grid;gap:.75rem;grid-template-columns:1fr}@media (min-width: 480px){.resp-grid-3{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.resp-grid-3{grid-template-columns:repeat(3,1fr)}}.form-stack{display:flex;flex-direction:column;gap:1rem}.form-row-2{display:grid;gap:.75rem;grid-template-columns:1fr}@media (min-width: 480px){.form-row-2{grid-template-columns:1fr 1fr}}.form-row-inline{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.form-row-inline input{flex:1;min-width:120px}.mobile-menu.lay-overlay{align-items:flex-start;justify-content:flex-start;padding:0}.mobile-menu__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#00000059;min-height:0;min-width:0;border-radius:0;padding:0;animation:mobile-menu-backdrop-in .2s ease-out}@keyframes mobile-menu-backdrop-in{0%{opacity:0}to{opacity:1}}.mobile-menu__panel{position:fixed;z-index:101;top:calc(max(var(--safe-top),var(--spacing-touch)) + var(--touch-min) + .5rem);left:max(var(--container-padding),var(--safe-left));width:max-content;min-width:13rem;max-width:min(18rem,calc(100vw - max(var(--container-padding),var(--safe-left)) - 1rem));max-height:min(70dvh,calc(100dvh - 5rem));margin:0;background:var(--surface);border-radius:14px;border:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 40px #0003;animation:mobile-menu-panel-in .2s cubic-bezier(.2,.9,.3,1)}[data-theme=dark] .mobile-menu__panel{box-shadow:0 16px 48px #00000080}@keyframes mobile-menu-panel-in{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.mobile-menu__body{display:flex;flex-direction:column;gap:2px;padding:8px;overflow-y:auto;-webkit-overflow-scrolling:touch}.mobile-menu__body a,.mobile-menu__body button{width:100%;text-align:left;justify-content:flex-start;white-space:nowrap;padding:.7rem .9rem;min-height:var(--touch-min);border:none;background:transparent;border-radius:10px;font-size:.9rem;font-weight:500;color:var(--text);transition:background .12s,padding-left .12s}.mobile-menu__body a:hover,.mobile-menu__body button:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);padding-left:1.1rem}.mobile-menu__body a:active,.mobile-menu__body button:active{background:color-mix(in srgb,var(--accent) 14%,transparent)}.mobile-menu__section-label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:14px 12px 4px;margin-top:4px;border-top:1px solid var(--border)}.mobile-menu__section-label:first-child{border-top:none;margin-top:0;padding-top:8px}.lay-header__actions--desktop{display:none}.lay-header__actions--mobile{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;width:100%}.lay-header__actions--mobile input[type=date]{flex:1;min-width:0;font-size:.9rem}.lay-header__actions--mobile .primary{flex-shrink:0;font-size:.85rem;padding:.5rem .75rem;white-space:nowrap}@media (min-width: 768px){.lay-header__actions--desktop{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.lay-header__actions--mobile{display:none}}.tools-menu{position:relative}.tools-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.tools-menu__dropdown{position:absolute;right:0;top:calc(100% + 6px);z-index:21;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000001f;min-width:210px;overflow:hidden;padding:6px 0;animation:tools-menu-in .15s ease-out}[data-theme=dark] .tools-menu__dropdown{box-shadow:0 12px 32px #0006}@keyframes tools-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.tools-menu__divider{margin:4px 12px;border:none;border-top:1px solid var(--border)}.tools-menu-item{display:block;width:100%;padding:9px 16px;font-size:14px;color:var(--text);text-align:left;text-decoration:none;background:none;border:none;border-radius:0;cursor:pointer;transition:background .12s,padding-left .12s}.tools-menu-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);padding-left:20px}.tools-menu-item[aria-current=page]{font-weight:600;color:var(--accent)}html{overflow-x:hidden}body,#root{overflow-x:hidden;max-width:100%}.lay-shell,.portal-shell{max-width:100%;overflow-x:hidden}.portal-main,.lay-main,.modal-body,.overlay-panel__body{overflow-wrap:anywhere;word-break:break-word}img,video,svg,canvas{max-width:100%;height:auto}pre{max-width:100%;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.dash{display:flex;flex-direction:column;gap:1.25rem}@media (min-width: 768px){.dash{gap:1.5rem}}.dash-tip{padding:1rem 1.25rem;background:var(--surface);border-radius:12px;border:1px solid var(--border);font-size:.9rem;color:var(--muted)}.dash-overview{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:12px;padding:1.25rem 1.25rem 1rem;display:flex;flex-direction:column;gap:1rem;box-shadow:0 2px 8px #0000000f}[data-theme=dark] .dash-overview{box-shadow:0 4px 16px #00000040}.dash-overview__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1rem}.dash-overview__title{margin:0;font-size:clamp(1.2rem,3vw,1.55rem);font-weight:700}.dash-overview__eyebrow,.dash-section-heading__eyebrow{display:block;margin-bottom:.25rem;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.dash-overview__summary{max-width:42rem;margin:.3rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.5}.dash-range{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem}.dash-range__field{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--muted)}.dash-range__field input{font-size:.85rem;height:2.5rem;box-sizing:border-box}.dash-range__preset{font-size:.85rem;height:2.5rem;padding:0 .9rem;min-height:0;box-sizing:border-box;white-space:nowrap}@media (max-width: 640px){.dash-overview__head{flex-direction:column;align-items:stretch;gap:.6rem}.dash-range{align-items:flex-end;gap:.5rem}.dash-range__field{flex:1 1 0;min-width:0}.dash-range__field input{width:100%;box-sizing:border-box}}.dash-stats{display:flex;flex-wrap:wrap;gap:1rem}.dash-stats--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.75rem 1rem}.dash-stats--today{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.dash-stats--today .dash-stat{min-height:78px;display:flex;flex-direction:column;justify-content:space-between}.dash-stat--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent)}.dash-performance{border-top:1px solid var(--border);padding-top:.75rem}.dash-performance>summary{width:fit-content;cursor:pointer;color:var(--muted);font-size:.82rem;font-weight:600}.dash-performance__body{display:flex;flex-direction:column;gap:.9rem;margin-top:.9rem}@media (max-width: 700px){.dash-stats--today{grid-template-columns:repeat(2,minmax(0,1fr))}}.dash-stat{min-width:0;padding:.6rem .75rem;border-radius:8px;background:var(--bg);border:1px solid var(--border);border-bottom:2px solid var(--accent);transition:transform .15s,box-shadow .15s}@media (hover: hover){.dash-stat:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f61a}}.dash-stat-label{color:var(--muted);font-size:.75rem;display:block;text-transform:uppercase;letter-spacing:.3px;margin-bottom:.15rem}.dash-stat-value{font-size:clamp(1.2rem,3.5vw,1.45rem);font-weight:700;line-height:1.2}.dash-stat--clickable{cursor:pointer}@media (hover: hover){.dash-stat--clickable:hover{border-bottom-color:var(--success);box-shadow:0 4px 12px #3b82f626}}.dash-stat--clickable:active{transform:scale(.97)}.dash-stat-expanded{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.dash-stat-expanded__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem;font-weight:600;text-transform:capitalize}.job-history__lead{margin:.25rem 0 0;font-size:.85rem;color:var(--muted);max-width:42rem;line-height:1.45}.job-history__search{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--muted)}.job-history__search input{font-size:.9rem;width:100%;max-width:28rem}.job-history__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.job-history__card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem 1.15rem;display:flex;flex-direction:column;gap:.5rem}.job-history__card-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.35rem 1rem;font-size:.95rem}.job-history__date{font-size:.85rem;color:var(--muted);white-space:nowrap}.job-history__meta{color:var(--muted);font-size:.85rem}.job-history__equipment{margin:0;font-size:.9rem;font-weight:600}.job-history__desc{margin:0;font-size:.9rem;line-height:1.45}.job-history__details{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.2rem .75rem;font-size:.85rem}.job-history__details dt{color:var(--muted);font-weight:500}.job-history__details dd{margin:0}.job-history__parts{margin:0;padding-left:1.1rem;font-size:.85rem;color:var(--text)}.job-history__cost{margin:0;font-size:.9rem;font-weight:600}.job-history__passport{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.job-history__passport>div{display:flex;flex-direction:column;gap:.15rem;min-width:min(100%,18rem);flex:1}.job-history__passport strong{color:var(--text);font-size:.82rem}.job-history__passport span{color:var(--muted);font-size:.75rem;line-height:1.4}.job-history__passport button{min-height:var(--touch-min);font-size:.8rem}.job-history__passport--pending{border-color:#f59e0b59;background:#f59e0b12}.job-history__passport--claimed{border-color:#22c55e59;background:#22c55e12}.job-history__passport--email_failed{border-color:#ef444459;background:#ef444412}.job-history__passport--expired{border-color:#f59e0b59;background:#f59e0b12}.dash-schedule-title{margin:0;font-size:1rem;font-weight:600;padding-left:.25rem;border-left:3px solid var(--accent)}.dash-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:0 .25rem}.dash-section-heading .dash-schedule-title{padding-left:0;border-left:0}.dash-section-heading__count{color:var(--muted);font-size:.8rem;white-space:nowrap}.dash-slots{display:grid;gap:1rem}.dash-slot{background:var(--surface);border-radius:12px;border:1px solid var(--border);overflow:hidden;transition:box-shadow .15s}@media (hover: hover){.dash-slot:hover{box-shadow:0 2px 12px #00000014}[data-theme=dark] .dash-slot:hover{box-shadow:0 4px 16px #0000004d}}.dash-slot__head{padding:.75rem 1rem;border-bottom:1px solid var(--border);font-weight:600;font-size:.95rem;background:color-mix(in srgb,var(--accent) 4%,transparent)}.dash-slot__body{padding:.5rem}.dash-slot__empty{padding:1rem;color:var(--muted);font-size:.9rem}.dash-pending-requests{border-left:3px solid var(--warn);box-shadow:0 2px 8px #eab30814}[data-theme=dark] .dash-pending-requests{box-shadow:0 4px 16px #eab3080f}.dash-unassigned{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:1rem}.dash-unassigned h3{margin:0 0 .75rem;font-size:1rem}.dash-unassigned__list{display:flex;flex-direction:column;gap:.5rem}.dash-pending-requests__desc{margin:0 0 12px;font-size:13px;color:var(--muted);line-height:1.5}.dash-pending-requests__list{display:flex;flex-direction:column;gap:.5rem}.job-card{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;border-radius:8px;background:var(--bg);border:1px solid var(--border);margin-bottom:.5rem}@media (min-width: 480px){.job-card{flex-direction:row;align-items:flex-start}}.job-card__main{flex:1;min-width:0}.job-card__title{font-weight:600;margin-bottom:.25rem}.job-card__address{font-size:.85rem;color:var(--muted)}.job-card__property{margin:0 0 2px;color:var(--text);font-size:.85rem;font-weight:700}.job-card__equipment{margin-top:6px;color:var(--text);font-size:.82rem}.job-card__equipment span{color:var(--muted)}.job-card__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem}.job-card__actions select{min-width:0;width:100%}@media (min-width: 360px){.job-card__actions select{width:auto;min-width:100px}}.job-card__accept{width:100%;display:flex;flex-direction:column;gap:.5rem}.job-card__accept-fields{display:flex;flex-wrap:wrap;gap:.5rem}.job-card__accept-fields label{display:flex;flex-direction:column;gap:2px;font-size:.72rem;color:var(--muted);flex:1 1 120px}.job-card__accept-fields input,.job-card__accept-fields select{width:100%;min-width:0}.job-card__accept-actions{display:flex;gap:.5rem}.job-card__actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.job-card__badge{font-size:.8rem;padding:.2rem .5rem;border-radius:6px}.job-card__toolbar{display:flex;gap:.35rem;flex-shrink:0}.job-card__toolbar button{min-width:var(--touch-min);min-height:var(--touch-min)}@media (min-width: 768px){.job-card__toolbar button{min-width:0;min-height:0}}.job-card__emergency{margin-left:.5rem;font-size:.75rem;color:var(--danger);font-weight:500}.job-card__cost{font-size:.8rem;color:var(--text);margin-top:4px;font-weight:600}.job-card__issue{font-size:.8rem;color:var(--text);margin-top:6px;line-height:1.4}.job-card__request-type{font-size:.75rem;color:var(--muted);margin-top:4px}.job-card__equipment-link{font-size:.75rem;color:var(--accent);margin-top:2px}.job-card__visit-verification{display:grid;gap:5px;margin-top:8px}.job-card__visit-event{display:flex;flex-wrap:wrap;gap:4px 8px;padding:6px 8px;border:1px solid var(--border);border-radius:7px;font-size:.72rem;line-height:1.35}.job-card__visit-event span{color:var(--muted)}.job-card__visit-event--verified{border-color:color-mix(in srgb,var(--success) 35%,var(--border));background:color-mix(in srgb,var(--success) 8%,var(--surface))}.job-card__visit-event--verified strong{color:var(--success)}.job-card__visit-event--unverified{border-color:color-mix(in srgb,var(--warn) 40%,var(--border));background:color-mix(in srgb,var(--warn) 8%,var(--surface))}.job-card__visit-event--unverified strong{color:var(--warn)}.job-card__reminder{position:relative}.job-card__reminder-btn{font-size:.8rem;padding:.25rem .5rem}.job-card__reminder-dropdown{position:absolute;left:0;top:100%;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.35rem;z-index:11;display:flex;flex-direction:column;gap:2px;box-shadow:0 4px 12px #00000026}.job-card__reminder-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10}.job-card__reminder-label{display:flex;align-items:center;gap:.35rem;margin:0;cursor:pointer;min-height:var(--touch-min)}.job-card__reminder-text{font-size:.8rem;color:var(--muted)}.job-card__delete-btn{color:var(--danger)}.dash-booking-share{background:linear-gradient(135deg,#3b82f614,#22c55e0f);border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border));border-radius:12px;padding:20px 22px}[data-theme=light] .dash-booking-share{background:linear-gradient(135deg,#eff6ff,#f0fdf4);border-color:#bfdbfe}.dash-booking-share__icon{font-size:22px;margin-bottom:8px}.dash-booking-share__title{font-weight:700;font-size:15px;color:var(--accent);margin-bottom:6px}.dash-booking-share__desc{margin:0 0 14px;font-size:13px;color:var(--muted);line-height:1.6}[data-theme=light] .dash-booking-share__desc{color:#374151}.dash-booking-share__actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dash-booking-share__preview{font-size:13px;color:var(--accent);text-decoration:none}.dash-booking-share__preview:hover{text-decoration:underline}.overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100;padding:var(--container-padding);padding-left:max(var(--container-padding),var(--safe-left));padding-right:max(var(--container-padding),var(--safe-right));padding-top:max(var(--container-padding),var(--safe-top));padding-bottom:max(var(--container-padding),var(--safe-bottom));display:flex;align-items:center;justify-content:center;overflow-y:auto;-webkit-overflow-scrolling:touch}.overlay-panel{background:var(--surface);border-radius:12px;border:1px solid var(--border);width:100%;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 2 * var(--container-padding));overflow:hidden;display:flex;flex-direction:column}@media (min-width: 480px){.overlay-panel{max-width:420px;max-height:90vh;max-height:90dvh}}.overlay-panel--wide{max-width:420px}@media (min-width: 480px){.overlay-panel--wide{max-width:480px}}.overlay-panel__header{flex-shrink:0;padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:.75rem}.overlay-panel__title{margin:0;font-size:clamp(1rem,3vw,1.1rem)}.overlay-panel__body{flex:1;overflow-y:auto;min-height:0;padding:1.25rem;display:flex;flex-direction:column}.overlay-panel__footer{flex-shrink:0;padding:1rem 1.25rem;border-top:1px solid var(--border);display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}.overlay-panel__close{min-width:var(--touch-min);min-height:var(--touch-min);padding:0;display:inline-flex;align-items:center;justify-content:center}@media (min-width: 768px){.overlay-panel__close{min-width:0;min-height:0}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:200;padding:var(--container-padding);padding-left:max(var(--container-padding),var(--safe-left));padding-right:max(var(--container-padding),var(--safe-right));padding-top:max(var(--container-padding),var(--safe-top));padding-bottom:max(var(--container-padding),var(--safe-bottom));display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-overflow-scrolling:touch}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 2 * var(--container-padding));display:flex;flex-direction:column;overflow:hidden}@media (min-width: 480px){.modal{max-height:92dvh}}.modal-header{flex-shrink:0;padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:.75rem}.modal-header h2{margin:0;font-size:clamp(1rem,3vw,1.1rem);color:var(--text)}.modal-body{flex:1;overflow-y:auto;padding:1.25rem;-webkit-overflow-scrolling:touch;min-height:0}.modal-footer{flex-shrink:0;padding:.75rem 1.25rem 1.25rem;border-top:1px solid var(--border)}.modal--passport{height:min(75dvh,680px)}.modal--passport .modal-body--passport{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}@media (max-width: 639px){.modal-backdrop:has(.modal--scroll-form){align-items:flex-end;justify-content:center;padding:0;padding-bottom:env(safe-area-inset-bottom,0)}.modal-backdrop .modal--scroll-form{width:100%;max-width:100%;max-height:min(92dvh,calc(100dvh - env(safe-area-inset-top,0px)));height:min(92dvh,calc(100dvh - env(safe-area-inset-top,0px)));border-radius:16px 16px 0 0;border-bottom:none;margin:0}.modal-backdrop .modal--scroll-form .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-backdrop .modal--scroll-form .modal-footer{flex-shrink:0;padding-bottom:max(.75rem,env(safe-area-inset-bottom,0px))}}.modal-body__loading{display:flex;align-items:center;justify-content:center;min-height:100%;color:var(--muted);font-size:14px}.modal-tabs{display:flex;flex-shrink:0;overflow-x:auto;border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch}.modal-tabs__btn{border:none;border-bottom:2px solid transparent;background:none;border-radius:0;padding:10px 14px;font-size:13px;white-space:nowrap;font-weight:400;color:var(--muted);cursor:pointer;min-height:0;flex-shrink:0;font-family:inherit}.modal-tabs__btn--active{border-bottom-color:var(--accent);font-weight:600;color:var(--accent)}.modal-close{min-width:var(--touch-min);min-height:var(--touch-min);padding:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--muted);font-size:1rem;cursor:pointer}@media (min-width: 768px){.modal-close{min-width:0;min-height:0}}.form-grid-2{display:grid;gap:.75rem;grid-template-columns:1fr}@media (min-width: 480px){.form-grid-2{grid-template-columns:1fr 1fr}}.stat-row{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}@media (min-width: 600px){.stat-row{grid-template-columns:repeat(4,1fr)}}.diagnose-dropzone{border:2px dashed var(--border);border-radius:8px;padding:16px;text-align:center;cursor:pointer;background:var(--bg);width:100%;box-sizing:border-box;min-height:120px;max-height:240px;display:flex;align-items:center;justify-content:center;overflow:hidden}.diagnose-dropzone--has-image{background:#000;padding:8px}.diagnose-dropzone__img{display:block;max-height:220px;max-width:100%;width:auto;height:auto;object-fit:contain;border-radius:6px}.diagnose-preview-compact{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.diagnose-preview-compact__img{width:52px;height:52px;object-fit:cover;border-radius:6px;flex-shrink:0;display:block}.diagnose-preview-compact__label{flex:1;min-width:0;font-size:13px;color:var(--muted)}.diagnose-native-preview{width:100%;max-height:240px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:8px;background:#000}.diagnose-native-preview__img{display:block;max-height:220px;max-width:100%;width:auto;height:auto;object-fit:contain;border-radius:8px}.book-page{min-height:100vh;min-height:100dvh;padding:var(--container-padding);padding-left:max(var(--container-padding),var(--safe-left));padding-right:max(var(--container-padding),var(--safe-right));display:flex;align-items:center;justify-content:center}.book-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;max-width:420px;width:100%}.book-card--success{border-color:var(--success)}.book-card--error{border-color:var(--danger)}.book-card h1{margin:0 0 .5rem;font-size:1.25rem}.book-sub,.book-muted{color:var(--muted);font-size:.9rem;margin:0 0 1rem}.book-slots{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.book-slot{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;cursor:pointer;background:var(--bg)}.book-slot input{width:auto;margin:0}.book-slot--full{opacity:.6;cursor:not-allowed}.book-slot small{color:var(--muted);font-size:.8rem;margin-left:.25rem}.book-privacy-notice{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;font-size:12px;line-height:1.55;color:var(--muted)}.book-privacy-notice input{margin-top:3px;flex-shrink:0;width:auto}.book-privacy-notice a{color:var(--accent)}.book-actions{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.book-card a{color:var(--accent);font-size:.9rem}.book-card a:hover{text-decoration:underline}.book-card--wide{max-width:640px}.book-back{display:inline-block;background:none;border:none;padding:0;margin:0 0 12px;color:var(--accent);font-size:.85rem;cursor:pointer;min-height:0;text-decoration:none}.book-back:hover{text-decoration:underline}.book-tech-section{margin-bottom:24px}.book-tech-section__title{margin:0 0 4px;font-size:1rem;font-weight:700}.book-tech-grid{display:flex;flex-direction:column;gap:10px;margin-top:12px}.book-tech-card{text-align:left;width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--bg);cursor:pointer;transition:border-color .15s}.book-tech-card:hover{border-color:var(--accent)}.book-tech-card__name{font-weight:700;font-size:.95rem;color:var(--text)}.book-tech-card__area{font-size:.85rem;color:var(--muted);margin-top:4px}.book-tech-card__cta{font-size:.8rem;color:var(--accent);margin-top:8px;font-weight:600}.book-empty{text-align:center;padding:24px 12px;color:var(--muted);font-size:.9rem}.book-empty code{font-size:.8rem;background:var(--bg);padding:2px 6px;border-radius:4px}.book-empty a{display:inline-block;margin-top:16px}.book-find-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.book-find-signup{font-size:.85rem;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap;padding-top:4px}.book-find-signup:hover{text-decoration:underline}.book-search{margin-bottom:24px}.book-search__label{display:block;font-size:.85rem;font-weight:600;margin-bottom:8px;color:var(--text)}.book-search__input{width:100%;font-size:1rem;padding:12px 14px;border-radius:10px;border:1px solid var(--border)}.book-search__meta{margin:8px 0 0;font-size:.82rem;color:var(--muted)}.book-search__clear{margin-top:12px;background:none;border:none;padding:0;color:var(--accent);font-size:.9rem;font-weight:600;cursor:pointer;min-height:0}.book-search__clear:hover{text-decoration:underline}.book-tech-card__zips{font-size:.75rem;color:var(--muted);margin-top:4px}.book-empty--error{color:var(--danger);background:#ef44440f;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:12px}.book-tech-card--external{display:block;text-decoration:none;color:inherit}.book-tech-card--external:hover{text-decoration:none}.book-google-attribution{margin:12px 0 0;font-size:.75rem;color:var(--muted)}.book-google-attribution a{color:var(--muted);text-decoration:underline}@media print{.lay-header,.lay-header *,.dash-tip,.job-card__toolbar,button,.no-print{display:none!important}.lay-shell{min-height:auto}.lay-main{max-width:none;padding:0}.dash-slot,.dash-unassigned,.job-card{break-inside:avoid;border:1px solid #333;box-shadow:none;background:#fff;color:#111}.job-card__title,.job-card__address{color:#111}.job-card__address{color:#444}body,#root{background:#fff}a[href]:after{content:none}}.portal-shell{min-height:100vh;min-height:100dvh;background:#f8fafc;display:flex;flex-direction:column}.portal-shell .portal-main{flex:1 1 auto;min-height:0}.portal-workspace{flex:1 1 auto;min-height:0;width:100%}.portal-sidebar{display:none}.portal-header{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid #e2e8f0;padding:max(12px,var(--safe-top)) max(var(--container-padding),var(--safe-left)) 12px max(var(--container-padding),var(--safe-right))}.portal-header__inner{max-width:900px;margin:0 auto;width:100%;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 16px}.portal-header__brand{font-weight:800;font-size:clamp(1.1rem,4vw,1.25rem);color:#1e40af}.portal-header__sub{font-size:11px;color:#6b7280;margin-top:2px}.portal-header__link{font-size:13px;color:#2563eb;text-decoration:none;font-weight:500;min-height:var(--touch-min);display:inline-flex;align-items:center}.portal-main{max-width:900px;margin:0 auto;padding:var(--container-padding);padding-left:max(var(--container-padding),var(--safe-left));padding-right:max(var(--container-padding),var(--safe-right));padding-bottom:max(24px,var(--safe-bottom));display:flex;flex-direction:column;gap:20px;width:100%;box-sizing:border-box}.portal-main>*{min-width:0;width:100%}@media (min-width: 1024px){.portal-workspace{display:grid;grid-template-columns:184px minmax(0,1fr);max-width:1180px;margin:0 auto;align-items:stretch}.portal-sidebar{display:block;border-right:1px solid #e2e8f0;background:#fff;padding:24px 14px}.portal-sidebar__nav{position:sticky;top:92px;display:flex;flex-direction:column;gap:5px}.portal-sidebar__item{width:100%;min-height:42px;display:flex;align-items:center;gap:10px;padding:9px 11px;border:0;border-radius:8px;background:transparent;color:#475569;font:inherit;font-size:13px;font-weight:600;text-align:left;cursor:pointer}.portal-sidebar__item:hover,.portal-sidebar__item:focus-visible{background:#f1f5f9;color:#0f4c81}.portal-sidebar__item--active{background:#eff6ff;color:#1d4ed8}.portal-sidebar__item:disabled{opacity:.45;cursor:not-allowed}.portal-sidebar__icon{width:20px;height:20px;border:1px solid currentColor;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;font-size:12px;line-height:1}.portal-workspace .portal-main{max-width:none;margin:0;padding:24px 28px 40px}#portal-dashboard,#portal-properties,#portal-service,#home-maintenance-all,#home-equipment-all{scroll-margin-top:96px}}.portal-document-picker{max-width:480px}.portal-document-picker__hint{margin:4px 0 0;color:var(--muted);font-size:13px}.portal-document-picker__list{display:grid;gap:9px}.portal-document-picker__item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:13px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised, #fff);color:var(--muted);font:inherit;font-size:12px;text-align:left;cursor:pointer}.portal-document-picker__item:hover,.portal-document-picker__item:focus-visible{border-color:#3b82f6;background:#eff6ff}.portal-document-picker__item-main{color:var(--text);font-size:14px;font-weight:700}.portal-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px}.portal-card--empty{text-align:center;padding:32px 20px;color:#6b7280}.portal-section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;gap:12px;flex-wrap:wrap}.portal-section-title{margin:0;font-size:clamp(1rem,3vw,1.125rem);font-weight:700}.portal-section-sub{margin:4px 0 0;font-size:13px;color:#6b7280}.guest-intro-card{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(260px,.88fr);overflow:hidden;border:1px solid #dbe4ee;border-radius:16px;background:#fff;box-shadow:0 14px 34px #0f264a0f}.guest-intro-card__content{padding:clamp(24px,4vw,38px)}.guest-intro-card__eyebrow,.guest-empty-state>div>span{display:block;margin-bottom:9px;color:#0e7490;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.guest-intro-card h2,.guest-empty-state h2{margin:0;color:#10213c;font-size:clamp(21px,3vw,28px);line-height:1.18;letter-spacing:-.025em}.guest-intro-card__content>p,.guest-empty-state p{margin:12px 0 0;color:#536278;font-size:14px;line-height:1.65}.guest-intro-card__features{display:grid;gap:8px;margin:18px 0;padding:0;list-style:none}.guest-intro-card__features li{position:relative;padding-left:22px;color:#334155;font-size:13px;line-height:1.5}.guest-intro-card__features li:before{position:absolute;left:0;content:"✓";color:#0e7490;font-weight:800}.guest-intro-card__consent{display:flex;gap:10px;align-items:flex-start;color:#475569;font-size:12px;line-height:1.6;cursor:pointer}.guest-intro-card__consent input{width:18px;height:18px;flex:0 0 auto;margin-top:1px;accent-color:#2563eb}.guest-intro-card__consent a{color:#2563eb;font-weight:650}.guest-intro-card__continue{min-height:44px;margin:16px 0 12px;padding-inline:20px;font-size:14px}.guest-intro-card__media{position:relative;display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:1fr 1fr;gap:5px;min-height:420px;padding:9px;background:linear-gradient(150deg,#0a1c38,#124c78)}.guest-intro-card__media img{width:100%;height:100%;min-height:0;display:block;border-radius:9px;object-fit:cover}.guest-intro-card__media-primary{grid-row:1 / 3}.guest-intro-card__media>span{position:absolute;inset:auto 18px 18px;padding:10px 12px;border:1px solid rgba(255,255,255,.16);border-radius:8px;color:#ffffffd1;background:#05172fe6;font-size:11px;line-height:1.45}.guest-intro-card__media strong{color:#fff}.guest-empty-state{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1.35fr);gap:28px;align-items:center;overflow:hidden;padding:12px;border:1px dashed #b9c9dc;border-radius:14px;background:#f8fbff}.guest-empty-state>img{width:100%;height:210px;display:block;border-radius:10px;object-fit:cover}.guest-empty-state>div{padding:20px 24px 20px 0}.guest-empty-state p{max-width:460px;margin-bottom:18px}.guest-portal-head{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}.guest-portal-head__actions{display:flex;flex-direction:column;gap:10px;width:100%}.guest-portal-head__add{width:100%;font-size:14px}@media (min-width: 560px){.guest-portal-head{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:16px}.guest-portal-head__actions{width:min(100%,280px);flex-shrink:0}.guest-portal-head__add{width:100%}}.guest-account-ctas{display:flex;gap:8px}.guest-account-ctas--stacked{flex-direction:column}.guest-account-ctas--inline{flex-direction:row;flex-wrap:wrap}.guest-account-ctas__signup,.guest-account-ctas__signin{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;font-size:13px;font-weight:600;line-height:1.3;text-align:center;text-decoration:none;border-radius:8px;box-sizing:border-box}.guest-account-ctas__signup{flex:1;min-width:0;color:#fff;background:#2563eb}.guest-account-ctas__signup:hover{filter:brightness(1.08)}.guest-account-ctas__signin{flex:0 0 auto;color:#2563eb;background:#fff;border:1px solid #cbd5e1}.guest-account-ctas__signin:hover{background:#f1f5f9}.guest-account-ctas--stacked .guest-account-ctas__signup,.guest-account-ctas--stacked .guest-account-ctas__signin{width:100%;flex:none}.guest-account-ctas--inline .guest-account-ctas__signup{flex:1 1 12rem}.guest-account-ctas--inline .guest-account-ctas__signin{flex:0 0 auto;min-width:5.5rem}.guest-mode-banner .guest-account-ctas{margin-top:2px}.portal-equipment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px}.portal-equipment-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.portal-equipment-card__img{width:100%;height:110px;object-fit:cover}.portal-equipment-card__body{padding:12px 14px}.portal-equipment-card__actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.portal-equipment-card__actions button,.portal-equipment-card__actions a{flex:1 1 calc(50% - 6px);font-size:12px;padding:8px 6px;min-height:var(--touch-min)}.portal-btn-ai{flex:1 1 100%!important;background:#faf5ff!important;border:1px solid #d8b4fe!important;color:#7c3aed!important}.svc-tech-results{margin-top:6px;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff}.svc-tech-hint{padding:8px 12px;font-size:12px;color:#6b7280}.svc-tech-result{display:block;width:100%;text-align:left;padding:9px 12px;border:none;border-top:1px solid #f1f5f9;background:#fff;font-size:13px;color:#374151;cursor:pointer;min-height:0}.svc-tech-result:first-child{border-top:none}.svc-tech-result:hover{background:#f8fafc}.svc-tech-result__loc{color:#6b7280}.svc-tech-selected{font-size:12px;color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:8px 10px}.svc-tech-change{margin-left:8px;background:none;border:none;padding:0;font-size:12px;color:#2563eb;text-decoration:underline;cursor:pointer}.svc-tech-emaillink{align-self:flex-start;background:none;border:none;padding:0;font-size:12px;color:var(--accent, #2563eb);cursor:pointer}.passport-sec{border:1px solid var(--border);border-radius:8px;overflow:hidden}.passport-sec__head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:var(--bg);border:none;font-weight:600;font-size:13px;color:var(--text);cursor:pointer;min-height:0;text-align:left}.passport-sec--open .passport-sec__head{border-bottom:1px solid var(--border)}.passport-sec__caret{display:inline-block;font-size:10px;color:var(--muted);transition:transform .15s ease;flex-shrink:0}.passport-sec__caret--open{transform:rotate(90deg)}.eq-photos__toggle{display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;min-height:0;cursor:pointer;color:var(--text);font:inherit}.eq-photos{border:1px solid var(--border);border-radius:8px;padding:12px 14px}.eq-photos__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.eq-photos__head strong{font-size:13px}.eq-photos__head button{min-height:0;font-size:12px;padding:6px 10px}.eq-photos__empty{font-size:12px;color:var(--muted)}.eq-photos__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.eq-photos__item{position:relative}.eq-photos__thumb{width:100%;aspect-ratio:1 / 1;padding:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;min-height:0;cursor:pointer;background:var(--bg)}.eq-photos__thumb img{width:100%;height:100%;object-fit:cover;display:block}.eq-photos__label{display:block;margin-top:4px;font-size:11px;color:var(--muted);text-align:center;line-height:1.3}.eq-photos__remove{position:absolute;top:4px;right:4px;width:24px;height:24px;min-height:0;min-width:0;padding:0;border-radius:999px;background:#0009;color:#fff;border:none;font-size:12px;line-height:1}.eq-photos__lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:24px}.eq-photos__lightbox img{max-width:100%;max-height:100%;border-radius:8px}.portal-eq-groups{display:flex;flex-direction:column;gap:12px}.portal-eq-group{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff;border-left-width:4px}.portal-eq-group--equipment{border-color:#a7f3d0;border-left-color:#10b981}.portal-eq-group--equipment .portal-eq-group__head{background:#ecfdf5;color:#065f46}.portal-eq-group--equipment .portal-eq-group__count{color:#047857;background:#d1fae5}.portal-eq-group--equipment .portal-eq-group__body{border-top-color:#a7f3d0}.portal-eq-group--property-violet{border-color:#ddd6fe;border-left-color:#8b5cf6}.portal-eq-group--property-violet .portal-eq-group__head{background:#f5f3ff;color:#5b21b6}.portal-eq-group--property-violet .portal-eq-group__count{color:#6d28d9;background:#ede9fe}.portal-eq-group--property-violet .portal-eq-group__body{border-top-color:#ddd6fe}.portal-eq-group--property-teal{border-color:#99f6e4;border-left-color:#14b8a6}.portal-eq-group--property-teal .portal-eq-group__head{background:#f0fdfa;color:#115e59}.portal-eq-group--property-teal .portal-eq-group__count{color:#0f766e;background:#ccfbf1}.portal-eq-group--property-teal .portal-eq-group__body{border-top-color:#99f6e4}.portal-eq-group--unassigned{border-color:#e2e8f0;border-left-color:#94a3b8}.portal-eq-group--unassigned .portal-eq-group__head{background:#f8fafc;color:#475569}.portal-eq-group--unassigned .portal-eq-group__count{color:#64748b;background:#e2e8f0}.portal-eq-group--unassigned .portal-eq-group__body{border-top-color:#e2e8f0}.portal-eq-group__head{width:100%;display:flex;align-items:center;gap:8px;padding:12px 14px;border:none;font-size:14px;font-weight:700;cursor:pointer;min-height:0;text-align:left}.portal-eq-group__title{flex:1;min-width:0}.portal-eq-group__count{font-size:12px;font-weight:600;border-radius:999px;padding:2px 8px;flex-shrink:0}.portal-eq-group__warn{font-size:11px;font-weight:600;color:#b91c1c;background:#fee2e2;border-radius:999px;padding:2px 8px;flex-shrink:0}.portal-eq-group__caret{margin-left:auto;font-size:12px;color:inherit;opacity:.65;transition:transform .15s;flex-shrink:0}.portal-eq-group__caret--open{transform:rotate(90deg)}.portal-eq-group__body{border-top:1px solid #eef2f7}.portal-eq-group--collapsed .portal-eq-group__body{padding:8px 14px 10px}.portal-eq-group__summary{margin:0;font-size:12px;color:#9ca3af;line-height:1.45}.portal-eq-row{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;border:none;border-top:1px solid #f1f5f9;background:#fff;cursor:pointer;min-height:0;text-align:left}.portal-eq-row:first-of-type{border-top:none}.portal-eq-row:hover{background:#f8fafc}.portal-eq-row__name{font-size:13px;font-weight:600;color:#0f172a}.portal-eq-row__loc{font-size:12px;color:#6b7280}.portal-eq-row__overdue{margin-left:auto;font-size:11px;font-weight:600;color:#dc2626;background:#fef2f2;border-radius:999px;padding:2px 8px}.portal-eq-row__caret{margin-left:auto;color:#9ca3af;font-size:14px}.portal-eq-row__overdue+.portal-eq-row__caret{margin-left:8px}.portal-eq-unit{border-top:1px solid #f1f5f9}.portal-eq-unit--overdue{border-left:3px solid #ef4444;margin-left:-1px}.portal-eq-unit__summary{margin:0;padding:8px 14px 10px 28px;font-size:12px;color:#9ca3af;line-height:1.45}.portal-eq-unit--collapsed .portal-eq-unit__body{padding:0}.portal-eq-row--unit{padding-left:28px;cursor:default}.portal-eq-row--unit:hover{background:#fff}.portal-eq-row__toggle{flex:1;display:flex;align-items:center;gap:10px;padding:0;border:none;background:none;cursor:pointer;min-height:0;text-align:left}.portal-eq-row__toggle:hover{opacity:.85}.portal-eq-row__toggle .portal-eq-group__caret{margin-left:0;margin-right:0}.portal-eq-row__meta{font-size:11px;font-weight:600;color:#6b7280;background:#f1f5f9;border-radius:999px;padding:2px 8px}.portal-eq-row__open{margin-left:auto;font-size:12px;font-weight:600;color:#2563eb;background:none;border:none;cursor:pointer;padding:4px 8px;min-height:0;flex-shrink:0}.portal-eq-row__open:hover{text-decoration:underline}.portal-eq-unit__body{padding:0 14px 10px 42px;background:#fafbfc}.portal-eq-unit__empty{font-size:12px;color:#9ca3af;padding:8px 0}.portal-task-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin-bottom:6px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.portal-task-row--overdue{border-color:#fca5a5;background:#fffbfb}.portal-task-row--soon{border-color:#fcd34d;background:#fffdf5}.portal-task-row--later{border-color:#93c5fd;background:#f8fbff}.portal-task-row__main{flex:1;min-width:0}.portal-task-row__name{font-size:13px;font-weight:600;color:#0f172a}.portal-task-row__desc{font-size:12px;color:#6b7280;margin-top:2px;line-height:1.4}.portal-task-row__desc-wrap .maintenance-task-desc__text{color:#6b7280}.maintenance-task-desc__text{margin:0;font-size:12px;line-height:1.55;color:var(--muted);white-space:pre-wrap;word-break:break-word}.maintenance-task-desc__toggle{margin-top:4px;padding:0;border:none;background:none;font-size:11px;font-weight:600;color:var(--accent, #2563eb);cursor:pointer}.maintenance-task-modal__description{min-height:5rem;resize:vertical}.maintenance-task-modal__diy-check{display:flex;flex-direction:column;gap:4px;padding-top:1.25rem;font-size:13px}.maintenance-task-modal__diy-hint{font-size:11px;color:var(--muted);line-height:1.4}.passport-task-row__content{flex:1;min-width:0;width:100%}.passport-task-row__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px}.passport-task-row__title-line{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1;min-width:0}.passport-task-row__name{font-weight:600;font-size:13px;color:var(--text)}.passport-task-row__priority{font-size:11px;font-weight:600;background:#ffffff0f;border-radius:4px;padding:1px 6px;text-transform:capitalize}.passport-task-row__diy-badge{font-size:11px;color:var(--success);background:#22c55e1f;border-radius:4px;padding:1px 6px}.passport-task-row__critical-badge{font-size:11px;color:#f97316;background:#f973161f;border-radius:4px;padding:1px 6px}.passport-task-row__actions{flex-shrink:0}.passport-task-row__edit-only{font-size:12px;flex-shrink:0}.maintenance-task-diy{margin-top:10px;padding:10px 12px;border:1px solid rgba(34,197,94,.35);border-radius:8px;background:#22c55e0f;min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.maintenance-task-diy__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.maintenance-task-diy__label{font-size:12px;font-weight:700;color:#15803d;text-transform:uppercase;letter-spacing:.04em}.maintenance-task-diy__toggle{font-size:11px;padding:0;border:none;background:none;color:var(--accent, #2563eb);cursor:pointer}.how-to-videos__trigger{margin:0 0 8px;padding:0;border:none;background:none;color:var(--accent, #2563eb);font-size:12px;font-weight:600;cursor:pointer}.how-to-videos{margin-bottom:10px}.how-to-videos__status{margin:0 0 8px;font-size:12px;color:var(--muted)}.how-to-videos__retry,.how-to-videos__play{border:none;background:none;color:var(--accent, #2563eb);cursor:pointer;padding:0;font:inherit}.how-to-videos__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;list-style:none;margin:0;padding:0}.how-to-videos__item{min-width:0}.how-to-videos__thumb{position:relative;display:block;width:100%;padding:0;border:none;border-radius:6px;overflow:hidden;cursor:pointer;background:#0000000d;aspect-ratio:16 / 9}.how-to-videos__thumb img{width:100%;height:100%;object-fit:cover;display:block}.how-to-videos__thumb .how-to-videos__play{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0009;color:#fff;font-size:16px;cursor:pointer}.how-to-videos__player{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:6px;overflow:hidden}.how-to-videos__player iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.how-to-videos__meta{display:flex;flex-direction:column;gap:2px;margin-top:4px}.how-to-videos__title{font-size:12px;line-height:1.3;color:var(--text, #1f2937);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.how-to-videos__channel{font-size:11px;color:var(--muted)}.maintenance-task-diy__empty p{margin:0 0 10px;font-size:12px;line-height:1.5;color:var(--muted)}.maintenance-task-diy__cta{width:100%;font-size:13px}.maintenance-task-diy__cta--inline{width:auto;max-width:100%;margin-top:8px;font-size:12px;padding:6px 12px;box-sizing:border-box}@media (max-width: 639px){.maintenance-task-diy__cta--inline{width:100%}}.maintenance-task-diy__guided{width:100%;margin-bottom:10px;padding:9px 12px;font-size:13px;font-weight:600;color:#6d28d9;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:10px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.maintenance-task-diy__guided:hover{background:#ede9fe;border-color:#c4b5fd}.maintenance-task-diy__link{margin-top:8px;padding:0;border:none;background:none;font-size:12px;color:var(--accent, #2563eb);cursor:pointer}.maintenance-task-diy__pro-note{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}.maintenance-task-diy__steps-section{margin-top:10px}.part-compare-trigger{margin-top:8px;padding:0;border:none;background:none;font-size:12px;font-weight:600;color:var(--accent);cursor:pointer;text-align:left}.part-compare-trigger--inline{display:block;margin-top:10px}.part-compare-trigger--compact{margin-top:4px;font-size:11px}.part-compare-trigger--prominent{display:inline-flex;align-items:center;margin-top:10px;padding:6px 12px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:6px;background:color-mix(in srgb,var(--accent) 8%,transparent);font-size:13px}.part-compare-trigger--prominent:hover{background:color-mix(in srgb,var(--accent) 14%,transparent)}.part-compare-modal__subtitle{margin:4px 0 0;font-size:13px;font-weight:500;color:var(--muted)}.part-compare-modal__body{display:flex;flex-direction:column;gap:16px}.part-compare-spec{padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised, var(--bg))}.part-compare-spec__equipment{margin:0 0 8px;font-size:12px;font-weight:700;color:var(--text)}.part-compare-spec__list{margin:0;padding-left:18px;font-size:13px;line-height:1.5;color:var(--text)}.part-compare-spec__saved{margin:10px 0 0;font-size:12px;font-weight:600;color:var(--accent)}.part-compare-spec__diy-cta{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%)}.part-compare-spec__form-hint{margin:0 0 10px;font-size:12px;color:var(--muted);line-height:1.45}.part-compare-spec__dims{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:8px}.part-compare-spec__field{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--muted)}.part-compare-spec__field--full{margin-bottom:8px}.part-compare-spec__field .field-input{font-size:13px}.part-compare-spec__error{margin:0 0 8px;font-size:12px;color:var(--danger)}.part-compare-spec__form-actions{display:flex;flex-wrap:wrap;gap:8px}.part-compare-spec__confirm{margin:10px 0 0;padding:8px 10px;border-radius:8px;background:#eab3081f;font-size:12px;line-height:1.45;color:var(--text)}.part-compare-merchants__title{margin:0 0 4px;font-size:13px;font-weight:700}.part-compare-merchants__hint{margin:0 0 10px;font-size:12px;line-height:1.45;color:var(--muted)}.part-compare-merchants__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.part-compare-merchant-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:600;color:var(--text);text-decoration:none;background:var(--surface-raised, var(--bg))}.part-compare-merchant-link:hover{border-color:var(--accent);color:var(--accent)}.part-compare-merchant-link__arrow{font-size:14px;opacity:.7}.part-compare-disclosure{margin:0;font-size:11px;line-height:1.45;color:var(--muted)}.part-compare-offers__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.part-compare-offers__title{margin:0;font-size:13px;font-weight:700}.part-compare-offers__sort select{min-width:148px;font-size:12px;padding:6px 8px}.part-compare-offers__hint{margin:0 0 10px;font-size:12px;line-height:1.45;color:var(--muted)}.part-compare-offers__table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.part-compare-offers__table{width:100%;border-collapse:collapse;font-size:12px}.part-compare-offers__table th,.part-compare-offers__table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.part-compare-offers__table th{font-size:11px;font-weight:700;color:var(--muted);background:var(--surface-raised, var(--bg))}.part-compare-offers__table tr:last-child td{border-bottom:none}.part-compare-offers__brand{display:block;font-weight:700;color:var(--text)}.part-compare-offers__title{display:block;margin-top:2px;color:var(--muted);line-height:1.35}.part-compare-offers__pack{display:inline-block;margin-top:4px;padding:2px 6px;border-radius:4px;background:#94a3b826;font-size:10px;font-weight:600;color:var(--muted)}.part-compare-offers__price{font-weight:700;white-space:nowrap}.part-compare-offers__link{font-size:12px;font-weight:600;color:var(--accent);text-decoration:none;white-space:nowrap}.part-compare-offers__link:hover{text-decoration:underline}.part-compare-offers__live-badge{margin:8px 0 0;font-size:11px;font-weight:600;color:#15803d}.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}.diy-guide--compact{margin:0;padding:0;border:none;background:transparent;font-size:12px;line-height:1.5;max-width:100%}.diy-guide--compact .diy-guide__header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-bottom:8px}.diy-guide--compact .diy-guide__header h3{margin:0;font-size:13px;font-weight:700;line-height:1.35;flex:1 1 100%;color:var(--text)}.diy-guide--compact .diy-guide__badge{font-size:11px}.maintenance-task-diy .diy-guide--compact .diy-disclaimer,.maintenance-task-diy .diy-guide--compact .diy-guide__warn{margin:8px 0;padding:8px 10px;font-size:11px;line-height:1.45}.maintenance-task-diy .diy-guide--compact .diy-guide__warn ul,.maintenance-task-diy .diy-guide--compact .diy-guide__meta ul{margin:6px 0 0;padding-left:18px}.maintenance-task-diy .diy-guide--compact .diy-guide__meta{display:flex;flex-direction:column;gap:8px;margin:8px 0}.maintenance-task-diy .diy-guide--compact .diy-guide__meta strong,.maintenance-task-diy .diy-guide--compact .maintenance-task-diy__steps-section>strong,.maintenance-task-diy .diy-guide--compact .diy-guide__parts>strong{display:block;margin-bottom:4px;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--text)}.maintenance-task-diy .diy-guide--compact .diy-guide__parts{margin:8px 0;padding:8px 10px;font-size:11px;line-height:1.45}.maintenance-task-diy .diy-guide--compact .diy-guide__parts-note{margin:2px 0 6px;font-size:10px}.maintenance-task-diy .diy-guide--compact .diy-guide__steps{margin:0;padding-left:18px}.maintenance-task-diy .diy-guide--compact .diy-guide__steps li{margin-bottom:8px}.maintenance-task-diy .diy-guide--compact .diy-guide__steps li>span{display:block}.maintenance-task-diy .diy-guide--compact .diy-guide__tip{margin-top:4px;font-size:11px;line-height:1.4}.maintenance-task-diy .diy-guide--compact .maintenance-task-diy__pro-note{margin-top:8px;padding-top:8px;border-top:1px solid rgba(34,197,94,.25)}.portal-task-row__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:11px;color:#6b7280;min-width:0;max-width:100%}.portal-task-row__actions{flex-shrink:0}.home-dashboard{display:flex;flex-direction:column;gap:18px;margin-bottom:24px;scroll-margin-top:88px}.home-dashboard__welcome h1{margin:0;color:#0f172a;font-size:clamp(1.5rem,4vw,2rem);line-height:1.15;letter-spacing:-.025em}.home-dashboard__welcome>p:last-child{margin:6px 0 0;color:#64748b;font-size:14px}.home-dashboard__eyebrow{margin:0 0 6px;color:#2563eb;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.home-dashboard__summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.home-summary-card{min-width:0;min-height:118px;padding:14px 10px;border:1px solid #dbe5f0;border-radius:12px;background:#fff;color:#0f172a;box-shadow:0 4px 14px #0f172a0b;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left}.home-summary-card:hover{transform:translateY(-1px);border-color:#bfdbfe}.home-summary-card:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}.home-summary-card--equipment{background:linear-gradient(145deg,#fff,#eff6ff)}.home-summary-card--soon{background:linear-gradient(145deg,#fff,#fffbeb)}.home-summary-card--attention{background:linear-gradient(145deg,#fff,#fef2f2)}.home-summary-card__icon{color:#2563eb;font-size:18px;font-weight:800;line-height:1}.home-summary-card--soon .home-summary-card__icon{color:#ca8a04}.home-summary-card--attention .home-summary-card__icon{color:#dc2626}.home-summary-card strong{margin-top:7px;font-size:clamp(1.5rem,5vw,2rem);line-height:1}.home-summary-card>span:not(.home-summary-card__icon){margin-top:7px;font-size:12px;font-weight:700;line-height:1.2}.home-summary-card small{margin-top:4px;color:#64748b;font-size:10px}.home-dashboard-section{min-width:0;padding:16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;scroll-margin-top:88px}.home-dashboard-section__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.home-dashboard-section__head h2{margin:0;color:#0f172a;font-size:16px}.home-dashboard-section__head p{margin:4px 0 0;color:#64748b;font-size:12px}.home-dashboard-section__link{min-height:var(--touch-min);padding:6px 4px;border:0;background:transparent;color:#2563eb;font-size:13px;font-weight:700;white-space:nowrap}.home-dashboard__empty{padding:20px 12px;border-radius:9px;background:#f8fafc;color:#64748b;font-size:13px;text-align:center}.home-dashboard__empty--success{background:#f0fdf4;color:#15803d}.home-dashboard__equipment-empty{margin-bottom:12px;padding:14px;border-radius:10px;background:#eff6ff;color:#1e3a8a;display:flex;flex-direction:column;gap:4px}.home-dashboard__equipment-empty strong{font-size:13px}.home-dashboard__equipment-empty span{color:#475569;font-size:12px;line-height:1.45}.home-due-list{display:flex;flex-direction:column;gap:8px}.home-due-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.home-due-row__main{min-width:0;min-height:70px;padding:9px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:center;text-align:left}.home-due-row__main:hover{border-color:#bfdbfe;background:#f8fbff}.home-equipment-thumb{width:48px;height:48px;border-radius:9px;background:#f1f5f9;display:grid;place-items:center;overflow:hidden;color:#2563eb}.home-equipment-thumb img{width:100%;height:100%;object-fit:contain}.home-due-row__copy{min-width:0;display:flex;flex-direction:column;gap:2px}.home-due-row__copy strong,.home-due-row__copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-due-row__copy strong{color:#0f172a;font-size:13px}.home-due-row__copy span{color:#475569;font-size:12px}.home-due-row__copy small{color:#15803d;font-size:11px;font-weight:600}.home-due-row__copy small.is-overdue{color:#dc2626}.home-due-row__main>.home-status-badge{grid-column:2;justify-self:start}.home-due-row__done{min-width:78px;padding:8px;border-color:#bbf7d0;background:#f0fdf4;color:#15803d;font-size:11px;font-weight:700}.home-status-badge{display:inline-flex;align-items:center;width:fit-content;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:700;line-height:1.2}.home-status-badge--good{background:#dcfce7;color:#15803d}.home-status-badge--soon{background:#fef3c7;color:#a16207}.home-status-badge--attention{background:#fee2e2;color:#b91c1c}.home-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.home-quick-actions button{min-height:72px;padding:11px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#0f172a;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;text-align:left}.home-quick-actions button:hover:not(:disabled){border-color:#bfdbfe;background:#eff6ff}.home-quick-actions button>span{color:#2563eb;font-size:20px;line-height:1}.home-quick-actions button strong{font-size:12px;line-height:1.25}.home-equipment-preview{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(142px,44%);gap:10px;overflow-x:auto;padding:1px 1px 8px;scroll-snap-type:x proximity}.home-equipment-card{min-width:0;min-height:188px;padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;scroll-snap-align:start}.home-equipment-card:hover:not(:disabled){border-color:#bfdbfe;box-shadow:0 5px 16px #0f172a12}.home-equipment-card__image{width:100%;height:92px;margin-bottom:4px;border-radius:8px;background:#f1f5f9;display:grid;place-items:center;overflow:hidden;color:#2563eb;font-size:24px}.home-equipment-card__image img{width:100%;height:100%;object-fit:contain}.home-equipment-card>strong,.home-equipment-card>span:not(.home-equipment-card__image){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-equipment-card>strong{color:#0f172a;font-size:13px}.home-equipment-card>span:not(.home-equipment-card__image){color:#64748b;font-size:11px}.home-equipment-card>.home-equipment-card__next{display:none;color:#475569;font-size:10px;line-height:1.35;white-space:normal}.home-equipment-card>.home-status-badge{margin-top:auto}.home-equipment-card--add{justify-content:center;align-items:center;border-style:dashed;color:#2563eb;text-align:center}.home-equipment-card--add>span{font-size:30px;line-height:1}.home-equipment-card--add small{color:#64748b;font-size:10px}@media (max-width: 420px){.home-dashboard__summary{gap:7px}.home-summary-card{min-height:110px;padding:12px 8px}.home-due-row{grid-template-columns:1fr}.home-due-row__done{min-height:38px}}@media (min-width: 720px){.home-dashboard{gap:22px}.home-dashboard__summary{gap:14px}.home-summary-card{min-height:132px;padding:18px}.home-dashboard-section{padding:20px}.home-quick-actions{grid-template-columns:repeat(5,minmax(0,1fr))}.home-quick-actions button{min-height:58px;flex-direction:row;align-items:center}.home-equipment-preview{grid-auto-flow:initial;grid-auto-columns:initial;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}.home-equipment-card>.home-equipment-card__next{display:block}}@media (min-width: 980px){.home-equipment-preview{grid-template-columns:repeat(5,minmax(0,1fr))}}.maintenance-reminder-card{padding:18px;border:1px solid #93c5fd;border-left:4px solid #2563eb;border-radius:12px;background:linear-gradient(135deg,#eff6ff,#fff 75%);box-shadow:0 8px 24px #2563eb1a;scroll-margin-top:16px}.maintenance-reminder-card:focus{outline:3px solid rgba(37,99,235,.24);outline-offset:2px}.maintenance-reminder-card__eyebrow{margin-bottom:4px;color:#1d4ed8;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.maintenance-reminder-card__title{margin:0;color:#0f172a;font-size:20px;line-height:1.25}.maintenance-reminder-card__equipment,.maintenance-reminder-card__description{margin:5px 0 0;color:#475569;font-size:13px;line-height:1.5}.maintenance-reminder-card__actions,.reminder-quick-actions{display:flex;flex-wrap:wrap;gap:8px}.maintenance-reminder-card__actions{margin-top:15px}.maintenance-reminder-card__actions button{min-height:38px}.maintenance-reminder-card__error{margin:10px 0 0;color:#b91c1c;font-size:13px;font-weight:600}.reminder-quick-actions{justify-content:flex-end}.task-action-btn--snooze{background:#fff7ed;border:1px solid #fdba74;color:#c2410c}.task-action-btn--details{background:#eff6ff;border:1px solid #93c5fd;color:#1d4ed8}.portal-task-row__snoozed{margin-top:5px;color:#9a3412;font-size:11px;font-weight:600}.task-action-btns{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;flex-shrink:0}.task-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:600;padding:4px 10px;min-height:0;border-radius:6px;cursor:pointer;white-space:nowrap;font-family:inherit;line-height:1}.task-action-btn--done{background:#ecfdf5;border:1px solid #6ee7b7;color:#047857}.task-action-btn--skip{background:#f8fafc;border:1px solid #cbd5e1;color:#64748b}.task-action-btn--edit{background:#eff6ff;border:1px solid #93c5fd;color:#2563eb}.task-action-btn--delete{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.task-action-btn__icon{flex-shrink:0;display:none}.passport-task-row{display:flex;flex-direction:column;align-items:stretch;gap:0;border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:8px;background:var(--surface)}.passport-task-row--overdue{border-color:var(--danger);background:#ef444414}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:4px}.task-meta__last{display:inline-flex;align-items:baseline;gap:5px;font-size:11px;color:var(--muted, #9ca3af)}.task-meta__last .task-meta__date{font-weight:500;color:var(--muted, #9ca3af)}.task-meta__due{display:inline-flex;align-items:baseline;gap:5px;font-size:12px;font-weight:600;color:var(--accent, #2563eb)}.task-meta__due .task-meta__label{font-weight:500;font-size:11px;opacity:.9}.task-meta__due .task-meta__date{font-weight:700}.task-meta__due--overdue{color:var(--danger, #dc2626)}.task-meta__due--none{font-size:11px;font-weight:500;color:var(--muted, #9ca3af)}.task-meta__cadence{font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#64748b;background:#64748b24;border:1px solid rgba(100,116,139,.22);border-radius:4px;padding:2px 7px;line-height:1.3}.passport-task-row .task-meta__cadence{color:var(--muted, #94a3b8);background:#ffffff0f;border-color:#ffffff1a}@media (max-width: 639px){.task-action-btn{width:36px;height:36px;min-width:36px;padding:0;border-radius:8px}.task-action-btn__label{display:none}.task-action-btn__icon{display:block}.portal-task-row{flex-direction:column;align-items:stretch}.portal-task-row__actions.task-action-btns{width:100%;justify-content:flex-end}.portal-task-row__actions.reminder-quick-actions{width:100%;justify-content:flex-start}.reminder-quick-actions .task-action-btn{width:auto;min-width:0;height:36px;padding:0 10px}.maintenance-reminder-card__actions{flex-direction:column}.maintenance-reminder-card__actions button{width:100%}.passport-task-row__head{flex-wrap:wrap}.passport-task-row__actions.task-action-btns{width:100%;justify-content:flex-end}.portfolio-attention__item{flex-wrap:wrap}.portfolio-attention__detail{white-space:normal;width:100%;text-align:left}}@media (min-width: 640px){.task-action-btn__icon{display:none}}.portal-task-row__equip{background:none;border:none;padding:0;font:inherit;color:#2563eb;cursor:pointer;text-align:left;max-width:100%;overflow-wrap:anywhere;word-break:break-word;min-width:0}.portal-task-row__equip:hover{text-decoration:underline}.portal-eq-row--flat{cursor:default;align-items:flex-start;gap:12px}.portal-eq-row--flat:hover{background:#fff}.portal-eq-row__main{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.portal-eq-row--flat .portal-eq-row__name{word-break:break-word;overflow-wrap:anywhere}.portal-eq-row--flat .portal-eq-row__overdue{margin-left:0}.portal-eq-row__actions{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-top:1px}.portal-panel{margin-bottom:20px}.portal-panel__title{margin:0 0 12px;padding-left:12px;border-left:4px solid #e2e8f0;font-size:16px;font-weight:700;color:#0f172a}.portal-panel--maintenance{min-width:0;max-width:100%;overflow-x:hidden}.portal-panel--maintenance .portal-panel__title{border-left-color:#f59e0b}.portal-panel--equipment .portal-panel__title{border-left-color:#10b981}.portal-panel--shared-in .portal-panel__title{border-left-color:#3b82f6}.portal-panel--shared-out .portal-panel__title{border-left-color:#14b8a6}.portal-task-groups{display:flex;flex-direction:column;gap:12px;width:100%;min-width:0;max-width:100%;overflow-x:hidden}.portal-task-group{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff;border-left-width:4px;min-width:0;max-width:100%}.portal-task-group--past-due{border-color:#fecaca;border-left-color:#ef4444}.portal-task-group--past-due .portal-task-group__head{background:#fef2f2;color:#991b1b}.portal-task-group--past-due .portal-task-group__count{color:#b91c1c;background:#fee2e2}.portal-task-group--past-due .portal-task-group__body{border-top-color:#fecaca}.portal-task-group--this-week{border-color:#fde68a;border-left-color:#f59e0b}.portal-task-group--this-week .portal-task-group__head{background:#fffbeb;color:#92400e}.portal-task-group--this-week .portal-task-group__count{color:#b45309;background:#fef3c7}.portal-task-group--this-week .portal-task-group__body{border-top-color:#fde68a}.portal-task-group--later{border-color:#bfdbfe;border-left-color:#3b82f6}.portal-task-group--later .portal-task-group__head{background:#eff6ff;color:#1e40af}.portal-task-group--later .portal-task-group__count{color:#1d4ed8;background:#dbeafe}.portal-task-group--later .portal-task-group__body{border-top-color:#bfdbfe}.portal-task-group--completed{border-color:#bbf7d0;border-left-color:#22c55e}.portal-task-group--completed .portal-task-group__head{background:#f0fdf4;color:#166534}.portal-task-group--completed .portal-task-group__count{color:#15803d;background:#dcfce7}.portal-task-group--completed .portal-task-group__body{border-top-color:#bbf7d0}.portal-task-row--completed{opacity:.92}.passport-task-row--completed{border-color:#22c55e40;background:#22c55e0f}.task-history__action{font-size:12px;font-weight:600;color:#15803d}.task-history__dates{display:flex;flex-wrap:wrap;gap:4px;font-size:12px;color:var(--muted);margin-top:4px}.task-history__notes{font-size:12px;color:var(--text);margin-top:6px;line-height:1.45;white-space:pre-wrap}.task-history__by{font-size:11px;color:var(--muted);margin-top:4px}.portal-task-group__head{width:100%;display:flex;align-items:center;gap:8px;padding:12px 14px;background:#f8fafc;border:none;font-size:14px;font-weight:700;color:#0f172a;cursor:pointer;min-height:0;text-align:left}.portal-task-group__head .portal-eq-group__caret{margin-left:auto;flex-shrink:0}.portal-task-group__title{flex:1;min-width:0}.portal-task-group__count{font-size:12px;font-weight:600;color:#6b7280;background:#e2e8f0;border-radius:999px;padding:2px 8px;flex-shrink:0}.portal-task-group__body{padding:10px 14px 12px;border-top:1px solid #eef2f7;min-width:0;max-width:100%;overflow-x:hidden}.portal-task-group--collapsed .portal-task-group__body{padding-top:8px;padding-bottom:10px}.portal-task-group__summary{margin:0;font-size:12px;color:#9ca3af;line-height:1.45}.portal-alert{background:#fef2f2;border:1px solid #fca5a5;border-radius:10px;padding:14px 16px}.portal-alert__title{font-weight:700;color:#b91c1c;margin-bottom:6px}.modal--thin{max-width:min(540px,100%)}.modal-hint{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.suggest-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px 0;font-size:13px;color:var(--muted);text-align:center}.suggest-spinner{width:16px;height:16px;flex-shrink:0;border:2px solid var(--border, #e2e8f0);border-top-color:var(--accent, #2563eb);border-radius:50%;animation:suggest-spin .7s linear infinite}@keyframes suggest-spin{to{transform:rotate(360deg)}}.suggest-selectall{align-self:flex-start;background:none;border:none;padding:0;font-size:12px;font-weight:600;color:var(--accent, #2563eb);cursor:pointer}.suggest-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.suggest-item{border:1px solid var(--border);border-radius:10px;background:var(--surface, #fff);transition:border-color .15s ease,background .15s ease}.suggest-item--on{border-color:var(--accent, #2563eb);background:color-mix(in srgb,var(--accent, #2563eb) 6%,transparent)}.suggest-item__main{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;cursor:pointer}.suggest-item__main input[type=checkbox]{margin-top:2px;flex-shrink:0}.suggest-item__text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;max-width:100%}.suggest-item__name{font-size:13px;font-weight:600;color:var(--text, #111);display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;max-width:100%}.suggest-badge{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--accent, #2563eb) 14%,transparent);color:var(--accent, #2563eb)}.suggest-badge--critical{background:color-mix(in srgb,#f97316 16%,transparent);color:#ea580c}.suggest-badge--manual{background:color-mix(in srgb,#16a34a 16%,transparent);color:#15803d}.suggest-badge--ai{background:color-mix(in srgb,#7c3aed 14%,transparent);color:#7c3aed}.suggest-badge--template{background:color-mix(in srgb,#64748b 14%,transparent);color:#475569}.suggest-badge--connected{background:color-mix(in srgb,#0284c7 14%,transparent);color:#0369a1}.suggest-badge-link{text-decoration:none}.suggest-item__toggle-critical{display:inline-block;margin-top:4px;padding:0;border:none;background:none;font-size:11px;font-weight:500;color:var(--accent, #2563eb);cursor:pointer;text-align:left}.suggest-item__toggle-critical:hover{text-decoration:underline}.suggest-item__desc{font-size:12px;color:var(--muted);line-height:1.45;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.suggest-item__meta{font-size:11px;color:var(--muted);font-weight:500}.form-fieldset{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:0}.form-fieldset legend{font-size:11px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;padding:0 4px}.field-label{font-size:12px;font-weight:500;display:block;margin-bottom:4px;color:var(--muted)}.field-input,.field-textarea{width:100%;box-sizing:border-box;font-size:13px}.field-textarea{resize:vertical}.form-field-full{margin-top:10px}.form-error{background:#ef44441a;border:1px solid rgba(239,68,68,.4);border-radius:6px;padding:10px;color:var(--danger);font-size:13px}.scan-reject-banner{background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;padding:12px 14px;color:#991b1b;font-size:13px;line-height:1.5}.scan-reject-banner strong{display:block;margin-bottom:4px;font-size:14px}.scan-reject-banner p{margin:0 0 8px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.modal-actions button{min-height:var(--touch-min)}.catalog-picker{display:flex;flex-direction:column;gap:8px}.catalog-picker__label{font-size:12px;font-weight:600;color:var(--text)}.catalog-picker__filters{display:flex;flex-direction:column;gap:8px}@media (min-width: 480px){.catalog-picker__filters{flex-direction:row}.catalog-picker__select{flex:0 0 140px}}.catalog-picker__search,.catalog-picker__select{flex:1;font-size:13px;min-height:var(--touch-min)}.catalog-picker__suggestions{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:8px;max-height:200px;overflow-y:auto}.catalog-picker__option{width:100%;text-align:left;padding:10px 12px;border:none;border-bottom:1px solid var(--border);border-radius:0;background:var(--bg);cursor:pointer;min-height:var(--touch-min)}.catalog-picker__option:last-child{border-bottom:none}.catalog-picker__option-main{display:block;font-size:13px;font-weight:600;color:var(--text)}.catalog-picker__option-sub{display:block;font-size:11px;color:var(--muted);margin-top:2px}.catalog-picker__quick{display:flex;flex-direction:column;gap:6px;font-size:12px}.catalog-picker__brand-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.catalog-picker__brand-name{font-weight:600;min-width:72px;color:var(--muted)}.catalog-picker__model-chips{display:flex;flex-wrap:wrap;gap:4px}.catalog-picker__chip{font-size:11px;padding:4px 8px;min-height:0;background:var(--bg);border:1px solid var(--border);border-radius:999px}.catalog-warranty-link{font-size:13px;color:#2563eb;font-weight:500}.diy-suggestions{display:flex;flex-wrap:wrap;gap:6px}.diy-suggestion-chip{font-size:12px;padding:6px 10px;min-height:0;border-radius:999px;background:var(--bg);border:1px solid var(--border)}.diy-guide{border-top:1px solid var(--border);padding-top:16px;font-size:13px;line-height:1.55}.diy-guide__header h3{margin:0 0 6px;font-size:16px}.diy-guide__badge{font-size:12px;font-weight:600}.diy-guide__warn{background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;padding:10px 12px;margin:12px 0}.diy-disclaimer{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:9px 12px;margin:10px 0;font-size:12px;line-height:1.5;color:#9a3412}.diy-ack{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.diy-ack__text{margin:0;font-size:13px;line-height:1.6;color:#374151}.diy-ack .primary{align-self:flex-start}.modal-hint--muted{font-size:12px;color:#6b7280}.warranty-scan{display:flex;flex-direction:column;gap:6px;padding:12px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px}.warranty-scan__btn{display:inline-block;align-self:flex-start;background:#2563eb;color:#fff;font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;cursor:pointer}.warranty-scan__btn--busy{opacity:.7;cursor:progress}.warranty-scan__hint{font-size:12px;color:#6b7280;line-height:1.45}.warranty-scan__note{font-size:12px;color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:6px 8px;line-height:1.45}.warranty-scan__error{font-size:12px;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:6px 8px;line-height:1.45}.svc-requests{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:12px 14px}.svc-requests__title{margin:0 0 8px;font-size:14px;font-weight:700;color:#111827}.svc-requests__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.svc-requests__item{display:flex;align-items:center;gap:8px;font-size:13px;color:#374151}.svc-requests__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.svc-requests__dot--amber{background:#f59e0b}.svc-requests__dot--green{background:#16a34a}.svc-requests__dot--gray{background:#9ca3af}.svc-requests__main{flex:1;min-width:0}.svc-requests__when{color:#6b7280}.svc-requests__status{flex-shrink:0;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.svc-requests__status--amber{background:#fffbeb;color:#b45309}.svc-requests__status--green{background:#f0fdf4;color:#15803d}.svc-requests__status--gray{background:#f3f4f6;color:#6b7280}@media (max-width: 560px){.svc-requests__item{align-items:flex-start;flex-wrap:wrap}.svc-requests__main{flex-basis:calc(100% - 16px);overflow-wrap:anywhere}.svc-requests__status{margin-left:16px;max-width:calc(100% - 16px);white-space:normal}}.seasonal-card{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px}.seasonal-card__emoji{font-size:24px;flex-shrink:0;line-height:1.2}.seasonal-card__body{flex:1;min-width:0}.seasonal-card__title{font-size:14px;color:#1e3a8a}.seasonal-card__blurb{font-size:13px;color:#1d4ed8;margin-top:2px;line-height:1.5}.seasonal-card__count{font-size:12px;color:#2563eb;margin-top:6px}.seasonal-card__actions{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.seasonal-card__dismiss{background:none;border:none;color:#64748b;font-size:13px;cursor:pointer;padding:0}.seasonal-card__dismiss:hover:not(:disabled){color:#475569}.seasonal-card__close{background:none;border:none;cursor:pointer;color:#9ca3af;font-size:18px;padding:0;flex-shrink:0;line-height:1}.diy-guide__warn ul,.diy-guide__meta ul{margin:6px 0 0;padding-left:18px}.diy-guide__meta{margin:12px 0}.diy-guide__steps{margin:12px 0;padding-left:20px}.diy-guide__steps li{margin-bottom:10px}.diy-guide__tip{display:block;margin-top:4px;font-size:12px;color:var(--muted)}.diy-guide__pro{margin:12px 0 0;padding:10px 12px;background:var(--bg);border-radius:8px;font-size:12px}.diy-guide__actions{margin:10px 0 4px}.diy-guide__saved{background:#f0fdf4;border:1px solid #86efac;color:#059669;font-weight:600}.diy-guide__parts{margin:12px 0;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.diy-guide__parts-note{margin:4px 0 8px;font-size:11px;color:var(--muted)}.diy-guide__part-num,.diy-guide__part-spec{font-family:ui-monospace,monospace;font-size:11px}.diy-guide__pro-actions{display:flex;flex-direction:column;gap:8px;margin-top:10px}.diy-guide__my-techs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px}.diy-guide__tech-link{font-size:12px;font-weight:600;color:#2563eb;text-decoration:none}.diy-guide__saved-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.diy-guide__saved-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-size:12px}.diy-guide__saved-item button{min-height:0;font-size:11px}.modal--service{max-width:640px;max-height:min(92dvh,calc(100dvh - var(--safe-top) - var(--safe-bottom) - 2 * var(--container-padding)))}.svc-request-modern{max-width:680px;border:1px solid #dbe4ef;border-radius:20px;background:#f8fafc;box-shadow:0 28px 80px #0f172a3d}.svc-request-modern__header{padding:22px 24px 18px;background:linear-gradient(135deg,#eff6ff,#f0fdfa);border-bottom-color:#dbeafe}.svc-request-modern__eyebrow{display:block;margin-bottom:5px;color:#0f766e;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.svc-request-modern__header h2{color:#0f172a;font-size:22px;letter-spacing:-.02em}.svc-request-modern .modal-body{gap:16px;padding:20px 24px 24px}.svc-request-modern__intro{display:flex;gap:12px;padding:14px 16px;border:1px solid #99f6e4;border-radius:12px;background:#f0fdfa;color:#134e4a}.svc-request-modern__intro-icon{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;border-radius:50%;background:#0d9488;color:#fff;font-size:13px;font-weight:900}.svc-request-modern__intro strong{display:block;font-size:13px}.svc-request-modern__intro p{margin:3px 0 0;color:#0f766e;font-size:12px;line-height:1.45}.svc-request-modern__required-note{margin:-5px 0 0;color:#64748b;font-size:12px;text-align:right}.svc-request-modern__required-note span,.field-required{color:#dc2626;font-weight:800}.field-optional{margin-left:5px;color:#64748b;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.svc-request-modern__legacy-hint{margin:0;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.svc-request-modern .field-label{margin-bottom:7px;color:#334155;font-size:12px;font-weight:750}.svc-request-modern .field-input,.svc-request-modern .field-textarea{border-color:#cbd5e1;border-radius:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.svc-request-modern .field-input:focus,.svc-request-modern .field-textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.svc-request-modern .field-input--invalid{border-color:#dc2626;background:#fff7f7;box-shadow:0 0 0 3px #dc262614}.svc-request-modern .form-error{border:1px solid #fecaca;border-radius:10px;background:#fef2f2}.svc-request-modern .modal-footer{padding:14px 24px 18px;background:#fff}.svc-request-modern .modal-footer .primary{min-width:150px;border-radius:10px;box-shadow:0 8px 18px #2563eb33}@media (max-width: 639px){.modal-backdrop:has(.modal--service){align-items:flex-end;padding-left:0;padding-right:0;padding-bottom:0}.modal--service{max-width:100%;width:100%;max-height:calc(100dvh - var(--safe-top));height:min(92dvh,calc(100dvh - var(--safe-top)));border-radius:16px 16px 0 0;border-bottom:none}.modal--service .modal-body{padding-bottom:.75rem}.modal--service .modal-footer{padding-bottom:max(.75rem,var(--safe-bottom))}}.modal-body--service{min-height:0}.service-feedback-footer{display:flex;flex-direction:column;gap:10px}.service-feedback-footer strong{font-size:13px}.service-feedback-footer .modal-hint{margin:0}.service-feedback-footer .service-feedback__actions{width:100%}.modal-header__sub{margin:4px 0 0;font-size:13px;font-weight:400;color:var(--muted)}.service-issue-input{resize:vertical;min-height:96px;line-height:1.5}.service-root-cause{padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;font-size:13px;line-height:1.5}.service-root-cause p{margin:6px 0 0;color:var(--text)}.service-root-cause ul{margin:6px 0 0;padding-left:18px;color:var(--muted);font-size:13px}.service-emergency p{margin:6px 0 0;font-size:13px}.service-feedback{margin-top:8px;padding-top:16px;border-top:1px solid var(--border)}.service-feedback__actions{display:flex;flex-wrap:wrap;gap:8px}.service-feedback__actions button{flex:1 1 auto;min-height:var(--touch-min);font-size:13px}.service-feedback__pro{border-color:var(--accent)!important;color:var(--accent)!important}.service-back-link{margin-top:12px;background:none;border:none;padding:0;color:var(--muted);font-size:13px;cursor:pointer;text-decoration:underline}.service-find-pro .book-directory--compact{margin-top:8px}.portal-eq-row__service{background:#faf5ff;border:1px solid #d8b4fe;color:#7c3aed;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;min-height:0;flex-shrink:0;white-space:nowrap}.portal-eq-row__service:hover{background:#f3e8ff}.portal-eq-row--flat .portal-eq-row__open{flex-shrink:0;margin-left:0;white-space:nowrap}.portal-layers{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.portal-layers__tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;min-height:var(--touch-min)}.portal-layers__tab--active{border-color:var(--accent);color:var(--accent);background:#faf5ff}.portal-layers__tab--my-homes.portal-layers__tab--active{border-color:#8b5cf6;color:#6d28d9;background:#f5f3ff}.portal-layers__tab--shared-in.portal-layers__tab--active{border-color:#3b82f6;color:#1d4ed8;background:#eff6ff}.portal-layers__tab--shared-out.portal-layers__tab--active{border-color:#14b8a6;color:#0f766e;background:#f0fdfa}.portal-layers__count{font-size:11px;font-weight:700;background:var(--bg);border-radius:10px;padding:1px 7px}.portal-shared-props{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.portal-shared-prop{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-left-width:4px;border-radius:8px;overflow:hidden;background:var(--surface)}.portal-shared-prop--co-owner{border-left-color:#8b5cf6}.portal-shared-prop--household{border-left-color:#3b82f6}.portal-shared-prop--guest{border-left-color:#94a3b8}.portal-shared-prop--active{border-color:var(--accent)}.portal-shared-prop--co-owner.portal-shared-prop--active{border-color:#8b5cf6;background:#faf5ff}.portal-shared-prop--household.portal-shared-prop--active{border-color:#3b82f6;background:#eff6ff}.portal-shared-prop--guest.portal-shared-prop--active{border-color:#64748b;background:#f8fafc}.portal-shared-prop__select{flex:1;text-align:left;padding:10px 14px;background:none;border:none;cursor:pointer;min-height:0}.portal-shared-prop__select strong{display:block;font-size:14px;color:var(--text)}.portal-shared-prop__select span{font-size:12px;color:var(--muted)}.portal-shared-prop__leave{margin-right:10px;font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:underline;min-height:0}.portal-shared-banner{margin:0 0 12px;padding:8px 12px;background:var(--bg);border-radius:8px;font-size:13px;color:var(--muted)}.portal-outbound-list{display:flex;flex-direction:column;gap:10px}.portal-outbound-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #99f6e4;border-left:4px solid #14b8a6;border-radius:8px;background:#f0fdfa}.portal-outbound-row__meta{font-size:12px;color:var(--muted);margin-top:2px}.modal--household{max-width:520px}.household-member-list{list-style:none;margin:8px 0 0;padding:0}.household-member-list__item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px}.household-member-list__name{font-size:13px;font-weight:600}.household-member-list__meta{font-size:12px;color:var(--muted)}.household-member-list__revoke{font-size:12px;color:#dc2626;background:none;border:none;cursor:pointer;min-height:0}.household-role-grid{display:flex;flex-direction:column;gap:8px}.household-role-card{display:block;padding:10px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.household-role-card--active{border-color:var(--accent);background:#faf5ff}.household-role-card input{margin-right:8px}.household-role-card__title{display:block;font-size:13px;font-weight:600}.household-role-card__hint{display:block;font-size:12px;color:var(--muted);margin-top:2px}.household-equipment-pick{list-style:none;margin:0;padding:0;font-size:13px}.household-equipment-pick li{padding:4px 0}.account-modal{gap:14px}.account-profile{display:flex;align-items:center;gap:14px;padding:14px;border-radius:12px;background:var(--surface-alt, rgba(0, 0, 0, .04));border:1px solid var(--border)}.account-profile__avatar{flex-shrink:0;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;letter-spacing:.02em;color:var(--text);background:var(--surface, #fff);border:2px solid var(--border)}.account-profile__meta{min-width:0;flex:1}.account-profile__name{margin:0;font-size:16px;font-weight:700;color:var(--text);line-height:1.3;word-break:break-word}.account-profile__email{margin:2px 0 0;font-size:13px;color:var(--muted);word-break:break-all}.account-profile__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.account-chip{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:#2563eb1f;color:#2563eb}.account-chip--muted{background:var(--surface, #f3f4f6);color:var(--muted);font-weight:500}.account-banner{margin:0;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.45}.account-banner--success{background:#f0fdf4;border:1px solid #86efac;color:#059669}.account-banner--error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.account-banner--warn{background:#fffbeb;border:1px solid #fde68a;color:#b45309}.account-card{padding:14px;border-radius:12px;border:1px solid var(--border);background:var(--surface, #fff);display:flex;flex-direction:column;gap:12px}.account-card--danger{border-color:#ef444459;background:#ef44440a}.account-card__title{margin:0;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.account-card__note{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.account-card__action{align-self:flex-start;font-size:14px;font-weight:600;padding:8px 0;border:none;background:none;color:#2563eb;cursor:pointer;font-family:inherit}.account-card__action:hover{text-decoration:underline}.account-toggle{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;cursor:pointer}.account-toggle__text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.account-toggle__title{font-size:14px;font-weight:600;color:var(--text);line-height:1.35}.account-toggle__desc{font-size:12px;color:var(--muted);line-height:1.45}.account-toggle__input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.account-toggle__track{flex-shrink:0;position:relative;width:44px;height:26px;border-radius:999px;background:var(--border, #d1d5db);transition:background .15s ease;margin-top:2px}.account-toggle__track:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s ease}.account-toggle__input:checked+.account-toggle__track{background:#2563eb}.account-toggle__input:checked+.account-toggle__track:after{transform:translate(18px)}.account-toggle__input:disabled+.account-toggle__track{opacity:.5}.account-password-form{margin-top:4px}.account-password-form__actions,.account-delete-confirm__actions{display:flex;flex-wrap:wrap;gap:8px}.account-legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:4px 0 8px;font-size:13px}.account-legal a{color:var(--muted);text-decoration:none}.account-legal a:hover{color:#2563eb;text-decoration:underline}.account-modal__header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.account-signout-btn{padding:6px 12px;font-size:13px;font-weight:600;border-radius:8px;border:1px solid var(--border);background:var(--surface, #fff);color:var(--text);cursor:pointer;font-family:inherit;white-space:nowrap}.account-signout-btn:hover{background:var(--surface-alt, rgba(0, 0, 0, .04))}.account-section{padding-bottom:4px;border-bottom:1px solid var(--border)}.account-row{display:flex;flex-direction:column;gap:2px;margin-bottom:12px}.account-value{font-size:14px;color:var(--text);word-break:break-all}.account-section-title{margin:0;font-size:14px;font-weight:700}.account-hint{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.account-hint--warn{color:#b45309}.account-success{background:#f0fdf4;border:1px solid #86efac;border-radius:6px;padding:10px;color:#059669;font-size:13px}.account-section--danger{border-bottom:none;padding-top:8px}.account-danger-btn{background:#ef44441f;border:1px solid rgba(239,68,68,.45);color:var(--danger);font-weight:600;border-radius:8px;padding:8px 14px;cursor:pointer;font-family:inherit;font-size:13px}.account-danger-btn:hover:not(:disabled){background:#ef444433}.account-danger-btn:disabled{opacity:.5;cursor:not-allowed}.portal-header{gap:8px 16px}.portal-header__actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.portfolio-summary{margin-bottom:6px}.portfolio-summary__greeting{margin:0;font-size:22px;font-weight:800;color:#0f172a}.portfolio-summary__sub{margin:2px 0 14px;font-size:14px;color:#64748b}.portfolio-summary__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.portfolio-summary__stat{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}.portfolio-summary__stat strong{font-size:26px;font-weight:800;color:#0f172a;line-height:1.1}.portfolio-summary__stat span{font-size:12px;color:#64748b}.portfolio-summary__stat--attention{border-color:#fca5a5;background:#fef2f2}.portfolio-summary__stat--attention strong{color:#dc2626}.portfolio-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.portfolio-table{width:100%;border-collapse:collapse;font-size:14px}.portfolio-table thead th{text-align:left;padding:10px 14px;border-bottom:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-weight:600;white-space:nowrap}.portfolio-table__num{text-align:right}.portfolio-table__sort{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.portfolio-table__row{cursor:pointer}.portfolio-table__row:hover,.portfolio-table__row:focus-visible{background:#f8fafc;outline:none}.portfolio-table tbody td{padding:10px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.portfolio-table tbody tr:last-child td{border-bottom:none}.portfolio-table__name{font-weight:600;color:#0f172a}.portfolio-table__addr{font-size:12px;color:#64748b}.portfolio-table__num--warn{color:#dc2626;font-weight:700}.portfolio-table__open{display:inline-block;padding:2px 8px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:600;white-space:nowrap}.guided-option{padding:8px 14px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#0f172a;font-size:14px;font-weight:600;cursor:pointer}.guided-option:hover:not(:disabled){border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.guided-option:disabled{opacity:.6;cursor:default}.guided-photo-request{display:grid;gap:10px;margin-top:12px;padding:13px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff}.guided-photo-request__head{display:flex;gap:10px;align-items:flex-start}.guided-photo-request__head>span{flex:0 0 auto;font-size:19px}.guided-photo-request__head strong{display:block;color:#1e3a8a;font-size:13px}.guided-photo-request__head p{margin:3px 0 0;color:#334155;font-size:13px;line-height:1.5}.guided-photo-request__picker{min-height:44px;display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:0 15px;border-radius:8px;color:#fff;background:#2563eb;font-size:13px;font-weight:700;cursor:pointer}.guided-photo-request__picker input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.guided-photo-request__picker:focus-within{outline:3px solid rgba(37,99,235,.22);outline-offset:2px}.guided-photo-request__preview{position:relative;width:min(100%,250px);overflow:hidden;margin:0;border-radius:9px;background:#fff}.guided-photo-request__preview img{width:100%;max-height:170px;display:block;object-fit:cover}.guided-photo-request__preview figcaption{padding:7px 9px;color:#166534;font-size:11px;font-weight:700}.guided-photo-request>small{color:#64748b;font-size:11px;line-height:1.45}@media (max-width: 720px){.guest-intro-card{grid-template-columns:1fr;overflow:visible}.guest-intro-card__media{display:block;min-height:0;padding:8px;order:-1}.guest-intro-card__media-primary{width:100%;height:clamp(150px,38vw,210px)!important}.guest-intro-card__media-secondary{display:none!important}.guest-intro-card__media>span{position:static;display:block;margin-top:7px}.guest-intro-card__content{padding:22px 18px 20px}.guest-intro-card__continue{position:relative;z-index:1;width:100%}.guest-intro-card .guest-account-ctas--inline{display:grid;grid-template-columns:1fr;width:100%}.guest-intro-card .guest-account-ctas--inline .guest-account-ctas__signup,.guest-intro-card .guest-account-ctas--inline .guest-account-ctas__signin{width:100%;min-width:0}.guest-empty-state{grid-template-columns:1fr;gap:0}.guest-empty-state>img{height:180px}.guest-empty-state>div{padding:22px 12px 18px;text-align:center}}.guided-visual{margin-top:12px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle, #f8fafc)}.guided-visual figure{margin:0}.guided-visual img{display:block;width:100%;max-height:320px;object-fit:contain;border-radius:8px;background:#fff}.guided-visual figcaption,.guided-visual__prompt span{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.45}.guided-visual__prompt{display:flex;align-items:center;justify-content:space-between;gap:12px}.guided-visual__prompt button{min-height:44px;flex:0 0 auto}.guided-visual>p{margin:8px 0 0;color:var(--danger, #dc2626);font-size:13px}@media (max-width: 480px){.guided-visual__prompt{align-items:stretch;flex-direction:column}}.eq-docs{display:flex;flex-direction:column;gap:12px}.eq-docs__upload{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.eq-docs__upload select{width:auto;min-width:9rem;flex:0 1 auto;font-size:.85rem}.eq-docs__upload .primary{font-size:.85rem;white-space:nowrap}.eq-docs__error{margin:0;font-size:.8rem;color:var(--danger);background:#ef444414;border-radius:6px;padding:8px 10px}.eq-docs__filters{display:flex;flex-wrap:wrap;gap:6px}.eq-docs__pill{font-size:.78rem;font-weight:500;padding:5px 12px;min-height:0;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.eq-docs__pill--active{background:var(--accent);border-color:var(--accent);color:#fff}@media (hover: hover){.eq-docs__pill:hover:not(.eq-docs__pill--active){border-color:var(--accent);color:var(--text)}}.eq-docs__empty{margin:0;font-size:.85rem;color:var(--muted);line-height:1.5}.eq-docs__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.eq-docs__item{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:4px 6px 4px 4px}.eq-docs__file{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;text-decoration:none;color:inherit;transition:background .12s}@media (hover: hover){.eq-docs__file:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}}.eq-docs__icon{font-size:1.15rem;flex-shrink:0;line-height:1}.eq-docs__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.eq-docs__name{font-size:.9rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eq-docs__meta{font-size:.72rem;color:var(--muted);line-height:1.35}.eq-docs__badge{flex-shrink:0;font-size:.62rem;font-weight:700;letter-spacing:.4px;padding:3px 7px;border-radius:4px;background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.eq-docs__remove{flex-shrink:0;width:30px;min-width:30px;height:30px;min-height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--muted);font-size:.8rem;cursor:pointer}@media (hover: hover){.eq-docs__remove:hover{background:#ef44441f;color:var(--danger)}}@media (max-width: 479px){.eq-docs__upload select,.eq-docs__upload .primary{flex:1 1 100%;width:100%}}.svc-property-context{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle, var(--bg));font-size:13px}.svc-property-context span,.field-help{color:var(--muted)}.field-help{margin:5px 0 0;font-size:12px}.admin-shell.portal-shell{min-height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden}.admin-shell .site-header{flex-shrink:0}.admin-shell .portal-main{flex:1 1 auto;min-height:0;max-width:1040px;gap:24px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.admin-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 22px;background:linear-gradient(135deg,#0f172a,#1e3a8a);border-radius:14px;color:#fff}.admin-page-head__title{margin:0;font-size:clamp(1.15rem,3vw,1.35rem);font-weight:800;letter-spacing:-.02em}.admin-page-head__meta{margin:6px 0 0;font-size:13px;color:#ffffffb8;line-height:1.5}.admin-page-head__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.admin-page-head__link{font-size:13px;font-weight:600;color:#ffffffe6;text-decoration:none;padding:8px 12px;border-radius:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15)}.admin-page-head__link:hover{background:#ffffff29}.admin-page-head__btn{font-size:13px;font-weight:600;padding:8px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff1f;color:#fff;cursor:pointer;min-height:var(--touch-min)}.admin-page-head__btn:hover:not(:disabled){background:#fff3}.admin-page-head__btn:disabled{opacity:.55;cursor:not-allowed}.admin-page-head__btn--ghost{background:transparent}.admin-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:18px 20px}.admin-panel__title{margin:0 0 14px;padding-left:12px;border-left:4px solid #2563eb;font-size:15px;font-weight:700;color:#0f172a}.admin-panel--health .admin-panel__title{border-left-color:#10b981}.admin-panel--actions .admin-panel__title{border-left-color:#f59e0b}.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.admin-stat{border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;background:#f8fafc}.admin-stat--highlight{border-color:#93c5fd;background:#eff6ff}.admin-stat--ok{border-color:#86efac;background:#f0fdf4}.admin-stat--bad{border-color:#fca5a5;background:#fef2f2}.admin-stat__label{font-size:12px;font-weight:600;color:#64748b;margin-bottom:6px;line-height:1.35}.admin-stat__value{font-size:clamp(1.35rem,4vw,1.6rem);font-weight:800;line-height:1.1;color:#0f172a;letter-spacing:-.02em}.admin-stat__sub{margin-top:6px;font-size:11px;color:#64748b;line-height:1.4}.admin-stat__status{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#0f172a}.admin-stat__dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.admin-stat__dot--ok{background:#10b981}.admin-stat__dot--bad{background:#dc2626}.admin-role-row{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:10px}.admin-role-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:13px;color:#334155}.admin-role-chip strong{font-size:15px;color:#0f172a}.admin-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.admin-action-card{border:1px solid #e2e8f0;border-radius:10px;padding:16px;background:#f8fafc}.admin-action-card__title{margin:0 0 12px;font-size:14px;font-weight:700;color:#0f172a}.admin-action-card__hint{margin:0 0 12px;font-size:12px;color:#64748b;line-height:1.5}.admin-form-row{display:flex;gap:8px;flex-wrap:wrap}.admin-form-row input[type=email],.admin-form-row input[type=text],.admin-form-row input[type=number],.admin-action-card textarea{flex:1 1 160px;min-width:0;padding:10px 12px;font-size:13px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-family:inherit}.admin-action-card textarea{width:100%;box-sizing:border-box;resize:vertical;margin-top:8px}.admin-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px}.admin-field label{display:block;font-size:11px;font-weight:600;color:#64748b;margin-bottom:4px}.admin-field input{width:100%;box-sizing:border-box;padding:8px 10px;font-size:13px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a}.admin-user-meta{margin-top:14px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;color:#475569;line-height:1.5}.admin-checks{display:flex;flex-wrap:wrap;gap:14px 20px;margin:14px 0;font-size:13px;color:#334155}.admin-checks label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}.admin-btn{font-size:13px;font-weight:600;padding:10px 16px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;cursor:pointer;min-height:var(--touch-min);font-family:inherit}.admin-btn:hover:not(:disabled){background:#f1f5f9}.admin-btn:disabled{opacity:.55;cursor:not-allowed}.admin-btn--primary{background:#2563eb;border-color:#2563eb;color:#fff}.admin-btn--primary:hover:not(:disabled){background:#1d4ed8}.admin-btn--danger{background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.admin-btn--danger:hover:not(:disabled){background:#fee2e2}.admin-btn--ghost{background:transparent;border-color:#cbd5e1;color:#64748b}.admin-btn--sm{padding:6px 10px;font-size:12px;min-height:0}.admin-msg{margin-top:10px;font-size:12px;line-height:1.45}.admin-msg--ok{color:#059669;font-weight:600}.admin-msg--err{color:#dc2626}.admin-alert{padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.5}.admin-alert--err{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.admin-loading{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.admin-loading__cell{height:88px;border-radius:10px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0,#f1f5f9 75%);background-size:200% 100%;animation:admin-shimmer 1.2s ease-in-out infinite}@keyframes admin-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.admin-group{border:1px solid #e2e8f0;border-radius:12px;background:#fff;overflow:hidden;flex-shrink:0}.admin-group__summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 18px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.admin-group__summary::-webkit-details-marker{display:none}.admin-group__summary:after{content:"▸";color:#64748b;font-size:14px;transition:transform .15s ease;flex-shrink:0}.admin-group[open] .admin-group__summary:after{transform:rotate(90deg)}.admin-group__title{font-size:15px;font-weight:700;color:#0f172a}.admin-group__hint{font-size:12px;color:#64748b;margin-left:auto;margin-right:8px}.admin-group__body{padding:0 18px 18px;display:flex;flex-direction:column;gap:16px}.admin-group--health{border-left:4px solid #10b981}.admin-group--users{border-left:4px solid #8b5cf6}.admin-group--actions{border-left:4px solid #f59e0b}.admin-subsection-title{margin:4px 0 0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.admin-user-table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.admin-user-table{width:100%;border-collapse:collapse;font-size:13px}.admin-user-table th,.admin-user-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #f1f5f9}.admin-user-table th{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc}.admin-user-table tr:last-child td{border-bottom:none}.admin-user-table__row{cursor:pointer}.admin-user-table__row:hover{background:#f8fafc}.admin-user-table__row--active{background:#eff6ff}.admin-user-table__email{font-weight:600;color:#0f172a}.admin-user-table__muted{color:#64748b;font-size:12px}.admin-info-box{margin:0;padding:12px 14px;border-radius:8px;background:#fffbeb;border:1px solid #fde68a;font-size:12px;color:#92400e;line-height:1.55}.admin-info-box ul{margin:8px 0 0;padding-left:18px}.admin-info-box li{margin-bottom:4px}.admin-reach{display:flex;gap:8px;align-items:baseline;margin-top:12px;padding:10px 12px;border-radius:8px;background:#eff6ff;border:1px solid #bfdbfe;font-size:13px;color:#1e3a8a;line-height:1.5}.admin-reach--empty{background:#f8fafc;border-color:#e2e8f0;color:#64748b}.admin-reach__icon{flex-shrink:0}.admin-reach__refresh{background:none;border:none;padding:0;color:#2563eb;font:inherit;text-decoration:underline;cursor:pointer}.admin-reach__refresh:hover{color:#1d4ed8}.admin-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.admin-filter-row label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:#64748b}.admin-filter-row input,.admin-filter-row select{padding:8px 10px;font-size:13px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-family:inherit}.admin-empty{padding:16px;text-align:center;font-size:13px;color:#64748b}html.native-app .login-shell{justify-content:flex-start;padding-top:max(12px,var(--safe-top))}html.native-app .login-shell__intro{margin-bottom:28px}html.native-app .login-shell__footer{margin-top:28px;padding-bottom:var(--safe-bottom)}html.native-app .login-role-cards{gap:12px}html.native-app .login-card{padding:24px 20px;box-shadow:none;border:1px solid #e2e8f0}html.native-app .site-header__inner{min-height:48px;padding:6px 0}html.native-app .lay-header__top{justify-content:space-between}html.native-app .lay-header__top-start{display:flex;align-items:center;gap:.75rem;min-width:0}.user-avatar-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--touch-min, 36px);min-width:var(--touch-min, 36px);height:var(--touch-min, 36px);padding:0;border:1px solid var(--border, #e5e7eb);border-radius:50%;background:var(--surface, #fff);color:var(--text, #374151);cursor:pointer;font-family:inherit}.user-avatar-btn:hover{border-color:#2563eb;color:#2563eb}.user-avatar-btn--active{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb40}.user-avatar-btn__initials{font-size:12px;font-weight:700;line-height:1;letter-spacing:.02em}html.native-app .site-header .user-avatar-btn{border-color:#e5e7eb;background:#fff;color:#374151}html.native-app .site-header .user-avatar-btn--active{border-color:#2563eb;color:#2563eb}html.native-app .site-footer{padding-top:28px;padding-bottom:max(28px,var(--safe-bottom))}html.native-app .portal-main{gap:16px;padding-top:12px}html.native-app .portal-shell{min-height:100dvh;max-height:100dvh;overflow:hidden;width:100%;max-width:100%}html.native-app .portal-shell .portal-main{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}html.native-app .portal-shell--homeowner{min-height:100dvh;max-height:none;overflow:visible}html.native-app .portal-shell--homeowner .portal-workspace,html.native-app .portal-shell--homeowner .portal-main{flex:0 0 auto;min-height:auto;overflow:visible}html.native-app .portal-shell--guest .portal-main{padding-top:8px;padding-bottom:max(24px,var(--safe-bottom));overscroll-behavior-y:contain}html.native-app .portal-shell--guest .guest-intro-card{flex:0 0 auto}html.native-app .portal-shell--guest .guest-intro-card__media-primary{height:150px!important}html.native-app .modal-backdrop{align-items:flex-end;justify-content:center;padding:0;overflow:hidden}html.native-app .modal-backdrop .modal{width:100%;max-width:100%;max-height:calc(100dvh - var(--safe-top));height:auto;border-radius:16px 16px 0 0;border-bottom:none;margin:0}html.native-app .modal-backdrop .modal--form,html.native-app .modal-backdrop .modal--scroll-form,html.native-app .modal-backdrop .modal--service,html.native-app .modal-backdrop .modal--household{height:min(calc(100dvh - var(--safe-top)),92dvh);max-height:calc(100dvh - var(--safe-top))}html.native-app .modal-backdrop .modal-body--service{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}html.native-app .modal-backdrop .modal--thin{max-width:100%}html.native-app .modal-backdrop .modal--passport{height:min(calc(100dvh - var(--safe-top)),94dvh);max-height:calc(100dvh - var(--safe-top))}html.native-app .modal-backdrop .modal-header{padding-top:max(1rem,calc(var(--safe-top) * .25))}html.native-app .modal-backdrop .modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:1rem}html.native-app .modal-backdrop .modal-footer{flex-shrink:0;padding-bottom:max(.75rem,var(--safe-bottom))}html.native-app .overlay-backdrop{align-items:flex-end;justify-content:center;padding:0;overflow:hidden}html.native-app .overlay-backdrop .overlay-panel{width:100%;max-width:100%;max-height:calc(100dvh - var(--safe-top) - 60px);height:auto;border-radius:16px 16px 0 0;border-bottom:none;margin:0;overflow:hidden}html.native-app .overlay-backdrop .overlay-panel__body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}html.native-app .overlay-backdrop .overlay-panel__footer{flex-shrink:0;padding-bottom:max(.75rem,var(--safe-bottom))}html.native-app .account-modal{gap:12px}html.native-app .account-profile{padding:12px}html.native-app .account-profile__avatar{width:48px;height:48px;font-size:16px}html.native-app .account-card{padding:12px;gap:10px}html.native-app .account-toggle__desc{font-size:11px}html.native-app .account-section{padding-bottom:8px}html.native-app .account-hint{font-size:12px;line-height:1.45}html.native-app .account-row{margin-bottom:8px}
