@font-face{font-family:DM Sans;src:url(/fonts/DMSans-Bold.ttf)format("truetype");font-weight:700;font-display:swap}:root{color:#0a1628;font-synthesis:none;--brand:#0f5166;--accent:#0891b2;--border:#dce8ec;--muted:#60717b;--shadow:0 10px 30px #0b2f3d14;background:#f3f7fa;font-family:DM Sans,Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.5}*{box-sizing:border-box}html{background:#f3f7fa;min-height:100%}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}img{max-width:100%}:focus-visible{outline-offset:3px;outline:3px solid #f6b73c}.skip-link{z-index:100;background:#fff;border-radius:.6rem;padding:.7rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--brand);margin:0 0 .35rem;font-size:.72rem;font-weight:700}.muted{color:var(--muted)}.auth-page{background:radial-gradient(circle at 100% 0,#48cae447,#0000 38%),linear-gradient(145deg,#082337,#0f5166 55%,#087b91);place-items:center;min-height:100vh;padding:1.25rem;display:grid}.auth-panel,.state-card{background:#fffffffa;border-radius:1.5rem;width:min(100%,29rem);padding:clamp(1.5rem,5vw,2.5rem);box-shadow:0 24px 70px #00000038}.auth-brand{align-items:center;gap:.7rem;margin-bottom:2.2rem;display:flex}.auth-brand>span:last-child{color:#526477;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:.78rem;font-weight:700}.poolnet-brand{background:#082337;border-radius:.72rem;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.poolnet-brand img{-o-object-fit:contain;object-fit:contain;width:auto;display:block}.poolnet-brand-auth{height:3.15rem;padding:.68rem 1rem}.poolnet-brand-auth img{height:1.65rem}.success-icon{color:#fff;background:linear-gradient(135deg,#0f5166,#08a7c0);border-radius:.8rem;place-items:center;width:2.5rem;height:2.5rem;display:grid}.auth-panel h1,.state-card h1{letter-spacing:-.04em;margin:.25rem 0 .8rem;font-size:clamp(1.8rem,7vw,2.45rem);line-height:1.08}.auth-intro,.sent-state>p{color:#526477;margin:0 0 1.75rem}.auth-form{gap:.7rem;display:grid}.auth-form label,.account-form label{font-size:.88rem;font-weight:700}.input-with-icon{position:relative}.input-with-icon svg{color:#6f858f;position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.input-with-icon input,.account-form input,.property-bar select{color:#0a1628;background:#fff;border:1px solid #cddde3;border-radius:.8rem;width:100%;padding:.85rem 1rem}.input-with-icon input{padding-left:2.7rem}.button{border:0;border-radius:.8rem;justify-content:center;align-items:center;gap:.5rem;padding:.82rem 1.05rem;font-weight:700;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.6;transform:none}.button.primary{background:var(--brand);color:#fff}.button.secondary{color:#17475a;background:#e8f2f5}.button.full{width:100%;margin-top:1rem}.text-button{color:var(--brand);background:0 0;border:0;margin-top:.75rem;font-weight:700}.security-note{color:#60717b;border-top:1px solid #e2ecef;align-items:flex-start;gap:.65rem;margin-top:1.25rem;padding-top:1.1rem;font-size:.78rem;display:flex}.security-note svg{color:var(--brand);flex:none}.sent-state{text-align:center}.sent-state .success-icon{margin:0 auto 1rem}.form-notice{color:#164c59;background:#edf7f7;border-radius:.7rem;padding:.75rem .9rem;font-size:.86rem}.state-card{text-align:center}.state-card>svg{width:2.7rem;height:2.7rem;color:var(--brand);margin-bottom:.5rem}.state-card p{color:#60717b}.state-card .button{margin-top:.6rem}.success-color{color:#168467!important}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100vh}.topbar{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#fffffff0;justify-content:space-between;align-items:center;height:4.5rem;padding:0 1rem;display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:.65rem;min-width:0;display:flex}.poolnet-brand-header{height:2.55rem;padding:.56rem .72rem}.poolnet-brand-header img{height:1.33rem}.provider-context{min-width:0;line-height:1.15;display:grid}.provider-context strong{white-space:nowrap;text-overflow:ellipsis;max-width:35vw;font-size:.78rem;overflow:hidden}.provider-context span{color:var(--muted);font-size:.68rem}.icon-button{width:2.6rem;height:2.6rem;color:var(--brand);background:#e9f2f5;border:0;border-radius:.75rem;place-items:center;display:grid}.signout{color:#4c6570;background:0 0;border:0;align-items:center;gap:.45rem;font-weight:700;display:flex}.desktop-signout{display:none}.property-bar{background:#e9f4f6;border-bottom:1px solid #d4e6ea;align-items:center;gap:.75rem;padding:.6rem 1rem;display:flex}.property-bar label{color:#45616d;font-size:.76rem;font-weight:700}.property-bar select{min-width:0;padding:.55rem .7rem}.desktop-layout main{width:100%;max-width:76rem;margin:0 auto;padding:1.25rem 1rem 6.5rem}.side-nav{z-index:45;background:#fff;width:min(82vw,19rem);padding:1rem;transition:transform .2s;position:fixed;inset:4.5rem auto 0 0;transform:translate(-105%);box-shadow:12px 0 35px #00000026}.side-nav.open{transform:none}.side-nav a,.mobile-signout{color:#516874;border-radius:.75rem;align-items:center;gap:.8rem;margin-bottom:.2rem;padding:.8rem;font-weight:700;text-decoration:none;display:flex}.side-nav a.active{color:var(--brand);background:#e8f3f5}.mobile-signout{border-top:1px solid var(--border);width:100%;margin-top:1rem}.nav-scrim{z-index:40;background:#04121c6b;border:0;position:fixed;inset:4.5rem 0 0}.bottom-nav{z-index:35;padding:.45rem .3rem max(.45rem,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#fffffff7;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 25px #0b2f3d14}.bottom-nav a{color:#71848d;border-radius:.6rem;flex-direction:column;align-items:center;gap:.18rem;padding:.35rem .1rem;font-size:.65rem;font-weight:700;text-decoration:none;display:flex}.bottom-nav a.active{color:var(--brand);background:#edf6f7}.offline-banner,.stale-banner{z-index:60;color:#fff;background:#8a5700;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.78rem;display:flex;position:relative}.stale-banner{background:#694b14}.stale-banner button{color:#fff;background:0 0;border:0;font-weight:700;text-decoration:underline}.page-stack{gap:1.4rem;display:grid}.page-heading h1,.welcome-card h1,.detail-card h1{letter-spacing:-.035em;margin:.15rem 0 .5rem;font-size:clamp(1.7rem,6vw,2.35rem);line-height:1.1}.page-heading>p:last-child{color:var(--muted);margin:0}.welcome-card{background:linear-gradient(135deg,var(--brand),#0b7d91);color:#fff;box-shadow:var(--shadow);border-radius:1.35rem;padding:1.4rem;position:relative;overflow:hidden}.welcome-card:after{content:"";border:2rem solid #ffffff0d;border-radius:50%;width:12rem;height:12rem;position:absolute;top:-5rem;right:-5rem}.welcome-card .eyebrow{color:#a9edf5}.welcome-card>p:not(.eyebrow){color:#d6f1f4;align-items:center;gap:.4rem;margin:.2rem 0 1.3rem;display:flex}.next-service{z-index:1;background:#ffffff21;border:1px solid #ffffff2e;border-radius:1rem;align-items:center;gap:.85rem;padding:1rem;display:flex;position:relative}.next-service>span{background:#ffffff2b;border-radius:.8rem;flex:none;place-items:center;width:2.7rem;height:2.7rem;display:grid}.next-service div{display:grid}.next-service small{color:#c8edf1}.next-service strong{font-size:1.05rem}.next-service p{color:#c8edf1;margin:.1rem 0 0;font-size:.78rem}.section-heading{justify-content:space-between;align-items:end;margin-bottom:.75rem;display:flex}.section-heading h2{margin:0;font-size:1.25rem}.metric-grid{gap:.75rem;display:grid}.metric-card{border:1px solid var(--border);background:#fff;border-radius:1rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:1rem;text-decoration:none;display:grid;box-shadow:0 5px 18px #0b2f3d0d}.metric-card>span{width:2.8rem;height:2.8rem;color:var(--brand);background:#e7f4f5;border-radius:.8rem;place-items:center;display:grid}.metric-card.attention>span{color:#bb5600;background:#fff0e6}.metric-card.quote>span{color:#554cc7;background:#eef0ff}.metric-card div{display:grid}.metric-card small{color:var(--muted)}.metric-card strong{font-size:1.15rem}.metric-card p{color:var(--muted);margin:.05rem 0 0;font-size:.74rem}.metric-card>svg{color:#8ca0a8}.activity-list,.card-list{gap:.7rem;display:grid}.activity-item{border:1px solid var(--border);background:#fff;border-radius:.9rem;align-items:center;gap:.8rem;padding:.8rem;display:flex}.activity-item>div{min-width:0}.activity-item strong{font-size:.87rem}.activity-item p{color:var(--muted);margin:.1rem 0 0;font-size:.75rem}.activity-icon{width:2.4rem;height:2.4rem;color:var(--brand);background:#e8f4f5;border-radius:.7rem;flex:none;place-items:center;display:grid}.activity-icon svg{width:1.15rem}.activity-icon.invoice{color:#ad5709;background:#fff2e7}.activity-icon.quote{color:#554cc7;background:#eeefff}.empty-card{text-align:center;color:var(--muted);background:#fff;border:1px dashed #bfd0d6;border-radius:1rem;padding:2rem 1.2rem}.empty-card>svg{color:#8da4ad;width:2.4rem;height:2.4rem}.empty-card h2,.empty-card h3{color:#183340;margin:.65rem 0 .25rem}.empty-card p{margin:0}.timeline{display:grid}.timeline-card{grid-template-columns:2.6rem 1fr;gap:.7rem;display:grid;position:relative}.timeline-card:not(:last-child):before{content:"";background:#d8e7eb;width:2px;position:absolute;top:2.5rem;bottom:0;left:1.25rem}.timeline-marker{z-index:1;background:var(--brand);color:#fff;border:5px solid #e7f1f4;border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;display:grid}.timeline-marker svg{width:1rem}.timeline-content,.list-card,.detail-card{border:1px solid var(--border);background:#fff;border-radius:1rem;min-width:0;margin-bottom:.85rem;padding:1rem;box-shadow:0 5px 18px #0b2f3d0a}.timeline-content time{color:var(--brand);font-size:.76rem;font-weight:700}.timeline-content h2,.list-card h2,.detail-card h2{margin:.15rem 0;font-size:1rem}.card-title-row{justify-content:space-between;align-items:flex-start;gap:.7rem;display:flex}.status{color:#526772;white-space:nowrap;background:#edf2f4;border-radius:999px;align-items:center;padding:.25rem .55rem;font-size:.67rem;font-weight:700;display:inline-flex}.status.paid,.status.completed,.status.accepted{color:#18714a;background:#e3f6ec}.status.overdue,.status.declined{color:#a43f1b;background:#fff0ea}.status.sent,.status.pending{color:#17658e;background:#e7f3fa}.status.void,.status.expired{color:#607078;background:#edf0f2}.customer-note,.note-box{background:#f3f8f9;border-radius:.75rem;margin:.8rem 0;padding:.75rem;font-size:.84rem}.inline-status{align-items:center;gap:.4rem;font-size:.78rem;display:flex}.photo-grid{grid-template-columns:repeat(2,1fr);gap:.45rem;margin-top:.8rem;display:grid}.photo-grid a{aspect-ratio:4/3;background:#e5eef1;border-radius:.65rem;overflow:hidden}.photo-grid img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.photo-skeletons{grid-template-columns:1fr 1fr;gap:.45rem;margin-top:.8rem;display:grid}.photo-skeletons span{aspect-ratio:4/3;background:linear-gradient(90deg,#e6eef1,#f6f9fa,#e6eef1) 0 0/200% 100%;border-radius:.65rem;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.item-number{color:var(--brand);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.72rem;font-weight:700}.compact-details,.detail-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1rem 0;display:grid}.compact-details div,.detail-grid div{display:grid}.compact-details dt,.detail-grid dt{color:var(--muted);font-size:.68rem}.compact-details dd,.detail-grid dd{margin:0;font-size:.82rem;font-weight:700}.card-link,.back-link{color:var(--brand);font-size:.83rem;font-weight:700;text-decoration:none}.detail-card{margin:0;padding:1.15rem}.detail-card>.card-title-row{border-bottom:1px solid var(--border);padding-bottom:.9rem}.line-items{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.line-items>div{justify-content:space-between;gap:1rem;padding:.75rem 0;font-size:.83rem;display:flex}.line-items span{display:grid}.line-items small{color:var(--muted)}.total-row{justify-content:space-between;padding:1rem 0;font-size:1.02rem;display:flex}.secure-caption{color:var(--muted);text-align:center;margin:.65rem 0 0;font-size:.72rem}.action-grid{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:1rem;display:grid}.icon-heading{align-items:center;gap:.75rem;display:flex}.icon-heading>svg{width:2.5rem;height:2.5rem;color:var(--brand);background:#e8f4f5;border-radius:.75rem;padding:.6rem}.icon-heading h2{margin:0;font-size:1.1rem}.address-block{color:#536b76}.account-form{gap:.85rem;margin-top:1rem;display:grid}.account-form label{gap:.35rem;display:grid}.support-links{gap:.7rem;margin-top:1rem;display:grid}.support-links a{color:var(--brand);align-items:center;gap:.5rem;font-weight:700;text-decoration:none;display:flex}@media (width>=700px){.topbar{padding:0 2rem}.menu-button,.mobile-signout,.nav-scrim,.bottom-nav{display:none}.desktop-signout{display:flex}.desktop-layout{grid-template-columns:15rem 1fr;max-width:92rem;margin:0 auto;display:grid}.side-nav{box-shadow:none;z-index:10;top:4.5rem;border-right:1px solid var(--border);background:0 0;width:auto;height:calc(100vh - 4.5rem);padding:1.4rem .8rem;position:sticky;inset:auto;transform:none}.desktop-layout main{max-width:none;padding:2rem 2.2rem 4rem}.property-bar{padding-left:calc(50vw - min(92rem,100vw)/2 + 17.2rem);padding-right:2rem}.page-stack{gap:2rem}.metric-grid{grid-template-columns:1fr 1fr}.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.welcome-card{padding:2rem}.welcome-card .next-service{max-width:31rem}.detail-card{padding:1.6rem}.timeline-content{padding:1.25rem}.photo-grid{grid-template-columns:repeat(3,1fr)}.compact-details dd,.detail-grid dd{font-size:.9rem}}@media (width>=1100px){.card-list{grid-template-columns:repeat(3,minmax(0,1fr))}.page-stack{max-width:68rem}.welcome-card{-moz-column-gap:2rem;grid-template-columns:1fr 30rem;align-items:end;column-gap:2rem;display:grid}.welcome-card>.eyebrow,.welcome-card>h1,.welcome-card>p{grid-column:1}.welcome-card>.next-service{grid-area:1/2/4}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
