:root {
 color-scheme:light;
 --page:#fff8fb;--surface:#fff;--soft:#fff2f7;--selected:#f9e5ee;
 --ink:#30242a;--muted:#795d69;--border:#e8d3dd;--accent:#a44169;
 --button:#ae466e;--button-ink:#fff;--faded:#aa909d;
 --danger-bg:#a92f3d;--danger-ink:#fff;--danger-line:#8e2431;
 --green-bg:#d6f6e5;--green:#166443;--green-line:#37ab78;
 --amber-bg:#fff0c5;--amber:#805600;--amber-line:#dca41c;
 --pink-bg:#ffe0ed;--pink:#972755;--pink-line:#d5588a;
 --purple-bg:#eae1ff;--purple:#65449b;--purple-line:#9365d2;
 --blue-bg:#dcedff;--blue:#255c95;--blue-line:#4e94d1;
 --grey-bg:#eee8ec;--grey:#655660;--red-bg:#ffe0de;--red:#9e373c;
 --shadow:0 8px 28px rgb(91 42 65 / 5%);
}
:root[data-theme=dark] {
 color-scheme:dark;
 --page:#21191f;--surface:#2d222a;--soft:#362730;--selected:#492c3c;
 --ink:#f8eaf0;--muted:#d2b4c3;--border:#59404f;--accent:#f0a7c6;
 --button:#edacc7;--button-ink:#301923;--faded:#967887;
 --danger-bg:#ff8e98;--danger-ink:#2b1015;--danger-line:#ffb2b8;
 --green-bg:#1f4436;--green:#97e9bf;--green-line:#49ba87;
 --amber-bg:#483b21;--amber:#ffdb83;--amber-line:#d8b04b;
 --pink-bg:#542b41;--pink:#ffb4d1;--pink-line:#d871a0;
 --purple-bg:#3d3055;--purple:#d6bdff;--purple-line:#ad89e5;
 --blue-bg:#283d55;--blue:#a9d4ff;--blue-line:#76abe0;
 --grey-bg:#3b343a;--grey:#cfc0ca;--red-bg:#512e34;--red:#ffb5b6;
 --shadow:0 8px 28px rgb(0 0 0 / 12%);
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:20px}
body{background:var(--page);color:var(--ink);line-height:1.5}
/* Cover dynamic dialogs, inline font shorthands, and focused iPhone inputs too. */
input,textarea,select,input:focus,textarea:focus,select:focus,[contenteditable=true]{font-size:16px!important;font-family:inherit;line-height:1.4}
input,textarea,select{background:var(--surface);color:var(--ink);border-color:var(--border)}
input::placeholder,textarea::placeholder{color:var(--faded);opacity:1}
button{font-family:inherit;touch-action:manipulation}
button:disabled{opacity:.55;cursor:wait}
a{color:var(--accent)}
.primary{background:var(--button);color:var(--button-ink);box-shadow:0 4px 12px rgb(151 53 94 / 12%)}
.primary:hover{filter:brightness(.96)}
.danger,.actions button.danger{background:var(--danger-bg);color:var(--danger-ink);border-color:var(--danger-line);font-weight:700}
.danger:hover,.actions button.danger:hover{filter:brightness(.94)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.card,.item,.calendar{box-shadow:var(--shadow)}
.card{border-radius:20px;padding:22px}
.input,.textarea{border-radius:12px}
.brand{letter-spacing:-.03em}
.head .brand{font-size:36px}.head .sub{margin-top:4px}
.sub,.meta{line-height:1.6}
.appearance-bar{max-width:1050px;margin:auto;display:flex;justify-content:flex-end;align-items:center;gap:9px;padding:12px 16px 0;color:var(--muted);font-size:12px}
.appearance-bar select{width:auto;padding:6px 26px 6px 10px;border:1px solid var(--border);border-radius:20px;margin:0;min-height:38px}
.wrap{padding-top:16px}
.slot{min-height:32px;border-radius:8px;font-weight:600}
.day{background:var(--surface)}
.day:has(.slot){background:var(--soft)}
.slot.booked,.slot.calendar-confirmed{background:var(--green-bg);color:var(--green);border-color:var(--green-line);border-left-width:3px}
.slot.calendar-rescheduled{background:var(--purple-bg);color:var(--purple);border-color:var(--purple-line);border-left-width:3px}
.slot.calendar-completed{background:var(--blue-bg);color:var(--blue);border-color:var(--blue-line);border-left-width:3px}
.slot.calendar-cancelled{background:var(--grey-bg);color:var(--grey);border-color:var(--grey);opacity:1}
.slot.calendar-no_show{background:var(--red-bg);color:var(--red);border-color:var(--red);opacity:1}
.slot.calendar-inspo{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-line);border-left-width:3px}
.slot.calendar-quote{background:var(--pink-bg);color:var(--pink);border-color:var(--pink-line);border-left-width:3px}
.slot-service{color:inherit}
.s-confirmed,.status-confirmed{background:var(--green-bg);color:var(--green)}
.s-inspo,.status-inspo{background:var(--amber-bg);color:var(--amber)}
.s-quote,.status-quote{background:var(--pink-bg);color:var(--pink)}
.s-rescheduled,.status-rescheduled{background:var(--purple-bg);color:var(--purple)}
.s-completed,.status-completed{background:var(--blue-bg);color:var(--blue)}
.s-cancelled,.status-cancelled{background:var(--grey-bg);color:var(--grey)}
.s-no_show,.s-noshow,.status-no_show,.status-noshow{background:var(--red-bg);color:var(--red)}
.calendar-legend{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.inspo-editor{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0}
.inspo-choice{max-width:130px;font-size:13px;cursor:pointer;color:var(--muted)}
.inspo-choice img{display:block;width:120px;height:100px;object-fit:cover;border-radius:10px;margin-bottom:6px}
.inspo-choice input{width:auto;accent-color:var(--accent)}
.inspo-choice:has(input:not(:checked)) img{opacity:.35}
.notification-controls{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.notification-item{display:block;width:100%;text-align:left;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-radius:12px;padding:12px;margin:8px 0;cursor:pointer}
.notification-item.unread{border-left:4px solid var(--accent);background:var(--soft)}
.notification-item span{display:block;font-size:13px;color:var(--muted)}
.booking-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;list-style:none;counter-reset:steps;padding:0;margin:16px 0}
.booking-steps li{font-size:13px;color:var(--muted)}
.booking-steps li:before{counter-increment:steps;content:counter(steps);display:block;width:26px;line-height:26px;text-align:center;background:var(--selected);color:var(--accent);border-radius:50%;font-weight:700;margin-bottom:6px}
@media(max-width:520px){.card{padding:17px}.appearance-bar{padding:10px 10px 0}.head{margin-bottom:20px}.slot{min-height:34px}.modalbox{max-height:88dvh}.slot-state{display:block;font-size:8px;white-space:normal}.booking-steps{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
