:root{--palette-22131eb0:#22131eb0;--palette-2e2330:#2e2330;--palette-332830:#332830;--palette-33283016:#33283016;--palette-33283044:#33283044;--palette-33283055:#33283055;--palette-352832:#352832;--palette-356f50:#356f50;--palette-48283b:#48283b;--palette-483c44:#483c44;--palette-514350:#514350;--palette-554550:#554550;--palette-554650:#554650;--palette-5d4f59:#5d4f59;--palette-604158:#604158;--palette-604e59:#604e59;--palette-684b56:#684b56;--palette-694155:#694155;--palette-6e3e5810:#6e3e5810;--palette-6e3e5820:#6e3e5820;--palette-6f626b:#6f626b;--palette-715d69:#715d69;--palette-716a70:#716a70;--palette-756d74:#756d74;--palette-766974:#766974;--palette-7f4162:#7f4162;--palette-847783:#847783;--palette-8b4c6a:#8b4c6a;--palette-8d4e6e:#8d4e6e;--palette-8d7c87:#8d7c87;--palette-91838c:#91838c;--palette-93808b:#93808b;--palette-945472:#945472;--palette-958891:#958891;--palette-968790:#968790;--palette-985574:#985574;--palette-98557420:#98557420;--palette-9b557b:#9b557b;--palette-a05a7b:#a05a7b;--palette-a77d96:#a77d96;--palette-a9829b:#a9829b;--palette-a9829b66:#a9829b66;--palette-b58292:#b58292;--palette-b59baa:#b59baa;--palette-bfdcc9:#bfdcc9;--palette-c3a9b7:#c3a9b7;--palette-c8c1c6:#c8c1c6;--palette-c9bdc4:#c9bdc4;--palette-d4e9dc:#d4e9dc;--palette-d9cdd4:#d9cdd4;--palette-e4f1e9:#e4f1e9;--palette-e5d4df:#e5d4df;--palette-e7cbd9:#e7cbd9;--palette-e9dce3:#e9dce3;--palette-e9e2e7:#e9e2e7;--palette-e9e3e8:#e9e3e8;--palette-eadbe5:#eadbe5;--palette-eadce3:#eadce3;--palette-ebe7e9:#ebe7e9;--palette-eddee6:#eddee6;--palette-eedce5:#eedce5;--palette-eee3ea:#eee3ea;--palette-eee6eb:#eee6eb;--palette-eee9ed:#eee9ed;--palette-efe3e9:#efe3e9;--palette-f1e9ee:#f1e9ee;--palette-f2eef1:#f2eef1;--palette-f3eaf0:#f3eaf0;--palette-f4dce3:#f4dce3;--palette-f4dfe9:#f4dfe9;--palette-f4e9f0:#f4e9f0;--palette-f4f2f4:#f4f2f4;--palette-f7f2f4:#f7f2f4;--palette-f7f5f7:#f7f5f7;--palette-f8eaf0:#f8eaf0;--palette-f8f4f6:#f8f4f6;--palette-f8f5f7:#f8f5f7;--palette-f9eef4:#f9eef4;--palette-fbf8fa:#fbf8fa;--palette-fcf8fa:#fcf8fa;}
:root[data-theme="standard"]{--palette-22131eb0:#14211bb0;--palette-2e2330:#242f2a;--palette-332830:#29322e;--palette-33283016:#29322e16;--palette-33283044:#29322e44;--palette-33283055:#29322e55;--palette-352832:#29342f;--palette-356f50:#396b53;--palette-48283b:#234632;--palette-483c44:#3d4742;--palette-514350:#44504a;--palette-554550:#46544d;--palette-554650:#47544e;--palette-5d4f59:#4f5d56;--palette-604158:#435e51;--palette-604e59:#40584a;--palette-684b56:#4d665a;--palette-694155:#315d45;--palette-6e3e5810:#426a5710;--palette-6e3e5820:#426a5720;--palette-6f626b:#607169;--palette-715d69:#5e7067;--palette-716a70:#65766e;--palette-756d74:#687a71;--palette-766974:#5a6d61;--palette-7f4162:#245f41;--palette-847783:#73887e;--palette-8b4c6a:#316e50;--palette-8d4e6e:#316e50;--palette-8d7c87:#627468;--palette-91838c:#66796d;--palette-93808b:#80938a;--palette-945472:#316e50;--palette-958891:#86988f;--palette-968790:#86988f;--palette-985574:#2f7753;--palette-98557420:#2f775320;--palette-9b557b:#2f7753;--palette-a05a7b:#3e8b64;--palette-a77d96:#80a493;--palette-a9829b:#71a085;--palette-a9829b66:#85a69666;--palette-b58292:#86b19c;--palette-b59baa:#8dad99;--palette-bfdcc9:#c1dace;--palette-c3a9b7:#abc1b6;--palette-c8c1c6:#c0c9c5;--palette-c9bdc4:#bec8c3;--palette-d4e9dc:#d6e7df;--palette-d9cdd4:#ced8d3;--palette-e4f1e9:#e5f0eb;--palette-e5d4df:#cee1d3;--palette-e7cbd9:#cde5d9;--palette-e9dce3:#dde8e3;--palette-e9e2e7:#e3e8e6;--palette-e9e3e8:#e3e9e6;--palette-eadbe5:#d9eadd;--palette-eadce3:#d8e7dc;--palette-ebe7e9:#e7ebe9;--palette-eddee6:#dce9df;--palette-eedce5:#ddede5;--palette-eee3ea:#e4ede9;--palette-eee6eb:#e7edea;--palette-eee9ed:#e7eee8;--palette-efe3e9:#e2ebe4;--palette-f1e9ee:#eaf0ed;--palette-f2eef1:#eef2f0;--palette-f3eaf0:#e8f2e9;--palette-f4dce3:#def2e8;--palette-f4dfe9:#dceee2;--palette-f4e9f0:#eaf3ef;--palette-f4f2f4:#f2f4f3;--palette-f7f2f4:#f1f6f2;--palette-f7f5f7:#f5f7f6;--palette-f8eaf0:#e6f2e9;--palette-f8f4f6:#f4f8f6;--palette-f8f5f7:#f5f8f7;--palette-f9eef4:#eff8f4;--palette-fbf8fa:#f8fbfa;--palette-fcf8fa:#f8fcfa;}
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--palette-332830);background:var(--palette-f7f2f4);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:25px;letter-spacing:-.03em;margin-bottom:0}h2{font-size:19px;letter-spacing:-.02em;margin-bottom:0}h3{font-size:16px;margin-bottom:8px}.app{max-width:720px;min-height:100dvh;margin:auto;padding:0 18px calc(100px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 0 24px;gap:12px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.15em;color:var(--palette-9b557b);margin-bottom:3px}.primary,.secondary,.danger{border:0;border-radius:13px;padding:12px 18px;font-weight:700}.primary{background:var(--palette-985574);color:#fff;box-shadow:0 4px 12px var(--palette-98557420)}.primary:active{background:var(--palette-7f4162)}.secondary{background:#fff;color:var(--palette-8d4e6e);border:1px solid var(--palette-eadce3)}.danger{background:#fce8e9;color:#a63d4c}.compact{padding:10px 14px;white-space:nowrap;font-size:14px}.text-button{border:0;background:none;color:var(--palette-985574);font-size:12px;padding:2px}.icon-button{background:#fff;border:1px solid var(--palette-eadce3);border-radius:12px;width:40px;height:40px;font-size:25px;color:var(--palette-9b557b);line-height:1}.view{display:none}.view.active{display:block}.month-heading{display:flex;justify-content:space-between;align-items:center;text-align:center;margin-bottom:13px}.month-heading h2{text-transform:capitalize}.calendar-card,.panel,.list-card,.appointment{background:#fff;border:1px solid var(--palette-efe3e9);border-radius:18px;box-shadow:0 4px 15px var(--palette-6e3e5810)}.calendar-card{padding:10px 8px}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);text-align:center}.weekdays{font-size:11px;color:var(--palette-968790);font-weight:700}.weekdays span{padding:8px 0}.day{aspect-ratio:1;min-height:38px;max-height:66px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:none;border:0;border-radius:12px;color:var(--palette-483c44)}.day.outside{opacity:.35}.day.today .day-num{color:var(--palette-985574);font-weight:800}.day.selected{background:var(--palette-f4dfe9)}.day.selected .day-num{font-weight:800}.day-dot{width:5px;height:5px;border-radius:50%;background:var(--palette-a05a7b)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:23px 0 14px;gap:10px}.muted{color:var(--palette-91838c);font-size:13px}.intro{margin-bottom:17px}.day-list,.list{display:grid;gap:10px}.appointment,.list-card{padding:15px;text-align:left;width:100%;border:1px solid var(--palette-efe3e9);color:inherit}.appointment{display:flex;gap:13px;align-items:flex-start}.time-pill{background:var(--palette-f8eaf0);color:var(--palette-945472);border-radius:9px;padding:7px 9px;font-weight:800;font-size:14px;min-width:56px;text-align:center}.card-title{font-weight:750;margin:0 0 3px}.card-sub{font-size:13px;color:var(--palette-8d7c87);margin:0}.card-note{font-size:13px;margin:8px 0 0;white-space:pre-wrap}.empty{text-align:center;background:#fff;border:1px dashed var(--palette-e7cbd9);border-radius:18px;padding:32px 16px;color:var(--palette-8d7c87)}.empty strong{display:block;color:var(--palette-554550);margin-bottom:6px}.search{width:100%;border:1px solid var(--palette-e9dce3);border-radius:13px;background:#fff;padding:13px 14px;margin-bottom:15px;outline-color:var(--palette-985574)}.list-card{display:flex;align-items:center;justify-content:space-between;gap:15px}.list-card .meta{font-size:13px;color:var(--palette-91838c)}.list-card .chev{font-size:24px;color:var(--palette-c3a9b7)}.panel{padding:19px;margin:16px 0}.panel p{font-size:14px;line-height:1.5;color:var(--palette-766974)}.panel .secondary{margin:5px 6px 0 0}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,720px);display:grid;grid-template-columns:repeat(4,1fr);padding:8px 7px calc(8px + env(safe-area-inset-bottom));background:#ffffffeb;backdrop-filter:blur(16px);border-top:1px solid var(--palette-eddee6)}.bottom-nav button{border:0;background:none;color:var(--palette-93808b);font-size:11px;font-weight:650;display:grid;justify-items:center;gap:3px;padding:6px 0}.bottom-nav button.active{color:var(--palette-985574)}.nav-icon{font-size:22px;line-height:1}dialog{border:0;border-radius:22px;padding:0;max-width:min(94vw,500px);width:100%;max-height:90dvh;overflow:auto;box-shadow:0 15px 50px var(--palette-33283055)}dialog::backdrop{background:var(--palette-22131eb0)}dialog form{padding:22px}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.dialog-head .icon-button{width:34px;height:34px;border:0;background:var(--palette-f7f2f4);color:var(--palette-715d69)}.field{display:grid;gap:6px;margin:0 0 14px;font-size:13px;font-weight:700;color:var(--palette-604e59)}.field input,.field select,.field textarea,.login-card input{width:100%;border:1px solid var(--palette-e5d4df);border-radius:12px;padding:12px;background:#fff;color:var(--palette-332830);outline-color:var(--palette-985574)}.field textarea{min-height:76px;resize:vertical}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.dialog-actions .danger{margin-right:auto}.error{color:#a63d4c;font-size:13px;min-height:18px;margin:6px 0}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:25px;background:linear-gradient(155deg,var(--palette-f7f2f4),var(--palette-eedce5))}.login-screen[hidden],.app[hidden]{display:none}.login-card{background:#fff;border-radius:24px;padding:34px 28px;width:min(100%,390px);box-shadow:0 20px 55px var(--palette-6e3e5820);text-align:center}.login-mark{width:56px;height:56px;border-radius:17px;background:var(--palette-985574);color:#fff;display:grid;place-items:center;margin:0 auto 17px;font-size:30px}.login-card p{color:var(--palette-8d7c87);font-size:14px;margin:10px 0 24px}.login-card label{text-align:left;display:grid;gap:7px;font-size:13px;font-weight:700}.login-card button{width:100%;margin-top:8px}@media(min-width:600px){.app{padding-left:32px;padding-right:32px}.day{min-height:60px}.topbar{padding-top:30px}}
:where(.field input,.field select,.field textarea,.login-card input){font-size:16px}
.schedule-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--palette-ebe7e9);border-radius:16px;padding:4px;margin:0 0 14px}.schedule-tabs button{border:0;border-radius:13px;background:transparent;color:var(--palette-6f626b);padding:9px;font-size:14px;font-weight:650}.schedule-tabs button.active{background:#fff;color:var(--palette-352832);box-shadow:0 2px 8px var(--palette-33283016)}.week-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px}.week-heading h2{font-size:16px;text-align:center;text-transform:capitalize}.week-heading .icon-button{width:32px;height:32px;flex:none;font-size:22px}.week-scroll{overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--palette-eadce3);border-radius:16px;background:#fff}.week-inner{min-width:560px}.week-days,.week-grid{display:grid;grid-template-columns:36px repeat(7,minmax(0,1fr))}.week-days{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid var(--palette-eadce3)}.week-corner{border-right:1px solid var(--palette-eadce3)}.week-date{border:0;background:#fff;color:var(--palette-847783);min-height:52px;display:grid;align-content:center;justify-items:center;gap:2px;font-size:12px;text-transform:capitalize}.week-date strong{font-size:16px;font-weight:750;width:25px;height:25px;display:grid;place-items:center;border-radius:50%}.week-date.today strong{background:var(--palette-985574);color:#fff}.week-date.selected:not(.today) strong{background:var(--palette-f4dfe9);color:var(--palette-8b4c6a)}.week-time-rail,.week-column{position:relative;background:repeating-linear-gradient(to bottom,var(--palette-e9e2e7) 0,var(--palette-e9e2e7) 1px,transparent 1px,transparent 32px)}.week-time-rail{background:#fff}.week-time-rail span{position:absolute;right:3px;transform:translateY(-50%);font-size:10px;color:var(--palette-958891);white-space:nowrap}.week-time-rail span:first-child{transform:none}.week-column{border-left:1px solid var(--palette-e9e2e7)}.week-event{position:absolute;left:2px;right:2px;width:calc(100% - 4px);z-index:1;border:0;border-radius:5px;padding:4px 3px;text-align:left;color:var(--palette-2e2330);overflow:hidden;display:flex;flex-direction:column;gap:2px;font-size:11px;line-height:1.15;overflow-wrap:anywhere}.week-event strong{font-weight:750}.week-event span{opacity:.78}.week-event small{font-size:10px;opacity:.7}.day-mode .week-inner{min-width:0}.day-mode .week-days,.day-mode .week-grid{grid-template-columns:48px minmax(0,1fr)}.day-mode .week-event{padding:8px;font-size:13px}.day-mode .week-event small{font-size:11px}
.schedule-toolbar{display:flex;align-items:center;gap:10px;padding-top:18px;margin-bottom:8px}.schedule-toolbar .schedule-tabs{flex:1;margin:0;min-width:0}.schedule-toolbar .schedule-tabs button{padding:9px 3px}.schedule-add{flex:none;border:0;background:none;color:var(--palette-a77d96);font-size:34px;line-height:1;width:34px;height:40px;padding:0}.week-scroll{overflow-x:hidden;border-radius:0;margin-left:-18px;margin-right:-18px;border-left:0;border-right:0}.week-inner{min-width:0;width:100%}.week-days,.week-grid{grid-template-columns:36px repeat(7,minmax(0,1fr))}.week-event{padding:3px 2px;font-size:10px}.week-event small{font-size:9px}@media(min-width:600px){.week-scroll{margin-left:-32px;margin-right:-32px}}
.week-slot{display:block;width:100%;height:32px;margin:0;padding:0;border:0;border-bottom:1px solid var(--palette-e9e2e7);border-radius:0;background:transparent;cursor:pointer}.week-slot:nth-of-type(2n){border-bottom-color:var(--palette-d9cdd4)}.week-slot:focus-visible{outline:2px solid var(--palette-985574);outline-offset:-2px;background:var(--palette-f8eaf0)}.week-slot:active{background:var(--palette-f8eaf0)}
.offline-banner{margin:12px -18px 0;padding:10px 18px;background:var(--palette-f4e9f0);color:var(--palette-604158);font-size:12px;font-weight:700}.offline-banner[hidden]{display:none}button:disabled{opacity:.45;cursor:not-allowed}@media(min-width:600px){.offline-banner{margin-left:-32px;margin-right:-32px;padding-left:32px;padding-right:32px}}
.offline-banner{display:flex;align-items:center;justify-content:space-between;gap:8px}.offline-banner button{border:0;border-radius:8px;background:#fff;padding:7px 9px;color:var(--palette-604e59);font-size:12px;font-weight:700}.offline-banner button[hidden]{display:none}.week-event.pending{outline:2px dashed var(--palette-8b4c6a);outline-offset:-2px}.week-event.conflict{background:var(--palette-f4dce3);outline:2px solid var(--palette-b58292);outline-offset:-2px}
.client-picker{gap:8px}.client-options{max-height:190px;overflow:auto;border:1px solid var(--palette-e5d4df);border-radius:12px;background:#fff}.client-options[hidden],.inline-client-fields[hidden]{display:none}.client-options button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:11px 12px;border:0;border-bottom:1px solid var(--palette-f1e9ee);background:#fff;color:var(--palette-332830);text-align:left;font-size:14px}.client-options button:last-child{border-bottom:0}.client-options button:active,.client-options button:focus-visible{background:var(--palette-f8eaf0)}.client-options button span{font-size:12px;color:var(--palette-8d7c87)}.client-options p{margin:0;padding:12px;color:var(--palette-8d7c87);font-size:13px}.inline-add{justify-self:start;padding:4px 0;font-size:14px}.inline-client-fields{padding:14px;margin:0 0 14px;border:1px solid var(--palette-e5d4df);border-radius:13px;background:var(--palette-fcf8fa)}.inline-client-fields strong{display:block;margin-bottom:12px;font-size:14px}.inline-client-fields .field{margin-bottom:10px}.inline-client-actions{display:flex;align-items:center;gap:12px}
.schedule-legend{display:flex;justify-content:center;gap:14px;margin:3px 0 10px;color:var(--palette-766974);font-size:11px;font-weight:650}.schedule-legend span{display:inline-flex;align-items:center;gap:5px}.schedule-legend span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--state-color)}.legend-upcoming,.status-upcoming{--state-color:var(--palette-b59baa);--state-bg:var(--palette-f3eaf0);--state-text:var(--palette-5d4f59)}.legend-active,.status-active{--state-color:var(--palette-a9829b);--state-bg:var(--palette-eadbe5);--state-text:var(--palette-514350)}.legend-past,.status-past{--state-color:var(--palette-c8c1c6);--state-bg:var(--palette-f4f2f4);--state-text:var(--palette-716a70)}.week-event.status-upcoming,.week-event.status-active,.week-event.status-past{background:var(--state-bg);color:var(--state-text);border-left:3px solid var(--state-color)}.week-event.status-active{box-shadow:inset 0 0 0 1px var(--palette-a9829b66)}.week-event.status-past{opacity:.82}.week-event.conflict{background:var(--palette-f4dce3);color:var(--palette-684b56);border-left-color:var(--palette-b58292)}.day-dot.status-upcoming,.day-dot.status-active,.day-dot.status-past{background:var(--state-color)}.appointment.status-upcoming,.appointment.status-active,.appointment.status-past{border-left:4px solid var(--state-color)}.appointment.status-active{background:var(--palette-f9eef4)}.appointment.status-past{background:var(--palette-f7f5f7);color:var(--palette-756d74);box-shadow:none}.appointment.status-upcoming .time-pill,.appointment.status-active .time-pill,.appointment.status-past .time-pill{background:var(--state-bg);color:var(--state-text)}.state-label{display:inline-block;margin-top:7px;border-radius:7px;padding:3px 7px;background:var(--state-bg);color:var(--state-text);font-size:11px;font-weight:750}
.app{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
.week-scroll{border-top:.5px solid var(--palette-eee9ed);border-bottom:.5px solid var(--palette-eee9ed)}
.week-days{border-bottom:.5px solid var(--palette-eee9ed)}
.week-corner{border-right:.5px solid var(--palette-eee9ed)}
.week-column{background:#fff;border-left:0;box-shadow:inset .5px 0 0 var(--palette-eee9ed)}
.week-slot{height:var(--slot-height,32px);border-bottom:0;box-shadow:inset 0 -.5px 0 var(--palette-f2eef1)}
.week-slot:nth-of-type(2n){box-shadow:inset 0 -.5px 0 var(--palette-e9e3e8)}
#selected-day-details .empty{padding:24px 16px}
.booking-service{margin:0 0 12px;padding:12px;border:1px solid var(--palette-eee6eb);border-radius:13px;background:var(--palette-fbf8fa)}
.booking-service-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:var(--palette-554650);font-size:14px}
.booking-service-head .text-button[hidden]{display:none}
.booking-service .field{margin-bottom:9px}
.booking-service-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}
.booking-service-details .field{min-width:0}
.booking-service-details .field:last-child{grid-column:1/-1}
.booking-service-details input,.booking-service-details select{padding:10px}
#add-booking-service{margin:0 0 14px}
.booking-note{margin-bottom:0}
.payment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.payment-fields .field{min-width:0;align-content:end}
.payment-fields .field input{min-width:0;padding:10px 8px}
dialog .dialog-actions{position:sticky;bottom:-22px;z-index:2;margin-top:12px;padding:12px 0 22px;background:#fff}
#month-pair{position:relative;display:grid;gap:8px;max-height:calc(100dvh - 250px);min-height:220px;overflow-y:auto;overflow-anchor:none;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
#week-schedule{touch-action:pan-y}
.period-title{border:0;background:transparent;color:var(--palette-332830);font-weight:750;font-size:16px;text-align:center;text-transform:capitalize;padding:6px 2px;min-width:0}
.month-heading>div{display:grid;justify-items:center}
.period-title:focus-visible{outline:2px solid var(--palette-985574);border-radius:6px}
.period-picker-fields{display:grid;grid-template-columns:1fr 100px;gap:10px}
.period-picker-fields .field{min-width:0}
#period-picker .primary{width:100%}
.confirm-content{padding:22px}
.confirm-content p{font-size:14px;color:var(--palette-604e59);line-height:1.45}
.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.confirm-actions button{padding:12px 8px;font-size:13px}
#settings-view .settings-links{display:grid;gap:10px;margin:16px 0 22px}#settings-view .settings-link{margin:0}.services-heading h2{margin:0;flex:1}.services-heading .icon-button{flex:none;font-size:27px;line-height:1}
.sms-insert{display:flex;gap:8px;flex-wrap:wrap;margin:-2px 0 12px}.sms-insert .secondary{margin:0}.sms-preview{display:grid;gap:6px;padding:12px;border-radius:12px;background:var(--palette-f7f2f4);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0}.sms-preview strong{color:var(--palette-604e59)}
.sms-toggle{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:14px;font-weight:650}.sms-toggle input{appearance:none;flex:none;width:44px;height:26px;border:0;border-radius:99px;background:var(--palette-c9bdc4);position:relative;transition:background .2s}.sms-toggle input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px var(--palette-33283044);transition:transform .2s}.sms-toggle input:checked{background:var(--palette-985574)}.sms-toggle input:checked::after{transform:translateX(18px)}.sms-toggle input:focus-visible{outline:2px solid var(--palette-985574);outline-offset:2px}.sms-token-box{margin:12px 0;padding:12px;border-radius:12px;background:var(--palette-f7f2f4)}.sms-token-box code{display:block;overflow-wrap:anywhere;user-select:all;font-size:14px}
.sms-jobs{display:grid;gap:7px;margin:12px 0}.sms-job{display:grid;gap:3px;padding:9px 11px;border:1px solid var(--palette-eadce3);border-radius:10px;font-size:12px}.sms-job strong{color:var(--palette-604e59)}.sms-job small{color:#a63d4c}
.sms-jobs h3{margin:10px 0 2px}.sms-job .sms-job-body{color:var(--palette-8d7c87);white-space:pre-wrap}
.list-card .card-title{display:block}
.bottom-nav{grid-template-columns:repeat(3,1fr)}
.legend-done,.status-done{--state-color:var(--palette-694155);--state-bg:var(--palette-694155);--state-text:#fff}
.week-event.status-done{background:var(--palette-694155);color:#fff;border-left:3px solid var(--palette-48283b)}
.day-dot.status-done{background:var(--palette-694155)}
.appointment.status-done{background:var(--palette-eee3ea);border-left:4px solid var(--palette-694155)}
.appointment.status-done .time-pill,.appointment.status-done .state-label{background:var(--palette-694155);color:#fff}
.schedule-legend{gap:8px;font-size:10px}
dialog .dialog-actions{flex-wrap:wrap}
.client-history{border-top:1px solid var(--palette-eadce3);margin-top:18px;padding-top:16px}.client-history h3{margin:15px 0 8px}.client-history-item{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:10px 0;border-bottom:1px solid var(--palette-f1e9ee);font-size:13px}.client-history-item span{color:var(--palette-8d4e6e);font-weight:700}.client-history-item small{grid-column:1/-1;color:var(--palette-766974);font-size:12px}
#complete-appointment:not([hidden]){order:-1;width:100%;background:var(--palette-694155);color:#fff}
#month-pair .calendar-card{padding:5px 8px 7px}
#month-pair h3{text-align:center;font-size:14px;margin:0 0 2px}
#month-pair .weekdays span{padding:2px 0;font-size:10px}
#month-pair .day{aspect-ratio:auto;height:clamp(30px,4.3dvh,42px);min-height:0;gap:2px;font-size:13px;border-radius:8px}
#month-pair .day-dot{width:4px;height:4px}
.datetime-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--palette-e5d4df);border-radius:12px;padding:12px;background:#fff;color:var(--palette-332830);text-align:left;white-space:nowrap}
.datetime-trigger span:first-child{overflow:hidden;text-overflow:ellipsis}
.datetime-trigger span:last-child{color:var(--palette-985574)}
.datetime-trigger.needs-service{color:var(--palette-91838c);background:var(--palette-f8f5f7)}
.datetime-service-hint{color:#a63d4c;font-size:12px;font-weight:600}
.booking-service:first-child .booking-time-field{display:none}
#datetime-picker .datetime-picker-content{padding:20px}
.datetime-month-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px}
.datetime-month-heading h3{margin:0;font-size:16px}
#datetime-picker .weekdays span{padding:5px 0}
#datetime-days{margin-bottom:10px}
#datetime-days .day{aspect-ratio:auto;height:34px;min-height:0}
#datetime-picker .field{margin-bottom:14px}
.datetime-time-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.datetime-time-fields .field{min-width:0}
.datetime-time-fields select{min-width:0;padding:10px 6px}
#datetime-error{margin-top:-8px}
#datetime-apply{width:100%}
body.dialog-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
dialog{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
#call-client{display:flex;align-items:center;justify-content:center;gap:9px;text-align:center;text-decoration:none;margin-top:12px;background:var(--palette-e4f1e9);border:1px solid var(--palette-bfdcc9);color:var(--palette-356f50)}
#call-client:active{background:var(--palette-d4e9dc)}
#call-client svg{flex:none}
#call-client[hidden]{display:none}
.visit-service-list{display:grid;gap:8px;margin:0 0 14px}
.visit-service-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;background:var(--palette-f8f4f6);font-size:13px}
.visit-service-item span{min-width:0;overflow-wrap:anywhere}
.cancel-visit-service{flex:none;border:1px solid #e6ccd1;border-radius:9px;padding:7px 9px;background:#fbebed;color:#934b57;font-size:12px;font-weight:700}
.dialog-actions{flex-wrap:wrap}
.launch-screen{position:fixed;inset:0;z-index:200;display:grid;place-items:center;min-height:100dvh;background:#00843d;color:#fff;opacity:1;transition:opacity .22s ease;pointer-events:auto}
.launch-screen[hidden]{display:none}
.launch-screen.leaving{opacity:0;pointer-events:none}
.launch-content{display:grid;justify-items:center;gap:17px;transform:translateY(-3vh)}
.launch-icon{display:block;width:clamp(126px,38vw,180px);height:auto;aspect-ratio:1;animation:launch-icon-in .68s cubic-bezier(.2,.8,.2,1) both}
.launch-mark{font-size:18px;font-weight:750;letter-spacing:.24em;margin-left:.24em;animation:launch-mark-in .7s .18s ease both}
.launch-line{width:70px;height:3px;border-radius:3px;background:#fff;transform-origin:left center;animation:launch-line-in 1.6s .15s ease-out both}
@keyframes launch-icon-in{from{opacity:0;transform:translateY(14px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes launch-mark-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes launch-line-in{from{opacity:0;transform:scaleX(.05)}to{opacity:1;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.launch-screen{transition:none}.launch-icon,.launch-mark,.launch-line{animation:none}}

.theme-options{display:grid;gap:10px;margin:16px 0 8px}.theme-option{display:flex;align-items:center;gap:13px;min-height:72px;padding:12px 14px;background:#fff;border:1px solid var(--palette-efe3e9);border-radius:16px;box-shadow:0 4px 15px var(--palette-6e3e5810);cursor:pointer}.theme-option:has(input:checked){border-color:var(--palette-985574);box-shadow:0 0 0 2px var(--palette-98557420)}.theme-option input{accent-color:var(--palette-985574);width:18px;height:18px;margin:0;flex:none}.theme-option-name{font-size:15px;font-weight:700}.theme-swatch{display:block;width:35px;height:35px;flex:none;border-radius:11px;border:3px solid #fff;box-shadow:0 0 0 1px var(--palette-eadce3)}.theme-swatch-standard{background:#367c56}.theme-swatch-pink{background:#985574}
:root[data-theme="standard"]{--palette-f4dce3:#f4dce3;--palette-b58292:#b58292;--palette-684b56:#684b56}
:root[data-theme="standard"] .danger{background:#e8eee9;color:#234632;border:1px solid #9ab2a1}
:root[data-theme="standard"] .danger:active{background:#d4e3d7}
.bottom-nav svg.nav-icon{display:block;width:24px;height:24px}
.bottom-nav span.nav-icon{display:block;width:24px;height:24px;line-height:24px;text-align:center}
.client-search-wrap{position:relative}.client-search-wrap .search{padding-right:48px}.client-search-wrap .search::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.client-search-clear{position:absolute;right:5px;top:2px;width:40px;height:40px;border:0;background:transparent;color:var(--palette-8d7c87);font-size:25px;line-height:1;border-radius:10px}.client-search-clear[hidden]{display:none}.client-search-clear:focus-visible{outline:2px solid var(--palette-985574);outline-offset:1px}
