*{box-sizing:border-box}html{background:#fffaf0;min-width:320px}body{color:#302a1e;-webkit-font-smoothing:antialiased;background:#fffaf0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;cursor:pointer}.portal-page{width:min(100%,760px);min-height:100dvh;padding:0 18px calc(32px + env(safe-area-inset-bottom));background:#fffaf0;margin:auto}.portal-header{border-bottom:1px solid #eee2cc;justify-content:space-between;align-items:center;height:68px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand img{width:38px;height:38px}.brand span{gap:2px;display:grid}.brand strong{letter-spacing:.12em;font-size:14px}.brand small{color:#92530c;letter-spacing:.12em;font-size:9px;font-weight:800}.secure{color:#75500e;align-items:center;gap:5px;font-size:11px;font-weight:700;display:flex}.portal-hero{text-align:center;padding:32px 2px 25px}.hero-icon{color:#a9660c;background:#fff1c9;border:1px solid #f1d99e;border-radius:16px;place-items:center;width:54px;height:54px;margin:0 auto 16px;display:grid}.kicker{color:#9b5a0c;letter-spacing:.14em;margin:0 0 8px;font-size:10px;font-weight:850}.portal-hero h1{color:#74400e;letter-spacing:-.045em;max-width:640px;margin:0 auto;font-size:clamp(27px,7vw,38px);line-height:1.1}.address{color:#716650;justify-content:center;align-items:center;gap:6px;margin:14px auto 16px;font-size:13px;display:flex}.status-pill{color:#75490e;background:#fff3d2;border:1px solid #ecd296;border-radius:30px;align-items:center;gap:7px;width:max-content;margin:auto;padding:7px 12px;font-size:12px;font-weight:800;display:flex}.status-pill i,.live-badge i{background:#dc9b1c;border-radius:50%;width:7px;height:7px}.status-pill i.pulse,.live-badge.active i{background:#299369;animation:1.8s ease-in-out infinite pulse;box-shadow:0 0 0 4px #29936920}.appointment-date{color:#4d412b;justify-content:center;align-items:center;gap:8px;margin-top:18px;font-size:13px;display:flex}.appointment-date svg{color:#a96711}.engineer-name{color:#716650;font-size:12px}.tracking-card{background:#fffdf8;border:1px solid #ebdfc8;border-radius:17px;margin:0 0 14px;padding:20px;box-shadow:0 10px 26px #80510d0b}.section-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.section-heading h2{color:#453416;letter-spacing:-.025em;margin:0;font-size:19px}.section-heading p:not(.kicker){color:#766b58;margin:6px 0 0;font-size:12px;line-height:1.5}.customer-eta{align-items:center;display:flex;color:#86530e!important;gap:7px!important}.customer-eta svg{color:#d18a1d;flex:none}.live-badge{color:#805516;letter-spacing:.08em;background:#fff3d7;border-radius:20px;flex:none;align-items:center;gap:6px;padding:6px 9px;font-size:9px;font-weight:850;display:flex}.live-badge.active{color:#257553;background:#eaf6ef}.customer-map{background:#f1ecdf;border-radius:12px;height:260px;position:relative;overflow:hidden}.customer-map iframe{border:0;width:100%;height:100%}.customer-map>a{color:#241806;background:linear-gradient(135deg,#ffd34d,#f6b632 58%,#ef9226);border:1px solid #e5a327;border-radius:9px;align-items:center;gap:6px;padding:9px 12px;font-size:11px;font-weight:800;text-decoration:none;display:flex;position:absolute;bottom:10px;right:10px}.map-caption{color:#81745d;justify-content:space-between;gap:8px;margin-top:9px;font-size:10px;display:flex}.timeline{gap:0;margin:0;padding:0;list-style:none;display:grid}.timeline li{gap:12px;min-height:58px;display:flex;position:relative}.timeline li:not(:last-child):before{content:"";background:#eaddc2;width:1px;position:absolute;top:13px;bottom:0;left:6px}.timeline li>i{z-index:1;background:#fffdf8;border:2px solid #d7c8aa;border-radius:50%;flex:none;width:13px;height:13px;margin-top:3px}.timeline li.current>i{background:#f6b632;border-color:#e9a329;box-shadow:0 0 0 4px #f6b63226}.timeline li>div{align-content:start;gap:5px;display:grid}.timeline strong{color:#51432a;font-size:13px}.timeline small{color:#887b63;font-size:11px}.job-report{color:#61563f;white-space:pre-wrap;margin:0;font-size:13px;line-height:1.7}.invoice-line,.invoice-total{color:#61563f;border-bottom:1px solid #f0e6d5;justify-content:space-between;gap:14px;padding:11px 0;font-size:13px;display:flex}.invoice-line strong,.invoice-total strong{color:#3d3019}.invoice-total{border:0;margin-top:4px;padding:15px 0;font-size:15px;font-weight:800}.invoice-total strong{font-size:19px}.pay-button{color:#241806;background:linear-gradient(135deg,#ffd34d,#f6b632 58%,#ef9226);border:1px solid #e5a327;border-radius:11px;width:100%;min-height:50px;font-weight:850;box-shadow:0 4px 14px #d78a1d24}.pay-button:disabled{opacity:.65;cursor:wait}.stripe-note{color:#82745d;text-align:center;justify-content:center;align-items:center;gap:6px;margin-top:12px;font-size:10px;display:flex}.stripe-note svg{color:#98600f;flex:none}.paid-state,.paid-return{color:#286c4e;background:#eaf6ef;border-radius:10px;align-items:center;gap:8px;padding:11px 12px;font-size:12px;font-weight:750;display:flex}.signature-card{background:#fffaf0;border:1px solid #eee3d0;border-radius:11px;gap:6px;margin-top:18px;padding:13px;display:grid}.signature-card small{color:#7f7158;font-size:10px}.signature-mark{gap:8px;height:64px;padding:5px;display:flex}.signature-mark svg{width:80px;height:100%}.signature-mark polyline{fill:none;stroke:#433617;stroke-width:22px;stroke-linecap:round;stroke-linejoin:round}.signature-card strong{color:#483a21;font-size:12px}.portal-footer{color:#7e735d;padding:16px 2px;font-size:11px;line-height:1.55}.portal-footer>span{font-size:10px}.portal-footer button{color:#675532;background:#fffdf8;border:1px solid #eadfc9;border-radius:7px;align-items:center;gap:5px;margin-left:10px;padding:5px 8px;font-size:10px;display:inline-flex}.portal-footer p{margin:10px 0}.portal-footer>small{color:#a09176;font-size:10px}.portal-error{text-align:center;background:#fffdf8;border:1px solid #ebdfc8;border-radius:20px;margin:12vh auto;padding:clamp(24px,7vw,42px)}.portal-error img{width:50px}.portal-error h1{color:#74400e;margin:12px 0;font-size:28px}.portal-error>p:not(.kicker){color:#766b58;font-size:13px;line-height:1.6}.portal-error button{color:#241806;background:#f6b632;border:1px solid #e5a327;border-radius:9px;min-height:44px;padding:10px 15px;font-weight:800}.portal-status{color:#79571d;justify-content:center;align-items:center;gap:8px;padding-top:40vh;font-size:13px;display:flex}.portal-inline-error{color:#963b24;background:#fff0e8;border-radius:9px;margin:0 0 12px;padding:11px;font-size:12px}.paid-return{margin:0 0 12px}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{box-shadow:0 0 0 7px #29936908}}@media (width<=520px){.portal-page{padding-inline:12px}.portal-header{height:60px}.tracking-card{border-radius:14px;padding:15px}.customer-map{height:225px}.portal-hero{padding-top:27px}.address{font-size:12px}.section-heading h2{font-size:17px}.map-caption{font-size:9px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
