/* Header actions stay at the right all year. No time-grid or block geometry is altered. */
.calendar-chrome242 .team-title{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:20px}
.calendar-chrome242 .team-title>div:first-child{min-width:0}
.calendar-chrome242 .team-title>.actions{justify-self:end;justify-content:flex-end;margin-left:auto}
html[data-season273="halloween"]{--season-art274:url('seasonal-halloween274.svg');--season-block274:url('seasonal-halloween-block274.svg');--season-greeting274:'A little Halloween magic';--season-border274:#d2ac85;--season-panel274:#fffaf4;--season-dark274:#75452f;--season-grid274:#f8eee3}
html[data-season273="christmas"]{--season-art274:url('seasonal-christmas274.svg');--season-block274:url('seasonal-christmas-block274.svg');--season-greeting274:'Make room for a little festive sparkle';--season-border274:#b0c6b4;--season-panel274:#f9fcf7;--season-dark274:#315b48;--season-grid274:#edf4eb}
html[data-season273="newyear"]{--season-art274:url('seasonal-newyear274.svg');--season-block274:url('seasonal-newyear-block274.svg');--season-greeting274:'A fresh start, a little extra sparkle';--season-border274:#d8c28b;--season-panel274:#fdfbf5;--season-dark274:#736035;--season-grid274:#f6f0e0}
/* Every customer page: a garland, frame, card accents and restrained edge decoration. */
html[data-season273][data-seasonal-app="customer"] body:not(.embedded-booking)::before,html[data-season273][data-seasonal-app="customer"] body:not(.embedded-booking)::after{content:'';position:fixed;top:130px;bottom:95px;width:48px;z-index:1;pointer-events:none;background-image:var(--season-art274);background-size:180px 50px;background-repeat:repeat-y;opacity:.24}
html[data-season273][data-seasonal-app="customer"] body::before{left:0;background-position:left top}
html[data-season273][data-seasonal-app="customer"] body::after{right:0;background-position:right 35px}
html[data-season273][data-seasonal-app="customer"] .seasonal-greeting273{position:relative;overflow:hidden;min-height:116px;padding-top:32px;padding-bottom:18px;background-image:var(--season-art274),linear-gradient(110deg,var(--season-soft273),#fffdf9 50%,var(--season-soft273));background-size:360px 100px,auto;background-repeat:repeat-x,no-repeat;background-position:center -35px,center}
html[data-season273][data-seasonal-app="customer"] .seasonal-greeting273 strong{font-size:29px;text-shadow:0 1px white}
html[data-season273][data-seasonal-app="customer"] .seasonal-art273{width:57px;height:57px;animation:seasonal-sway273 5s ease-in-out 4}
html[data-season273][data-seasonal-app="customer"] .seasonal-art-end273{width:44px;height:44px;animation-delay:.7s}
html[data-season273][data-seasonal-app="customer"] .nw-hero-copy{border-left:3px solid var(--season-line273);padding-left:22px}
html[data-season273][data-seasonal-app="customer"] :is(.top,.bw-intro,.pageheading){border-bottom-color:var(--season-border274)}
html[data-season273][data-seasonal-app="customer"] :is(.bw-panel,.bw-summary,.auth-card,.ac-card126,.found-booking,.cho-price-group){border-color:var(--season-border274)!important;box-shadow:0 3px 16px #503a3610!important}
html[data-season273][data-seasonal-app="customer"] :is(.bw-summary,.auth-card,.ac-card126){background-image:linear-gradient(145deg,var(--season-panel274),#fff 150px)!important}
html[data-season273][data-seasonal-app="customer"] :is(.bw-summary,.auth-card,.ac-card126)>:is(h2,h3){border-bottom:1px solid var(--season-border274);padding-bottom:10px;color:var(--season-dark274)}
html[data-season273][data-seasonal-app="customer"] .cho-customer-footer{border-top:3px solid var(--season-line273)}
/* Manager calendar: decoration gets the left of the title row; actions retain the right. */
html[data-season273][data-seasonal-app="manager"] .calendar-chrome242{background:linear-gradient(110deg,var(--season-panel274),#fff 80%);border-color:var(--season-border274)}
html[data-season273][data-seasonal-app="manager"] .calendar-chrome242 .team-title>div:first-child{position:relative;min-height:91px;background-image:var(--season-art274);background-repeat:no-repeat;background-position:right center;background-size:250px 70px;padding-right:170px;box-sizing:border-box}
html[data-season273][data-seasonal-app="manager"] .calendar-chrome242 .team-title>div:first-child::after{content:var(--season-greeting274);display:block;font:12px/1.5 Georgia,serif;color:var(--season-dark274);margin-top:8px}
html[data-season273][data-seasonal-app="manager"] .calendar-chrome242 .team-title h1{color:var(--season-dark274)}
html[data-season273][data-seasonal-app="manager"] .calendar-toolbar242{border-top-color:var(--season-border274)}
html[data-season273][data-seasonal-app="manager"] :is(.roster-column-head,.horizontal-staff){background-image:linear-gradient(120deg,var(--season-panel274),#fff)!important;border-bottom-color:var(--season-border274)!important}
html[data-season273][data-seasonal-app="manager"] :is(.roster-scroll,.roster-calendar){border-color:var(--season-border274)}
/* Transparent print over the original technician fill. Status stripe, badges and text stay intact. */
html[data-season273][data-seasonal-app="manager"] :is(.roster-block,.period-booking){background-image:var(--season-block274)!important;background-repeat:no-repeat!important;background-size:130px 36px!important;background-position:right bottom!important;border-top:1px solid var(--season-border274)}
html[data-season273][data-seasonal-app="manager"] .calendar-next242{border-color:var(--season-border274);background:var(--season-panel274)}
/* Booking details and every checkout type inherit the season without moving their live buttons. */
html[data-season273][data-seasonal-app="manager"] .modalback .modal{border-top:4px solid var(--season-border274);background-image:linear-gradient(145deg,var(--season-panel274),#fff 180px)}
html[data-season273][data-seasonal-app="manager"] .modalback .modal>h2{color:var(--season-dark274);border-bottom:1px solid var(--season-border274);padding-bottom:12px}
html[data-season273][data-seasonal-app="manager"] .visit-heading224{padding:12px;border:1px solid var(--season-border274);border-radius:11px;background:var(--season-panel274);gap:10px;flex-wrap:wrap}
html[data-season273][data-seasonal-app="manager"] .visit-detail224>section{border-bottom-color:var(--season-border274)}
html[data-season273][data-seasonal-app="manager"] .visit-label224{color:var(--season-dark274)}
html[data-season273][data-seasonal-app="manager"] :is(.visit-meta224>div,.checkout-totals254,.checkout-payment257){background:var(--season-panel274);border-color:var(--season-border274)}
html[data-season273][data-seasonal-app="manager"] .visit-number224{background:var(--season-soft273);border-color:var(--season-border274);color:var(--season-dark274)}
html[data-season273][data-seasonal-app="manager"] .sale-editor-grid>aside{border-color:var(--season-border274)}
html[data-season273][data-seasonal-app="manager"] :is(.sale-editor-modal,.recorded-visit-modal) .modal::before{content:'';display:block;width:100%;height:50px;background-image:var(--season-art274);background-position:center -9px;background-repeat:repeat-x;background-size:270px 75px;pointer-events:none;margin-bottom:8px}
html[data-season273][data-seasonal-app="manager"] .calendar-detail-content.visit-detail224::before{content:'';display:block;height:42px;background:var(--season-art274) center -10px/260px 72px repeat-x;pointer-events:none;margin-bottom:8px}
@media(min-width:1000px){html[data-season273][data-seasonal-app="manager"] .calendar-chrome242 .team-title>.actions{max-width:480px}}
@media(max-width:1000px){html[data-season273][data-seasonal-app="manager"] .calendar-chrome242 .team-title>div:first-child{padding-right:70px;background-size:160px 45px;background-position:right top;min-height:85px}}
@media(max-width:700px){.calendar-chrome242 .team-title{grid-template-columns:minmax(0,1fr);row-gap:8px}.calendar-chrome242 .team-title>.actions{width:100%;justify-self:end}html[data-season273][data-seasonal-app="manager"] .calendar-chrome242 .team-title>div:first-child{background-size:230px 64px;padding-right:125px;min-height:80px}html[data-season273][data-seasonal-app="customer"] body:not(.embedded-booking)::before,html[data-season273][data-seasonal-app="customer"] body:not(.embedded-booking)::after{width:15px;opacity:.14}html[data-season273][data-seasonal-app="customer"] .seasonal-greeting273{min-height:106px;padding:32px 14px 14px;gap:10px}html[data-season273][data-seasonal-app="customer"] .seasonal-greeting273 strong{font-size:23px}html[data-season273][data-seasonal-app="customer"] .seasonal-art273{width:40px;height:40px}html[data-season273][data-seasonal-app="customer"] .seasonal-art-end273{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){html[data-season273] .seasonal-art273{animation:none!important}}
@media print{body::before,body::after,.modal::before,.calendar-detail-content::before{display:none!important}html[data-season273] :is(.roster-block,.period-booking,.team-title>div:first-child){background-image:none!important}}

/* Short, gentle introductions only; no continuously running particle engine. */
html[data-season273][data-seasonal-app="customer"] .seasonal-greeting273::before{content:'';position:absolute;top:3px;left:0;right:0;height:7px;background:radial-gradient(circle,var(--season-accent273) 0 2px,transparent 3px) 0 0/34px 7px repeat-x;pointer-events:none;opacity:.55;animation:seasonal-lights274 4s ease-in-out 4}
html[data-season273][data-seasonal-app="manager"] .calendar-chrome242 .team-title>div:first-child::after{animation:seasonal-lights274 6s ease-in-out 3}
html[data-season273][data-seasonal-app="manager"] :is(.sale-editor-modal,.recorded-visit-modal) .modal::before{animation:seasonal-lights274 6s ease-in-out 2}
@keyframes seasonal-lights274{0%,100%{opacity:1}50%{opacity:.65}}
@media(prefers-reduced-motion:reduce){html[data-season273] .seasonal-greeting273::before,html[data-season273] .team-title>div:first-child::after,html[data-season273] .modal::before{animation:none!important}}
