:root{font-family:system-ui,Arial,sans-serif;color:#26374b;background:#f6f8fb}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.03em}h1{font-size:clamp(1.55rem,2.4vw,2.1rem);margin-bottom:5px}h2{font-size:1.05rem;margin-bottom:7px}a{color:inherit;text-decoration:none}
.layout{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}.rail{background:#111d30;color:#c6d2e5;display:flex;flex-direction:column;padding:25px 13px;gap:15px;position:sticky;top:0;height:100vh;z-index:5}.brand{display:flex;align-items:center;gap:11px;padding:4px 10px 22px;color:#fff}.brand-mark{display:grid;place-items:center;background:#5dc7ac;border-radius:11px;width:36px;height:36px;color:#102c34;font-weight:800;font-size:.9rem}.brand strong,.brand small{display:block}.brand strong{font-size:1rem}.brand small{font-size:.67rem;color:#8fa4bf;margin-top:3px}.rail-label{font-size:.61rem;letter-spacing:.13em;color:#7084a1;margin:0 12px -6px;font-weight:800}#workspace-choice{width:100%;background:#1c2b43;color:#f5f8fc;border:1px solid #304158;border-radius:8px;padding:10px;font-size:.78rem}.rail nav{display:grid;gap:3px;margin-top:12px}.rail nav button{background:transparent;border:0;color:#acbdd2;text-align:left;border-radius:8px;padding:11px 13px;font-weight:600;font-size:.81rem}.rail nav button span{display:inline-grid;place-items:center;width:22px;margin-right:11px;color:#8195b2;font-size:1.05rem}.rail nav button:hover,.rail nav button.active{background:#263650;color:#fff}.rail nav button.active:before{content:'';position:absolute;left:0;width:3px;height:22px;background:#59caa9;border-radius:0 3px 3px 0}.rail-bottom{margin-top:auto;border-top:1px solid #304057;padding:20px 8px 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.avatar,.tenant-icon{background:#d7f4e8;color:#16725e;font-weight:800;border-radius:9px;display:grid;place-items:center;width:31px;height:31px;flex:none}.account{font-size:.69rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:135px}.rail-bottom button{background:transparent;border:0;color:#8fa4bf;font-size:.72rem;padding:3px 0 0 39px}
.main{min-width:0}.topbar{background:white;border-bottom:1px solid #e8edf3;height:69px;display:flex;align-items:center;gap:11px;padding:0 clamp(20px,4vw,56px)}.topbar strong,.topbar small{display:block}.topbar strong{font-size:.86rem}.topbar small{font-size:.7rem;color:#8b9caf;margin-top:2px}.topbar-spacer{flex:1}.status-dot{font-size:.72rem;color:#547d70;background:#eef8f4;border-radius:100px;padding:7px 11px}.content{max-width:1350px;margin:0 auto;padding:32px clamp(20px,4vw,56px) 70px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:23px}.page-head p,.panel-heading p{margin:0;color:#8b99a9;font-size:.83rem}.test-badge{font-weight:800;letter-spacing:.07em;font-size:.6rem;color:#8697a9;background:#edf1f6;padding:8px 11px;border-radius:30px;white-space:nowrap}.eyebrow{font-size:.65rem;letter-spacing:.12em;font-weight:800;color:#398b79;margin-bottom:10px}.daily-stats{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:15px;color:#627285;font-size:.77rem}.daily-stats span{background:white;border:1px solid #e8edf4;padding:11px 16px;border-radius:10px}.daily-stats strong{color:#1d344c;font-weight:800;font-size:1.02rem;margin-right:5px}.quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 26px}.quick-actions button{background:white;border:1px solid #dfe7f0;color:#324962;border-radius:9px;padding:10px 15px;font-weight:700;font-size:.78rem}.quick-actions button:hover{border-color:#84cdb9}.primary,.quick-actions .primary{background:#183b50;border:1px solid #183b50;color:#fff;border-radius:8px;padding:11px 16px;font-weight:800;font-size:.8rem}.primary:hover,.quick-actions .primary:hover{background:#245872;color:#fff}.day-strip{display:flex;gap:7px;margin-bottom:15px;overflow-x:auto}.day-strip button{background:#fff;border:1px solid #e3eaf2;border-radius:9px;min-width:68px;padding:8px 9px;color:#8c9cad;display:grid;gap:2px;text-align:center}.day-strip button.selected{background:#183b50;color:white;border-color:#183b50}.day-strip small{text-transform:uppercase;font-size:.6rem;font-weight:800}.day-strip strong{font-size:.94rem}.day-strip i{font-style:normal;font-size:.6rem;min-height:8px}
.panel{background:white;border:1px solid #e5eaf1;border-radius:12px;padding:23px;margin-bottom:17px;box-shadow:0 3px 18px rgba(29,50,73,.025)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-heading h2{margin-bottom:4px}.panel-heading>span{color:#9aa6b5;font-size:.75rem}.diary-panel{padding-bottom:24px}.time-grid{height:1056px;position:relative;border-top:1px solid #edf1f5;margin-top:20px;overflow:hidden}.slots{height:100%}.slot{height:48px;display:grid;grid-template-columns:65px 1fr;align-items:start;border-bottom:1px solid #f3f5f8}.slot:nth-child(2n){border-bottom:1px solid #e8edf2}.slot time{font-size:.67rem;color:#9ba8b8;padding-top:2px}.slot button{height:46px;border:0;background:transparent;text-align:left;color:transparent;padding-left:12px}.slot button:hover,.slot button:focus{background:#eef8f5;color:#388c77}.booking-layer{position:absolute;top:0;bottom:0;left:66px;right:2px;pointer-events:none}.appointment-block{position:absolute;left:0;right:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;overflow:hidden;text-align:left;background:#daf3e8;border:1px solid #98d4bd;border-left:4px solid #3ea585;color:#195342;border-radius:6px;padding:6px 10px;pointer-events:auto;font-size:.7rem}.appointment-block:hover{filter:brightness(.96)}.appointment-block strong{font-size:.75rem}.appointment-block span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.appointment-block em{font-size:.65rem;font-style:normal;color:#6a887e}.columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.columns .panel{min-width:0}.muted,.hint{font-size:.78rem;line-height:1.6;color:#8b9aab}.hint{margin:13px 0 0}.text-button{background:none;border:0;color:#277b70;font-weight:800;font-size:.76rem;padding:4px 0}.text-button:hover{text-decoration:underline}.empty{font-size:.8rem;color:#98a5b3;padding:10px 0;margin:0}.list-row{display:flex;align-items:center;gap:13px;border-top:1px solid #edf1f5;padding:13px 0;width:100%;text-align:left}.list-row>div:nth-child(2),.row-main{flex:1;min-width:0}.list-row strong{font-size:.82rem}.list-row small{display:block;color:#91a0b1;font-size:.7rem;margin-top:5px}.list-row p{white-space:pre-wrap;color:#67798c;font-size:.77rem}.row-button{background:none;border-left:0;border-right:0;border-bottom:0;color:inherit}.row-button:hover{background:#f8fbfd}.round-icon{display:grid;place-items:center;min-width:32px;height:32px;background:#e9f3f1;border-radius:9px;color:#498c7d;font-weight:800}.round-icon.horse{background:#eef0fa;color:#7d85ac}.date-tile{display:grid;place-items:center;min-width:36px;font-size:1.08rem;font-weight:800;color:#203e55}.date-tile small{font-size:.6rem;margin:0;text-transform:uppercase}.row-end{text-align:right}.row-end .text-button,.row-end .pill{display:block;margin-left:auto;margin-top:6px}.pill{font-size:.59rem;font-weight:800;letter-spacing:.07em;background:#eaf4f0;color:#3e8c73;border-radius:30px;padding:6px 9px}.pill.amber{background:#fff2df;color:#a97934}.search-label{max-width:350px}.search-label input{margin-top:5px}
.form-panel{max-width:900px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 19px}label{font-size:.72rem;color:#627489;font-weight:700;display:block;margin-bottom:12px}label input,label select,label textarea{margin-top:6px}input,select,textarea{width:100%;border:1px solid #dce4ed;border-radius:8px;background:#fff;padding:10px 12px;color:#27394d;outline-color:#55b79b;font-size:.83rem}textarea{resize:vertical}input:disabled{background:#f3f5f8}.form-grid label{margin:0}.form-grid .wide{grid-column:1/-1}.form-grid button{justify-self:start}.quote-preview{background:#edf8f3;color:#28654e;border-radius:8px;padding:12px 15px;font-size:.8rem;font-weight:700}.notice{background:#e9f7ef;border:1px solid #acdbc0;color:#2b7257;border-radius:8px;padding:12px 16px;margin-bottom:17px;font-size:.8rem}.notice.error{background:#fff0eb;border-color:#edc9bf;color:#99443d}.notice[hidden],[hidden]{display:none!important}
.sheet-shade{position:fixed;inset:0;background:#12263b6b;z-index:20}.detail-sheet{position:fixed;right:0;top:0;bottom:0;width:min(410px,95vw);background:white;z-index:21;padding:36px 28px;overflow:auto;box-shadow:-20px 0 70px #10273b33}.detail-sheet h2{font-size:1.7rem}.detail-sheet>p{color:#8a9aaa;font-size:.8rem;margin:3px 0 28px}.sheet-close{position:absolute;top:18px;right:20px;background:#f1f4f7;border:0;border-radius:50%;width:32px;height:32px;font-size:1.3rem;color:#5b6879}.detail-line{display:flex;justify-content:space-between;border-bottom:1px solid #edf1f4;padding:13px 0;gap:15px;font-size:.8rem}.detail-line strong{color:#7d8c9c}.detail-line span{text-align:right}.detail-sheet h3{margin:25px 0 12px}.detail-sheet .primary{width:100%;margin-top:19px}.danger-link{display:block;margin:17px auto;background:none;border:0;color:#ab4d46;font-size:.75rem;font-weight:700}.journey-mini{background:#f7f9fb;padding:12px;border-radius:8px;font-size:.8rem}.journey-mini p{font-size:.75rem;color:#60738a;margin:7px 0 0;white-space:pre-wrap}
.auth-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 80% 10%,#d9eee8,transparent 30%),#f3f7f8;padding:20px}.auth-card{width:min(100%,455px);background:white;border:1px solid #e4eaf0;border-radius:18px;padding:40px;box-shadow:0 18px 70px #193e5614}.auth-card .brand{color:#1a3248;padding:0;margin-bottom:38px}.auth-card .brand small{color:#8c9bad}.auth-card h1{font-size:2rem}.auth-card p{color:#8796a6;font-size:.82rem;line-height:1.6;margin-bottom:26px}.auth-card .primary{width:100%;margin:8px 0}.auth-card .text-button{margin-top:12px}.auth-foot{font-size:.7rem;color:#a1aebb;border-top:1px solid #e9edf1;padding-top:18px;margin-top:28px;line-height:1.5}.loading{padding:4rem}
@media(max-width:960px){.columns{grid-template-columns:1fr}.content{padding:26px 24px 60px}}@media(max-width:720px){.layout{display:block}.rail{position:relative;height:auto;min-height:0;padding:12px;gap:5px}.brand{padding:2px 5px 9px}.rail-label,.rail-bottom{display:none}#workspace-choice{margin-bottom:5px}.rail nav{display:flex;overflow-x:auto;margin:0;padding-bottom:2px}.rail nav button{white-space:nowrap;padding:8px;font-size:.7rem}.rail nav button span{margin-right:4px;width:auto}.rail nav button.active:before{display:none}.topbar{height:59px;padding:0 18px}.content{padding:23px 15px 55px}.page-head{align-items:flex-start}.test-badge{white-space:normal}.daily-stats span{padding:8px 10px}.quick-actions{gap:7px}.quick-actions button{padding:9px 11px}.panel{padding:17px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.day-strip button{min-width:55px}.appointment-block{padding:5px}.appointment-block em{display:none}}
.mobile-signout{display:none;background:none;border:0;color:#61768a;font-size:.7rem;font-weight:700}
@media(max-width:720px){.topbar .status-dot{display:none}.mobile-signout{display:block}}

/* Ops-inspired working surface: clear status, compact diary, visible next action. */
:root{--gv-navy:#092632;--gv-teal:#118c8f;--gv-gold:#d2a24d;--gv-line:#dce6e5;--gv-muted:#60777c}
html,body{background:#f3f7f6;color:#173039}
.rail{background:linear-gradient(165deg,#092632,#0a3540);color:#d7e9e8}
.brand-mark{background:linear-gradient(145deg,#10a6a4,#75d4c0);color:#063440}
.rail nav button{color:#bed6d5}
.rail nav button span{color:#b7d5d3}
.rail nav button:hover,.rail nav button.active{background:#ffffff18}
.rail nav button.active:before{background:var(--gv-gold)}
.topbar{border-color:var(--gv-line)}
.content{max-width:1250px}
.page-head h1,.auth-card h1{font-family:Georgia,serif;font-weight:700;letter-spacing:-.035em}
.page-head p{line-height:1.5;color:var(--gv-muted)}
.panel{border-color:var(--gv-line);box-shadow:0 8px 25px #09263208;border-radius:16px}
.panel-heading h2,.panel h2{color:#193742}
.primary,.quick-actions .primary{background:var(--gv-teal);border-color:var(--gv-teal);border-radius:11px}
.primary:hover,.quick-actions .primary:hover{background:#0b7477;border-color:#0b7477}
.text-button{color:#087477}
.test-badge{background:#e9f2f0;color:#397a72}
.home-hero,.performance-hero{background:linear-gradient(135deg,#092632,#0c4651);color:white;border-radius:22px;padding:25px 27px;margin-bottom:18px;box-shadow:0 16px 32px #0926321b}
.home-hero{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,1fr);gap:24px;align-items:end}
.hero-kicker,.performance-hero .eyebrow{color:#9ed9d3;letter-spacing:.14em;font-size:.63rem;font-weight:900}
.home-hero h2,.performance-hero h2{font-family:Georgia,serif;color:white;font-size:clamp(1.55rem,2.4vw,2.15rem);line-height:1.1;margin:10px 0}
.home-hero p,.performance-hero p{color:#c6dedd;font-size:.81rem;line-height:1.55;max-width:470px;margin:0}
.hero-stats,.performance-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hero-stats>div,.performance-kpis>div{padding:14px;background:#ffffff14;border:1px solid #ffffff2b;border-radius:14px;min-width:0}
.hero-stats strong,.hero-stats span,.performance-kpis strong,.performance-kpis small,.performance-kpis span{display:block}
.hero-stats strong{font-size:1.42rem;letter-spacing:-.04em;white-space:nowrap}
.hero-stats span,.performance-kpis span{font-size:.65rem;color:#bed8d7;margin-top:6px}
.setup-panel{padding:22px 24px}
.setup-panel .eyebrow{margin-bottom:4px}
.setup-panel .panel-heading{align-items:center}
.setup-progress{font-size:.75rem;font-weight:900;color:#167d7b;background:#eaf6f2;border-radius:50px;padding:8px 11px}
.setup-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.setup-step{display:flex;gap:11px;align-items:center;text-align:left;padding:15px 12px;background:#fff;border:1px solid var(--gv-line);border-radius:13px;color:#1d3f48;min-width:0}
.setup-step:hover{border-color:#7bc7bc;background:#f4fbf9}
.setup-step.done{background:#f0f8f4;color:#417468}
.setup-step strong,.setup-step small{display:block}
.setup-step strong{font-size:.82rem}.setup-step small{font-size:.66rem;line-height:1.35;color:var(--gv-muted);margin-top:4px}
.step-number{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:9px;background:#d8f0eb;color:#107c78;font-size:.75rem;font-weight:900}
.step-arrow{margin-left:auto;color:#4b9990}
.day-strip button.selected{background:var(--gv-navy);border-color:var(--gv-navy)}
.appointment-block{background:#e6f7f2;color:#195747;border-color:#a4d9c6;border-left-color:#13877e}
.performance-hero{margin-top:0}
.performance-kpis{grid-template-columns:repeat(4,1fr);margin-top:21px}
.performance-kpis small{font-size:.62rem;color:#bcd8d6}
.performance-kpis strong{font-size:1.42rem;letter-spacing:-.04em;margin-top:5px;white-space:nowrap}
.period-picker{margin:0;white-space:nowrap;color:var(--gv-muted)}
.period-picker input{display:block;margin-top:5px;min-width:172px}
.performance-table{overflow-x:auto}
.performance-table-head,.performance-row{display:grid;grid-template-columns:minmax(160px,2fr) repeat(4,minmax(80px,1fr));gap:12px;align-items:center;min-width:620px;padding:11px 8px}
.performance-table-head{font-size:.66rem;font-weight:900;color:#778a8d;text-transform:uppercase;letter-spacing:.05em}
.performance-row{border-top:1px solid #e8eeee;color:#405e64;font-size:.82rem}
.performance-row strong{color:#183741;font-size:.8rem}
.category-track{height:4px;border-radius:7px;background:#e7eeed;margin-top:9px;max-width:220px}
.category-track span{display:block;height:100%;background:var(--gv-teal);border-radius:7px}
.empty-state{border:1px dashed #b9d7d1;border-radius:14px;text-align:center;padding:26px;margin-top:10px}
.empty-state strong{font-family:Georgia,serif;font-size:1.2rem}
.empty-state p{color:var(--gv-muted);font-size:.79rem;margin:8px 0 15px}
.service-templates{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 21px}
.service-templates button{background:#eff8f6;border:1px solid #c7e4de;border-radius:10px;padding:9px 12px;color:#186a68;font-size:.74rem;font-weight:800}
.service-templates button:hover{background:#dff1eb}
.journey-context{display:grid;gap:6px;border:1px solid #b7ddd8;background:#eff9f6;border-radius:16px;padding:17px 20px;margin:0 0 18px}
.journey-context strong{font-family:Georgia,serif;font-size:1.3rem;color:#163e44}
.journey-context>span:not(.eyebrow){color:var(--gv-muted);font-size:.76rem}
.journey-context button{justify-self:start}
.sheet-status{border:1px solid #edcea4;border-radius:11px;padding:12px;background:#fff7e8;color:#795a2d;font-size:.73rem;line-height:1.5;margin-top:19px}
.journey-mini{margin:8px 0;border:1px solid #e3edeb;border-radius:11px}
.journey-mini .text-button{margin-top:8px}
.client-form-actions,.client-row-actions{display:flex;gap:13px;align-items:center;flex-wrap:wrap}
.client-row-actions{justify-content:flex-end;min-width:105px}
.client-row-actions .text-button{padding:7px 0}
.handover-panel{margin:18px 0}
.handover-item{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 0;border-top:1px solid var(--gv-line)}
.handover-item>div:first-child{min-width:170px}
.handover-item strong,.handover-item small{display:block}
.handover-item small{margin-top:4px;color:var(--gv-muted)}
.handover-item p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}
.handover-accept{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.handover-accept label{min-width:190px}
.horse-row>div:last-child{min-width:0;flex:1}
.quick-extras{border:1px solid var(--gv-line);border-radius:10px;padding:12px 14px;background:#f8fbfa}.quick-extras summary{cursor:pointer;color:#087477;font-size:.82rem;font-weight:800}.quick-extras .form-grid{margin-top:14px}
.handover-details{margin-top:10px;color:var(--gv-muted)}
.handover-details summary{cursor:pointer;color:#087477;font-size:.76rem;font-weight:800}
.handover-details form{display:grid;gap:10px;max-width:550px;padding:14px;margin-top:10px;border:1px solid var(--gv-line);border-radius:12px;background:#f8fbfa}
.handover-details .primary{justify-self:start}
.handover-confirm{display:flex;align-items:center;gap:9px;font-size:.79rem}
.handover-confirm input{width:auto;min-width:0}
.owner-history{border-top:1px solid var(--gv-line);margin-top:20px;padding-top:14px;font-size:.78rem;color:var(--gv-muted)}
.owner-history>strong{color:#193742}
.owner-history p{margin:8px 0;overflow-wrap:anywhere}
.detail-sheet .detail-line a{color:#087477;text-decoration:underline;overflow-wrap:anywhere}
.reschedule{border:1px solid var(--gv-line);border-radius:11px;margin-top:16px;padding:13px 15px}
.reschedule summary{cursor:pointer;color:#126f70;font-size:.81rem;font-weight:800}
.reschedule form{margin-top:16px}
.reschedule .primary{margin-top:3px}
.mobile-tabs{display:none}
@media(max-width:960px){.home-hero{grid-template-columns:1fr}.setup-steps{grid-template-columns:1fr}}
@media(max-width:720px){
  .handover-item,.handover-accept{align-items:stretch;flex-direction:column}
  .rail{position:relative;padding:12px 12px 8px}
  .rail nav{display:flex;gap:2px}
  .rail nav button{padding:8px 10px}
  .content{padding-bottom:110px}
  .home-hero,.performance-hero{padding:21px 17px;border-radius:18px}
  .hero-stats>div,.performance-kpis>div{padding:10px 8px}
  .hero-stats strong,.performance-kpis strong{font-size:1.1rem}
  .hero-stats span,.performance-kpis span{font-size:.58rem}
  .performance-kpis{grid-template-columns:repeat(2,1fr)}
  .mobile-tabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:10;background:#fffffff2;backdrop-filter:blur(14px);border-top:1px solid var(--gv-line);padding:5px 5px max(6px,env(safe-area-inset-bottom))}
  .mobile-tabs button{display:grid;justify-items:center;gap:3px;background:transparent;border:0;color:#688084;font-size:.59rem;font-weight:800;padding:6px 1px;border-radius:9px}
  .mobile-tabs button span{font-size:1.2rem;line-height:1.1}
  .mobile-tabs button.active{color:#087f7e;background:#e9f5f2}
  .page-head{align-items:flex-start}.period-picker input{min-width:142px}
}

/* GV Technology palette: midnight, iris and electric aqua. */
:root{--gv-navy:#171a35;--gv-teal:#5445b8;--gv-iris:#7564d5;--gv-cyan:#1a9fa4;--gv-gold:#f0ae72;--gv-line:#e1e4ee;--gv-muted:#626e83}
html,body{background:#f7f7fb;color:#202842}
.rail{background:radial-gradient(circle at 0 0,#30375e 0,transparent 55%),linear-gradient(155deg,#171a35,#232748);color:#dce3f5}
.brand-mark{background:linear-gradient(145deg,#8a76ee 0%,#32c3c5 100%);color:#fff;box-shadow:0 4px 16px #6159b855}
.rail nav button{color:#c4cce1}.rail nav button span{color:#abb4d6}
.rail nav button:hover,.rail nav button.active{background:#ffffff1e}
.rail nav button.active:before{background:#68d8d1}
#workspace-choice{background:#ffffff15;color:#fff;border-color:#ffffff35}
#workspace-choice option{color:#22283d}
.topbar{border-color:var(--gv-line);background:#fff}
.tenant-icon,.avatar{background:#e9e6fb;color:#5145a8}
.status-dot{color:#5650a4;background:#efecfc}
.page-head h1,.auth-card h1{color:#222945}
.page-head p,.panel-heading p{color:var(--gv-muted)}
.panel{border-color:var(--gv-line);box-shadow:0 12px 36px #2026440a}
.panel-heading h2,.panel h2{color:#262d48}
.primary,.quick-actions .primary{background:#5143b4;border-color:#5143b4;color:#fff;box-shadow:0 4px 13px #5850b326}
.primary:hover,.quick-actions .primary:hover{background:#403393;border-color:#403393}
.text-button,.detail-sheet .detail-line a{color:#5143b4}
.test-badge{background:#f0edfb;color:#5947ad}
.home-hero,.performance-hero{background:radial-gradient(circle at 96% 3%,#5c59b9 0,transparent 35%),linear-gradient(120deg,#1c1f42,#343269 72%,#4b4d89);box-shadow:0 19px 40px #33327c24}
.hero-kicker,.performance-hero .eyebrow{color:#b3f5eb}
.home-hero p,.performance-hero p{color:#d9daf4}
.hero-stats span,.performance-kpis span{color:#d1d2ee}
.quick-actions button{border-color:#dcdff0;color:#393570}
.quick-actions button:hover{border-color:#8074cc}
.setup-progress{background:#f0edff;color:#5d4dba}
.setup-step:hover{border-color:#9c8ee0;background:#faf9ff}
.setup-step.done{background:#f0f9fa;color:#20797d}
.step-number{background:#eeebfc;color:#6655be}.step-arrow{color:#6255ba}
.day-strip button.selected{background:#5143b4;border-color:#5143b4}
.appointment-block{background:#e8f8f7;border-color:#a6d9d7;border-left-color:#198e95;color:#19535c}
.pill{background:#ecf7f4;color:#207c72}.pill.amber{background:#fff3e6;color:#9b642c}
.round-icon{background:#eceaf9;color:#6658b6}.round-icon.horse{background:#e8f5f6;color:#32848a}
.category-track span{background:#7060d6}
.service-templates button{background:#f2effe;border-color:#d6cffa;color:#5b4bae}
.service-templates button:hover{background:#eae4fc}
.journey-context{background:#f3efff;border-color:#d8cdf7}.journey-context strong{color:#302a63}
.auth-wrap{background:radial-gradient(circle at 14% 8%,#dcd5f9,transparent 32%),radial-gradient(circle at 88% 90%,#cfefef,transparent 38%),#f7f7fb}
.auth-card{border-color:#e4e1f1;box-shadow:0 22px 75px #302f6724}
.auth-card .brand{color:#24294b}
.performance-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.performance-kpis strong{font-size:clamp(1rem,1.45vw,1.35rem)}
.performance-table-head,.performance-row{grid-template-columns:minmax(160px,2fr) repeat(5,minmax(80px,1fr));min-width:740px}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,.week-scroll:focus-visible{outline:3px solid #8573df;outline-offset:2px}
.notice{background:#eaf7f4;border-color:#afdfd5;color:#276d67}
.shop-admin-row{padding:16px 0;border-bottom:1px solid var(--gv-line)}
.shop-admin-row summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.9rem}
.shop-admin-row summary span{color:#5f7180;font-size:.82rem}
.shop-admin-row form{margin:18px 0 0}
.shop-admin-row .shop-cost-form{padding:15px;border:1px solid #dbe8de;border-radius:12px;background:#f5faf6}
.shop-order{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:18px 0;border-bottom:1px solid var(--gv-line)}
.shop-order strong,.shop-order small{display:block}.shop-order small{color:#667986;margin-top:5px}.shop-order p{line-height:1.5}
.shop-order-actions{display:grid;align-content:start;justify-items:end;gap:8px}.shop-order-actions form{display:grid;gap:9px}.shop-order-actions input{max-width:230px}
@media(max-width:720px){.shop-admin-row summary,.shop-order{display:block}.shop-admin-row summary span{display:block;margin-top:6px}.shop-order-actions{justify-items:stretch}.shop-order-actions input{max-width:none}}

/* Invoice register and the booking-to-receipt handoff. */
.invoice-balance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 22px}
.invoice-balance-grid>div,.invoice-balance-grid>button{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px;border:1px solid var(--gv-line);border-radius:14px;background:#fff;color:#25324a;text-align:left;min-width:0}
.invoice-balance-grid>button:hover{border-color:#9f90df;background:#faf8ff}
.invoice-balance-grid span{font-size:.76rem;color:#647086}.invoice-balance-grid strong{font-size:clamp(1.1rem,2.4vw,1.8rem);overflow-wrap:anywhere}
.invoice-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.invoice-filters button{border:1px solid var(--gv-line);border-radius:24px;background:#fff;padding:8px 12px;color:#54617a;font-size:.76rem}
.invoice-filters button[aria-pressed="true"]{background:#eeebfc;color:#4b3ba0;border-color:#b8aaea;font-weight:800}
.invoice-filters span{margin-left:6px;font-variant-numeric:tabular-nums}
.invoice-register-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(120px,auto);width:100%;align-items:center;gap:14px;border:0;border-top:1px solid var(--gv-line);background:transparent;padding:18px 0;text-align:left;color:inherit}
.invoice-register-row:hover{background:#f7f6fc}.invoice-register-row strong,.invoice-register-row small{display:block;overflow-wrap:anywhere}
.invoice-register-row strong{font-size:.85rem}.invoice-register-row small{font-size:.73rem;color:#647086;margin-top:6px;line-height:1.45}
.invoice-row-amount{text-align:right;font-variant-numeric:tabular-nums}
.invoice-state{display:inline-flex;align-items:center;border-radius:24px;padding:7px 10px;background:#f0f1f5;color:#526079;font-size:.7rem;font-weight:800;white-space:nowrap}
.invoice-state.outstanding{background:#fff2d9;color:#82561c}.invoice-state.overdue{background:#fce8e8;color:#963e47}.invoice-state.settled{background:#e5f5ed;color:#276b54}
.invoice-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.invoice-detail-grid>.panel{min-width:0}
.invoice-back{margin:0 0 18px}.invoice-create summary,.invoice-quotes summary{font-weight:800;cursor:pointer}.invoice-create form{margin-top:20px}
.invoice-payments .receipt-form{padding-bottom:20px;border-bottom:1px solid var(--gv-line);margin-bottom:22px}
.invoice-payments .receipt-note{display:flex;flex-direction:column;gap:6px;padding:16px 0;border-bottom:1px solid var(--gv-line);overflow-wrap:anywhere}
.receipt-note span,.receipt-note small{font-size:.78rem;color:#647086;line-height:1.5}
.invoice-session-link{display:flex;flex-direction:column;gap:9px;width:100%;margin:10px 0;padding:14px;text-align:left;background:#f8f7fd;color:#36415c;border:1px solid var(--gv-line);border-radius:10px;overflow-wrap:anywhere}
.invoice-session-link strong{font-size:.82rem}.invoice-session-link span{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:.76rem}.invoice-session-link small{font-weight:800;color:#5744ad}
.invoice-payments .notice button{display:block;margin-top:12px}
@media(max-width:720px){.invoice-balance-grid{gap:8px}.invoice-balance-grid>div,.invoice-balance-grid>button{padding:13px 10px}.invoice-balance-grid span{font-size:.65rem}.invoice-detail-grid{grid-template-columns:1fr;gap:0}.invoice-register-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.invoice-register-row>.invoice-state{grid-row:2}.invoice-row-amount{grid-column:2;grid-row:1 / span 2}.invoice-filters{gap:6px}.invoice-filters button{padding:7px 10px;font-size:.7rem}}

/* Seven-day scrollable working diary. */
.diary-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff;border:1px solid var(--gv-line);border-radius:15px;padding:11px 14px;margin-bottom:16px;box-shadow:0 8px 22px #20264408}
.diary-switch{display:flex;gap:3px;background:#f0f1f7;padding:4px;border-radius:11px}
.diary-switch button{border:0;border-radius:8px;background:transparent;color:#626a82;padding:8px 15px;font-size:.76rem;font-weight:800}
.diary-switch button.active{background:#fff;color:#493ca9;box-shadow:0 2px 9px #24264d19}
.diary-period{display:flex;align-items:center;gap:7px;flex:1;min-width:220px}
.diary-period button{flex:none;min-width:35px;height:35px;border:1px solid #e0e1ee;border-radius:9px;background:#fff;color:#454068;font-weight:800}
.diary-period button:hover{background:#f5f3fd;border-color:#baaeea}
.diary-period strong{margin-left:10px;color:#30324c;font-size:.85rem;white-space:nowrap}
.diary-jump{margin:0;min-width:125px;font-size:.67rem;color:#606a80}
.diary-jump input{margin:3px 0 0;padding:6px 9px;font-size:.73rem;max-width:160px}
.diary-filter{margin:0;min-width:132px;font-size:.67rem;color:#606a80}
.diary-filter select{margin:3px 0 0;padding:6px 9px;font-size:.73rem;max-width:180px}
.week-panel{padding:18px 18px 15px}
.week-panel .panel-heading{margin:0 0 14px}.week-panel .panel-heading p{line-height:1.5}
.week-summary{display:flex;flex-wrap:wrap;gap:7px}.week-summary span{border-radius:30px;padding:7px 9px;background:#f3f0fc;color:#5345a7;font-size:.67rem;font-weight:800;white-space:nowrap}
.week-scroll{overflow:auto;max-height:min(72vh,760px);border:1px solid #dde1ed;border-radius:12px;background:#fff;overscroll-behavior:contain;scrollbar-color:#b9b4dc #f5f5fa}
.week-grid{min-width:1090px}
.week-head,.week-body{display:grid;grid-template-columns:54px repeat(7,minmax(148px,1fr))}
.week-head{position:sticky;top:0;z-index:6;height:70px;background:#fff;box-shadow:0 2px 6px #19224812}
.week-time-head{position:sticky;left:0;z-index:8;display:grid;place-items:center;background:#f8f7fe;color:#69758b;font-size:.59rem;font-weight:900;letter-spacing:.08em;border-right:1px solid #e4e7f0}
.week-day{display:grid;justify-items:center;align-content:center;gap:2px;background:#fff;border:0;border-left:1px solid #e8e9f2;color:#3c4962;padding:5px}
.week-day:hover{background:#f7f5fe}.week-day.selected{background:#f3f0ff;color:#4a3caa}
.week-day small{font-size:.59rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.week-day strong{display:grid;place-items:center;min-width:28px;height:28px;border-radius:50%;font-size:1rem}
.week-day.today strong{background:#5445b8;color:#fff}.week-day span{font-size:.59rem;color:#838aa1}
.week-body{height:832px;position:relative}
.week-times{position:sticky;left:0;z-index:4;background:#faf9fe;border-right:1px solid #e4e7f0}
.week-times time{position:absolute;right:7px;color:#9298a8;font-size:.61rem;line-height:1;transform:translateY(-.4em)}
.week-column{position:relative;min-width:0;border-left:1px solid #e4e7f0;background:repeating-linear-gradient(to bottom,#fff 0 31px,#f0f1f7 31px 32px,#fff 32px 63px,#e3e6f0 63px 64px)}
.week-slot{position:absolute;left:0;width:100%;height:32px;background:transparent;border:0;color:#594bb8;z-index:1;text-align:center}
.week-slot:hover,.week-slot:focus-visible{background:#eeebfcaa}
.week-slot:hover:after,.week-slot:focus-visible:after{content:'＋ Book';font-size:.68rem;font-weight:900}
.week-booking{position:absolute;z-index:3;display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:6px 7px;overflow:hidden;background:#e9f7f6;border:1px solid #a7d9d8;border-left:3px solid #15878f;border-radius:8px;color:#23394e;text-align:left;box-shadow:0 3px 9px #1a325018;min-height:0}
.week-booking:hover{filter:brightness(.97);z-index:5}.week-booking small{font-size:.61rem;color:#456675;white-space:nowrap}.week-booking strong{font-size:.7rem;line-height:1.1}.week-booking span{font-size:.61rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.week-booking em{font-style:normal;font-size:.55rem;color:#246e75;font-weight:800}
.week-booking.clinic{background:#f2edff;border-color:#d3c5f4;border-left-color:#7964d0}.week-booking.clinic em{color:#6250b6}
.week-booking.livery{background:#fff4e9;border-color:#f2d5b3;border-left-color:#d98547}.week-booking.livery em{color:#945a2c}
.week-travel{position:absolute;left:4px;right:4px;z-index:2;overflow:hidden;white-space:nowrap;display:flex;align-items:center;padding:3px 6px;background:#ecf2fa;border:1px dashed #aabedb;border-radius:6px;color:#536f96;font-size:.6rem;font-weight:800}
.week-now{position:absolute;left:0;right:0;height:2px;background:#df596f;z-index:5;pointer-events:none}
.week-now:before{content:'';position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:#df596f}
.outside-hours{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:10px;border:1px solid #eed7bd;background:#fff8ef;border-radius:9px;color:#806146;font-size:.68rem}
.outside-hours button{background:#fff;border:1px solid #edcfab;border-radius:7px;padding:5px 8px;color:#694d35;font-size:.68rem}
.week-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;color:#687489;font-size:.67rem}
.week-legend span{display:flex;align-items:center;gap:5px}.legend-swatch{display:block;width:13px;height:9px;border-radius:3px;background:#e9f7f6;border-left:3px solid #15878f}.legend-swatch.clinic{background:#f2edff;border-color:#7964d0}.legend-swatch.livery{background:#fff4e9;border-color:#d98547}.legend-swatch.travel{background:#ecf2fa;border:1px dashed #aabedb}
@media(max-width:720px){
  .diary-toolbar{gap:9px;padding:10px}.diary-switch{order:1}.diary-period{order:2;flex:1}.diary-period strong{font-size:.73rem;margin-left:3px;white-space:normal}.diary-jump,.diary-filter{order:3;flex:1;min-width:135px}.diary-jump input,.diary-filter select{max-width:none}
  .week-panel{padding:12px}.week-panel .panel-heading{display:block}.week-summary{margin-top:10px}
  .week-scroll{max-height:65vh}.week-legend{gap:8px}
  .mobile-tabs button.active{color:#5143b4;background:#f0edfc}
  .performance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Commercial controls keep large invoice documents and quick extras usable on mobile. */
.action-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.commercial-invoice{min-width:0}.invoice-document{background:#fff;color:#202b27;padding:24px;border:1px solid #d6dfd9;border-radius:12px;margin:16px 0;overflow-wrap:anywhere}.invoice-document h1{font-size:24px}.invoice-document h2{font-size:18px}.invoice-document table{width:100%;border-collapse:collapse;table-layout:fixed}.invoice-document th,.invoice-document td{padding:8px 4px;text-align:left;border-bottom:1px solid #d6dfd9;font-size:13px;overflow-wrap:anywhere}.invoice-document th:first-child{width:36%}.receipt-note>details{margin-top:8px}.receipt-note>small{display:block}.online-payment{margin-top:16px}.commercial-invoice .form-grid{width:100%}.commercial-invoice summary,.panel>summary{cursor:pointer;padding:8px 0;font-weight:600}.commercial-invoice .invoice-document p{white-space:pre-wrap}#gv-print-document{display:none}
@media(max-width:600px){.invoice-document{padding:12px}.invoice-document h1{font-size:21px}.invoice-document th,.invoice-document td{font-size:11px;padding:8px 2px}.commercial-invoice .form-grid{grid-template-columns:1fr}.commercial-invoice .form-grid>*{grid-column:1}.action-row>*{min-height:44px}}
@media print{body>*{display:none!important}body>#gv-print-document{display:block!important}.invoice-document{border:0;padding:0;color:#000}.invoice-document table{page-break-inside:auto}.invoice-document tr{page-break-inside:avoid}}
.draft-status{font-size:12px;color:#456456;padding:8px;border-left:3px solid #cfad64;background:#faf7ee;grid-column:1/-1}
.commercial-performance-row{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--gv-line);font-size:13px}.commercial-performance-row>*{min-width:0;overflow-wrap:anywhere}.receipt-note{padding:14px 0;border-bottom:1px solid var(--gv-line)}.homework-response form{display:grid;gap:8px}
@media(max-width:720px){.commercial-performance-row{grid-template-columns:1fr 1fr}.commercial-performance-row>strong{grid-column:1/-1}.performance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;margin-top:20px}
.module-card{border:1px solid var(--border,#cbd5dc);border-radius:12px;padding:16px;margin:12px 0;overflow-wrap:anywhere}
.module-card h3{margin:0}.module-card .action-row{flex-wrap:wrap}.module-card select[multiple]{min-height:120px}
/* Operational records stay readable and actionable at field-work widths. */
.product-record{padding:1rem;border:1px solid var(--border,#ddd);border-radius:12px;margin:.75rem 0;overflow-wrap:anywhere}
.product-record summary{cursor:pointer;min-height:44px;display:block;padding:.5rem 0;line-height:1.5}
.product-record .product-form{margin-top:.75rem}
.product-save-state:empty{display:none}
.extra-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin-top:1rem}
.extra-actions button{min-height:64px;display:flex;flex-direction:column;align-items:flex-start;padding:1rem;text-align:left}
.extra-actions small{display:block;margin-top:.3rem}
.product-bulk-form input[type=checkbox]{width:22px;height:22px;margin-right:.6rem;vertical-align:middle}
.mobile-menu{display:none}
.panel .invite-row button{min-height:44px}
.auth-card .context-link{display:flex;align-items:center;min-height:44px}
@media(max-width:900px){.mobile-menu:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:1rem;background:var(--surface,#fff)}.mobile-menu button{min-height:48px;text-align:left}.product-record .form-grid{grid-template-columns:1fr}.product-record .action-row{flex-wrap:wrap}.product-record button{min-height:44px;max-width:100%}.extra-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.product-form .wide{grid-column:1/-1}}
.field-sync{position:fixed;bottom:76px;left:12px;right:12px;z-index:45;max-width:680px;margin:auto;border:1px solid var(--line,#d8dce2);background:var(--surface,#fff);padding:8px 12px;border-radius:12px;box-shadow:0 4px 16px #0002;font-size:.8rem}.field-sync button{min-height:44px;margin:6px}.field-sync details{max-height:28vh;overflow:auto}.field-sync p{overflow-wrap:anywhere}@media(min-width:850px){.field-sync{left:auto;right:24px;bottom:12px;max-width:480px}}
