@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#1e2927;--muted:#6e7974;--paper:#f8f8f3;--line:#e4e7df;--green:#183e31;--lime:#d9ed7a;--soft:#edf2e7;--white:#fff;--orange:#f4b178}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 'DM Sans',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr)}.rail{background:#17392e;color:white;display:flex;flex-direction:column;padding:29px 17px;position:sticky;top:0;height:100vh}.brand{padding:0 14px 46px;display:flex;flex-direction:column;align-items:flex-start}.brandmark{font-family:Manrope,Arial,sans-serif;font-weight:800;font-size:35px;line-height:1;letter-spacing:-3px}.brandmark span{font-size:17px;vertical-align:5px;color:var(--lime);letter-spacing:0}.brand small{letter-spacing:.22em;font-size:14px;color:#b4caba;margin-top:5px}.rail-label,.eyebrow{font-size:14px;letter-spacing:.16em;font-weight:800}.rail-label{color:#91b5a1;padding:0 16px;margin:0 0 15px}.rail nav{display:grid;gap:5px}.nav{display:flex;align-items:center;gap:13px;border:0;background:none;color:#c9d9ce;text-align:left;padding:12px 15px;border-radius:9px;font-weight:600}.nav span{font-size:18px;line-height:1;width:23px}.nav.active,.nav:hover{background:#34574a;color:white}.rail-foot{margin-top:auto;padding:18px 13px 5px;border-top:1px solid #426154;display:flex;gap:10px;align-items:center}.rail-foot small{display:block;color:#b1c5b6;font-size:14px}.rail-foot strong{font-size:14px}.tiny-dot{width:9px;height:9px;background:var(--lime);border-radius:50%}main{min-width:0;max-width:1520px;width:100%;margin:auto;padding:38px clamp(24px,4vw,68px) 90px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:38px}.eyebrow{color:#66846d}.topbar h1{font:800 clamp(24px,2.4vw,34px)/1.2 Manrope,Arial,sans-serif;margin:8px 0 0;letter-spacing:-.045em}.top-actions{display:flex;gap:21px;align-items:center}.demo-tag{border:1px solid #e6e8db;background:white;border-radius:6px;padding:8px 12px;color:#77906c;font-size:14px;white-space:nowrap;font-weight:800;letter-spacing:.07em}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid transparent;border-radius:8px;padding:11px 17px;min-height:43px;white-space:nowrap;font-size:14px;font-weight:800;transition:transform .15s,background .15s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--green);color:white}.button.light{background:var(--lime);color:var(--green)}.button.outline{background:white;border-color:var(--line);color:var(--green)}.view{display:none}.view.active{display:block}.hero{min-height:370px;background:var(--green);color:white;border-radius:18px;display:grid;grid-template-columns:1fr .8fr;overflow:hidden;padding:48px 57px;position:relative}.hero .eyebrow{color:var(--lime)}h2,h3,p{margin-top:0}.hero h2{font:800 clamp(38px,4.1vw,66px)/1.08 Manrope,Arial,sans-serif;letter-spacing:-.06em;margin:18px 0}.hero h2 em{color:var(--lime);font-style:normal}.hero p{max-width:430px;color:#d8e7dc}.hero-art{position:relative;min-height:250px}.orbit{border:1px solid #a3c3a47d;border-radius:50%;position:absolute;transform:rotate(-20deg)}.orbit-a{width:490px;height:330px;left:4%;top:2%}.orbit-b{width:330px;height:490px;left:30%;top:-33%}.hero-card{position:absolute;top:31%;left:31%;width:215px;height:145px;background:#e6efc4;color:var(--green);border-radius:19px;transform:rotate(-8deg);padding:22px;box-shadow:0 15px 35px #0a251d80}.hero-card span{font-size:24px}.hero-card strong,.hero-card small{display:block}.hero-card strong{font:800 18px Manrope,Arial;margin-top:15px}.hero-card small{font-size:14px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0 49px}.metric{background:white;border:1px solid var(--line);border-radius:13px;padding:19px 22px}.metric span{display:block;color:#739078;font-weight:800;letter-spacing:.12em;font-size:14px}.metric strong{display:block;font:800 32px Manrope,Arial;margin:6px 0}.metric small{color:var(--muted)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:19px}.section-head h3,.intro h1{font:800 clamp(28px,3vw,40px)/1.16 Manrope,Arial;letter-spacing:-.045em;margin:7px 0 0}.muted{color:var(--muted);font-size:14px}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.service-card{border:1px solid var(--line);background:#fff;text-align:left;border-radius:13px;min-height:140px;padding:20px;display:flex;flex-direction:column;justify-content:space-between}.service-card:hover{border-color:#86a294;background:#fafdf6}.service-card .icon{width:37px;height:37px;border-radius:9px;background:#ecf2dd;color:var(--green);display:grid;place-items:center;font-size:18px}.service-card strong{font:800 14px Manrope,Arial;display:block;margin-top:17px}.service-card small{font-size:14px;color:var(--muted)}.intro{margin:18px 0 29px}.intro p{color:var(--muted);max-width:620px;margin:10px 0 0}.layout-two{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:19px}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:28px}.form-heading{display:flex;align-items:center;gap:11px;margin-bottom:17px}.form-heading h3{font:800 20px Manrope,Arial;letter-spacing:-.035em;margin:0}.step{width:30px;height:30px;background:var(--soft);color:var(--green);border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:800}.form-panel label,.filters label{display:block;color:#53625a;font-weight:700;font-size:14px;margin:16px 0}.form-panel select,.form-panel input,.form-panel textarea,.filters select,.filters input{width:100%;border:1px solid #dce2d9;background:#fff;border-radius:8px;padding:11px 12px;margin-top:7px;color:var(--ink);outline:0}.form-panel :is(select,input,textarea):focus,.filters :is(select,input):focus{border-color:#78997f;box-shadow:0 0 0 3px #dcebd5}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fields label{margin:0 0 16px}.label-title{font-weight:700;font-size:14px;color:#53625a}.slots{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 15px}.slot{border:1px solid var(--line);background:#fff;border-radius:7px;padding:7px 11px;font-size:14px;color:var(--ink)}.slot.selected{background:var(--green);color:#fff}.slot:disabled{color:#a6aca7;background:#f7f8f6;cursor:not-allowed}.empty{color:var(--muted);font-size:14px;padding:12px 0}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:15px;border-top:1px solid var(--line);margin-top:20px}.price{font:800 20px Manrope,Arial}.side-panel{background:#f2f5eb;padding:34px}.side-panel h3,.journey-panel h3{font:800 25px/1.25 Manrope,Arial;letter-spacing:-.045em;margin:14px 0}.side-panel p{color:#596e5e}.context-list{display:grid;gap:13px;margin:27px 0}.context-item{border-top:1px solid #d6dfd0;padding-top:12px;font-size:14px}.context-item strong{display:block}.info{font-size:14px;color:#6e796b;border-radius:8px;background:#e7ecdf;padding:14px}.filters{display:flex;align-items:end;gap:12px;margin-bottom:18px}.filters label{margin:0;min-width:170px}.filters .button{min-height:43px}.table-panel{padding:0;overflow:auto}.booking-row{display:grid;grid-template-columns:100px minmax(150px,1.3fr) minmax(120px,1fr) 115px minmax(170px,1.1fr);gap:15px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);font-size:14px;min-width:740px}.booking-row:last-child{border-bottom:0}.booking-row.header{background:#f2f5ee;color:#748278;font-weight:800;letter-spacing:.08em;font-size:14px}.booking-row strong{display:block;font-size:14px}.booking-row small{display:block;color:var(--muted)}.booking-row select{border:1px solid var(--line);background:white;border-radius:6px;padding:6px;font-size:14px;width:100%}.status{display:inline-block;border-radius:6px;padding:5px 10px;background:#e9f1da;color:#42653a;font-weight:800}.status.cancelled{background:#f6e8e3;color:#a46a56}.status.completed{background:#e7eeef;color:#627e81}.status.checked_in{background:#dcece8;color:#316b63}.row-actions{display:flex;gap:5px}.mini{border:1px solid #d8e1d6;border-radius:6px;background:white;color:var(--green);padding:5px 8px;font-weight:700;font-size:14px}.dogs-layout{grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr)}.profile-header{display:flex;gap:15px;align-items:center;margin:24px 0}.avatar{width:62px;height:62px;background:var(--lime);color:var(--green);border-radius:19px;display:grid;place-items:center;font:800 25px Manrope}.profile-header h3{font:800 24px Manrope;margin:0}.profile-header p{margin:0;color:var(--muted)}.profile-detail{background:#f5f7f0;padding:13px;border-radius:9px;margin:9px 0;font-size:14px}.profile-detail strong{display:block}.form-panel hr{border:0;border-top:1px solid var(--line);margin:25px 0}.journey-item{padding:17px 0;border-bottom:1px solid var(--line);display:flex;gap:14px}.journey-item:last-child{border:0}.journey-symbol{background:var(--soft);border-radius:10px;width:38px;height:38px;flex:none;display:grid;place-items:center;color:var(--green)}.journey-item strong{display:block}.journey-item small{color:var(--muted)}.journey-item p{margin:6px 0;color:#53655b}.notice{display:none;padding:13px 16px;border-radius:8px;margin:-18px 0 20px;background:#e6f1d8;color:#345a3a;font-weight:700}.notice.error{background:#f9e6e0;color:#924a39}.notice.show{display:block}[hidden]{display:none!important}@media(max-width:1100px){.service-grid{grid-template-columns:repeat(2,1fr)}.hero{padding:36px}.hero-art{min-height:240px}}@media(max-width:780px){.shell{display:block}.rail{position:relative;height:auto;padding:15px}.brand{padding:0 0 15px}.rail-label,.rail-foot{display:none}.rail nav{display:flex;overflow:auto}.nav{white-space:nowrap;padding:9px}.nav span{display:none}main{padding:25px 18px 70px}.topbar{align-items:flex-start}.top-actions{display:block}.demo-tag{display:none}.hero{display:block;padding:27px;min-height:auto}.hero-art{display:none}.metric-grid{grid-template-columns:repeat(3,1fr)}.metric{padding:13px}.metric strong{font-size:24px}.layout-two,.dogs-layout{grid-template-columns:1fr}.section-head .muted{display:none}}@media(max-width:500px){.topbar h1{font-size:22px}.top-actions .button{padding:9px;font-size:14px}.metric-grid{gap:6px}.metric span{font-size:14px}.metric small{font-size:14px}.service-grid{gap:8px}.service-card{padding:12px}.fields{display:block}.panel{padding:18px}.filters{flex-wrap:wrap}}
/* Two distinct journeys and the dog passport */
.persona-switch{display:grid;grid-template-columns:1fr 1fr;background:#102c23;padding:4px;border-radius:10px;margin:0 9px 31px;gap:3px}.persona-switch button{border:0;border-radius:7px;background:transparent;color:#b5c9bc;padding:10px 6px;font-weight:800;font-size:14px}.persona-switch button.selected{background:var(--lime);color:#17392e}.nav-icon,.nav .nav-icon{width:23px;height:23px;display:grid;place-items:center;flex:none}.nav-icon svg,.icon svg,.journey-symbol svg,.context-item svg{width:20px;height:20px}.sample-owner{font-size:14px;color:var(--muted);font-weight:800;white-space:nowrap}.sample-owner select{border:0;border-bottom:1px solid #a7b7a7;background:transparent;color:var(--green);font-weight:800;padding:6px}.dog-hero{min-height:325px;display:flex;align-items:center;gap:37px;background:#17392e;color:white;border-radius:18px;padding:40px 55px;position:relative;overflow:hidden}.dog-hero:after{content:"";position:absolute;border:1px solid #63847777;width:560px;height:430px;border-radius:50%;right:-135px;top:-230px;pointer-events:none}.dog-portrait{width:235px;height:235px;flex:none;border:7px solid #d9ed7a;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#436654;color:#d9ed7a}.dog-portrait img{width:100%;height:100%;object-fit:cover}.dog-portrait span svg{width:90px;height:90px}.dog-hero-copy{position:relative;z-index:1}.dog-hero .eyebrow{color:var(--lime)}.dog-hero h1{font:800 clamp(38px,4vw,62px)/1.1 Manrope,Arial;letter-spacing:-.055em;margin:13px 0}.dog-hero p{color:#c8d8cc;margin-bottom:25px}.dog-hero .button svg{width:17px;height:17px}.dog-hero-mark{margin-left:auto;color:#c7dfb6;font-size:14px;letter-spacing:.22em;font-weight:800;line-height:1.7;align-self:end;text-align:right}.dog-switch{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 2px}.dog-switch label{font-size:14px;font-weight:800}.dog-switch select,.share-card select{margin-left:9px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--green);font-weight:800}.dog-switch span{color:var(--muted);font-size:14px}.mydog-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.85fr);gap:17px;align-items:start}.mydog-grid>div{display:grid;gap:17px}.panel-title{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.mydog-grid h2{font:800 clamp(20px,2vw,27px)/1.2 Manrope,Arial;letter-spacing:-.04em;margin:8px 0 20px}.passport{background:#f8f7ef;border-color:#dddcc9}.passport-mark{border:1px solid #94a490;border-radius:50%;padding:20px 8px;color:#6f8b74;font-size:14px;letter-spacing:.08em;transform:rotate(10deg);white-space:nowrap}.stamp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stamp{border:1px dashed #cdd5c8;border-radius:12px;min-height:139px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:9px;background:#fffefa}.stamp.earned{border:1px solid #bed07c;background:#f0f5d9}.stamp.locked{opacity:.47}.stamp-medal{width:47px;height:47px;border-radius:50%;border:2px solid #b6ca72;color:#315645;display:grid;place-items:center;margin-bottom:9px}.stamp.locked .stamp-medal{border-color:#c8cec5}.stamp strong{font:800 14px/1.2 Manrope,Arial}.stamp small{font-size:14px;color:var(--muted);margin-top:5px}.rewards{background:#eaf1e3}.reward-count{display:flex;align-items:baseline;gap:12px}.reward-count strong{font:800 58px Manrope,Arial;color:#17392e}.reward-count span{font-size:14px;color:#54705c}.progress-label{display:flex;justify-content:space-between;gap:10px;font-size:14px}.progress-label span{color:#789078}.progress-track{height:10px;background:#d0dbc8;border-radius:10px;margin:13px 0 16px;overflow:hidden}.progress-track span{display:block;height:100%;background:#476e4a;border-radius:10px}.rewards p,.share-card p{font-size:14px;color:#637566;line-height:1.6;margin:0}.care-card .profile-detail{font-size:14px;margin:9px 0}.share-card{background:#d9ed7a;border-color:#d1e875}.share-card .share-graphic{font-size:37px;line-height:1;color:#345c36}.share-card p{color:#496b48;margin-bottom:18px}.share-card label{display:block;font-size:14px;font-weight:800}.share-card select{display:block;width:100%;margin:8px 0 14px}.share-card small{display:block;margin-top:11px;color:#4e684f;font-size:14px}.share-card .button{background:#17392e;color:white;width:100%;justify-content:space-between}.share-card button:disabled{opacity:.55;cursor:not-allowed}.text-button{background:none;border:0;color:#2f6643;font-weight:800;text-decoration:underline;text-underline-offset:3px;padding:0 0 7px}.customer-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr);gap:18px}.customer-grid>div:last-child{display:grid;gap:16px;align-content:start}.customer-record{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);padding:15px 0}.customer-record:last-child{border:0}.customer-record>div:nth-child(2){flex:1;min-width:0}.customer-initial{height:42px;width:42px;border-radius:50%;background:var(--soft);color:#345c3c;display:grid;place-items:center;font-weight:800}.customer-record strong,.customer-record small,.customer-record span{display:block}.customer-record small,.customer-record span{font-size:14px;color:var(--muted)}.customer-record .mini{margin-left:auto}.add-dog-form{margin:0}.owner-bookings{display:grid;gap:12px}.owner-booking{display:flex;align-items:center;gap:26px}.owner-booking>.booking-date{min-width:120px;color:#436e4e;font-weight:800;font-size:14px}.owner-booking strong,.owner-booking small,.owner-booking .booking-date small{display:block}.owner-booking small{font-size:14px;color:var(--muted)}.owner-booking .status{margin-left:auto;white-space:nowrap}.context-item{display:flex;gap:10px;align-items:center}.context-item svg{flex:none;color:#547d58}.journey-item{align-items:flex-start}.journey-item .journey-symbol{height:39px}.nav:focus-visible,.button:focus-visible,.slot:focus-visible,.mini:focus-visible,.persona-switch button:focus-visible{outline:3px solid #a8cc6b;outline-offset:2px}
@media(max-width:1100px){.stamp-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.mydog-grid,.customer-grid{grid-template-columns:1fr}.stamp-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:780px){.persona-switch{display:flex;margin:0 0 13px;width:max-content}.persona-switch button{min-width:100px}.dog-hero{padding:28px}.dog-portrait{height:165px;width:165px}.dog-hero-mark{display:none}.sample-owner{display:block;margin-bottom:10px}.nav .nav-icon{display:grid}}@media(max-width:580px){.dog-hero{display:block;text-align:center}.dog-portrait{margin:auto auto 20px}.dog-hero h1{font-size:37px}.dog-switch{align-items:start;display:block}.dog-switch span{display:block;margin-top:10px}.stamp-grid{grid-template-columns:repeat(2,1fr)}.mydog-grid .panel{padding:20px}.topbar{display:block}.top-actions{margin-top:12px}.owner-booking{flex-wrap:wrap;gap:9px}.owner-booking .status{margin-left:0}.filters .button{flex:1}.customer-record{flex-wrap:wrap}}
/* Operator care, training and growth tools */
.rail{overflow-y:auto}.rail nav{gap:3px}.rail .nav{padding-top:10px;padding-bottom:10px;font-size:14px}.rail .brand{padding-bottom:27px}.rail .persona-switch{margin-bottom:20px}.rail-foot{margin-top:26px}.ops-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:start}.ops-stack{display:grid;gap:20px}.ops-columns h2,.dashboard-panels h2{font:800 25px/1.2 Manrope,Arial;letter-spacing:-.04em;margin:7px 0 20px}.ops-columns .form-panel{margin:0}.ops-columns .panel p{font-size:14px}.field-help{display:block;color:#6a7b70;font-size:14px;line-height:1.6;margin:8px 0 14px}.form-panel .check-label,.check-label{display:flex;align-items:flex-start;gap:9px;font-size:14px;font-weight:600;color:#536659}.form-panel .check-label input,.check-label input{width:16px;height:16px;flex:none;padding:0;margin:2px 0 0;accent-color:#315f41}.record-picker{display:flex;gap:16px;align-items:center;background:#eaf0e3;border:1px solid #dce5d1;border-radius:12px;padding:16px 20px;margin-bottom:18px}.record-picker label{font-size:14px;font-weight:800;display:flex;align-items:center;gap:12px}.record-picker select,.panel-title>select,.saved-offer select{border:1px solid #d9e1d4;background:white;padding:9px 12px;border-radius:7px;color:#294b35;font-size:14px;max-width:100%}.insight-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);border-radius:13px;background:white;overflow:hidden;margin:18px 0}.insight-metrics>div{padding:18px;border-right:1px solid var(--line)}.insight-metrics>div:last-child{border:0}.insight-metrics small{display:block;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:#75876e;font-weight:800}.insight-metrics strong{display:block;font:800 clamp(21px,2.4vw,31px) Manrope,Arial;color:#214530;letter-spacing:-.045em;margin:5px 0}.insight-metrics span{display:block;color:var(--muted);font-size:14px}.dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-panels{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.8fr);gap:18px;margin:20px 0 34px;align-items:start}.attention-row{display:flex;gap:10px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.attention-row:last-child{border:0}.attention-row>div{flex:1;min-width:0}.attention-row strong{font-size:14px;display:block}.attention-row small{display:block;font-size:14px;color:var(--muted);margin-top:4px}.attention-row .mini{white-space:nowrap}.alert-dot{height:9px;width:9px;border-radius:50%;background:#75964b;flex:none}.alert-dot.missed,.alert-dot.overdue{background:#c78053}.alert-dot.attendance{background:#8c94ac}.capacity-card{background:#eef2e7}.capacity-service{border-top:1px solid #d6e1ce;padding:16px 0}.capacity-service>strong{font-size:14px}.capacity-service>div{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.capacity-service span{font-size:14px;color:#728368;display:flex;flex-direction:column}.capacity-service b{font:800 27px Manrope,Arial;color:#284e36}.customer-summary{font-size:14px;margin:15px 0 23px;color:#5f7165}.customer-summary p{margin:6px 0}.consent-chip{display:inline-block;padding:3px 9px;border-radius:20px;background:#eaf1df;color:#5a754c;margin-left:5px;font-size:14px}.suggestion-card{display:flex;gap:13px;padding:17px 0;border-bottom:1px solid var(--line)}.suggestion-card strong{font-size:14px}.suggestion-card p{margin:6px 0 10px;color:#6b7d6e;font-size:14px}.suggestion-card .journey-symbol{flex:none}.saved-offer,.care-plan-row{padding:16px 0;border-top:1px solid var(--line);margin-top:14px}.saved-offer p{font-size:14px;color:#667665}.saved-offer label{font-size:14px}.saved-offer .mini{margin-left:10px}.care-plan-row strong,.care-plan-row span,.care-plan-row small{display:block}.care-plan-row strong{font-size:14px}.care-plan-row span{font-size:14px;margin:4px 0;color:#456846}.care-plan-row small{font-size:14px;color:#798874;margin-bottom:8px}.training-note{border-bottom:1px solid var(--line);padding:17px 0}.training-note p{font-size:14px;color:#52685a;white-space:pre-wrap;margin:8px 0}.training-note>strong{font-size:14px}.note-choice{margin:0!important;flex-wrap:wrap}.note-choice small{margin-left:auto;color:var(--muted);font-weight:400;font-size:14px}.small-tag{display:inline-block;font-size:14px;background:#edf1e7;border-radius:5px;padding:3px 7px;color:#69805d;margin:3px 4px 3px 0}.dictation-row{display:flex;align-items:center;gap:12px;margin:5px 0 18px}.dictation-row span{font-size:14px;color:#7d8b77}.dictation-row .button{flex:none;gap:8px;font-size:14px}.dictation-row .recording{background:#fff1e9;border-color:#cfa27c;color:#905a34}.training-plan{padding:15px;border-radius:10px;background:#f0f4e9;margin-bottom:15px}.training-plan strong{font-size:14px}.training-plan p{font-size:14px;color:#546e56;margin:6px 0 15px}.training-plan small{font-size:14px;color:#64735d}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.package-card{border:1px solid #dfe7d4;border-radius:9px;background:#fbfcf8;padding:16px;margin:12px 0}.package-card>strong{display:block;font-size:14px}.package-card>span{font-size:14px;color:var(--muted)}.package-counts{display:flex;gap:25px;padding-top:15px}.package-counts b{font:800 28px Manrope,Arial;color:#315839}.package-counts small{font:500 14px 'DM Sans',Arial;display:block;color:#788c6b}.owner-update{background:#edf3e3;border-left:3px solid #71964f;padding:20px;margin-bottom:18px;border-radius:5px}.owner-update h3{margin:10px 0;font-size:19px}.owner-update p{font-size:14px;line-height:1.7;color:#526c54}.published-update{border-top:1px solid var(--line);margin-top:22px;padding-top:17px}.published-update>strong,.published-update>small{display:block}.published-update>strong{font-size:14px}.published-update>small{font-size:14px;color:#7d8b76}.published-update>p{font-size:14px!important;white-space:pre-wrap}.published-update details{background:#f2f5ee;padding:12px;border-radius:7px;font-size:14px}.published-update summary{cursor:pointer;font-weight:800}.published-update details p{font-size:14px!important}.care-subtitle{font-size:15px;margin:20px 0 8px}.referral-hero{display:flex;justify-content:space-between;gap:35px;background:#173e2e;color:white;padding:35px 42px;border-radius:16px;margin-bottom:22px}.referral-hero .eyebrow{color:var(--lime)}.referral-hero h2{font:800 clamp(28px,3vw,43px) Manrope,Arial;letter-spacing:-.045em;margin:12px 0}.referral-hero p{max-width:550px;color:#c0d4c5;font-size:14px}.referral-hero small{display:block;color:#b9d0ba;font-size:14px;max-width:500px}.referral-code{display:flex;align-items:center;gap:20px;margin:22px 0 15px}.referral-code>strong{font:800 27px Manrope,Arial;letter-spacing:.06em}.referral-totals{min-width:155px;display:grid;align-content:center;border-left:1px solid #51715c;padding-left:30px}.referral-totals strong{font:800 38px Manrope,Arial;color:#d9ed7a}.referral-totals span{font-size:14px;color:#b4cab6;margin-bottom:12px}.wallet-row{display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--line);padding:17px 0}.wallet-row>span:first-child{color:#6e954c}.wallet-row>div{flex:1}.wallet-row strong,.wallet-row small{display:block}.wallet-row strong{font-size:14px}.wallet-row small{font-size:14px;color:var(--muted);margin-top:5px}.wallet-row>.status{font-size:14px}.referral-row{padding:15px 0;border-bottom:1px solid var(--line)}.referral-row strong,.referral-row small,.referral-row span{display:block}.referral-row strong{font-size:14px}.referral-row small,.referral-row span{font-size:14px;color:#708464;margin-top:5px}.code-row{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.code-row b{color:#41663c}.repeat-box{background:#f3f6ee;border:1px solid #e1e8d9;padding:0 16px 12px;border-radius:10px;margin:18px 0}.series-dates{display:flex;flex-wrap:wrap;gap:5px}.series-dates span{background:white;border:1px solid #d9e2cf;border-radius:5px;padding:5px 8px;font-size:14px;color:#647856}.series-dates .conflict{border-color:#dab097;color:#a36b47;background:#fff6ef}.series-dates .available{background:#e5eddc;color:#517240}.price small{display:block;font-size:14px;font-weight:500;font-family:'DM Sans',Arial;max-width:230px;color:#728367;margin-top:4px}.price-option-detail{font-size:14px;color:#76886d;background:#edf3e6;border-radius:7px;padding:12px}.availability-result{font-size:14px;color:#466a35;background:#edf4e4;border-radius:7px;padding:11px}.availability-result.unavailable{background:#f7e9df;color:#956543}.kennel-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.kennel-fields label{font-size:14px}.price-breakdown{display:flex;gap:14px;background:#eef3e7;padding:15px;border-radius:8px;margin:5px 0 16px}.price-breakdown span{font-size:14px;color:#668359;flex:1}.price-breakdown b{display:block;font-size:14px;color:#315a39}.status.no_show{color:#a26540;background:#faeadc}.missed-button{color:#9c6543;border-color:#e1c4af}.row-actions{flex-wrap:wrap}.booking-row{grid-template-columns:100px minmax(120px,1.2fr) minmax(110px,1fr) 100px minmax(185px,1.2fr)}#draft-training-summary{margin-top:16px}.form-panel button:disabled{opacity:.55;cursor:not-allowed}
@media(min-width:1500px){.shell{grid-template-columns:230px minmax(0,1fr)}main{max-width:1700px}}@media(max-width:1150px){.ops-columns,.dashboard-panels{grid-template-columns:1fr}.insight-metrics{grid-template-columns:repeat(3,1fr)}.dashboard-metrics{grid-template-columns:repeat(2,1fr)}.insight-metrics>div{border-bottom:1px solid var(--line)}.capacity-service>div{justify-content:flex-start;gap:50px}.attention-row{flex-wrap:wrap}}@media(max-width:780px){.rail{overflow:visible}.rail nav{display:flex;overflow-x:auto}.rail .brand{padding-bottom:14px}.rail .persona-switch{margin-bottom:12px}.record-picker{align-items:stretch}.record-picker label{display:block;flex:1}.record-picker select{display:block;width:100%;margin-top:7px}.referral-hero{padding:26px}.referral-totals{min-width:115px;padding-left:18px}.insight-metrics>div{padding:14px}.dictation-row{flex-wrap:wrap}.attention-row>div{flex-basis:65%}}@media(max-width:500px){.insight-metrics{grid-template-columns:repeat(2,1fr)}.referral-hero{display:block}.referral-totals{display:flex;align-items:center;gap:10px;border:0;border-top:1px solid #41694e;margin-top:22px;padding:15px 0 0;flex-wrap:wrap}.referral-totals strong{font-size:25px}.referral-totals span{margin:0;font-size:14px;max-width:70px}.referral-code{gap:10px;flex-wrap:wrap}.panel-title{flex-wrap:wrap}.kennel-fields{grid-template-columns:1fr}.kennel-fields label{margin:6px 0}.wallet-row{flex-wrap:wrap}.attention-row .mini{font-size:14px}.record-picker{padding:13px;gap:10px}.record-picker select{padding:8px}.form-footer{align-items:flex-start}.form-footer .button{white-space:normal}}
/* Daily care board and owner visit stories */
.today-intro{display:flex;align-items:end;justify-content:space-between;gap:24px}.today-controls{display:flex;align-items:center;gap:11px;flex-wrap:wrap;max-width:420px}.today-controls label{color:#55705b;font-weight:800;font-size:14px;white-space:nowrap}.today-controls input{display:block;border:1px solid #d8e1d5;background:#fff;color:#204632;border-radius:8px;padding:10px;margin-top:5px}.today-controls .field-help{flex-basis:100%;margin:0}.today-alert{border:1px solid #efcf9d;background:#fff7e9;border-radius:10px;padding:13px 19px;margin:12px 0 20px;color:#7c5632;font-size:14px}.today-alert strong{margin-right:9px}.today-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,.95fr);gap:20px;align-items:start}.today-detail{position:sticky;top:20px;max-height:calc(100vh - 35px);overflow:auto;scrollbar-width:thin}.today-detail .panel{padding:0;overflow:hidden}.today-section{margin-bottom:30px}.today-section .section-head{margin-bottom:10px}.today-section h3{font:800 21px Manrope,Arial;margin:0}.today-visit{border:1px solid #dde4da;background:#fff;border-radius:12px;width:100%;padding:16px;display:flex;gap:12px;align-items:center;text-align:left;color:var(--ink);margin-bottom:10px}.today-visit:hover,.today-visit.selected{border-color:#86ad76;background:#f7faf2}.visit-time{font-weight:800;font-size:14px;min-width:43px;color:#42674b}.visit-time small{display:block;font-weight:500;color:#87927f;font-size:14px;max-width:75px}.visit-avatar{width:48px;height:48px;border-radius:15px;background:#d9ed7a;color:#234332;display:grid;place-items:center;flex:none;overflow:hidden;font-size:22px;font-weight:800}.visit-avatar img{width:100%;height:100%;object-fit:cover}.visit-main{flex:1;min-width:0}.visit-main strong,.visit-main small{display:block}.visit-main strong{font:800 15px Manrope,Arial}.visit-main small{font-size:14px;color:var(--muted);margin-top:2px}.visit-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.visit-pills em{font-style:normal;font-size:14px;color:#4e7642;background:#e8f1dc;padding:3px 7px;border-radius:6px}.visit-pills em.urgent{background:#f9e8dc;color:#9c694b}.visit-arrow{color:#739873;font-size:20px}.today-empty{border:1px dashed #d8e1d4;border-radius:10px;padding:20px;background:white}.visit-detail-head{background:#173e2f;color:white;padding:28px}.visit-detail-head h2{font:800 33px Manrope,Arial;margin:7px 0;letter-spacing:-.05em}.visit-detail-head p{color:#c7dcc9;font-size:14px}.visit-detail-head .eyebrow{color:#bfe191}.visit-detail-head .mini{background:transparent;color:#d6e8d4;border-color:#688771}.visit-detail-actions{padding:17px 23px;border-bottom:1px solid #e0e7db}.visit-detail-actions .button{width:100%}.visit-detail-actions button:disabled{opacity:.5;cursor:not-allowed}.visit-card{padding:25px;border-bottom:1px solid #e3e8e1}.visit-card:last-child{border:0}.visit-card h3{font:800 20px/1.2 Manrope,Arial;letter-spacing:-.025em;margin:8px 0 19px}.visit-card .form-panel{padding:0;margin:0}.visit-card .form-panel label{margin:11px 0}.visit-card .fields{gap:8px}.visit-card .fields label{margin:0 0 12px}.visit-card .check-label{display:flex;margin:12px 0!important}.visit-card .check-label input{width:16px;height:16px;margin:2px 0 0;accent-color:#315e41}.visit-card .button{white-space:normal}.care-gap{margin:15px 23px;border:1px solid #e8b899;border-radius:9px;background:#fff4e9;padding:14px;color:#824e35;font-size:14px}.care-gap p{margin:7px 0}.care-gap small{font-size:14px}.handover-row{display:grid;grid-template-columns:115px 1fr;gap:10px;border-bottom:1px solid #edf1eb;padding:9px 0;font-size:14px}.handover-row strong{color:#41654c}.handover-row span{color:#617165;white-space:pre-wrap}.visit-task{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #e5ece4}.visit-task.done{opacity:.6}.visit-task>div{flex:1}.visit-task strong,.visit-task small{display:block}.visit-task strong{font-size:14px}.visit-task small{font-size:14px;color:#71816f}.visit-task .mini:disabled{opacity:.5}.task-icon{width:26px;height:26px;color:#567e52;flex:none}.task-icon svg{width:20px;height:20px}.moment-item{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid #e5ece4}.moment-item img{width:74px;height:65px;object-fit:cover;border-radius:7px;flex:none}.moment-item>div{flex:1}.moment-item small{font-size:14px;color:#7a8d70}.moment-item p{font-size:14px;line-height:1.5;margin:5px 0;color:#425d49}.moment-item .journey-symbol{flex:none}#visit-photo-preview{color:#7f8f7e;font-size:14px}#visit-photo-preview img{width:110px;height:90px;object-fit:cover;border-radius:8px;display:block}#visit-photo-preview small{display:block}.story-editor{background:#f7f9f3}.story-choices{display:grid;gap:8px;margin-bottom:12px}.story-choices .check-label{padding:8px;background:#fff;border-radius:6px;font-size:14px}.story-editor textarea{white-space:pre-wrap}.published-story-status{margin-top:14px;background:#e9f1dd;padding:11px;font-size:14px;color:#476c41;border-radius:8px}.owner-story-head{padding:28px 2px 12px}.owner-story-head h2{font:800 clamp(24px,2.5vw,34px) Manrope,Arial;letter-spacing:-.04em;margin:7px 0}.owner-story-head p{color:#718175;font-size:14px}.owner-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-bottom:18px}.owner-story{background:#fff;border:1px solid #e2e7dd;border-radius:13px;overflow:hidden}.owner-story-image{position:relative;height:250px;background:#eaf1df;display:grid;place-items:center;color:#396345}.owner-story-image img{width:100%;height:100%;object-fit:cover}.owner-story-image>span svg{height:74px;width:74px}.owner-story-image small{position:absolute;bottom:12px;left:15px;background:#fffdf1ed;padding:6px 9px;border-radius:5px;color:#2a4c3a;font-size:14px;font-weight:800}.owner-story-body{padding:24px}.owner-story-body h3{font:800 23px/1.2 Manrope,Arial;letter-spacing:-.04em;margin:10px 0}.owner-story-body p{font-size:14px;line-height:1.7;color:#52685a}.owner-story-moments{display:grid;gap:8px;padding:14px 0;border-top:1px solid #e4ebdf;margin-top:14px}.owner-story-moments span{display:flex;align-items:center;gap:8px;font-size:14px;color:#526d54}.owner-story-moments svg{width:17px;height:17px;flex:none}.owner-story-body .button{margin-top:13px}.visit-detail::-webkit-scrollbar{width:8px}.visit-detail::-webkit-scrollbar-thumb{background:#c5d3c0;border-radius:20px}
@media(max-width:1200px){.today-layout{grid-template-columns:1fr}.today-detail{position:static;max-height:none}.owner-story-grid{grid-template-columns:1fr 1fr}.today-detail .panel{max-width:none}}@media(max-width:800px){.today-intro{display:block}.today-controls{margin-top:17px}.today-layout{grid-template-columns:1fr}.owner-story-image{height:180px}}@media(max-width:600px){.owner-story-grid{grid-template-columns:1fr}.today-controls{display:block}.today-controls .button{margin:10px 0}.today-visit{gap:9px;padding:12px}.visit-main strong{font-size:14px}.visit-main small{font-size:14px}.visit-avatar{width:40px;height:40px}.visit-time{font-size:14px;min-width:36px}.visit-card{padding:19px}.handover-row{grid-template-columns:100px 1fr}.owner-story-image{height:230px}}
.owner-next-steps{background:#e9f1df;border:1px solid #d6e6ca;border-radius:13px;padding:24px;margin-bottom:23px}.owner-next-steps h3{font:800 21px Manrope,Arial;margin:10px 0}.owner-next-steps>div{border-top:1px solid #cddfbd;padding:14px 0}.owner-next-steps strong{font-size:14px;color:#26482c}.owner-next-steps p{font-size:14px;color:#526f56;margin:5px 0 12px}.owner-next-steps .button{font-size:14px}.today-controls .button{padding-inline:12px}
.nav-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:23px;height:23px}.nav-icon svg{display:block;width:20px;height:20px}.action-icon{display:inline-flex;align-items:center;justify-content:center;flex:none}.action-icon svg,.button>svg{width:18px;height:18px;flex:none}.button:has(.action-icon),.button:has(>svg){gap:9px}.button.recording .action-icon,.button.recording>svg{color:#ba3f36}.nav:focus-visible,.button:focus-visible{outline:3px solid #d9ed7a;outline-offset:2px}

/* Larger, legible type and a consistent Dogparks-style action arrow. */
body{font-size:16px;line-height:1.55}.nav{font-size:16px}.button{font-size:15px;gap:12px;min-height:46px;white-space:normal;text-align:center}.button::after{content:"→";font-size:19px;line-height:1;font-weight:600;display:inline-block;flex:none;transition:transform .15s ease}.button:hover::after{transform:translateX(3px)}#share-achievement::after,.button[data-share-story]::after{content:"↗"}.mini{font-size:14px;min-height:36px;padding:7px 10px}.stamp.locked{opacity:.75}.reset-demo{border:1px solid #7a9b82;border-radius:7px;background:transparent;color:#eef6ed;padding:8px;font-size:14px;line-height:1.2;margin-left:auto}.reset-demo:hover{background:#34574a}.rail-foot{flex-wrap:wrap}.rail-foot .reset-demo{width:100%;margin:9px 0 0}.passport-mark{font-size:14px;padding:19px 10px}.dog-hero p,.owner-story-body p,.owner-next-steps p,.moment-item p{font-size:16px}.service-card strong{font-size:16px}.visit-main strong{font-size:16px}.visit-detail-head p{font-size:15px}
/* Align the first visit story and passport beneath one shared heading on desktop. */
@media(min-width:1201px){#dogs.active{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:17px;align-items:start}#dogs>.dog-hero{grid-column:1/-1;grid-row:1}#dogs>.mydog-grid,#dogs>.mydog-grid>div:first-child,#dogs>#visit-stories{display:contents}#dogs #visit-stories .owner-story-head{grid-column:1/-1;grid-row:2;padding:5px 2px 0}#dogs #visit-stories .owner-story-grid{grid-column:1;grid-row:3;grid-template-columns:1fr;margin-bottom:0;min-width:0}#dogs .owner-story-image{aspect-ratio:3/2;height:auto}#dogs .passport{grid-column:2;grid-row:3;min-width:0;align-self:stretch}#dogs:has(.owner-story:only-child) .passport{display:flex;flex-direction:column;height:100%}#dogs:has(.owner-story:only-child) .passport .stamp-grid{flex:1;grid-template-rows:repeat(2,minmax(0,1fr))}#dogs #visit-stories .owner-next-steps{grid-column:1/-1;grid-row:4}#dogs>.dog-switch{grid-column:1/-1;grid-row:5}#dogs .rewards{grid-column:1;grid-row:6}#dogs #owner-training{grid-column:1;grid-row:7}#dogs .journey-panel{grid-column:1;grid-row:8}#dogs:not(:has(.owner-story)) .passport{grid-row:2}#dogs:not(:has(.owner-story))>.dog-switch{grid-row:3}#dogs:not(:has(.owner-story)) .rewards{grid-row:4}#dogs:not(:has(.owner-story)) #owner-training{grid-row:5}#dogs:not(:has(.owner-story)) .journey-panel{grid-row:6}}
.owner-story-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.owner-story-title-row h3{flex:1;min-width:0}.story-share-link{border:0;background:transparent;color:#315a3f;padding:6px 0;font-size:14px;font-weight:800;white-space:nowrap;display:inline-flex;gap:7px;align-items:center}.story-share-link:hover{text-decoration:underline}.story-share-link:focus-visible{outline:3px solid #a8cc6b;outline-offset:2px}
.owner-story-title-row .story-share-link{border:1px solid #d8e4d6;border-radius:8px;background:#fff;padding:9px 12px;min-height:40px}.owner-story-title-row .story-share-link:hover{background:#f2f7ee;text-decoration:none}
/* The page itself carries the single visible title; the top bar holds account controls. */
.topbar{justify-content:flex-end;padding-bottom:18px}.topbar-heading,#booking-eyebrow,#booking-aside-label{display:none}.intro h1{margin-top:0}.mydog-grid h2{margin-top:0}.visit-card h3{margin-top:0}.owner-story-head h2{margin-top:0}
/* Labels describe the field; entered values have their own quieter weight. */
main label{font-size:14px;font-weight:700;color:#4c5e55;line-height:1.45}main :is(input,select,textarea){font-size:16px;font-weight:400;line-height:1.5;color:#1e2927}main :is(input,select,textarea)::placeholder{font-weight:400;color:#7c8981}main :is(input,select,textarea):focus-visible{border-color:#537c5a;outline:2px solid #cde3ae;outline-offset:1px}main label:has(:required):not(.check-label)::before{content:"*";display:inline-block;margin-right:6px;color:#a24b39;font-weight:800}main label:has(:required):not(.check-label) :is(input,select,textarea){margin-top:7px}main :is(input,select,textarea):invalid:not(:focus):not(:placeholder-shown){box-shadow:none}
/* Booking uses two working columns at desktop widths, with one clear select chevron. */
#book .layout-two{display:block}#booking-form{width:100%;max-width:none}#booking-form .booking-form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}#booking-form .booking-form-col{min-width:0}#booking-form .booking-form-col>label:first-child,#booking-form .booking-form-col>div:first-child{margin-top:0}#booking-form .form-footer{border-top:1px solid var(--line);padding-top:20px;margin-top:18px}main select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath d='m4 7 6 6 6-6' fill='none' stroke='%23254438' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;background-size:18px 18px!important;padding-right:44px!important}#booking-form select{min-height:46px}@media(max-width:900px){#booking-form .booking-form-columns{grid-template-columns:1fr;gap:2px}}
/* The operator can search for a customer without opening a long select list. */
.owner-search{position:relative;min-width:0}.record-picker .owner-search{display:flex;align-items:center;gap:12px}.record-picker .owner-search label{flex:none}.owner-search>input{width:310px;min-height:46px;border:1px solid #d8e1d4;background:#fff;border-radius:8px;padding:10px 14px;color:var(--ink);outline:0}.owner-search>input::-webkit-search-cancel-button{cursor:pointer}#booking-form .owner-search{margin:16px 0}#booking-form .owner-search label{display:block;margin:0 0 7px}#booking-form .owner-search>input{width:100%}.owner-search-results{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:20;background:white;border:1px solid #b9cdb2;border-radius:9px;box-shadow:0 14px 35px #15332523;max-height:310px;overflow:auto;padding:5px}.record-picker .owner-search-results{left:90px}.owner-search-results button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;border-radius:5px;background:white;color:#223c2c;padding:10px 11px;text-align:left;font-size:15px}.owner-search-results button:hover,.owner-search-results button[aria-selected="true"]{background:#edf5e5}.owner-search-results small{color:#647869;font-size:13px}.owner-search-results p{padding:12px;margin:0;color:#637768;font-size:14px}@media(max-width:780px){.record-picker{flex-wrap:wrap}.record-picker .owner-search{display:block;flex:1 1 100%}.record-picker .owner-search>input{width:100%;margin-top:7px}.record-picker .owner-search-results{left:0}}

/* My Dog passport and repeat visit rewards */
.passport{background:#fff;border-color:#e1e8da;color:#203b2e}.passport-mark{border-color:#9bb578;color:#4b6949;background:#f8fbe9}.passport .stamp{background:#fff;border:1px dashed #d7e0d0}.passport .stamp.earned{background:#f8fbef;border:1px solid #9eb885;box-shadow:none}.passport .stamp.locked{opacity:1;color:#637364;background:#fff}.passport .stamp.locked .stamp-medal{border-color:#cbd7c6;color:#8ca18b}.passport .stamp-medal{border-color:#8fae78;color:#315b43}.passport .stamp small{color:#586c5d}.passport .stamp.locked small{color:#728372}.passport .stamp-grid{gap:10px}.passport .stamp{min-height:115px}.referral-hero{background:#f8f0dc;color:#26392f}.referral-hero .eyebrow,.referral-hero p,.referral-hero small,.referral-totals span{color:#586e5f}.referral-totals{border-color:#dacda8}.referral-totals strong{color:#26503b}.share-card{background:#f8f0dc;border-color:#e9dbb8}.share-card p,.share-card small{color:#5d695d}.share-card .share-graphic{color:#9e8045}.rewards{background:#eaf1e3}.reward-stamp-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:17px 0 20px}.reward-stamp{display:flex;align-items:center;justify-content:center;gap:5px;min-height:64px;background:#f9fbf5;border:1px dashed #b8c9b1;border-radius:11px;color:#799279}.reward-stamp span{display:flex}.reward-stamp svg{width:22px;height:22px}.reward-stamp strong{font:800 17px Manrope,Arial}.reward-stamp.earned{background:#d9ed7a;border:2px solid #7fa456;color:#234d38}.reward-stamp.milestone{border-style:solid;border-width:2px}.reward-stamp.milestone.earned{background:#274d38;color:#fff}.rewards .progress-label{align-items:baseline;flex-wrap:wrap}.rewards .progress-label span{color:#4e6b53}@media(min-width:1201px){#dogs:has(.owner-story:only-child) .passport .stamp-grid{grid-template-rows:repeat(3,minmax(0,1fr))}}@media(max-width:500px){.passport .stamp-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.passport .stamp{min-height:105px;padding:6px}.passport .stamp strong{font-size:13px}.passport .stamp small{font-size:12px}.passport .stamp-medal{width:39px;height:39px;margin-bottom:5px}.reward-stamp-grid{gap:5px}.reward-stamp{min-height:52px;flex-direction:column;gap:0}.reward-stamp svg{width:18px;height:18px}.reward-stamp strong{font-size:13px}.referral-totals{border-color:#dacda8}}
/* The photo and passport share a row. Sharing follows the passport; practical care and progress return to their own positions. */
.passport-journey{display:grid;gap:17px;align-content:start}
@media(min-width:1201px){
  #dogs>.mydog-grid,#dogs>.mydog-grid>div.passport-journey:first-child:last-child{display:contents;grid-column:auto;grid-row:auto}
  #dogs .passport{grid-column:2;grid-row:3;min-width:0;align-self:stretch}
  #dogs .share-card{grid-column:2;grid-row:4;min-width:0}
  #dogs #visit-stories .owner-next-steps{grid-column:1;grid-row:4}
  #dogs>.dog-switch{grid-column:1/-1;grid-row:5}
  #dogs .rewards{grid-column:1;grid-row:6}
  #dogs .care-card{grid-column:2;grid-row:6;min-width:0}
  #dogs #owner-training{grid-column:1;grid-row:7}
  #dogs .journey-panel{grid-column:1;grid-row:8}
  #dogs:not(:has(.owner-story)) .passport{grid-row:2}
  #dogs:not(:has(.owner-story)) .share-card{grid-row:3}
  #dogs:not(:has(.owner-story))>.dog-switch{grid-row:4}
  #dogs:not(:has(.owner-story)) .rewards,#dogs:not(:has(.owner-story)) .care-card{grid-row:5}
  #dogs:not(:has(.owner-story)) #owner-training{grid-row:6}
  #dogs:not(:has(.owner-story)) .journey-panel{grid-row:7}
}
@media(max-width:500px){.passport .stamp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Keep the passport and its share action together. */
@media(min-width:1201px){
  #dogs>.mydog-grid>.passport-journey:first-child{display:grid;grid-column:2;grid-row:3/span 2;gap:17px;align-self:start;min-width:0}
  #dogs .passport,#dogs .share-card{grid-column:auto;grid-row:auto;min-width:0}
  #dogs:has(.owner-story:only-child)>.mydog-grid>.passport-journey:first-child{grid-row:3;grid-template-rows:minmax(0,1fr) auto;align-self:stretch}
  #dogs:has(.owner-story:only-child) .passport{display:flex;flex-direction:column;height:100%;min-height:0}
  #dogs:has(.owner-story:only-child) .passport .stamp-grid{display:grid;flex:1;grid-template-rows:repeat(2,minmax(0,1fr))}
  #dogs:not(:has(.owner-story))>.mydog-grid>.passport-journey:first-child{grid-row:2}
}
.share-card h2{font-size:clamp(22px,2vw,27px);line-height:1.2;margin-bottom:8px}
.share-card p{margin-bottom:16px}
.share-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}
.share-controls label{display:block;flex:1 1 210px;max-width:310px;margin:0;font-weight:700}
.share-controls select{width:100%;margin:7px 0 0;font-size:16px;font-weight:400;min-height:46px}
.share-controls .button{width:auto;min-height:46px;justify-content:center;flex:none}
.share-card>small{display:block;margin-top:12px;font-size:13px}
.mydog-grid>div:not(.passport-journey){display:block;min-width:0}
@media(min-width:1201px){
  #dogs>.mydog-grid>.journey-panel:last-child{display:block;grid-column:2;grid-row:7;align-self:start}
  #dogs:not(:has(.owner-story))>.mydog-grid>.journey-panel:last-child{grid-row:6}
}
@media(max-width:600px){.share-controls{align-items:stretch}.share-controls label{max-width:none;flex-basis:100%}.share-controls .button{align-self:flex-start}}


/* Choose the dog before reading any of that dog's content. */
#dogs>.dog-switch{padding:4px 2px 20px}
@media(min-width:1201px){
  #dogs>.dog-switch,#dogs:not(:has(.owner-story))>.dog-switch{grid-column:1/-1;grid-row:1}
  #dogs>.dog-hero{grid-row:2}
  #dogs #visit-stories .owner-story-head{grid-row:3}
  #dogs #visit-stories .owner-story-grid{grid-row:4}
  #dogs #visit-stories .owner-next-steps{grid-row:5}
  #dogs>.mydog-grid>.passport-journey:first-child{grid-row:4/span 2}
  #dogs:has(.owner-story:only-child)>.mydog-grid>.passport-journey:first-child{grid-row:4}
  #dogs:not(:has(.owner-story))>.mydog-grid>.passport-journey:first-child{grid-row:3}
  #dogs:not(:has(.owner-story)) .passport,#dogs:not(:has(.owner-story)) .share-card{grid-row:auto}
  #dogs:not(:has(.owner-story)) .rewards,#dogs:not(:has(.owner-story)) .care-card{grid-row:4}
  #dogs:not(:has(.owner-story)) #owner-training,#dogs:not(:has(.owner-story))>.mydog-grid>.journey-panel:last-child{grid-row:5}
}

/* Training and care belong together; rewards and adventures follow below. */
@media(min-width:1201px){
  #dogs #owner-training{grid-column:1;grid-row:6}
  #dogs .care-card{grid-column:2;grid-row:6}
  #dogs .rewards{grid-column:1;grid-row:7}
  #dogs:not(:has(.owner-story)) #owner-training,#dogs:not(:has(.owner-story)) .care-card{grid-row:4}
  #dogs:not(:has(.owner-story)) .rewards,#dogs:not(:has(.owner-story))>.mydog-grid>.journey-panel:last-child{grid-row:5}
}

/* Booking: a light field caption and a larger, plain value are easier to distinguish. */
#booking-form label:has(>.field-label):has(:required)::before{content:none}
#booking-form label>.field-label{display:block;background:#eef6d2;border-radius:7px 7px 0 0;color:#2b503d;font-size:14px;font-weight:800;line-height:1.4;padding:8px 14px}
#booking-form label:has(:required)>.field-label::after{content:"*";color:#3b7047;margin-left:5px}
#booking-form label>.field-label+:is(input,select,textarea){display:block;width:100%;min-height:48px;margin-top:0!important;border-top:0;border-radius:0 0 7px 7px;font-size:17px;font-weight:400;background-color:#fff}
#booking-form .label-title{display:inline-block;background:#eef6d2;border-radius:5px;color:#2b503d;font-size:14px;font-weight:800;padding:7px 14px}
#booking-form .booking-form-col>.fields{margin-top:18px}
#booking-form .booking-form-col>.repeat-box{margin-top:0}
#booking-form #book-owner-wrap>label{display:block;background:#eef6d2;border-radius:7px 7px 0 0;color:#2b503d;font-size:14px;font-weight:800;margin:0;padding:8px 14px}
#booking-form #book-owner-search{margin-top:0;border-top:0;border-radius:0 0 7px 7px;font-size:17px}

/* Fit the dog picker to its selected name while preserving space for the arrow. */
#profile-dog{box-sizing:border-box;max-width:min(72vw,360px);min-width:92px;text-overflow:ellipsis}

/* Booking fields use calm labels; lime marks the field being edited. */
.brand-logo{display:block;width:180px;max-width:100%;height:auto}
#booking-form label>.field-label,#booking-form .label-title,#booking-form #book-owner-wrap>label,.calendar-field>.field-label{background:#edf1e9;color:#244534}
#booking-form label:focus-within>.field-label,#booking-form .calendar-field:focus-within>.field-label,#booking-form #book-owner-wrap:focus-within>label{background:#f2f7d9}
#booking-form :is(input,select,textarea,.calendar-trigger):focus-visible{outline:2px solid #527451;outline-offset:2px;box-shadow:0 0 0 5px #d9ed7a80}
#booking-form .calendar-field{position:relative;min-width:0}
#booking-form .calendar-field>.field-label{display:block;border-radius:7px 7px 0 0;padding:8px 14px;font-size:14px;font-weight:800;line-height:1.4}
#booking-form .calendar-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:51px;background:#fff;border:1px solid #d8e1d7;border-top:0;border-radius:0 0 7px 7px;padding:10px 14px;color:#23302d;text-align:left;font-size:17px;font-weight:400;white-space:normal}
.calendar-trigger-icon{font-size:22px;line-height:1;color:#345948}
.required-mark{color:#3b7047;margin-left:5px}

/* Visit stamps live alongside the owner's referral rewards. */
.owner-visit-rewards{margin-bottom:22px}
.reward-card-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}
.reward-card-heading h2{font:800 clamp(22px,2.4vw,30px)/1.2 Manrope,Arial,sans-serif;letter-spacing:-.04em;margin:0}
.reward-dog-picker{display:flex;align-items:center;gap:10px;margin:0!important;white-space:nowrap}
.reward-dog-picker select{min-width:105px;max-width:230px;padding:9px 36px 9px 12px;border:1px solid #cbd8c6;border-radius:7px;background-color:#fff;color:var(--green)}
@media(max-width:620px){.reward-card-heading{align-items:flex-start;flex-direction:column}.reward-dog-picker{white-space:normal}}
@media(min-width:1201px){
  #dogs>.mydog-grid>.journey-panel{grid-column:1;grid-row:7;align-self:start}
  #dogs:not(:has(.owner-story))>.mydog-grid>.journey-panel{grid-row:5}
}
#today .today-layout:has(.today-detail[hidden]){grid-template-columns:1fr}

/* Keep the related owner cards stacked at an even, predictable gap. */
#dogs .training-journey{display:grid;gap:17px;align-content:start;min-width:0}
#dogs .training-journey>.panel{min-width:0}
@media(min-width:1201px){
  #dogs>.mydog-grid>.training-journey{display:grid;grid-column:1;grid-row:6;gap:17px;align-self:start}
  #dogs:not(:has(.owner-story))>.mydog-grid>.training-journey{grid-row:4}
  #dogs .training-journey>#owner-training,#dogs .training-journey>.journey-panel{display:block;grid-column:auto;grid-row:auto;align-self:start}
}

/* Booking field names are plain lime-green labels, not ornamental tabs. */
#booking-form label>.field-label,#booking-form .calendar-field>.field-label,#booking-form #book-owner-wrap>label,#booking-form .label-title{
  display:block;width:auto;min-height:0;max-width:100%;padding:0;border-radius:0;background:transparent;color:#52710e;font-size:15px;line-height:1.4;font-weight:800
}
#booking-form label:focus-within>.field-label,#booking-form .calendar-field:focus-within>.field-label,#booking-form #book-owner-wrap:focus-within>label{background:transparent;color:#345508}
#booking-form label>.field-label+:is(input,select,textarea),#booking-form #book-owner-search,#booking-form .calendar-trigger{margin-top:8px!important;border-top:1px solid #d8e1d7;border-radius:7px}
#booking-form #book-owner-wrap>label{margin-bottom:0}
#booking-form .label-title{margin-bottom:9px}
#booking-form .calendar-popover{position:absolute;z-index:30;top:100%;left:0;width:min(340px,calc(100vw - 40px));padding:17px;background:#fff;border:1px solid #dbe4d7;border-radius:13px;box-shadow:0 16px 36px #17392e24;margin-top:7px}
#booking-form .calendar-popover[hidden]{display:none}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;color:#183e31}
.calendar-heading strong{font:800 17px Manrope,Arial,sans-serif}
.calendar-month-nav{height:38px;width:38px;display:grid;place-items:center;background:#f0f4ed;border:0;border-radius:8px;color:#183e31;font-size:27px;line-height:1}
.calendar-month-nav:hover,.calendar-day:not(:disabled):hover{background:#edf5d0}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.calendar-weekdays{margin-bottom:5px;color:#708275;font-size:13px;font-weight:800}
.calendar-weekdays span{padding:6px 0}
.calendar-day,.calendar-blank{display:grid;place-items:center;width:100%;aspect-ratio:1;background:transparent;border:0;border-radius:8px;color:#263c31;font-size:15px}
.calendar-day:disabled{color:#b1bdb3;cursor:not-allowed}
.calendar-day.is-today:not(.selected){outline:1px solid #73967a;outline-offset:-2px}
.calendar-day.selected{background:#183e31;color:#fff;font-weight:800}
.calendar-day:focus-visible,.calendar-month-nav:focus-visible,.calendar-foot button:focus-visible{outline:3px solid #b9d56d;outline-offset:2px}
.calendar-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid #e6ebe2;color:#708275;font-size:13px}
.calendar-foot button{background:none;border:0;padding:4px 0;color:#234b38;font-weight:800}
@media(max-width:600px){#booking-form .calendar-popover{width:min(340px,calc(100vw - 65px))}}

/* A small label tab replaces the repeated full-width colour bands. */
#booking-form label>.field-label,#booking-form .calendar-field>.field-label,#booking-form #book-owner-wrap>label{display:table;width:auto;max-width:100%;padding:6px 13px;border-radius:7px 7px 0 0;font-size:16px}
#booking-form label>.field-label+:is(input,select,textarea),#booking-form #book-owner-search,#booking-form .calendar-trigger{border-top:1px solid #d8e1d7;border-radius:0 7px 7px 7px}

/* Make the visit row's purpose explicit, and give the opened plan an exit. */
.today-visit{cursor:pointer;transition:border-color .15s,background-color .15s}
.today-visit:hover,.today-visit:focus-visible{border-color:#86a990;background:#f8fbf4}
.today-visit:focus-visible{outline:3px solid #c9df8a;outline-offset:2px}
.today-visit .visit-arrow{display:inline-flex;gap:13px;align-items:center;justify-content:center;margin-left:auto;padding:9px 12px;border:1px solid #b9d1b7;border-radius:8px;color:#214734;background:#f2f7ef;font-size:14px;font-weight:800;white-space:nowrap}
.today-visit .visit-arrow span{font-size:20px;line-height:1}
.today-visit.selected .visit-arrow{background:#214734;color:#fff;border-color:#214734}
.visit-detail-links{display:flex;flex-wrap:wrap;gap:8px}
.visit-close{color:#214734;border-color:#b9d1b7;background:#f2f7ef}
@media(max-width:600px){.today-visit .visit-arrow{font-size:13px;padding:7px 9px;gap:6px}}

/* Calm, even tabs make the booking form easier to scan. */
#booking-form label>.field-label,#booking-form .calendar-field>.field-label,#booking-form #book-owner-wrap>label{display:flex;align-items:center;width:200px;min-height:37px;max-width:100%;font-size:15px;line-height:1.3;padding:6px 13px;border-radius:7px 7px 0 0}
#booking-form .label-title{display:inline-flex;align-items:center;min-height:37px;width:200px;max-width:100%;font-size:15px;padding:6px 13px}
#slot-wrap{margin-top:27px}

/* Service setup: choose one offering, edit its rules, inspect its diary. */
.service-setup-layout{display:grid;grid-template-columns:minmax(205px,260px) minmax(0,1fr);gap:20px;align-items:start}
.service-setup-menu{position:sticky;top:20px;display:grid;gap:12px;min-width:0}
.setup-menu-group{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.setup-menu-group h3{margin:0 0 8px;color:#5e7868;font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.setup-menu-group button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:0;border-radius:7px;background:transparent;color:#253f32;text-align:left;font-weight:700;font-size:14px;line-height:1.4}
.setup-menu-group button:hover,.setup-menu-group button:focus-visible{background:#edf2e7}
.setup-menu-group button.active{background:#193d30;color:#fff}
.setup-menu-group button.active span:last-child{color:var(--lime)}
.service-setup-editor{display:grid;gap:18px;min-width:0}
.service-setup-header{display:flex;justify-content:space-between;gap:20px;align-items:start}
.service-setup-category{color:#4c7656;font-size:13px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.service-setup-header h2{font:800 clamp(23px,2.4vw,32px)/1.2 Manrope,Arial,sans-serif;letter-spacing:-.04em;margin:7px 0}
.service-setup-header p{color:#65746a;margin:0}
.service-setup-count{flex:none;background:#f0f5e6;padding:7px 10px;border-radius:6px;color:#355743;font-size:13px;font-weight:800}
.service-setup-editor .panel h3{font:800 21px Manrope,Arial,sans-serif;margin:0 0 17px}
.service-setup-editor .form-panel label{margin:0 0 18px}
.service-setup-editor .form-panel .fields{gap:16px}
.service-setup-editor .form-panel input{font-weight:500}
.setup-days{border:0;margin:8px 0 18px;padding:0}
.setup-days legend{font-weight:800;color:#395545;margin-bottom:10px;font-size:15px}
.setup-day-options{display:flex;flex-wrap:wrap;gap:7px}
.setup-day{position:relative;margin:0!important;cursor:pointer}
.setup-day input{position:absolute;opacity:0;width:1px;height:1px}
.setup-day span{display:block;border:1px solid #cbd7c9;background:#fff;padding:8px 11px;border-radius:6px;font-size:14px;min-width:50px;text-align:center}
.setup-day input:checked+span{border-color:#315c39;background:#eaf3d9;color:#214831}
.setup-day input:focus-visible+span{outline:3px solid #d0e887;outline-offset:2px}
#training-settings-form,#kennel-settings-form{margin:0}
#kennel-settings-fields h3{font:800 16px Manrope,Arial,sans-serif;margin:10px 0}
#operator-referral-settings{max-width:760px;margin:20px 0 0}
#operator-referral-settings .form-panel{margin:0}
.service-calendar-panel{min-width:0}
.service-calendar-title{display:flex;justify-content:space-between;align-items:center;gap:12px}
.service-calendar-title span{color:#54715f;font-size:13px;font-weight:700}
.service-calendar-panel>p{color:#607467;margin-bottom:18px}
.service-closure-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.service-closure-form label{font-size:14px;font-weight:800;color:#405a48}
.service-closure-form input{display:block;margin-top:6px;min-height:44px;border:1px solid #d3ded1;border-radius:7px;padding:8px 11px;background:white;color:#1e2927}
.setup-closure-list{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:19px}
.setup-closure-list strong{flex-basis:100%;font-size:14px}
.setup-closure-list>span{display:inline-flex;align-items:center;gap:8px;border:1px solid #e3d2bb;background:#fff8ee;border-radius:6px;padding:6px 9px;font-size:14px}
.setup-closure-list button{border:0;background:transparent;color:#315e42;text-decoration:underline;font-weight:800}
.setup-calendar-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:13px 0 10px}
.setup-calendar-tools button{width:36px;height:36px;border:1px solid #d7e2d3;border-radius:6px;background:white;color:#214831;font-size:20px}
.setup-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.setup-weekday{text-align:center;color:#718273;font-weight:800;font-size:12px;padding:4px}
.setup-calendar-day,.setup-empty{min-height:57px}
.setup-calendar-day{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;background:#f7faf4;border:1px solid #d9e4d4;border-radius:6px;color:#244734;padding:6px;text-align:left}
.setup-calendar-day strong{font-size:14px}.setup-calendar-day small{font-size:11px;color:#5a7a63}
.setup-calendar-day.offday{background:#f6f6f3;border-color:#e6e8e3;color:#98a399}.setup-calendar-day.closed{background:#fff2e6;border-color:#e9caaa;color:#875a34}.setup-calendar-day.closed small{color:#875a34}
.setup-calendar-day.selected{outline:2px solid #3d6747;outline-offset:-2px}
.service-calendar-panel h4{font:800 17px Manrope,Arial,sans-serif;margin:22px 0 8px}
.setup-booking{display:grid;grid-template-columns:minmax(130px,1fr) minmax(90px,.6fr) minmax(100px,.7fr);gap:12px;padding:10px 0;border-top:1px solid #e1e8df;font-size:14px}
.setup-booking small{color:#647669;font-size:14px}
@media(max-width:920px){.service-setup-layout{grid-template-columns:1fr}.service-setup-menu{position:static;display:flex;overflow:auto;align-items:stretch}.setup-menu-group{min-width:220px;flex:1}.service-setup-editor{min-width:0}}
@media(max-width:560px){.service-setup-header{flex-wrap:wrap}.service-setup-editor .form-panel .fields{display:block}.setup-calendar-grid{gap:2px}.setup-calendar-day{min-height:47px;padding:3px}.setup-calendar-day small{font-size:10px}.setup-booking{grid-template-columns:1fr 1fr}.setup-booking small{grid-column:1/-1}}

/* Rewards and referral offer share the first row on desktop. */
@media(min-width:1100px){
  #referrals.active{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:20px;align-items:stretch}
  #referrals>.intro{grid-column:1/-1;margin-bottom:4px}
  #referrals>.owner-visit-rewards{grid-column:1;margin:0}
  #referrals>#referral-content{display:contents}
  #referrals .referral-hero{grid-column:2;margin:0;height:100%}
  #referrals .ops-columns{grid-column:1/-1}
  #referrals:has(#owner-visit-rewards[hidden]) .referral-hero{grid-column:1/-1}
  #referrals>#operator-referral-settings:not([hidden]){grid-column:1/-1}
}
@media(max-width:1099px){#referrals>.owner-visit-rewards{margin-bottom:20px}}

/* Required marks follow their titles in every form. */
main label:has(:required):not(.check-label)::before{content:none}
.required-label-mark{color:#3b7047;font-weight:800;margin-left:5px}

/* A compact rewards dashboard, with the visit milestones still easy to scan. */
#referrals>.intro{margin:5px 0 18px}
#referrals>.intro h1{font-size:clamp(26px,2.6vw,36px)}
#referrals>.intro p{margin-top:6px}
#referrals>.owner-visit-rewards,#referrals .referral-hero{padding:22px 24px;border-radius:12px}
#referrals>.owner-visit-rewards{background:#f6f9f2}
#referrals .reward-card-heading{margin-bottom:12px;align-items:center}
#referrals .reward-card-heading h2{font-size:23px}
#referrals .reward-dog-picker select{padding-top:6px;padding-bottom:6px}
#referrals .reward-count{gap:8px;align-items:baseline}
#referrals .reward-count strong{font-size:37px;line-height:1.1}
#referrals .reward-stamp-grid{margin:14px 0;gap:6px}
#referrals .reward-stamp{flex-direction:row;gap:5px;min-height:40px;border-radius:6px}
#referrals .reward-stamp svg{width:16px;height:16px}
#referrals .reward-stamp strong{font-size:13px}
#referrals .reward-stamp.earned{background:#e4f2ac;border-width:1px}
#referrals .reward-stamp.milestone{border-width:1px}
#referrals .progress-track{height:6px;margin:9px 0 11px}
#referrals>.owner-visit-rewards p{line-height:1.45}
#referrals .referral-hero{display:block;height:auto;background:#fff8e9}
#referrals .referral-hero h2{font-size:clamp(23px,2.3vw,31px);line-height:1.2;margin:0 0 10px}
#referrals .referral-hero p{margin-bottom:0}
#referrals .referral-code{margin:15px 0 8px;gap:12px}
#referrals .referral-code>strong{font-size:22px}
#referrals .referral-code .button{min-height:38px;padding:8px 12px}
#referrals .referral-totals{display:grid;grid-template-columns:auto minmax(90px,1fr) auto minmax(90px,1fr);align-items:center;gap:7px 10px;border:0;border-top:1px solid #e5d9be;padding:13px 0 0;margin:17px 0 0}
#referrals .referral-totals strong{font-size:22px}
#referrals .referral-totals span{max-width:none;line-height:1.3}
#referrals .ops-columns{gap:18px}
#referrals .ops-columns>.panel,#referrals .ops-columns .panel{padding:22px 24px}
#referrals .ops-columns h2{font-size:21px;margin:0 0 14px}
#referrals .wallet-row{padding:11px 0}
#referrals .referral-row{padding:9px 0}
@media(min-width:1100px){#referrals.active{align-items:start;column-gap:18px;row-gap:18px}#referrals .referral-hero{height:auto;align-self:start}}
@media(max-width:620px){#referrals .reward-card-heading{align-items:flex-start}#referrals .referral-totals{grid-template-columns:auto 1fr}#referrals .reward-stamp{min-height:36px;gap:2px}#referrals .reward-stamp svg{width:13px;height:13px}}

/* Booking fields follow the care record's simple label-above-control rhythm. */
#booking-form label>.field-label,
#booking-form .calendar-field>.field-label,
#booking-form #book-owner-wrap>label,
#booking-form .label-title{
  display:block;width:auto;min-height:0;max-width:100%;
  padding:0;border-radius:0;background:transparent;
  color:#6b7971;font-size:16px;line-height:1.4;font-weight:800;
}
#booking-form label:focus-within>.field-label,
#booking-form .calendar-field:focus-within>.field-label,
#booking-form #book-owner-wrap:focus-within>label{color:#456700;background:transparent}
#booking-form label>.field-label+:is(input,select,textarea),
#booking-form #book-owner-search,
#booking-form .calendar-trigger{margin-top:8px!important;border:1px solid #d8e1d7;border-radius:7px}
#booking-form .label-title{margin-bottom:8px}
#booking-form .calendar-field>.field-label .required-mark,
#booking-form label:has(:required)>.field-label::after{color:#568000}

/* Keep field titles quieter than the values across owner and operator forms. */
main label,
main .form-panel label,
main .filters label,
main .owner-search label,
main .today-controls label,
main .share-controls label,
main .service-closure-form label,
main .label-title{color:#6b7971}

/* Mobile navigation opens as a clear, compact list instead of scrolling sideways. */
.mobile-menu{display:contents}
.mobile-nav-toggle{display:none}
@media(max-width:780px){
  .rail{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 12px;padding:14px 18px;overflow:visible}
  .rail .brand{padding:0;min-width:0}
  .rail .brand-logo{width:132px}
  .rail .brand small{font-size:11px;margin-top:3px}
  .mobile-nav-toggle{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;max-width:calc(100% - 145px);min-height:44px;padding:8px 12px;border:1px solid #72947b;border-radius:8px;background:#234b3b;color:#fff;font-size:14px;font-weight:800;text-align:left}
  .mobile-nav-toggle:focus-visible,.rail .nav:focus-visible,.persona-switch button:focus-visible{outline:3px solid var(--lime);outline-offset:2px}
  .mobile-nav-chevron{width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .15s;flex:none}
  .rail.mobile-open .mobile-nav-chevron{transform:rotate(225deg) translateY(-2px)}
  .mobile-menu{display:none;flex:0 0 100%;width:100%;padding-top:13px}
  .rail.mobile-open .mobile-menu{display:block}
  .rail .persona-switch{display:grid;width:100%;margin:0 0 11px}
  .rail .persona-switch button{min-height:44px}
  .rail nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:visible}
  .rail .nav{display:flex;align-items:center;gap:8px;min-width:0;min-height:48px;padding:9px 10px;border:1px solid #406653;border-radius:8px;background:#224638;color:#f0f6ee;font-size:14px;line-height:1.25;white-space:normal}
  .rail .nav.active{background:var(--lime);border-color:var(--lime);color:#17392e}
  .rail .nav:hover:not(.active){background:#315b47;color:#fff}
  .rail .nav .nav-icon{display:grid;width:20px;height:20px;flex:none}
  .rail .nav .nav-icon svg{width:18px;height:18px}
}
