:root{font-family:Segoe UI,Arial,sans-serif;color:#243630;background:#f3f4ef;font-synthesis:none;--green:#173a33;--leaf:#2d6a59;--mint:#dfeee7;--cream:#f7f3ea;--sand:#f0dfc6;--rose:#f3ded9;--line:#dfe4de;--muted:#66766f;--shadow:0 14px 38px rgba(24,54,47,.08)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f3f4ef}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Playfair Display,Georgia,serif;color:#173a33}h1{font-size:clamp(30px,4vw,46px);margin-bottom:5px}h2{font-size:27px;margin-bottom:5px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:700;color:#68847a;margin-bottom:7px}.primary,.secondary,.danger,.button-link{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:11px 16px;font-weight:700;text-decoration:none}.primary{border:1px solid var(--green);background:var(--green);color:#fff}.primary:hover{background:#245448}.secondary{border:1px solid #a9beb6;background:#fff;color:var(--green)}.danger{border:1px solid #c66859;background:#fff4f2;color:#9f382a}.text-button,.danger-text{border:0;background:transparent;font-weight:700;text-decoration:underline}.text-button{color:var(--leaf)}.danger-text{color:#a33e32}.notice{border-radius:11px;padding:12px 15px;font-weight:600}.notice.error{background:#fff0ed;border:1px solid #edc7c0;color:#923729}.notice.success{background:#e6f3eb;border:1px solid #b9dbc7;color:#185e45}.muted{color:var(--muted)}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(350px,1.1fr) minmax(390px,.9fr);background:linear-gradient(130deg,#173a33 0 52%,#f2eee5 52%)}.login-brand{padding:clamp(50px,9vw,130px);display:flex;flex-direction:column;justify-content:center;color:#d7e6df}.login-brand .eyebrow{color:#f0b37f}.login-brand h1{max-width:650px;color:#fff;font-size:clamp(48px,6vw,80px);line-height:1.04}.login-brand>p:not(.eyebrow){max-width:590px;font-size:18px;line-height:1.7}.login-proof{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.login-proof span{border:1px solid rgba(255,255,255,.25);border-radius:99px;padding:8px 12px;font-size:12px}.login-card{align-self:center;justify-self:center;width:min(440px,calc(100% - 40px));padding:42px;background:#fff;border-radius:22px;box-shadow:0 30px 80px #142e282e}.login-card .mark{display:grid;place-items:center;width:51px;height:51px;margin-bottom:24px;border-radius:14px;background:var(--green);color:#f4b482;font-family:Georgia,serif;font-weight:700}.login-card h2{font-size:36px;margin-bottom:7px}.login-card>p:not(.eyebrow){color:var(--muted);margin-bottom:26px}.login-card label,.block-form label,.reschedule-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;font-size:12px;font-weight:700;color:#52635d}.login-card input,.block-form input,.block-form select,.reschedule-form input{width:100%;border:1px solid #cfd8d3;border-radius:9px;background:#fbfcfa;padding:12px;color:#243630}.login-card .primary{width:100%;margin-top:4px}.login-card>small{display:block;text-align:center;margin-top:20px;color:#7a8984;line-height:1.5}.admin-shell{min-height:100vh;display:grid;grid-template-columns:245px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--green);color:#fff;display:flex;flex-direction:column;padding:25px 18px}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 27px;border-bottom:1px solid rgba(255,255,255,.13)}.brand>span{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:#f2b27c;color:var(--green);font:700 16px Georgia}.brand>div{display:flex;flex-direction:column}.brand strong{font-family:Georgia,serif;font-size:17px}.brand small{color:#a9c3ba;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.sidebar nav{display:grid;gap:6px;margin-top:28px}.sidebar nav button{display:flex;align-items:center;gap:12px;border:0;border-radius:10px;background:transparent;color:#bed1ca;padding:10px 12px;text-align:left;font-weight:600}.sidebar nav button i{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#ffffff14;font-style:normal}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff1c;color:#fff}.sidebar nav button.active i{background:#f2b27c;color:var(--green)}.admin-user{margin-top:auto;display:grid;grid-template-columns:37px 1fr;align-items:center;gap:10px;padding-top:18px;border-top:1px solid rgba(255,255,255,.13)}.admin-user>span{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#dbe9e3;color:var(--green);font-weight:700}.admin-user>div{display:flex;flex-direction:column;min-width:0}.admin-user strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}.admin-user small{text-transform:capitalize;color:#abc1b9;font-size:10px}.admin-user button{grid-column:1/-1;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:transparent;color:#c8d8d2;padding:8px}.workspace{min-width:0;padding:30px clamp(22px,4vw,55px) 65px}.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:27px}.topbar h1{margin-bottom:0}.range{display:flex;align-items:flex-end;gap:9px;padding:9px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 5px 18px #18362f0a}.range label,.date-control{display:flex;flex-direction:column;gap:3px;color:#71817b;text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:700}.range input,.date-control input{border:0;background:transparent;color:#263a34;padding:3px;font-size:12px}.range>span{padding-bottom:5px;color:#87938f;font-size:11px}.range button{width:34px;height:34px;border:0;border-radius:9px;background:var(--mint);color:var(--green);font-size:19px}.progress-line{height:3px;margin:-12px 0 9px;overflow:hidden;border-radius:99px;background:#dde6e1}.progress-line:after{content:"";display:block;width:35%;height:100%;background:#3b7d68;animation:load 1s infinite alternate ease-in-out}@keyframes load{to{transform:translate(185%)}}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.metric{min-height:145px;padding:19px;border-radius:15px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px #18362f0a;display:flex;flex-direction:column}.metric>span{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#6d7d77;font-weight:700}.metric strong{font:700 38px Georgia,serif;color:var(--green);margin:auto 0 3px}.metric small{color:#71817b}.metric.mint{background:#e7f2ec}.metric.sand{background:#f5ead9}.metric.rose{background:#f5e7e3}.panel{margin-bottom:18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.panel>header{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:21px 24px;border-bottom:1px solid #e8ebe8}.panel>header h2{margin-bottom:4px}.panel>header p:last-child{margin:0;color:var(--muted);font-size:13px}.legend{font-size:11px;color:#64756f}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#387964;margin-right:6px}.bar-chart{height:250px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(38px,1fr);align-items:end;gap:9px;padding:35px 25px 20px;overflow-x:auto}.bar-column{height:100%;min-width:38px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bar-column>span{font-size:10px;font-weight:700;color:#53665f}.bar-column>div{width:min(30px,70%);min-height:2px;border-radius:6px 6px 2px 2px;background:linear-gradient(#4f907b,#235d4d);transition:height .3s}.bar-column small{display:flex;flex-direction:column;text-align:center;color:#75847f;font-size:9px;text-transform:uppercase}.bar-column small b{color:#2d423b;font-size:11px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:780px}th{text-align:left;padding:10px 20px;background:#f5f7f4;color:#71807b;text-transform:uppercase;letter-spacing:.07em;font-size:9px}td{padding:14px 20px;border-top:1px solid #e8ece9;font-size:12px}tbody tr{cursor:pointer}tbody tr:hover{background:#f8faf8}td strong,td small{display:block}td small{margin-top:3px;color:#75847f}.status{display:inline-flex;border-radius:99px;padding:5px 8px;background:#eef1ef;color:#53635e;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.status-confirmed,.status-delivered,.status-appointment{background:#e1f0e7;color:#176044}.status-cancelled,.status-failed,.status-failed-pending{background:#f8e1dc;color:#99382b}.status-pending,.status-unpaid{background:#fff0d7;color:#80580e}.status-day_school{background:#e3eeef;color:#285f65}.status-boarding{background:#eee4f4;color:#67437c}.empty{display:flex;min-height:130px;flex-direction:column;align-items:center;justify-content:center;color:#7a8984}.empty strong{color:#43564f;margin-bottom:4px}.booking-list>header{align-items:flex-start}.filters{display:flex;gap:13px;padding:15px 24px;background:#fafbf9;border-bottom:1px solid #e8ece9}.filters label{display:flex;flex-direction:column;gap:5px;color:#697973;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.filters label:first-child{flex:1}.filters input,.filters select{border:1px solid #d1dad5;border-radius:8px;background:#fff;padding:10px;min-width:150px;color:#263a34}.capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:13px;padding:19px}.capacity-card{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:17px;border:1px solid #e0e6e2;border-radius:13px;background:#fbfcfa}.capacity-card>div:first-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.capacity-card label{display:flex;flex-direction:column;gap:4px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#66766f;font-weight:700}.capacity-card input{min-width:0;width:100%;border:1px solid #d2dbd6;border-radius:7px;background:#fff;padding:9px;color:#263a34}.capacity-card>.secondary{grid-column:1/-1}.override{grid-column:1/-1;display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:8px;padding-top:11px;border-top:1px solid #e0e6e2}.override button:not(.text-button){border:0;border-radius:8px;background:var(--mint);color:var(--green);padding:9px;font-size:11px;font-weight:700}.split-panel{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(340px,1.1fr);padding:24px;gap:28px}.split-panel h2{margin-bottom:22px}.block-form{padding:17px;background:#f6f8f5;border-radius:12px}.block-form .form-row,.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.block-form .primary{width:100%}.block-list h3{font-family:Georgia,serif;color:var(--green)}.block-list article{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid #e4e9e6}.block-list article>div{display:flex;flex-direction:column;gap:3px}.block-list article span,.block-list article small{color:#6f7e79;font-size:11px}.block-list .empty{background:#f8faf8;border-radius:12px}.timeline{padding:9px 24px 25px}.timeline article{display:grid;grid-template-columns:15px 1fr auto;gap:13px;padding:15px 0;border-bottom:1px solid #e7ebe8}.timeline i{width:9px;height:9px;margin-top:4px;border-radius:50%;background:#4a8974;box-shadow:0 0 0 5px #e5f0eb}.timeline article>div{display:flex;flex-direction:column;gap:3px}.timeline span,.timeline time{color:#74837e;font-size:11px}.timeline article>div:last-child{text-align:right}.drawer-backdrop{position:fixed;z-index:50;inset:0;background:#0d201c75;display:flex;justify-content:flex-end;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer{height:100%;width:min(590px,100%);overflow-y:auto;background:#fbfcfa;box-shadow:-25px 0 60px #0d201c33;padding:26px}.drawer>header{display:flex;justify-content:space-between;gap:18px;padding-bottom:20px;border-bottom:1px solid #dde4df}.drawer>header h2{font-size:31px}.close{border:0;background:#e9eeeb;border-radius:50%;width:39px;height:39px;color:#315047;font-size:26px}.status-row{display:flex;gap:7px}.drawer>section{padding:19px 0;border-bottom:1px solid #e0e6e2}.drawer section h3,.drawer .reschedule-form h3{font:700 18px Georgia,serif;color:var(--green)}.detail-summary{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-summary>div{display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:10px;background:#edf3ef}.detail-summary span{font-size:9px;text-transform:uppercase;color:#687973}.detail-summary small{color:#65756f;overflow-wrap:anywhere}.occurrences{display:grid;gap:7px}.occurrences>div{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:center;padding:10px;border-radius:8px;background:#f1f4f1;font-size:12px}.dog{display:flex;flex-direction:column;gap:3px;padding:10px 0;border-bottom:1px solid #e4e8e5}.dog span,.dog small{color:#66766f;font-size:11px}.sync-line{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;padding:8px 0}.sync-line small{grid-column:2;color:#7a8783;overflow-wrap:anywhere}.drawer section>.secondary{margin-top:11px}.reschedule-form{margin:19px 0;padding:18px;border-radius:12px;background:#eef3ef}.reschedule-form>div:last-child{display:flex;gap:8px}.drawer>footer{position:sticky;bottom:-26px;display:flex;gap:10px;padding:18px 0 26px;background:linear-gradient(transparent,#fbfcfa 18%)}.loading-screen{min-height:100vh;display:grid;place-items:center;background:var(--green);color:#d9e7e1;font-weight:700}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.capacity-grid,.split-panel{grid-template-columns:1fr}}@media(max-width:760px){.login-shell{grid-template-columns:1fr;background:#f2eee5}.login-brand{display:none}.login-card{padding:30px}.admin-shell{display:block}.sidebar{position:sticky;z-index:20;height:auto;padding:12px;flex-direction:row;align-items:center}.brand{padding:0;border:0}.brand>div{display:none}.sidebar nav{display:flex;margin:0 auto;gap:2px}.sidebar nav button{padding:7px;font-size:0}.sidebar nav button i{font-size:12px}.admin-user{margin:0;padding:0;border:0;display:flex}.admin-user>div,.admin-user>button{display:none}.workspace{padding:24px 13px 50px}.topbar{align-items:flex-start;flex-direction:column}.topbar h1{font-size:34px}.range{width:100%;justify-content:space-between}.metrics{grid-template-columns:1fr 1fr;gap:8px}.metric{min-height:125px;padding:14px}.metric strong{font-size:31px}.panel>header{align-items:flex-start;padding:18px;flex-direction:column}.bar-chart{padding-left:15px;padding-right:15px}.filters{flex-direction:column;padding:14px 18px}.capacity-grid{padding:12px}.capacity-card{grid-template-columns:1fr 1fr}.capacity-card label:last-of-type{grid-column:1/-1}.override{grid-template-columns:1fr 1fr}.override .text-button{grid-column:1/-1}.split-panel{padding:18px}.detail-summary{grid-template-columns:1fr}.drawer{padding:20px}.block-form .form-row,.form-row{grid-template-columns:1fr}.occurrences>div{grid-template-columns:1fr auto}.occurrences>div span{grid-row:2}.timeline article{grid-template-columns:14px 1fr}.timeline article>div:last-child{grid-column:2;text-align:left}.button-link{width:100%}}.restriction-detail{padding:16px!important;border:1px solid #e8c6a7!important;border-radius:11px;background:#fff2e5}.restriction-detail p{margin-bottom:7px;color:#754719}.restriction-detail small{color:#856143}.client-admin-bookings{display:grid;gap:8px}.client-admin-bookings>button{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;border:1px solid #dce4df;border-radius:10px;background:#fff;padding:12px;text-align:left;color:var(--green)}.client-admin-bookings>button:hover{background:#f1f6f3}.client-admin-bookings>button>span{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.client-admin-bookings>button>span:last-child{align-items:flex-end}.client-admin-bookings small{color:#71817b}.admin-addon-list{display:grid;gap:8px}.admin-addon-list article{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:11px;border-radius:9px;background:#eef4f0}.admin-addon-list article>div{display:flex;flex-direction:column;gap:3px}.admin-addon-list span,.admin-addon-list small{color:#64776f;font-size:11px}.admin-addon-list small{max-width:52%;text-align:right;line-height:1.45}.status-subscription{background:#dcefe7;color:#185b46}.admin-subscription{display:grid;gap:13px}.admin-subscription-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:13px;border-radius:10px;background:#e8f2ed}.admin-subscription-summary>*{font-size:12px}.admin-subscription details{padding:12px;border:1px solid #d8e2dd;border-radius:10px;background:#fff}.admin-subscription summary{cursor:pointer;color:var(--green);font-weight:800}.admin-subscription-dates{display:grid;gap:6px;margin-top:12px}.admin-subscription-dates>div{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px;padding:8px;border-radius:8px;background:#f1f5f2}.admin-subscription-dates button{padding:6px 8px}.admin-subscription-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:11px 0}.admin-subscription-modes button{border:1px solid #c7d5cf;border-radius:8px;background:#fff;padding:8px;color:#486259;font-weight:700}.admin-subscription-modes button.active{border-color:#2d6a59;background:#dfeee7;color:#174f3f}.admin-addon-dates{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0;padding:9px;border-radius:8px;background:#f1f5f2}.admin-addon-dates>strong{width:100%;font-size:12px}.admin-addon-dates label{display:flex;align-items:center;gap:5px;padding:6px;border-radius:6px;background:#fff;font-size:10px}.admin-addon-dates input{accent-color:var(--green)}.subscription-alerts>div{display:grid}.subscription-alerts>div>button{display:flex;justify-content:space-between;gap:18px;width:100%;border:0;border-top:1px solid #e9d4ce;background:#fff8f6;padding:15px 24px;text-align:left;color:#4b302b}.subscription-alerts>div>button:hover{background:#fff0ec}.subscription-alerts button span{display:flex;flex-direction:column;gap:3px}.subscription-alerts button span:last-child{text-align:right}.subscription-alerts small{color:#83665f}.admin-subscription-notices{padding:11px;border-left:4px solid #cf8742;border-radius:8px;background:#fff5e6;color:#67461e}.admin-subscription-notices p{margin:6px 0 0;font-size:11px;line-height:1.4}@media(max-width:760px){.admin-subscription-summary,.admin-subscription-modes{grid-template-columns:1fr}.admin-subscription-dates>div{grid-template-columns:1fr auto}.admin-subscription-dates>div .status{grid-row:2}.admin-subscription-dates>div button{grid-row:1/3;grid-column:2}}
