/* Customer scheduling calendar. Orange marks days with customers; deeper orange marks busy days. Every day also carries a text count. */
:root{--sched-booked-bg:#fde6cf;--sched-booked-line:#e8853a;--sched-booked-ink:#8a4512;--sched-busy-bg:#f8c08e;--sched-busy-line:#c9621c;--sched-busy-ink:#5c2a06;--sched-open-bg:#fff}
[data-theme=dark]{--sched-booked-bg:#5c3613;--sched-booked-line:#ec8f43;--sched-booked-ink:#ffd2a6;--sched-busy-bg:#8a4712;--sched-busy-line:#f39b52;--sched-busy-ink:#ffe0c2;--sched-open-bg:#19261f}
.sched-stats{grid-template-columns:repeat(4,1fr)}
.sched-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start;margin-top:22px}
.sched-calendar,.sched-panel{background:var(--sched-open-bg);border:1px solid var(--line);border-radius:12px;padding:18px}
.sched-panel{position:sticky;top:18px}
.sched-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sched-toolbar h2{font-size:19px;min-width:170px;text-align:center;margin:0}.sched-toolbar .secondary{padding:7px 12px}
.sched-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:11px;color:var(--muted);margin-bottom:14px}.sched-legend span{display:inline-flex;align-items:center;gap:6px}
.sched-key{width:14px;height:14px;border-radius:4px;border:1px solid var(--line);display:inline-block}.sched-key.open{background:var(--sched-open-bg)}.sched-key.booked{background:var(--sched-booked-bg);border-color:var(--sched-booked-line)}.sched-key.busy{background:var(--sched-busy-bg);border-color:var(--sched-busy-line)}.sched-key.today{border:2px solid var(--green)}
.sched-weekdays,.sched-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.sched-weekdays span{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:0 6px 4px}
.sched-day{min-height:96px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--sched-open-bg);color:var(--ink);text-align:left;cursor:pointer;font:inherit;overflow:hidden}
.sched-day:hover{border-color:var(--green)}.sched-day:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.sched-date{font-size:13px;font-weight:700}
.sched-booked{background:var(--sched-booked-bg);border-color:var(--sched-booked-line);color:var(--sched-booked-ink)}
.sched-busy{background:var(--sched-busy-bg);border-color:var(--sched-busy-line);color:var(--sched-busy-ink)}
.sched-count{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.sched-line{font-size:10px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sched-line.more{font-weight:600}
.sched-day.outside{opacity:.45}.sched-day.past:not(.outside){opacity:.7}
.sched-day.today{box-shadow:inset 0 0 0 2px var(--green)}.sched-day.today .sched-date:after{content:' · Today';font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.sched-day.selected{box-shadow:0 0 0 3px var(--green);opacity:1}
.sched-panel-head h3{margin:4px 0 14px;font-size:17px}
.sched-strip{position:relative;height:18px;border-radius:5px;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px calc(100%/4));border:1px solid var(--line);overflow:hidden}
.sched-block{position:absolute;top:2px;bottom:2px;border-radius:3px;background:var(--sched-booked-line);opacity:.85}
.sched-strip-hours{position:relative;height:16px;margin:4px 0 16px;font-size:9px;color:var(--muted)}.sched-strip-hours span{position:absolute;transform:translateX(-50%);white-space:nowrap}.sched-strip-hours span:first-child{transform:none}.sched-strip-hours span:last-child{transform:translateX(-100%)}
.sched-appt{border-left:4px solid var(--sched-booked-line);background:var(--sched-booked-bg);color:var(--sched-booked-ink);border-radius:8px;padding:12px 14px;margin-bottom:10px}
.sched-appt strong{display:block;font-size:14px;color:var(--ink)}.sched-appt-time{font-size:11px;font-weight:700;margin-bottom:4px}
.sched-vehicle{display:block;font-size:12px;margin-top:2px}.sched-appt p{font-size:12px;margin:8px 0 0;color:var(--ink);line-height:1.5}.sched-appt small{display:block;margin-top:6px;font-size:11px}
.sched-appt-actions{display:flex;gap:14px;margin-top:8px}
.sched-empty{font-size:12px;color:var(--muted);margin:6px 0 16px}
.sched-add{width:100%;margin-top:6px}
.sched-find{position:relative}.sched-find-list{position:absolute;left:0;right:0;top:100%;z-index:5;margin-top:4px;background:var(--sched-open-bg);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px #0002;max-height:260px;overflow:auto}
.sched-find-list button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);font:inherit;cursor:pointer}.sched-find-list button:hover,.sched-find-list button:focus{background:var(--sched-booked-bg)}
.sched-find-list small{display:block;font-size:11px;color:var(--muted);margin-top:2px}.sched-find-list p{margin:0;padding:10px 12px;font-size:12px;color:var(--muted)}
.sched-vehicles{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px}.sched-vehicles .secondary{padding:6px 10px;font-size:12px}.sched-vehicles .active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
#schedule-form textarea{width:100%;font:inherit;resize:vertical}
@media(max-width:1100px){.sched-layout{grid-template-columns:1fr}.sched-panel{position:static}}
@media(max-width:700px){.sched-stats{grid-template-columns:repeat(2,1fr)}.sched-day{min-height:58px;padding:5px}.sched-line{display:none}.sched-count{font-size:9px}.sched-weekdays,.sched-grid{gap:3px}.sched-toolbar h2{min-width:0;font-size:16px}.sched-day.today .sched-date:after{content:''}}
/* Shop hours: closed days are gray and hatched, with a "Closed" label. */
:root{--sched-closed-bg:#eceeea;--sched-closed-ink:#7d857f}[data-theme=dark]{--sched-closed-bg:#202a24;--sched-closed-ink:#93a198}
.sched-closed{background:repeating-linear-gradient(135deg,var(--sched-closed-bg) 0 6px,transparent 6px 12px),var(--sched-closed-bg);color:var(--sched-closed-ink)}
.sched-key.closed{background:repeating-linear-gradient(135deg,var(--sched-closed-ink) 0 2px,var(--sched-closed-bg) 2px 5px)}
.sched-strip.closed{background:repeating-linear-gradient(135deg,var(--sched-closed-bg) 0 6px,transparent 6px 12px),var(--sched-closed-bg)}
.sched-hours{font-size:12px;color:var(--muted);margin:-8px 0 12px}
.sched-hours-notice{margin-bottom:18px}.sched-hours-notice .secondary{white-space:nowrap}
.sched-form-hours{font-size:12px;color:var(--muted);margin:0}.sched-form-hours.warn{color:var(--sched-busy-line);font-weight:600}
.hours-unset{font-size:12px;color:var(--sched-booked-ink);background:var(--sched-booked-bg);border-radius:8px;padding:10px 12px;margin:0 0 14px}
.hours-list{display:grid;gap:8px}
.hours-row{display:grid;grid-template-columns:120px 110px minmax(120px,180px) minmax(120px,180px);gap:14px;align-items:end;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.hours-row strong{align-self:center;font-size:13px}.hours-row label{font-size:11px;margin:0}.hours-row input[type=time]{margin-top:4px}
.hours-row.closed{background:var(--sched-closed-bg);color:var(--sched-closed-ink)}.hours-row.closed input[type=time]{opacity:.5}
.hours-toggle{display:flex!important;align-items:center;gap:8px;align-self:center;cursor:pointer;font-size:12px!important;font-weight:600}.hours-toggle input{width:18px;height:18px;margin:0;accent-color:var(--green)}
.hours-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px}.hours-actions .primary{margin-left:auto}.hours-zone{font-size:11px;color:var(--muted)}
@media(max-width:700px){.hours-row{grid-template-columns:1fr 1fr}.hours-actions .primary{margin-left:0;width:100%}}
