body{margin:0}img{max-width:100%}[hidden]{display:none!important}
/* Layout: sticky navy header, full-bleed illustrated waterfront hero, trust strip, then calm sections that alternate surface and ground */
:root{
  --bg:#f5f7f7; --surface:#ffffff; --fg:#0f1f27; --muted:#56666d; --line:#dde3e4;
  --navy:#0b2733; --navy-2:#123847; --on-navy:#eef4f4; --brick:#b8402e; --gold:#c99a5b; --ok:#2f7a55;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --body:"Hanken Grotesk",ui-sans-serif,system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#09151a; --surface:#10212a; --fg:#e6eeef; --muted:#9aacb1; --line:#203540;
  --navy:#071c25; --navy-2:#0e2c38; --on-navy:#e6eeef; --brick:#e2735e; --gold:#d8b07a; --ok:#62bd8e; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#09151a; --surface:#10212a; --fg:#e6eeef; --muted:#9aacb1; --line:#203540;
  --navy:#071c25; --navy-2:#0e2c38; --on-navy:#e6eeef; --brick:#e2735e; --gold:#d8b07a; --ok:#62bd8e; color-scheme:dark}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--bg);color:var(--fg);font:400 17px/1.65 var(--body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--navy)}
.wrap{max-width:1160px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--display);line-height:1.08;text-wrap:balance;margin:0;letter-spacing:-.01em}
h2{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:600}
h3{font-size:1.2rem;font-weight:600}
p{margin:0}
a{color:inherit}
.eyebrow{font:500 .76rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brick)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--brick);color:#fff;font-weight:600;text-decoration:none;padding:13px 22px;border-radius:999px;border:0;font-size:1rem;cursor:pointer;transition:transform .15s,filter .15s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}
.btn.line{background:transparent;color:var(--on-navy);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--navy) 94%,transparent);backdrop-filter:blur(10px);color:var(--on-navy);border-bottom:1px solid rgba(255,255,255,.08)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand b{font:600 1.15rem var(--display);letter-spacing:.01em}
.brand small{display:block;font:500 .62rem var(--mono);letter-spacing:.18em;text-transform:uppercase;opacity:.7}
.links{display:flex;gap:28px;align-items:center}
.links a{text-decoration:none;font-weight:500;font-size:.95rem;opacity:.85}
.links a:hover{opacity:1}
.links .btn{opacity:1;padding:10px 18px;font-size:.92rem}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.35);color:var(--on-navy);border-radius:8px;padding:8px 12px;font:600 .9rem var(--body);cursor:pointer}
.drawer{background:var(--navy);color:var(--on-navy);border-bottom:1px solid rgba(255,255,255,.08)}
.drawer .wrap{display:grid;padding-block:8px 20px}
.drawer a{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);text-decoration:none;font-size:1.1rem}
.drawer a:last-child{border:0}

/* hero */
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero svg.scene{position:absolute;inset:0;width:100%;height:100%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,22,30,.86) 0%,rgba(6,22,30,.55) 45%,rgba(6,22,30,0) 75%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(72px,11vw,140px) clamp(80px,12vw,150px)}
.hero .eyebrow{color:var(--gold)}
.hero h1{font-size:clamp(2.5rem,6vw,4.4rem);font-weight:600;max-width:12em;margin-top:18px}
.hero p.lead{margin-top:20px;font-size:1.18rem;max-width:32em;color:rgba(255,255,255,.86)}
.hero .actions{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap}
.hero .btn.line{color:#fff}

/* trust strip */
.trust{background:var(--surface);border-bottom:1px solid var(--line)}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-block:26px}
.trust div{display:flex;gap:12px;align-items:center;min-width:0}
.trust svg{flex:none;width:26px;height:26px;color:var(--brick)}
.trust span{font-weight:600;font-size:.95rem;line-height:1.3}

section{padding-block:clamp(64px,9vw,104px)}
section.alt{background:var(--surface);border-block:1px solid var(--line)}
.head{display:grid;gap:14px;max-width:42em;margin-bottom:44px}
.head p{color:var(--muted);font-size:1.08rem}

