/* Ops management UI – calm, dense where useful, mobile first. */
:root{--bg:#f4f5f3;--card:#fff;--ink:#17201d;--mute:#5f6b67;--line:#e2e5e1;--line2:#cfd5d0;--brand:#14332b;--accent:#1f7a5c;--accent-soft:#e7f3ee;--ok:#1b7a43;--warn:#9a5b00;--bad:#b42318;--info:#1d4ed8;--focus:#f59e0b;--r:12px;--hh:56px;--sw:232px;--shadow:0 1px 2px rgba(20,30,25,.05)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.5 Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;z-index:100;background:#000;color:#fff;padding:.5rem 1rem}.skip:focus{left:.5rem}
h1{font-size:1.4rem;line-height:1.25;margin:.1rem 0 1rem;letter-spacing:-.01em}
h2{font-size:1.02rem;margin:1.2rem 0 .7rem}
h3{font-size:.95rem;margin:1rem 0 .4rem}
.mute{color:var(--mute)}small,.small{font-size:.86rem}
/* ---------- header ---------- */
.top{position:fixed;top:0;left:0;right:0;height:var(--hh);z-index:30;display:flex;align-items:center;gap:.75rem;background:var(--brand);color:#fff;padding:0 .75rem 0 .9rem}
.top a{color:#fff;text-decoration:none}
.logo{display:flex;align-items:center;gap:.5rem;font-weight:700;letter-spacing:.2px;flex:0 0 auto}
.logo-mark{display:inline-flex;width:30px;height:30px;border-radius:9px;background:#2a9d76;align-items:center;justify-content:center;font-size:.95rem}
@media (min-width:900px){.logo{width:calc(var(--sw) - 1.65rem)}}
.search{flex:1;max-width:560px;position:relative;display:flex;align-items:center}
.search svg{position:absolute;left:.7rem;color:#9fb3ab;pointer-events:none;z-index:1}
.top .search input{width:100%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.1);color:#fff;border-radius:10px;padding:.5rem .8rem .5rem 2.2rem;font:inherit;height:38px;min-height:38px}
.top .search input::placeholder{color:#b9c9c2}.top .search input:focus{background:#fff;color:var(--ink);outline:none;border-color:#fff}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:.35rem}
.top-new{display:inline-flex;align-items:center;gap:.35rem;background:#2a9d76;border-radius:10px;padding:0 .8rem;height:36px;font-weight:600}
.top-new span:first-child{font-size:1.2rem;line-height:1}
.bell{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px}
.bell:hover,.menu summary:hover{background:rgba(255,255,255,.1)}
.bell b{position:absolute;top:3px;right:2px;background:#ef4444;color:#fff;border-radius:9px;font-size:.68rem;line-height:1;padding:.18rem .32rem;font-weight:700}
.menu{position:relative}
.menu summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem;padding:.25rem .4rem;border-radius:10px}
.menu summary::-webkit-details-marker{display:none}
.avatar{width:32px;height:32px;border-radius:50%;background:#e9f1ed;color:var(--brand);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem}
.who{max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}
@media (min-width:1100px){.who{display:inline}}
.menu>div{position:absolute;right:0;top:calc(100% + 6px);background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:.4rem;min-width:15rem;display:grid;gap:2px;box-shadow:0 14px 34px rgba(0,0,0,.14)}
.menu-head{margin:0;padding:.5rem .6rem .6rem;border-bottom:1px solid var(--line);display:flex;flex-direction:column}.menu-head span{color:var(--mute);font-size:.85rem}
.menu>div a,.menu>div button.link{color:var(--ink);padding:.5rem .6rem;border-radius:8px;text-align:left;width:100%;font-size:.93rem}
.menu>div a:hover,.menu>div button.link:hover{background:var(--bg)}
@media (max-width:640px){.top-new .lbl{display:none}.top-new{padding:0 .65rem}.search input{padding-left:2rem}}
/* ---------- side nav (desktop) ---------- */
.side{display:none}
@media (min-width:900px){
  .side{display:block;position:fixed;top:var(--hh);bottom:0;left:0;width:var(--sw);overflow-y:auto;background:#fff;border-right:1px solid var(--line);padding:.6rem .55rem 2rem}
  .side-h{margin:1rem .7rem .35rem;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a958f}
  .side-h:first-child{margin-top:.4rem}
  .side a{display:flex;align-items:center;gap:.65rem;padding:.48rem .7rem;border-radius:9px;color:#3c4744;text-decoration:none;font-size:.93rem;margin:1px 0}
  .side a svg{color:#7b8781;flex:0 0 auto}
  .side a:hover{background:#f2f4f2;color:var(--ink)}
  .side a[aria-current]{background:var(--accent-soft);color:var(--brand);font-weight:600}.side a[aria-current] svg{color:var(--accent)}
  .side .count{margin-left:auto}
}
.count{display:inline-flex;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:99px;background:#e6ebe8;color:#33403b;font-size:.72rem;font-weight:700;align-items:center;justify-content:center}
.side a[aria-current] .count{background:#fff}
/* ---------- bottom nav (mobile) ---------- */
.bottom{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.bottom>a,.more-nav>summary{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.45rem .2rem .4rem;color:#6b7772;text-decoration:none;font-size:.7rem;list-style:none;cursor:pointer}
.more-nav{flex:1;display:flex}.more-nav>summary::-webkit-details-marker{display:none}
.bottom>a[aria-current]{color:var(--accent);font-weight:600}
.more-nav>div{position:fixed;left:.5rem;right:.5rem;bottom:calc(64px + env(safe-area-inset-bottom));background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 -10px 30px rgba(0,0,0,.12);padding:.4rem;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.more-nav>div a{display:flex;align-items:center;gap:.5rem;padding:.65rem .6rem;border-radius:8px;color:var(--ink);text-decoration:none;font-size:.92rem}
@media (min-width:900px){.bottom{display:none}}
/* ---------- main ---------- */
.main{padding:calc(var(--hh) + 1rem) .85rem calc(5.5rem + env(safe-area-inset-bottom));max-width:1320px}
@media (min-width:900px){.main{margin-left:var(--sw);padding:calc(var(--hh) + 1.5rem) 2rem 3rem}}
.auth{max-width:26rem;margin:10vh auto;padding:1rem}
.page-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.page-top h1{margin:0}
.crumbs{font-size:.85rem;color:var(--mute);margin:0 0 .3rem}.crumbs a{color:var(--mute)}
/* ---------- cards & layout ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.15rem;margin-bottom:1rem;box-shadow:var(--shadow)}
.card>h2:first-child,.card>h3:first-child{margin-top:0}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}.card-h h2{margin:0}
.grid{display:grid;gap:1rem}
@media (min-width:900px){.grid.two{grid-template-columns:1fr 1fr}.grid.side-r{grid-template-columns:minmax(0,1fr) 360px}.grid.three{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1200px){.grid.side-r{grid-template-columns:minmax(0,1fr) 380px}}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.row.between{justify-content:space-between}
.stack>*+*{margin-top:.6rem}
.kv{display:grid;grid-template-columns:minmax(7rem,9.5rem) 1fr;gap:.35rem .9rem;margin:0}.kv dt{color:var(--mute)}.kv dd{margin:0;overflow-wrap:anywhere}
@media (max-width:480px){.kv{grid-template-columns:1fr}.kv dt{margin-top:.4rem;font-size:.82rem}}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-bottom:1rem}
@media (min-width:700px){.stats{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1200px){.stats{grid-template-columns:repeat(6,1fr)}}
.stat{display:flex;flex-direction:column;gap:.15rem;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:.8rem .95rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);min-height:84px}
.stat b{font-size:1.55rem;line-height:1.1;letter-spacing:-.02em}.stat span{font-size:.84rem;color:var(--mute)}
.stat:hover{border-color:var(--line2)}.stat.alert b{color:var(--bad)}.stat.warn b{color:var(--warn)}.stat.good b{color:var(--ok)}
/* ---------- tables ---------- */
.tbl{width:100%;border-collapse:collapse;background:#fff}
.tbl th,.tbl td{text-align:left;padding:.6rem .65rem;border-bottom:1px solid var(--line);vertical-align:top}
.tbl th{font-size:.76rem;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;background:#fafbfa}
.tbl tbody tr:hover td{background:#fafbf9}
.tbl tr:last-child td{border-bottom:0}
.tbl .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow)}
.card .tbl{border-radius:8px}
@media (max-width:700px){.tbl.cards thead{display:none}.tbl.cards tr{display:block;border-bottom:1px solid var(--line);padding:.55rem .2rem}.tbl.cards td{display:block;border:0;padding:.12rem .6rem}.tbl.cards tr:hover td{background:none}}
/* ---------- forms ---------- */
label{display:block;font-weight:600;font-size:.86rem;margin:.7rem 0 .25rem;color:#2c3532}
input:not([type]),input[type=text],input[type=email],input[type=tel],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=time],input[type=search],input[type=url],select,textarea{width:100%;font:inherit;font-size:.95rem;padding:.55rem .7rem;border:1px solid var(--line2);border-radius:9px;background:#fff;color:var(--ink);min-height:42px;box-sizing:border-box}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px rgba(31,122,92,.16)}
.search input:focus{box-shadow:none}
textarea{min-height:6rem;resize:vertical;line-height:1.45}
input[type=file]{width:100%;font:inherit;font-size:.9rem;padding:.5rem;border:1px dashed var(--line2);border-radius:9px;background:#fafbfa;min-height:42px}
input[type=file]::file-selector-button{font:inherit;border:1px solid var(--accent);background:#fff;color:var(--accent);border-radius:7px;padding:.3rem .75rem;margin-right:.6rem;cursor:pointer}
label>input:not([type=checkbox]):not([type=radio]),label>select,label>textarea{margin-top:.25rem;font-weight:400}
fieldset[disabled] input,fieldset[disabled] select,fieldset[disabled] textarea,input:disabled,select:disabled{background:#f3f4f2;color:#6b716e}
.inline{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}.inline>*{flex:1 1 10rem;min-width:0}.inline>.btn,.inline>button,.inline>.check{flex:0 0 auto}
.inline label{margin-top:.4rem}
.row input,.row select{width:auto;min-width:8rem}
.tbl input,.tbl select{min-height:34px;padding:.3rem .5rem}
.check{display:flex;gap:.5rem;align-items:center;font-weight:400;margin:.35rem 0}.check input{width:1.1rem;height:1.1rem;accent-color:var(--accent);flex:0 0 auto}
fieldset{border:1px solid var(--line);border-radius:10px;padding:.5rem .9rem .7rem;margin:.8rem 0}legend{font-weight:600;font-size:.86rem;padding:0 .3rem}
.btn,button{font:inherit;font-size:.93rem;font-weight:600;cursor:pointer;border-radius:9px;border:1px solid var(--brand);background:var(--brand);color:#fff;padding:.5rem 1rem;min-height:42px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;transition:background .12s,border-color .12s}
.btn:hover,button:hover{background:#1d463b}
.btn.sec,button.sec{background:#fff;color:var(--brand);border-color:var(--line2)}.btn.sec:hover,button.sec:hover{border-color:var(--brand);background:#fff}
.btn.danger,button.danger{background:var(--bad);border-color:var(--bad)}
.btn.small,button.small{min-height:32px;padding:.2rem .65rem;font-size:.84rem}
button.link{background:none;border:0;color:var(--accent);padding:.3rem .4rem;min-height:0;font-weight:500}button.link:hover{background:none;text-decoration:underline}
button:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}
/* ---------- badges & states ---------- */
.badge{display:inline-block;font-size:.73rem;font-weight:600;padding:.12rem .55rem;border-radius:99px;background:#eceeeb;color:#3f4643;white-space:nowrap;vertical-align:middle}
.badge.ok{background:#dcfce7;color:#14532d}.badge.warn{background:#fef3c7;color:#78350f}.badge.bad{background:#fee2e2;color:#7f1d1d}.badge.info{background:#dbeafe;color:#1e3a8a}
.due.over{color:var(--bad);font-weight:600}
.bdot{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;margin-right:.35rem;vertical-align:middle}
.b-wiederplatz{background:#0b7a53}.b-raumkontor{background:#1f2a44}.b-leerklar{background:#c2410c}.b-uebergabeklar{background:#0e6e83}
.flash{padding:.75rem 1rem;border-radius:var(--r);margin-bottom:1rem;border:1px solid}
.flash.ok{background:#ecfdf3;border-color:#a6e3bd}.flash.error{background:#fef2f2;border-color:#fca5a5}.flash.info{background:#eff6ff;border-color:#bfdbfe}
.note{background:#fffbeb;border:1px solid #fde68a;border-radius:var(--r);padding:.65rem .85rem;font-size:.9rem;margin-bottom:.8rem}
.note.bad{background:#fef2f2;border-color:#fca5a5}.note.info{background:#eff6ff;border-color:#bfdbfe}
.callout{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #cfe7dc;border-left:4px solid var(--accent);border-radius:var(--r);padding:.85rem 1rem;margin-bottom:1rem}
.callout p{margin:0;flex:1 1 16rem}.callout strong{display:block}
/* ---------- timeline / messages ---------- */
.tl{list-style:none;margin:0;padding:0}
.tl>li{border-left:3px solid var(--line);padding:.65rem 0 .75rem .95rem;position:relative}
.tl>li+li{margin-top:.25rem}
.tl>li.in{border-color:#60a5fa}.tl>li.out{border-color:#34d399}.tl>li.internal{border-color:#d6d3d1;background:#fbfaf8;border-radius:0 8px 8px 0}
.tl .meta{font-size:.8rem;color:var(--mute)}
.tl pre,.pre{white-space:pre-wrap;font:inherit;margin:.35rem 0;overflow-wrap:anywhere}
.mailhtml{border:1px solid var(--line);border-radius:8px;padding:.6rem;max-height:24rem;overflow:auto;background:#fff}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.45rem}
.thumbs a{display:block;aspect-ratio:1;border-radius:9px;overflow:hidden;background:#eef0ee;border:1px solid var(--line)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.thumbs .doc{display:flex;align-items:center;justify-content:center;font-size:.75rem;text-align:center;padding:.3rem;color:var(--ink);text-decoration:none}
details.box{border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:.7rem}
details.box>summary{cursor:pointer;padding:.7rem .95rem;font-weight:600;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem}
details.box>summary::-webkit-details-marker{display:none}
details.box>summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg);margin-right:.3rem;transition:transform .15s}
details.box[open]>summary::after{transform:rotate(-135deg)}
details.box>div{padding:0 .95rem .95rem}
/* ---------- enquiry workspace ---------- */
.ws-head{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:var(--shadow)}
.ws-title{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.ws-title h1{margin:0}
.ws-meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem;color:var(--mute);font-size:.86rem;margin:.45rem 0 0}
.ws-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.85rem}
.ws-actions a,.ws-actions button{min-height:36px;font-size:.86rem;padding:.3rem .75rem}
.ws-next{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.8rem;padding:.6rem .75rem;border-radius:9px;background:var(--accent-soft);font-size:.9rem}
.ws-next.over{background:#fef2f2}
.anchor-nav{position:sticky;top:var(--hh);z-index:5;display:flex;gap:.25rem;overflow-x:auto;background:var(--bg);padding:.4rem 0;margin:-0.4rem 0 .6rem}
.anchor-nav a{flex:0 0 auto;padding:.3rem .7rem;border-radius:99px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.84rem}
.anchor-nav a:hover{border-color:var(--accent)}
[id]{scroll-margin-top:calc(var(--hh) + 3.2rem)}
/* ---------- misc ---------- */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:.7rem;overflow-x:auto;padding-bottom:.5rem}
.board .col{background:#eceeeb;border-radius:var(--r);padding:.55rem}
.board .item{display:block;background:#fff;border:1px solid var(--line);border-radius:9px;padding:.55rem;margin:.4rem 0;color:var(--ink);text-decoration:none;font-size:.9rem;box-shadow:var(--shadow)}
.cal{display:grid;grid-template-columns:8.5rem repeat(7,minmax(110px,1fr));min-width:920px}
.cal>div{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:.3rem;font-size:.8rem;min-height:3rem;background:#fff}
.cal .h{background:#f3f5f3;font-weight:600}
.cal .ev{display:block;background:#e0f2ec;border-radius:6px;padding:.2rem .35rem;margin:.15rem 0;color:var(--ink);text-decoration:none}
.cal .ev.job{background:#fdeaa6}.cal .ev.remote_assessment{background:#e3dcfd}
.ai{border-left:4px solid #8b5cf6;background:#faf7ff}
.ok-c{color:var(--ok)}.warn-c{color:var(--warn)}.bad-c{color:var(--bad)}
.big-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.big-actions button{justify-content:center;min-height:56px;font-size:1rem}
.empty{color:var(--mute);padding:.4rem 0}
.list-row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}
.list-row a{font-weight:600}
.qr{display:block;width:200px;height:200px;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}
.push-box{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.top,.side,.bottom,form,button,.anchor-nav{display:none!important}.main{margin:0;padding:0}}
/* quote editor */
.quote-grid{display:grid;gap:1rem}
@media (min-width:1180px){.quote-grid{grid-template-columns:minmax(0,1fr) minmax(380px,46%);align-items:start}.quote-preview{position:sticky;top:calc(var(--hh) + 1rem)}}
.quote-preview{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:.8rem;box-shadow:var(--shadow)}
.pv-wrap{position:relative;width:100%;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;height:min(78vh,1000px);overflow-y:auto}
.pv-wrap iframe{display:block;width:820px;height:1180px;border:0;transform-origin:0 0}
.qline{display:flex;align-items:flex-end;gap:.4rem;padding:.6rem 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.qline-form{display:flex;align-items:center;gap:.4rem;flex:1;min-width:0;flex-wrap:wrap}
.q-desc{flex:1 1 100%!important;min-width:0}.q-qty{width:5rem!important;text-align:right}.q-price{width:7rem!important;text-align:right}
.q-unit{font-size:.84rem;color:var(--mute);min-width:3rem}.q-price-ro{width:7rem;text-align:right;font-size:.9rem;color:var(--mute)}
.q-total{flex:1 1 auto;margin-right:.3rem;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.q-desc-ro{flex:1}
.qsum{text-align:right;margin:.7rem 0 0}
.add-row{margin-top:.9rem;padding-top:.6rem;border-top:1px dashed var(--line2);display:grid;gap:.4rem}
.choice-cards{display:grid;gap:.5rem;margin-bottom:.6rem}@media (min-width:700px){.choice-cards{grid-template-columns:repeat(3,1fr)}}
.ccard{display:flex!important;gap:.6rem;align-items:flex-start;border:1.5px solid var(--line2);border-radius:10px;padding:.7rem .8rem;margin:0!important;cursor:pointer;font-weight:400!important;background:#fff}
.ccard:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.ccard input{margin-top:.2rem;accent-color:var(--accent)}.ccard span{display:flex;flex-direction:column;gap:.15rem}.ccard small{color:var(--mute);font-size:.82rem;line-height:1.35}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:#fff}
.seg label{margin:0;font-weight:500;cursor:pointer}.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:.5rem 1.1rem;border-right:1px solid var(--line2)}.seg label:last-child span{border-right:0}
.seg input:checked+span{background:var(--brand);color:#fff}.seg input:focus-visible+span{outline:3px solid var(--focus)}
@media (max-width:640px){.logo>span:not(.logo-mark){display:none}}
/* form helpers */
.fgrid{display:grid;gap:.2rem .9rem;grid-template-columns:1fr}
@media (min-width:600px){.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.fgrid .span2{grid-column:span 2}}
.fgrid>div{min-width:0}
.fgrid small{display:block;font-size:.8rem;margin-top:.2rem}
.fhint{align-self:end;padding-bottom:.6rem;font-size:.9rem}
.flabel{font-weight:600;font-size:.86rem;margin:.7rem 0 .35rem;color:#2c3532}
.reveal{margin-top:.5rem}
.js .reveal[hidden]{display:none}
.affix{display:flex;align-items:stretch}
.affix input{border-radius:0;flex:1;min-width:0}
.affix span{display:flex;align-items:center;padding:0 .7rem;background:#f3f5f3;border:1px solid var(--line2);color:var(--mute);font-size:.9rem}
.affix input:first-child{border-radius:9px 0 0 9px}.affix span:last-child{border-radius:0 9px 9px 0;border-left:0}
.affix span:first-child{border-radius:9px 0 0 9px;border-right:0}.affix input:last-child{border-radius:0 9px 9px 0}
@media (min-width:700px){.choice-cards.two{grid-template-columns:repeat(2,1fr)}}
.qform h2{margin-top:1.6rem}.qform h2:first-of-type{margin-top:0}
.sticky-save{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;background:#fff;padding:.8rem 0 .2rem;margin-top:.6rem;border-top:1px solid var(--line)}
@media (max-width:899px){.sticky-save{bottom:calc(58px + env(safe-area-inset-bottom))}}
.seg{flex-wrap:wrap}
.bill-steps{display:grid;gap:.8rem;margin:1rem 0 .4rem}@media (min-width:900px){.bill-steps{grid-template-columns:1fr 1fr}}
.bill-step{border:1px solid var(--line);border-radius:10px;padding:.8rem .95rem;background:#fafbfa}
.bill-step h3{margin:0 0 .3rem}.bill-step.done{opacity:.75}
.bill-step .inline>div{flex:1 1 8rem}
.bill-step label{font-size:.82rem}
.linkcell{min-width:15rem}
.cand{margin:0 0 .3rem}.cand button{font-weight:500;text-align:left;justify-content:flex-start}
.lookup-form{position:relative;display:flex;gap:.3rem;flex-wrap:nowrap}
.lookup-form input.lookup{min-height:34px;padding:.3rem .55rem;min-width:9rem;flex:1}
.lookup-res{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;min-width:17rem;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.14);padding:.3rem;max-height:18rem;overflow:auto}
.lookup-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;background:none;border:0;color:var(--ink);padding:.45rem .55rem;min-height:0;border-radius:7px;text-align:left;font-weight:400}
.lookup-item:hover,.lookup-item:focus{background:var(--accent-soft)}.lookup-item span{font-size:.8rem;color:var(--mute)}

/* postcode/town autocomplete */
.geo-list{position:absolute;z-index:40;left:0;right:0;top:100%;margin-top:4px;background:#fff;border:1px solid #d5dbd7;border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.14);padding:.3rem;max-height:17rem;overflow:auto;min-width:15rem;text-align:left}
.geo-item{display:flex;flex-direction:column;padding:.5rem .6rem;border-radius:7px;cursor:pointer;color:#17201d;line-height:1.3}
.geo-item.on,.geo-item:hover{background:#eef6f2}
.geo-item strong{font-weight:600;font-size:.95rem}.geo-item span{font-size:.78rem;color:#66716c}.geo-item span.geo-ok{color:#1b7a43}
.geo-none{margin:.4rem .6rem;font-size:.85rem;color:#66716c}
.pl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem 1.2rem}@media (min-width:1000px){.pl-grid{grid-template-columns:repeat(4,1fr)}}
.pl-grid>div{display:flex;flex-direction:column;gap:.1rem}.pl-grid span{font-size:.8rem;color:var(--mute)}.pl-grid b{font-size:1.3rem;letter-spacing:-.01em}.pl-grid small{font-size:.8rem;color:var(--mute)}
.inv-sum{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:0 0 1rem}.inv-sum div{display:flex;flex-direction:column}.inv-sum span{font-size:.8rem;color:var(--mute)}.inv-sum b{font-size:1.15rem}

.field-err{color:var(--bad);font-size:.84rem;font-weight:500;margin:.3rem 0 0;display:flex;gap:.35rem;align-items:flex-start}
.field-err::before{content:"!";display:inline-flex;align-items:center;justify-content:center;flex:0 0 1rem;height:1rem;border-radius:50%;background:var(--bad);color:#fff;font-size:.7rem;font-weight:700;margin-top:.1rem}
[aria-invalid=true]{border-color:var(--bad)!important;box-shadow:0 0 0 3px rgba(180,35,24,.12)!important}
.form-err-sum{background:#fef2f2;border:1px solid #fca5a5;color:#7f1d1d;border-radius:10px;padding:.6rem .85rem;font-weight:600;font-size:.9rem;margin:0 0 .8rem}
.qs-res{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 40px rgba(0,0,0,.18);padding:.35rem;max-height:70vh;overflow:auto}
.qs-item{display:flex;flex-direction:column;padding:.55rem .65rem;border-radius:8px;color:var(--ink)!important;text-decoration:none}
.qs-item strong{font-size:.93rem}.qs-item span{font-size:.8rem;color:var(--mute)}
.qs-item:hover,.qs-item.on{background:var(--accent-soft)}
.qs-all{display:block;padding:.55rem .65rem;border-top:1px solid var(--line);margin-top:.25rem;color:var(--accent)!important;font-weight:600;font-size:.88rem;text-decoration:none}
.geo-wrap{position:relative;display:block;width:100%}.geo-wrap>input{width:100%}
.inline .geo-wrap,.quick-bar .geo-wrap{flex:1 1 9rem;min-width:0}

/* Disposal finder */
.dsp-load{margin-top:.6rem}
.dsp-list{display:grid;gap:.9rem}
.dsp-site{border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem;background:#fff}
.dsp-site.best{border-color:#16a34a;box-shadow:0 0 0 2px rgba(22,163,74,.15)}
.dsp-site header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.dsp-site h3{margin:0 0 .15rem;font-size:1.05rem}.dsp-site header p{margin:0}
.dsp-km{text-align:right;white-space:nowrap}.dsp-km strong{display:block;font-size:1.15rem}.dsp-km small{color:var(--mute)}
.dsp-hours{display:flex;align-items:center;gap:.35rem;margin:.45rem 0;font-size:.9rem;font-weight:600;color:#1f3a33}
.dsp-est{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.dsp-est div{background:#f6f8f7;border-radius:8px;padding:.4rem .7rem;min-width:7.5rem}.dsp-est small{display:block;color:var(--mute);font-size:.75rem}
.dsp-est strong{font-size:1.05rem;font-variant-numeric:tabular-nums}.dsp-est .tot{background:#1f3a33;color:#fff}.dsp-est .tot small{color:#cfe1d9}
.dsp-prices{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.dsp-prices .pp{border:1px solid var(--line);border-radius:8px;padding:.3rem .55rem;background:#fff;min-width:8.5rem}
.dsp-prices .pp small{display:block;font-size:.72rem;color:var(--mute);line-height:1.2}.dsp-prices .pp b{font-size:1rem;font-variant-numeric:tabular-nums}
.dsp-prices .pp.cheap{background:#dcfce7;border-color:#86efac}.dsp-prices .pp.dear{background:#fee2e2;border-color:#fca5a5}.dsp-prices .pp.none{opacity:.55}
.dsp-notes{color:#4b5563;margin:.3rem 0}
.dsp-site footer{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.5rem}
.dsp-contact{display:flex;flex-wrap:wrap;gap:.35rem}
.dsp-load.fgrid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.dsp-acc{margin:.5rem 0;display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.dsp-est .guess{background:#fffbeb;border:1px dashed #f59e0b}
.mail-text{white-space:pre-wrap;word-break:break-word;background:var(--bg2,#f6f7f6);border:1px solid var(--line,#e3e6e4);border-radius:8px;padding:.7rem .85rem;font:inherit;font-size:.9rem;max-height:22rem;overflow:auto;margin:.6rem 0}
