/* Shared approved green actions; category colours remain independent. */
:root{--qr-button-radius:12px;--qr-sidebar:#f4c800;--qr-action:#146b51;--qr-action-hover:#0e503c;--qr-action-focus:#146b51;--qr-form-surface:#fff;--qr-form-border:#9baaa3;--qr-form-page:#f0f3f1}
button:not(.danger):not(.destructive):not([aria-disabled=true]),.button:not(.danger):not(.destructive),.btn-primary,.primary,.secondary{background:var(--qr-action);color:#fff;border-color:var(--qr-action)}
button:not(:disabled):not(.danger):not(.destructive):hover,.button:not(.danger):not(.destructive):hover,.primary:hover,.secondary:hover{background:var(--qr-action-hover);color:#fff}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--qr-action-focus);outline-offset:3px}
button:disabled,[aria-disabled=true]{opacity:.55;cursor:not-allowed}a.header-cta,a.nav-cta,a[href="/choose-a-spot/"].button,a[href="/choose-a-spot/"].button-primary{background:var(--qr-action);color:#fff;border-color:var(--qr-action)}
.booking-card,.filters,.spot-detail,.account-stage,.method,#category-key{background:#fff}.method{padding:16px;border:1px solid #9baaa3}.booking-card input,.filters input,.booking-card select{border-color:#9baaa3}
body:has(#main-content){background:#f0f3f1}#main-content .panel{background:#fff;border:1px solid #d2dcd7;border-top:3px solid #146b51}#main-content input:not([type=checkbox]):not([type=radio]),#main-content select,#main-content textarea{background:#fff;border:1px solid #8b9b93;color:#172626}input[readonly]{background:#eef2ef!important;border-style:dashed!important}input:disabled{background:#e5eae7!important}input[aria-invalid=true]{border:2px solid #a52727!important}
#space-table button{background:#146b51;color:#fff}#space-table .space-highlight button{outline:3px solid #146b51;outline-offset:3px}#space-table button[aria-pressed=true]:before{content:'✓ ';font-weight:800}
.status-draft{background:#fff1b8!important;color:#5c4600!important}.status-accepted{background:#d5eee1!important;color:#124b32!important}.status-queued,.status-sending{background:#e4eaf0!important;color:#243a50!important}.status-failed{background:#fbe1df!important;color:#802523!important}.status-review{background:#fff0cd!important;color:#654709!important}.status-review:before{content:'⚠ '}
.public-chrome header img,.site-header .brand img{display:block;object-fit:contain;width:200px;height:auto;aspect-ratio:640/229;max-width:100%}.public-chrome header>a:first-child{flex:0 1 200px;min-width:100px}.site-header .brand{display:block;flex:0 1 200px;min-width:110px}.public-chrome header{gap:16px}footer{gap:16px;flex-wrap:wrap;padding-inline:max(20px,calc((100% - 1440px)/2))}
.payment-confidence{border-left:4px solid #146b51;background:#fff;padding:16px;margin:20px 0}.payment-confidence p{margin:6px 0}.content-page{max-width:900px;margin:32px auto;background:#fff;padding:clamp(20px,4vw,48px);border:1px solid #d2dcd7}.content-page h2{margin-top:28px}.content-page p,.content-page li{line-height:1.7}.content-page pre{white-space:pre-wrap}.page-links{display:flex;gap:18px;flex-wrap:wrap}
@media(max-width:600px){.public-chrome header img,.site-header .brand img{width:140px}.public-chrome header>a:first-child,.site-header .brand{flex-basis:140px}.public-chrome header{padding:12px 16px;gap:10px}.header-cta{font-size:12px;padding:10px!important}.booking-card,.filters{padding:18px}.content-page{margin:16px}footer{padding:24px 20px}.site-header .header-inner{gap:10px}}

#main-content input:user-invalid,#main-content textarea:user-invalid,#main-content select:user-invalid{border:2px solid #a52727!important}#main-content label.field:has(input[required])>span:after{content:" *";color:#803325}

/* v2.0: shared action geometry; SVG spot surfaces and semantic colours are independent. */
button,input[type=submit],input[type=button],input[type=reset],a.button,a.btn-primary,a.button-primary,a.button-secondary,a.header-cta,a.nav-cta,a.secondary,a.primary,a.action-link,a[role=button],.mobile-menu>summary,.booking-mobile-nav>summary{border-radius:var(--qr-button-radius)!important}
a.header-cta:hover,a.nav-cta:hover,a.button-primary:hover{background:var(--qr-action-hover);color:#fff}
.sidebar nav button.nav-item:not(:disabled){position:relative;background:var(--qr-sidebar);border:2px solid var(--qr-sidebar);color:#10110f;text-align:center;justify-content:center;padding-inline:40px}
.sidebar nav button.nav-item:not(:disabled) .nav-number{position:absolute;left:12px;color:inherit}
.sidebar .side-label{text-align:center;display:block}
.sidebar nav button.nav-item:not(:disabled):hover{background:#ffda12;color:#10110f;border-color:#ffda12}
.sidebar nav button.nav-item:not(:disabled).active{background:#ffda12;color:#10110f;border-color:#fff;box-shadow:inset 0 0 0 2px #10110f}
.sidebar nav button.nav-item:not(:disabled):focus-visible{outline:3px solid #fff;outline-offset:3px}
#main-content .lot-space{background:#18221d;color:#fff;border-color:#708c7b}
#main-content .lot-space:hover{background:#253b30;color:#fff}
#main-content .lot-space strong,#main-content .lot-client{color:#fff}
#main-content .lot-category,#main-content .lot-space small,#main-content .lot-space-top>span{color:#fff0a6}
#main-content .lot-space.selected{outline:3px solid #8b6900;outline-offset:3px}
.lot-insights strong{color:#fff0a6}.lot-insights span{color:#fff}
.faq-edit{border:1px solid #bccbc2;border-radius:12px;padding:20px;margin-block:16px;background:#fff}.faq-edit label{display:grid;gap:8px;margin-block:12px}.faq-edit textarea{min-height:100px;resize:vertical}.faq-edit summary{font-weight:700;padding:8px;cursor:pointer}
.spot-inline-editor{padding:20px;background:#f0f5f2;border:2px solid #146b51;border-radius:12px}.spot-inline-editor h3{margin:0 0 16px}.spot-inline-editor [role=alert]{color:#802523}.spot-inline-editor [role=status]{color:#124b32}
.header-address{display:block;font-size:14px;line-height:1.45;text-align:center;max-width:100%;overflow-wrap:anywhere}.public-chrome .header-address{padding:8px 16px;background:#10110f;color:#fff0a6}.content-page details{padding:16px 0;border-bottom:1px solid #d2dcd7}.content-page details p{margin:12px 0}

.selection-feedback{padding:14px 18px;border-left:4px solid #9c7112;background:#fff1c5;color:#493400;margin:12px 0;font-weight:600}.selection-feedback button{display:block;margin-top:12px}
.selection-feedback{position:fixed;z-index:1000;bottom:52px;left:50%;transform:translateX(-50%);width:min(620px,calc(100% - 32px));box-shadow:0 4px 20px #10110f33;pointer-events:none}.selection-feedback button{pointer-events:auto}
#spaces button{background:var(--qr-action);color:#fff;border-color:var(--qr-action)}#spaces button[aria-pressed=true]{background:var(--qr-action-hover);color:#fff;outline:3px solid #9c7112;outline-offset:2px}
a.header-cta{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;min-height:44px;font-weight:700;text-decoration:none;font-family:inherit}.site-head{gap:16px;flex-wrap:wrap}
.site-header+.header-address,.site-head+.header-address{padding:8px 16px;background:#10110f;color:#fff0a6}

/* Supersede the legacy centred-logo grid when the booking CTA is visible. */
@media(max-width:960px){.site-header .header-inner{grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.site-header .header-inner .brand{grid-column:1;grid-row:1;justify-self:start;min-width:0;width:min(140px,100%)}.site-header .header-inner .nav-cta{grid-column:2;grid-row:1;white-space:nowrap;padding:10px;gap:8px;font-size:12px}.site-header .header-inner .mobile-menu{grid-column:3;grid-row:1}}

@media(max-width:600px){.site-header .header-inner{width:100%}}

/* v2.1 utility address is part of the yellow bar, never a second logo row. */
.public-utility{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px max(16px,calc((100% - 1440px)/2));background:var(--qr-yellow,#f4c800);color:#10110f;font-weight:700}
.utility-bar .utility-location{display:block;color:#10110f;font-size:13px;line-height:1.35;letter-spacing:0;text-transform:none;overflow-wrap:anywhere}
.utility-bar .utility-phone{white-space:nowrap;color:#10110f}.public-chrome header nav a,.site-header .desktop-nav a{color:#fff}
.booking-card,.account-stage,.equipment-fields,.filters,#journey,.method{color-scheme:light;color:#172626}
.booking-card input,.booking-card select,.booking-card textarea,.equipment-fields input,.equipment-fields select,#journey input,#journey textarea{background:#fff;color:#172626;border:1px solid #8b9b93;border-radius:8px;min-height:44px}
.booking-release{padding:16px;border:1px solid #bccbc2;border-radius:12px;margin-block:16px}.booking-release summary{font-weight:700;cursor:pointer}.booking-release form{display:grid;gap:16px}.booking-release label.check{padding:12px;background:#f3f5f3;border-radius:8px}.booking-release input[type=checkbox]{width:20px;min-width:20px;height:20px}
#main-content select,#main-content option{font-weight:650;color:#172626}.workspace .table-scroll .ops-table{min-width:700px}.workspace #payment-filters button{align-self:end;min-height:48px;padding:12px 24px;white-space:nowrap}
@media(max-width:600px){.public-utility{gap:10px;padding:8px 12px}.public-utility .utility-location{font-size:11px;max-width:62%}.public-utility .utility-phone{font-size:13px}.utility-contact{flex-wrap:wrap}.utility-contact .utility-location{flex-basis:100%}}

.signature-pad{display:block;width:100%;height:180px;background:#fff;border:2px solid #52635d;border-radius:8px;touch-action:none}.signature-pad[hidden]{display:none}#journey{scroll-margin-top:140px}#journey form{display:grid;gap:14px}#journey label{line-height:1.5}#journey .check{display:flex;gap:10px;align-items:flex-start}#journey .check input{min-width:20px;width:20px;min-height:20px;height:20px}

/* The size guide is shared by owner and public pages; its data comes from inventory. */
#spaces{min-width:0;max-width:100%}#spaces .size-group{min-width:0;max-width:100%}#spaces button.available{display:flex;flex-wrap:wrap;gap:4px 12px;width:100%;max-width:100%;min-width:0;box-sizing:border-box;background:#fff;color:#172626;border:1px solid #b8c8bf;border-radius:4px;padding:10px 12px;text-align:left;overflow-wrap:anywhere}#spaces button.available>*{color:inherit;min-width:0}#spaces button.available:hover,#spaces button.available:focus-visible{background:#eef5f0;color:#172626}#spaces button.available[aria-pressed=true]{background:#fff9d6;color:#172626;outline:2px solid #927400;outline-offset:0}.selection-layout>*{min-width:0}.booking-card#selected-card{background:#fff2ab;border-radius:4px;color:#172626}button#signout,button#sign-out,[data-action=logout],button#logout{padding:12px 22px;min-height:44px}.agreement-scroll{max-height:55vh;overflow:auto;overscroll-behavior:contain;padding:20px;background:#fff;border:1px solid #b8c8bf;color:#172626;line-height:1.65}.required-mark{color:#a02626;font-weight:800}.booking-card input,.booking-card select,.booking-card textarea,.equipment-fields input,.equipment-fields select,#journey input,#journey textarea,.method,.booking-card{border-radius:4px}
.quarry-size-tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.quarry-size-tiles .size-tile{display:flex;gap:8px;align-items:flex-start;background:#17201b;color:#fff;border:1px solid #42564a;border-radius:8px;padding:10px;min-width:0}.size-tile strong{font-size:13px;color:#fff}.size-tile p{margin:4px 0;font-size:12px;line-height:1.5}.size-tile small{display:block;font-size:11px;color:#f4f3e8;line-height:1.5}.size-badge{padding:4px;border-radius:4px;font-weight:800;font-size:16px;min-width:24px;text-align:center;background:#e7be2c;color:#10110f}.size-tile[data-category=medium] .size-badge{background:#1b8478;color:#fff}.size-tile[data-category=large] .size-badge{background:#3174a2;color:#fff}.size-tile[data-category=xlarge] .size-badge{background:#8565ac;color:#fff}.size-tile[data-category=oversize] .size-badge{background:#df890d;color:#10110f}#owner-size-guide{margin-top:16px}#map svg [id^=legend-][id$=-group],#owner-map svg [id^=legend-][id$=-group]{display:none}
@media(max-width:1000px){.quarry-size-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.quarry-size-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Keep the list in the map column while the booking summary is sticky. */
@media(min-width:801px){.selection-layout .space-list{grid-column:1}.selection-layout #selected-card{grid-column:2;grid-row:1 / span 2}}
button[data-logout]{padding:12px 22px;min-height:44px}
.selection-feedback{pointer-events:auto}

/* v2.3 account creation: shared totals and responsive personal details. */
#stage-summary{width:100%;max-width:none}.account-stage #stage-summary dl{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;max-width:none;gap:.5rem 1rem}#stage-summary dd{margin:0;text-align:right}#stage-summary .total{border-top:1px solid currentColor;padding-top:.65rem}.registration-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.registration-fields label{min-width:0}.registration-fields .full-row{grid-column:1/-1}.password-section{border-top:1px solid #b8b8ae;margin-top:1.25rem;padding-top:1rem}.registration-fields input{width:100%;box-sizing:border-box}@media(max-width:600px){.registration-fields{grid-template-columns:1fr}}

/* v2.4 client forms: readable controls and inline required labels. */
.required-mark{display:inline!important;color:#a02626;font-size:1.1em;font-weight:800}.required-label{display:block}.required-explanation{font-size:16px}.booking-sequence{font-size:16px;line-height:1.6}#fit-guidance{margin:16px 0}#fit-guidance:empty{display:none}#error,#fit-guidance,input,select,#journey{scroll-margin-top:calc(var(--booking-header-height,160px) + 18px)}.booking-card .check,.booking-card .method{display:flex;align-items:flex-start;gap:12px}.booking-card .check input,.booking-card .method input{flex:0 0 auto;margin:4px 0}.booking-card label .required-label .required-mark{margin-left:.2em}#chocks fieldset{display:grid;gap:14px}#chocks legend{margin-bottom:12px}.booking-card label{gap:7px}#error a{font-weight:700;text-decoration:underline}
@media(max-width:600px){.booking-card input,.booking-card select,.booking-card textarea,.filters input,.filters select{font-size:16px;min-height:44px}.booking-card label,.booking-card p,.booking-card .help,#journey p,.filters label,#fit-guidance{font-size:16px;line-height:1.5}.booking-card label .required-mark{display:inline!important}.booking-card{padding:20px}input[type=radio],input[type=checkbox]{min-height:20px!important;width:20px!important;height:20px!important}}

.account-table{border-collapse:collapse;width:100%;margin:20px 0;font-size:16px}.account-table th,.account-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #ccd6d0;overflow-wrap:anywhere}.account-table th{background:#edf3ef}.payment-badge{display:inline-block;padding:5px 9px;border-radius:7px;background:#edf0ee;color:#253832}.payment-badge.paid{background:#d7f2e3;color:#11583d}.payment-badge.awaiting{background:#fff0a8;color:#644f00}#feedback button{display:block;margin-top:10px}
@media(max-width:700px){.account-table thead{display:none}.account-table,.account-table tbody,.account-table tr,.account-table td{display:block;width:100%;box-sizing:border-box}.account-table tr{border:1px solid #ccd6d0;margin-bottom:16px;border-radius:8px;padding:8px}.account-table td{display:grid;grid-template-columns:minmax(100px,40%) minmax(0,1fr);gap:10px;border:0;padding:7px}.account-table td:before{content:attr(data-label);font-weight:700}.account-table a{overflow-wrap:anywhere}}

/* Supplied payment marks retain their native transparent backgrounds. */
.payment-brands{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:12px 0}.payment-brands img{display:block;width:auto!important;height:28px!important;max-width:140px;object-fit:contain;background:transparent;border:0;border-radius:0}.payment-brands img[alt="Mastercard"]{height:34px!important}.payment-brands img[alt="Interac e-Transfer"]{height:38px!important}.method .payment-brands{margin:0}.method>span>.payment-brands{margin-top:8px}

.account-table th{white-space:nowrap}.account-table td[data-label="Amount"]{white-space:nowrap;min-width:88px}

/* v2.5 compact email rules */
.notification-rules{display:grid;gap:12px}.notification-rule{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,2fr) minmax(170px,1.4fr) auto;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid #d6ded9}.notification-rule h3,.notification-rule p{margin:0}.notification-rule .check{display:flex;align-items:center;gap:8px}@media(max-width:760px){.notification-rule{grid-template-columns:1fr;gap:10px}.notification-rule button{justify-self:start}}

/* v3.1: compact contact strip, unchanged telephone typography. */
.location-short{display:none}
@media(max-width:600px){.public-utility,.utility-bar .utility-inner{min-height:0!important;padding-top:0!important;padding-bottom:0!important;gap:4px!important;flex-wrap:nowrap!important}.utility-inner>span:first-child,.utility-bar .admin-login{display:none!important}.utility-bar .utility-contact{width:100%;display:flex;justify-content:space-between;flex-wrap:nowrap!important;gap:8px}.utility-bar .utility-location{display:inline-flex!important;order:2;align-items:center;justify-content:flex-end;min-height:28px;font-size:11px!important;max-width:none!important;white-space:nowrap}.utility-bar .utility-phone{order:1;min-height:28px}.location-full{display:none}.location-short{display:inline}.public-utility .utility-phone{margin-right:auto}}

/* The approved palette is #f4c800 on desktop and mobile; raster logo pixels are not colour tokens. */
.public-utility,.utility-bar{--qr-yellow:#f4c800;background-color:var(--qr-yellow);opacity:1;filter:none;color-scheme:light}

.qr-staging-banner{padding:8px 16px;background:#f4c800;color:#10110f;text-align:center;font:700 13px/1.5 system-ui,sans-serif}