/* how it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;counter-reset:s}
.steps>div{display:grid;gap:10px;align-content:start;padding-top:22px;border-top:2px solid var(--fg)}
.steps>div::before{counter-increment:s;content:"Step " counter(s);font:500 .76rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.steps p{color:var(--muted)}

/* report feature */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.feature>*{min-width:0}
.checks{display:grid;gap:14px;margin-top:22px}
.checks div{display:flex;gap:12px;color:var(--muted)}
.checks div::before{content:"";flex:none;width:18px;height:18px;margin-top:.25em;border-radius:50%;background:var(--ok);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 0a10 10 0 100 20 10 10 0 000-20zm-1.2 14.2L4.6 10l1.4-1.4 2.8 2.8 5.4-5.4 1.4 1.4-6.8 6.8z'/%3E%3C/svg%3E") center/contain no-repeat}
.checks b{color:var(--fg);font-weight:600}
.report{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 60px -30px rgba(11,39,51,.35);overflow:hidden;font-family:var(--mono);font-size:.84rem}
.report .rhead{background:var(--navy);color:var(--on-navy);padding:16px 20px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.report .rhead b{font-weight:500;letter-spacing:.06em}
.report .thumb{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:14px 20px 0}
.report .thumb svg{width:100%;height:auto;border-radius:6px;display:block}
.report ul{list-style:none;margin:0;padding:14px 20px;display:grid;gap:8px}
.report li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed var(--line);padding-bottom:8px}
.report li:last-child{border:0;padding-bottom:0}
.report li span:last-child{color:var(--ok);font-weight:500;white-space:nowrap}
.report li.flag span:last-child{color:var(--brick)}
.report .rfoot{padding:12px 20px 16px;color:var(--muted);border-top:1px solid var(--line)}

/* plans */
.tablebox{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:16px}
.rates{width:100%;border-collapse:collapse;min-width:600px;font-variant-numeric:tabular-nums}
.rates th,.rates td{padding:18px 22px;text-align:right;border-bottom:1px solid var(--line)}
.rates th:first-child,.rates td:first-child{text-align:left}
.rates thead th{font:500 .74rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--bg)}
.rates thead th.pick{color:var(--brick)}
.rates td{font-size:1.08rem}
.rates td:first-child{font-weight:500}
.rates td.pick{font-weight:700;background:color-mix(in srgb,var(--brick) 6%,transparent)}
.rates td[colspan]{text-align:center;color:var(--muted)}
.rates tr.water td{border-bottom:0;background:color-mix(in srgb,var(--gold) 12%,transparent)}
.note{margin-top:18px;color:var(--muted);font-size:.96rem;max-width:52em}
.note b{color:var(--fg)}

/* services */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.card svg{width:100%;height:auto;display:block}
.card div{padding:20px;display:grid;gap:8px;align-content:start}
.card p{color:var(--muted);font-size:.97rem}

/* area */
.area{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:center}
.area>*{min-width:0}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.pills span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 16px;font-weight:500}
.map{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px}
.map svg{width:100%;height:auto;display:block}
.map text{font-family:var(--mono);font-size:11px;fill:var(--fg)}

/* faq */
.faq{display:grid;gap:12px;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 22px}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:600;font-size:1.05rem;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.4rem/1 var(--body);color:var(--brick)}
.faq details[open] summary::after{content:"–"}
.faq details p{padding-bottom:18px;color:var(--muted)}

/* contact */
.contact{background:var(--navy);color:var(--on-navy)}
.contact .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;padding-block:clamp(64px,9vw,104px);align-items:center}
.contact .wrap>*{min-width:0}
.contact .eyebrow{color:var(--gold)}
.contact p.sub{margin-top:14px;color:rgba(255,255,255,.8);max-width:32em}
.cbox{background:var(--navy-2);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:8px 24px}
.crow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1);flex-wrap:wrap}
.crow:last-child{border:0}
.crow b a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.crow small{display:block;font:500 .7rem var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:.65}
.crow b{font-size:1.15rem;font-weight:600;user-select:all;word-break:break-word}
.copy{background:none;border:1px solid rgba(255,255,255,.35);color:var(--on-navy);border-radius:999px;padding:6px 14px;font:500 .85rem var(--body);cursor:pointer}
footer{background:var(--navy);color:rgba(255,255,255,.6);border-top:1px solid rgba(255,255,255,.08)}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:24px;font-size:.88rem}

@media (max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}.trust .wrap{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){
  .links{display:none}.menu-btn{display:block}
  .feature,.area,.contact .wrap{grid-template-columns:1fr;gap:36px}
  .steps{grid-template-columns:1fr}
  .hero::after{background:linear-gradient(180deg,rgba(6,22,30,.7) 0%,rgba(6,22,30,.78) 100%)}
}
@media (max-width:520px){.cards,.trust .wrap{grid-template-columns:1fr}}
.hero .scene{position:absolute;inset:0;background:var(--img-estate) 70% 50%/cover no-repeat}
.ph{aspect-ratio:16/9;max-width:100%;background-size:cover;background-position:center;background-repeat:no-repeat}
.ph.boat{background-image:var(--img-boat)}.ph.pool{background-image:var(--img-pool)}.ph.estate{background-image:var(--img-estate);background-position:30% 70%}
.thumb .ph{aspect-ratio:3/2;border-radius:6px}
.stormphoto{position:relative;overflow:hidden;background:var(--navy)}
.stormphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:35% 45%;display:block}
.stormphoto figcaption{position:absolute;left:12px;bottom:12px;background:rgba(7,28,37,.78);color:#eef4f4;font:500 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:999px;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}
.stormpanel{aspect-ratio:16/9;max-width:100%;background:var(--navy);color:var(--on-navy);display:grid;place-content:center;justify-items:center;gap:8px;text-align:center}
.stormpanel svg{width:44px;height:44px;color:var(--gold)}
.stormpanel span{font:500 .78rem var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.hero::after{background:linear-gradient(90deg,rgba(6,22,30,.88) 0%,rgba(6,22,30,.6) 45%,rgba(6,22,30,.1) 80%)}
@media (max-width:820px){.hero::after{background:linear-gradient(180deg,rgba(6,22,30,.72) 0%,rgba(6,22,30,.82) 100%)}}
:root{--img-boat:url("images/boat.jpg");--img-pool:url("images/pool.jpg");--img-estate:url("images/estate.jpg")}
/* inner pages: sign-up, login, account, schedule */
.intro{background:var(--navy);color:var(--on-navy)}
.intro .wrap{padding-block:clamp(48px,7vw,84px)}
.intro .eyebrow{color:var(--gold)}
.intro h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:600;margin-top:16px;max-width:14em}
.intro p{margin-top:16px;max-width:36em;color:rgba(255,255,255,.84);font-size:1.1rem}
.stepnav{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px;padding:0;list-style:none}
.stepnav a{display:inline-flex;gap:10px;align-items:center;text-decoration:none;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:8px 16px;font-weight:500}
.stepnav b{font:500 .78rem var(--mono);color:var(--gold)}
.step{display:grid;grid-template-columns:72px 1fr;gap:24px}
.step>*{min-width:0}
.num{font:600 2.4rem/1 var(--display);color:var(--brick)}
.step .head{margin-bottom:28px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:clamp(18px,3vw,28px)}
section.alt .panel{background:var(--bg)}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.btn.ghost{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1px var(--line)}
.cal{min-height:700px;border-radius:12px;overflow:hidden}
fieldset{border:0;margin:0 0 24px;padding:0}
legend{font:500 .74rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;padding:0}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.opt span{display:block;height:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--surface);font-weight:600;cursor:pointer}
.opt small{display:block;font-weight:400;color:var(--muted);font-size:.88rem}
.opt input:checked+span{border-color:var(--brick);box-shadow:inset 0 0 0 1px var(--brick)}
.opt input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.check input{width:20px;height:20px;margin-top:3px;accent-color:var(--brick)}
.total{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--line);padding-top:22px;margin-top:8px}
.total .price{font:600 2.4rem/1 var(--display)}
.total .price small{font:400 1rem var(--body);color:var(--muted)}
.total .what{color:var(--muted)}
.terms{margin-top:20px;font-size:.92rem;color:var(--muted);display:grid;gap:8px}
.terms li{margin-left:1.1em}
.status{margin-top:18px;padding:14px 16px;border-radius:12px;background:color-mix(in srgb,var(--gold) 16%,transparent);font-size:.96rem}
@media (max-width:700px){.step{grid-template-columns:1fr;gap:8px}.num{font-size:1.8rem}}
/* account pages: login, account, schedule */
.wrap.narrow{max-width:760px}
.form{display:grid;gap:16px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
.form label small{font-weight:400;color:var(--muted)}
.form input:not([type=checkbox]),.form select,.form textarea{font:400 1rem var(--body);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;width:100%;box-sizing:border-box;min-height:48px}
.form textarea{resize:vertical;min-height:110px}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
.form .btn{justify-self:start}
.form .check{display:flex;font-weight:500}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid2>*{min-width:0}
.hint{font-size:.9rem;color:var(--muted)}
.formmsg{padding:12px 14px;border-radius:10px;font-size:.95rem;background:color-mix(in srgb,var(--brick) 12%,transparent)}
.formmsg.ok{background:color-mix(in srgb,var(--ok) 15%,transparent)}
.linkbtn{background:none;border:0;padding:0;color:var(--muted);text-decoration:underline;font:500 .92rem var(--body);cursor:pointer;justify-self:start}
.tabs{display:flex;gap:6px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px;margin-bottom:22px;width:max-content;max-width:100%}
.tabs button{border:0;background:none;border-radius:999px;padding:9px 18px;font:600 .95rem var(--body);color:var(--muted);cursor:pointer}
.tabs button[aria-selected=true]{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.acctbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px}
.acctbar b{word-break:break-all}
.reqs{list-style:none;margin:14px 0 0;padding:0;display:grid}
.reqs li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 0;border-top:1px solid var(--line)}
.reqs .meta{color:var(--muted);font-size:.92rem}
.reqs .notes{grid-column:1/-1;color:var(--muted);font-size:.92rem;white-space:pre-wrap;word-break:break-word}
.badge{align-self:start;font:500 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--line)}
.badge.confirmed,.badge.completed{color:var(--ok);border-color:currentColor}
.badge.pending{color:var(--gold);border-color:currentColor}
.badge.cancelled{color:var(--muted)}
@media (max-width:1180px){.links{display:none}.menu-btn{display:block}}
@media (max-width:560px){.grid2{grid-template-columns:1fr}}
#need-address{margin:0 0 16px}
.hero .cta-note{margin-top:14px;font-size:.95rem;color:rgba(255,255,255,.8)}
.brand-mark{display:block;width:38px;height:38px;flex:none}
.cal:has(.gcal){min-height:0;background:#fff;border:1px solid var(--line)}
.gcal{display:block;width:100%;height:720px;border:0}
@media (max-width:560px){.gcal{height:820px}}
.cal-open{display:inline-block;margin-top:10px;font-size:.9rem;color:var(--muted)}
.links .btn.navghost{background:transparent;color:var(--on-navy);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.links .btn+.btn{margin-left:-16px}
/* login */
.codeinput{font:600 1.6rem var(--mono)!important;letter-spacing:.4em;text-align:center}
.linkrow{display:flex;flex-wrap:wrap;gap:10px 22px}
button.btn{font-family:var(--body)}
/* ---------- portal + admin ---------- */
.wrap.mid{max-width:980px}
.adminnav{display:flex;gap:4px;overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;margin-bottom:22px;scrollbar-width:none;position:sticky;top:76px;z-index:5}
.adminnav::-webkit-scrollbar{display:none}
.adminnav a{flex:1 0 auto;text-align:center;text-decoration:none;font-weight:600;font-size:.95rem;color:var(--muted);padding:9px 14px;border-radius:999px;white-space:nowrap}
.adminnav a.on{background:var(--navy);color:var(--on-navy)}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;text-decoration:none;display:grid;gap:2px}
.tile b{font:600 2rem/1 var(--display)}
.tile span{color:var(--muted);font-size:.9rem}
.tile.hot{border-color:var(--brick);box-shadow:inset 0 0 0 1px var(--brick)}
.tile.hot b{color:var(--brick)}
.block{margin-bottom:28px}
.blocktitle{margin-bottom:12px}
.subhead{margin:18px 0 6px;font:500 .74rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.list{display:grid}
.item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line);color:inherit}
.item:first-child{border-top:0}
.panel>.item:first-child,.panel .list:first-child>.item:first-child{padding-top:0}
.item.col{display:grid;gap:8px}
.item .row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.item>div:first-child,.item .row>div:first-child{min-width:0}
.item.link{text-decoration:none}
.item.link:hover b{text-decoration:underline}
.item.inactive{opacity:.6}
.meta{color:var(--muted);font-size:.92rem;overflow-wrap:anywhere}
.meta a{color:inherit}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.notes{color:var(--muted);font-size:.95rem;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;flex:none}
.badge.new{color:var(--brick);border-color:currentColor}
.badge.approved{color:var(--ok);border-color:currentColor}
.badge.declined{color:var(--muted)}
.badge.scheduled{color:var(--sea,#3d7f93);border-color:currentColor}
.empty{color:var(--muted);margin:4px 0}
.toolbar{display:flex;gap:10px;margin-bottom:16px}
.toolbar input{flex:1;min-width:0;font:400 1rem var(--body);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:12px 18px}
.toolbar .btn{flex:none}
.back{display:inline-block;margin-bottom:14px;color:var(--muted);text-decoration:none;font-weight:600}
.titlerow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.titlerow .h2{font:600 1.6rem/1.1 var(--display);margin:0;flex:1;min-width:0}
.btn.small{padding:8px 16px;font-size:.9rem}
.btn.danger{color:var(--brick)!important;box-shadow:inset 0 0 0 1px currentColor}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0 0 6px}
.facts dt{font:500 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.facts dd{margin:0;overflow-wrap:anywhere}
.facts a{color:inherit}
.panel>.notes{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
form.inline{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:16px}
form.inline label{display:grid;gap:6px;font-weight:600;font-size:.95rem;flex:1;min-width:180px}
form.inline input{font:400 1rem var(--body);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 14px;min-height:48px;box-sizing:border-box;width:100%}
.item form.form{margin-top:6px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.seg{display:inline-flex;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px;margin-bottom:16px}
.seg a{text-decoration:none;font-weight:600;font-size:.92rem;color:var(--muted);padding:8px 16px;border-radius:999px}
.seg a.on{background:var(--fg);color:var(--bg)}
.item select{font:500 .9rem var(--body);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 12px;flex:none}
details.adder{margin-bottom:12px}
details.adder summary{cursor:pointer;font-weight:600;color:var(--brick);padding:4px 0;list-style:none}
details.adder summary::-webkit-details-marker{display:none}
details.adder[open] summary{margin-bottom:10px}
details.adder+.list{border-top:1px solid var(--line);padding-top:4px}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,40px);opacity:0;background:var(--fg);color:var(--bg);padding:12px 20px;border-radius:999px;font-weight:600;transition:.25s;z-index:100;pointer-events:none;max-width:calc(100% - 32px)}
#toast.show{transform:translate(-50%,0);opacity:1}
@media (max-width:700px){.tiles{grid-template-columns:repeat(2,1fr)}.toolbar{flex-wrap:wrap}.toolbar input{flex-basis:100%}}
section.block{padding-block:0}
.adminnav a{padding:9px 6px;font-size:.9rem}
@media (min-width:560px){.adminnav a{padding:9px 14px;font-size:.95rem}}
section.block{margin:30px 0 0}.panel+section.block,.back+.panel+section.block{margin-top:30px}
.adminnav a.on{background:var(--fg);color:var(--bg)}
/* client portal */
.homecard{display:grid;gap:10px}
.homefacts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 8px;padding:14px 0;border-block:1px solid var(--line)}
.homefacts span{display:block;font:500 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.homefacts b{font-size:1.05rem}
.homecard .btn{justify-self:start}
.list.cards{gap:14px}
.panel.quote{display:grid;gap:12px;border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.panel.quote .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.panel.quote .price{font:600 1.9rem/1 var(--display)}
.qdesc{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}
.visitnotes{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:1.02rem;line-height:1.7}
.chev{font-size:1.6rem;color:var(--muted);flex:none;line-height:1}
/* photos */
.photogrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:4px}
.pthumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--line)}
.pthumbbtn{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}
.pthumbbtn:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.pthumb img{width:100%;height:100%;object-fit:cover;display:block}
.pthumb img.broken{opacity:0}
.pthumbdel{position:absolute;top:4px;right:4px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:18px;line-height:28px;padding:0;cursor:pointer}
.uploader{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(5,12,16,.94);display:grid;place-items:center;padding:56px 12px}
.lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.lightbox button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:50%;width:44px;height:44px;font-size:28px;line-height:44px;padding:0;cursor:pointer}
.lb-close{top:max(12px,env(safe-area-inset-top));right:12px}
.lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.lb-next{right:10px;top:50%;transform:translateY(-50%)}
.lb-count{position:absolute;bottom:max(16px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;color:rgba(255,255,255,.8);font:500 .85rem var(--mono)}
.grid3{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px}
.grid3>*{min-width:0}
.schedform{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid var(--line)}
@media (max-width:480px){.grid3{grid-template-columns:1fr 1fr}.grid3>label:first-child{grid-column:1/-1}}
.whenwrap{display:grid;gap:8px}
.taken{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:.85rem}
.tchip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:var(--bg);color:var(--fg)}
.tchip.calendar{border-style:dashed}
.tchip.request{border-color:var(--brick);color:var(--brick)}
.slotfield{display:grid;gap:6px}
.slotlabel{font-weight:600;font-size:.95rem}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.slot{font:600 .95rem var(--body);color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 6px;cursor:pointer;min-height:44px}
.slot[aria-checked=true]{background:var(--brick);border-color:var(--brick);color:#fff}
.slot:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
/* Let buttons drop below the text on narrow phones instead of squeezing it */
.item,.item .row{flex-wrap:wrap}
.item>div:first-child,.item .row>div:first-child{flex:1 1 200px}
.item .chips{flex:0 1 auto;min-width:0;justify-content:flex-start}
.reportline{margin:0;font-size:.95rem;white-space:pre-wrap;overflow-wrap:anywhere}
