:root{--ink:#252d3d;--ink-strong:#0d0d0d;--ink-60:#6b717c;--ink-40:#9aa0aa;--surface:#eef0f3;--panel:#e7ebf2;--soft:#f6f7f9;--card:#ffffff;--line:#e4e8ee;--accent:#0d0d0d;--accent-ink:#ffffff;--blue:#83a2db;--blue-soft:#e6edf9;--blue-ink:#3d5c94;--coral:#fd8e8c;--coral-soft:#ffe9e8;--coral-ink:#b03f3c;--yellow:#ffce87;--yellow-soft:#fff3df;--yellow-ink:#8a5a1e;--green-soft:#e3f3ec;--green-ink:#2a6b52;--danger:#c2413e;--radius:24px;--radius-sm:14px;--shadow:0 6px 24px rgb(37 45 61/4%)}*{box-sizing:border-box}body,html{margin:0;background:var(--surface);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:inherit}.topbar{justify-content:space-between;gap:16px;padding:14px 24px;background:var(--card);border-bottom:1px solid var(--line)}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-weight:650;text-decoration:none}.brand-mark{width:10px;height:10px;border-radius:50%;background:var(--accent)}.brand-tag{color:var(--ink-40);font-weight:400;font-size:13px}.page{max-width:880px;margin:0 auto;padding:32px 16px 64px}.narrow{max-width:400px}h1{font-size:24px;margin:0 0 4px}h2{margin:28px 0 10px}.muted,h2{color:var(--ink-60)}.card{background:var(--card);border:1px solid var(--line)}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:12px 16px;border-top:1px solid var(--line)}.list li:first-child{border-top:0}.list .meta{color:var(--ink-40);font-size:13px;white-space:nowrap}.stack{display:grid;grid-gap:12px;gap:12px;padding:20px}label{display:grid;grid-gap:4px;gap:4px;font-size:13px;color:var(--ink-60)}input{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.button,button{font:inherit;font-weight:600;padding:10px 14px;border:0;border-radius:8px;background:var(--accent);color:var(--accent-ink);cursor:pointer;text-decoration:none}button.ghost{background:transparent;color:var(--ink-60)}.error{color:var(--danger);font-size:13px;margin:0}.empty{padding:20px 16px;color:var(--ink-40)}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 16px;border-top:1px solid var(--line);font-size:14px}th{font-weight:500;border-top:0}.narrow-wide{max-width:640px}.small{font-size:13px;margin-top:-6px}.salon-head{display:flex;gap:14px;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--line)}.salon-logo{width:54px;height:54px;border-radius:14px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:650;flex:none}.booking h2{color:var(--ink);font-size:17px;margin-top:28px}.booking h3{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-60);margin:16px 0 8px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.list li.pick{padding:0;flex-wrap:wrap;row-gap:0}.list li.pick .qty{flex:0 0 100%;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:0 16px 12px 46px}.list li.pick .qty button{width:36px;height:36px;padding:0;border-radius:999px;font-size:18px;line-height:1}.list li.pick .qty strong{min-width:18px;text-align:center}.row{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ink)}.list .row{padding:12px 16px;width:100%;cursor:pointer}.row .grow{flex:1 1}.row input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none}.row.check{font-size:13px;color:var(--ink-60);align-items:flex-start}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.chip{color:var(--ink);border:1px solid var(--line);font-weight:500;padding:8px 14px;border-radius:999px;white-space:nowrap}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.chip.day{display:grid;text-align:center;border-radius:12px;padding:6px 12px;line-height:1.3}.chip.day small{font-size:11px;opacity:.7}.summary{display:flex;justify-content:space-between;gap:12px;margin:16px 0 12px;padding:12px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}button:disabled{opacity:.5;cursor:default}.booking>button[type=submit]{width:100%;padding:14px;font-size:16px}.badge{display:inline-block;font-size:13px;font-weight:600;padding:4px 10px;border-radius:999px;margin:0 0 10px}.badge.ok{background:#e6f4ef;color:#1f6b55}.badge.warn{background:#fbf0e3;color:#8a5a1e}.badge.bad{background:#fbe9e7;color:#a12b1f}.appt{margin:20px 0 16px}.appt .when{padding:16px;display:grid;grid-gap:2px;gap:2px;color:var(--ink-60)}.appt .when strong{font-size:22px;color:var(--ink)}.appt .list li{border-top:1px solid var(--line)}.small-note{font-size:13px}.daynav{display:flex;align-items:center;gap:10px;margin:24px 0 4px;flex-wrap:wrap}.daynav .chip{text-decoration:none}.list li.appt-row{padding:0}.row-link{display:flex;justify-content:space-between;gap:16px;padding:12px 16px;width:100%;text-decoration:none}.row-link:hover{background:var(--surface)}.s-CANCELLED .row-link,.s-NO_SHOW .row-link{opacity:.55}.pill{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;margin:0}.p-PENDING{background:#fbf0e3;color:#8a5a1e}.p-CONFIRMED{background:#eaeef8;color:#33508a}.p-ARRIVED{background:#e6f4ef;color:#1f6b55}.p-CANCELLED,.p-NO_SHOW{background:#fbe9e7;color:#a12b1f}.actions{display:grid;grid-gap:10px;gap:10px;margin:8px 0}.act{color:var(--ink);border:1px solid var(--line)}.act.a-CONFIRMED{background:var(--ink);color:#fff;border-color:var(--ink)}.act.a-ARRIVED{background:#1f6b55;color:#fff;border-color:#1f6b55}.act.a-NO_SHOW{background:#a12b1f;color:#fff;border-color:#a12b1f}.payform{border-top:1px solid var(--line)}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}select{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.small-row{font-size:13px}@media (max-width:520px){.grid3{grid-template-columns:1fr}}.tabs{display:flex;gap:4px;overflow-x:auto;padding:0 16px;background:var(--card);border-bottom:1px solid var(--line);justify-content:center}.tabs a{padding:12px 14px;text-decoration:none;color:var(--ink-60);font-weight:500;white-space:nowrap;border-bottom:2px solid transparent}.tabs a.on{color:var(--ink);border-bottom-color:var(--accent)}.notice{padding:10px 14px;border-radius:10px;font-size:14px;margin:0 0 16px}.notice.ok{background:#e6f4ef;color:#1f6b55}.notice.bad{background:#fbe9e7;color:#a12b1f}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}@media (max-width:520px){.grid2{grid-template-columns:1fr}}textarea{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;resize:vertical}.settings .save{width:100%;margin-top:20px;padding:14px}.list li.svc{display:block;padding:0}.svc summary{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:12px 16px;cursor:pointer;list-style:none}.svc summary::-webkit-details-marker{display:none}.svc summary:hover{background:var(--surface)}.svc.off summary>span:first-child{color:var(--ink-40)}.svc details[open] summary{background:var(--surface)}.inline-form{display:grid;grid-gap:12px;gap:12px;padding:12px 16px 16px}.link-like{color:var(--accent);font-weight:600}.cat-head{display:flex;align-items:center;gap:8px}.cat-rename{margin:6px 0 0}.cat-rename summary{cursor:pointer}.row-form{display:flex;gap:8px;margin-top:8px}.row-form input{flex:1 1;min-width:0}.pad{padding:12px}fieldset{border:0;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}legend{font-size:13px;color:var(--ink-60);padding:0;margin-bottom:8px}.check-chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:14px;color:var(--ink)}.check-chip input{accent-color:var(--accent)}.week{display:grid;grid-gap:6px;gap:6px}.day-row{display:grid;grid-template-columns:44px 1fr;align-items:center;grid-gap:10px;gap:10px;font-size:14px;color:var(--ink)}.day-row input{padding:8px 10px}.small-btn{padding:6px 10px;font-size:13px}.search{display:flex;gap:8px;margin:16px 0 8px}.search input{flex:1 1;min-width:0}.pill.tiny{font-size:11px;margin-left:6px;padding:1px 6px}.warn-text{color:var(--danger)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin:16px 0 0}.stats .card{padding:12px 14px;display:grid;grid-gap:2px;gap:2px}.stats strong{font-size:20px}.stats span{font-size:12px;color:var(--ink-60)}@media (max-width:520px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{overflow-x:auto}.grid2 input,.grid2 select,.grid3 input,.grid3 select{width:100%;min-width:0}.daynav .new-appt{margin-left:auto;padding:8px 14px}button.wide{width:100%;margin-top:12px}.radio-chip{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.radio-chip input{position:absolute;opacity:0;pointer-events:none}.radio-chip:has(input:checked){background:var(--ink);color:#fff;border-color:var(--ink)}.radio-chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.booking>button[type=submit]:not(.ghost){width:100%;padding:14px;font-size:16px;margin-top:20px}.page.wide{max-width:1200px}.staff-filter{display:flex;gap:6px;margin-left:auto}.staff-filter select{padding:6px 10px}.cal-wrap{overflow-x:auto}.cal{display:grid;min-width:900px}.cal-corner,.cal-head{position:-webkit-sticky;position:sticky;top:0;border-bottom:1px solid var(--line);z-index:2}.cal-head{padding:8px;text-align:center;text-decoration:none;color:var(--ink-60);font-size:13px;border-left:1px solid var(--line)}.cal-head strong{color:var(--ink);font-size:15px}.cal-head.today strong{color:var(--accent)}.cal-hours{position:relative}.cal-hours span{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;color:var(--ink-40)}.cal-hours span:first-child{transform:none}.cal-day{position:relative;border-left:1px solid var(--line)}.cal-day.today{background:#fdf7fa}.cal-day i{position:absolute;left:0;right:0;border-top:1px solid var(--line);opacity:.6}.cal-ev{position:absolute;overflow:hidden;z-index:1;background:#f3eef7;border-left:3px solid var(--accent);border-radius:6px;padding:3px 6px;font-size:12px;line-height:1.3;text-decoration:none;color:var(--ink)}.cal-ev span{display:block;color:var(--ink-60);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ev.s-PENDING{background:#fbf0e3}.cal-ev.s-ARRIVED{background:#e6f4ef}.cal-ev.s-NO_SHOW{background:#fbe9e7;opacity:.7}.cal-ev:hover{filter:brightness(.97);z-index:3}.account{display:flex;gap:8px;align-items:center}.ghost-link{color:var(--ink-60);text-decoration:none;padding:10px 8px;font-weight:500}.secret{display:block;font-size:18px;letter-spacing:1px;padding:12px;background:var(--surface);text-align:center;word-break:break-all}.qr,.secret{border-radius:8px}.qr{width:220px;max-width:100%;margin:8px auto 12px;padding:8px;background:#fff}.qr svg{display:block;width:100%;height:auto}.legal h2{color:var(--ink);font-size:16px}.legal ul{padding-left:20px;margin:0 0 8px}.legal li{margin:4px 0}.legal li,.legal p{line-height:1.6}.row.check a{color:var(--accent)}.stack-tight{display:grid;grid-gap:6px;gap:6px}.row-form .grow{flex:1 1;align-self:center}.head-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.row-form.tight{margin:0;gap:4px}.reset-box{margin-top:6px;max-width:240px}.hours{border:1px solid var(--line);border-radius:10px;background:#fff}.hours-day{display:grid;grid-template-columns:140px 1fr;align-items:start;grid-gap:12px;gap:12px;padding:12px 14px}.hours-day+.hours-day{border-top:1px solid var(--line)}.hours-name{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;min-height:38px}.hours-name input{width:18px;height:18px;accent-color:var(--accent);margin:0}.hours-closed,.hours-day.off .hours-name span{color:var(--ink-40)}.hours-closed{font-size:14px;align-self:center}.hours-ranges{display:grid;grid-gap:8px;gap:8px}.hours-range{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.time-field{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 4px}.time-field:focus-within{border-color:var(--accent)}.time-field select{width:auto;border:0;background:transparent;padding:8px 4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;cursor:pointer}.time-field select:focus{outline:none}.time-colon{font-weight:600}.hours-dash,.time-colon{color:var(--ink-40)}.icon-btn{width:34px;height:34px;padding:0;display:inline-grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--ink-60)}.icon-btn:hover{background:var(--surface);border-color:var(--line);color:var(--ink)}.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media (max-width:560px){.hours-day{grid-template-columns:1fr;gap:6px}.hours-range{flex-wrap:nowrap;gap:4px}.time-field select{padding:8px 2px}.icon-btn{width:30px;height:30px}}body{font-size:15px;-webkit-font-smoothing:antialiased}h1{font-size:30px;font-weight:650;letter-spacing:-.01em;color:var(--ink-strong);margin:4px 0 6px}h2{font-size:15px;color:var(--ink);font-weight:600;letter-spacing:-.005em}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.card{border:0;border-radius:var(--radius);box-shadow:var(--shadow)}.list li{border-top-color:var(--line)}.list li,.row-link,.svc summary{padding:14px 20px}.row-link:hover,.svc details[open] summary,.svc summary:hover{background:var(--soft)}.inline-form{padding:14px 20px 20px}.stack{padding:24px}.summary{border:0;border-radius:var(--radius-sm);box-shadow:var(--shadow)}th{font-size:12px;text-transform:none;color:var(--ink-40)}td,th{padding:12px 20px}input,select,textarea{border-color:var(--line);border-radius:12px;background:var(--card);min-height:42px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgb(13 13 13/6%)}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--ink-strong)}.button,button{border-radius:999px;padding:10px 18px;background:var(--ink-strong)}.button:hover,button:hover:not(:disabled){filter:brightness(1.25)}button.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line)}button.ghost:hover:not(:disabled){filter:none;background:var(--soft)}button.danger{background:var(--danger)}.link-like,.row.check a{color:var(--blue-ink)}label,legend{color:var(--ink-60)}.chip{border:0;background:var(--card);box-shadow:var(--shadow)}.chip.on,.radio-chip:has(input:checked){background:var(--ink-strong);color:#fff}.chip.day{border-radius:16px}.badge,.pill{font-weight:600}.badge.warn,.cal-ev.s-PENDING,.p-PENDING{background:var(--yellow-soft);color:var(--yellow-ink)}.p-CONFIRMED{background:var(--blue-soft);color:var(--blue-ink)}.badge.ok,.cal-ev.s-ARRIVED,.p-ARRIVED{background:var(--green-soft);color:var(--green-ink)}.badge.bad,.cal-ev.s-NO_SHOW,.p-CANCELLED,.p-NO_SHOW{background:var(--coral-soft);color:var(--coral-ink)}.notice{border-radius:var(--radius-sm)}.notice.ok{background:var(--green-soft);color:var(--green-ink)}.notice.bad{background:var(--coral-soft);color:var(--coral-ink)}.act{border:0;background:var(--card);box-shadow:var(--shadow)}.act.a-CONFIRMED{background:var(--ink-strong)}.act.a-ARRIVED{background:var(--green-ink)}.act.a-NO_SHOW{background:var(--coral-ink)}.stats .card{padding:16px 18px}.stats strong{font-size:24px;color:var(--ink-strong)}.cal-corner,.cal-head{background:var(--card)}.cal-head.today strong{color:var(--blue-ink)}.cal-day.today{background:#f5f8fd}.cal-ev{background:var(--blue-soft);border-left:3px solid var(--blue);border-radius:10px}.cal-ev.s-PENDING{border-left-color:var(--yellow)}.cal-ev.s-ARRIVED{border-left-color:#7cc4a6}.cal-ev.s-NO_SHOW{border-left-color:var(--coral)}.hours{border:0;border-radius:var(--radius-sm);background:var(--soft)}.hours-day+.hours-day{border-top-color:var(--line)}.time-field{border-radius:12px}.time-field select{min-height:0;box-shadow:none}.time-field:focus-within{border-color:var(--ink)}.hours-name input{accent-color:var(--ink-strong)}.icon-btn{border-radius:999px}.icon-btn:hover{background:var(--card)}.topbar{background:transparent;border-bottom:0;padding:18px 28px}.brand-mark{background:var(--coral)}.app{display:grid;grid-template-columns:72px minmax(0,1fr);min-height:100vh}.rail{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 0;background:var(--surface);border-right:1px solid var(--line)}.rail-logo{width:40px;height:40px;border-radius:14px;background:var(--ink-strong);color:#fff;place-items:center;font-weight:700;margin-bottom:14px}.rail-btn,.rail-logo{display:grid;text-decoration:none}.rail-btn{width:42px;height:42px;border-radius:999px;place-items:center;padding:0;background:transparent;color:var(--ink-60);border:0}.rail-btn:hover{background:var(--card);color:var(--ink-strong);filter:none}.rail-bottom{margin-top:auto;display:grid;grid-gap:8px;gap:8px}.rail form{margin:0}.app-main{min-width:0}.appbar{display:flex;align-items:center;gap:20px;padding:18px 28px}.appbar-brand{display:grid;text-decoration:none;line-height:1.25;min-width:0}.appbar-brand strong{font-size:16px;color:var(--ink-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar-brand small{font-size:12px;color:var(--ink-40)}.pilltabs{display:flex;gap:2px;margin:0 auto;padding:4px;background:var(--card);border-radius:999px;box-shadow:var(--shadow);overflow-x:auto;scrollbar-width:none}.pilltabs::-webkit-scrollbar{display:none}.pilltabs a{padding:8px 16px;border-radius:999px;text-decoration:none;color:var(--ink-60);font-size:14px;font-weight:500;white-space:nowrap}.pilltabs a:hover{color:var(--ink-strong)}.pilltabs a.on{color:#fff}.appbar-right{display:flex;align-items:center;gap:8px}.avatar{place-items:center;text-decoration:none;background:var(--blue-soft);color:var(--blue-ink);font-weight:700;font-size:14px;position:relative}.avatar,.round-btn{width:40px;height:40px;border-radius:999px;display:grid}.round-btn{padding:0;place-items:center;background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.round-btn:hover:not(:disabled){filter:none;background:var(--soft)}.mobile-only{display:none;margin:0}.app .page{max-width:960px;margin:8px auto 40px;padding:28px 32px 36px;background:var(--panel);border-radius:32px}.app .page.narrow-wide{max-width:720px}.app .page.wide{max-width:1240px}@media (max-width:760px){.app{grid-template-columns:1fr}.rail{display:none}.mobile-only{display:block}.appbar{flex-wrap:wrap;gap:12px;padding:14px 16px 8px}.appbar-brand{flex:1 1}.pilltabs{order:3;width:100%;margin:0}.app .page{margin:4px 10px 32px;padding:20px 14px 28px;border-radius:24px}h1{font-size:24px}}:root{--lilac:#b9a7e8;--lilac-soft:#efeafb;--lilac-ink:#5b4a96;--green:#7cc4a6}.app .page{background:linear-gradient(180deg,#e3eaf7 0,var(--panel) 220px)}h1:after{content:"";display:block;width:44px;height:4px;border-radius:4px;margin-top:10px;background:linear-gradient(90deg,var(--blue) 0 50%,var(--coral) 50% 100%)}h2:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--coral);margin-right:8px;vertical-align:1px}.booking h2:before,.cat-card-head h2:before,.legal h2:before,.modal-head h2:before{display:none}.ava{width:34px;height:34px;border-radius:999px;display:inline-grid;place-items:center;flex:none;font-size:12px;font-weight:700;letter-spacing:.02em}.ava.sm{width:24px;height:24px;font-size:10px}.c-blue{background:var(--blue-soft);color:var(--blue-ink)}.c-coral{background:var(--coral-soft);color:var(--coral-ink)}.c-yellow{background:var(--yellow-soft);color:var(--yellow-ink)}.c-green{background:var(--green-soft);color:var(--green-ink)}.c-lilac{background:var(--lilac-soft);color:var(--lilac-ink)}.who{display:inline-flex;align-items:center;gap:10px}.avatar{background:linear-gradient(135deg,var(--coral),var(--yellow));color:#fff}.rail-btn.t-main{background:var(--ink-strong);color:#fff}.rail-btn.t-blue{color:var(--blue-ink)}.rail-btn.t-blue:hover{background:var(--blue-soft)}.rail-btn.t-coral{color:var(--coral-ink)}.rail-btn.t-coral:hover{background:var(--coral-soft)}.rail-btn.t-yellow{color:var(--yellow-ink)}.rail-btn.t-yellow:hover{background:var(--yellow-soft)}.rail-btn.t-lilac{color:var(--lilac-ink)}.rail-btn.t-lilac:hover{background:var(--lilac-soft)}.rail-logo{background:linear-gradient(135deg,var(--blue),var(--coral))}.list li.appt-row{position:relative}.list li.appt-row:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--blue)}.list li.appt-row.s-PENDING:before{background:var(--yellow)}.list li.appt-row.s-ARRIVED:before{background:var(--green)}.list li.appt-row.s-CANCELLED:before,.list li.appt-row.s-NO_SHOW:before{background:var(--coral)}.appt-main{display:flex;align-items:center;gap:12px;min-width:0}.time-tag{flex:none;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:999px;background:var(--blue-soft);color:var(--blue-ink)}.s-PENDING .time-tag{background:var(--yellow-soft);color:var(--yellow-ink)}.s-ARRIVED .time-tag{background:var(--green-soft);color:var(--green-ink)}.s-CANCELLED .time-tag,.s-NO_SHOW .time-tag{background:var(--coral-soft);color:var(--coral-ink)}.appt-meta{display:inline-flex;gap:8px}.appt-meta,.row-link{align-items:center}.daynav .new-appt,.new-appt{background:linear-gradient(135deg,#6f8fd0,var(--blue))}.stats .card:first-child{background:var(--blue-soft)}.stats .card:nth-child(2){background:var(--coral-soft)}.stats .card:nth-child(3){background:var(--yellow-soft)}.stats .card:nth-child(4){background:var(--green-soft)}.stats .card:first-child strong{color:var(--blue-ink)}.stats .card:nth-child(2) strong{color:var(--coral-ink)}.stats .card:nth-child(3) strong{color:var(--yellow-ink)}.stats .card:nth-child(4) strong{color:var(--green-ink)}.pilltabs a.on{background:var(--ink-strong);box-shadow:inset 0 -3px 0 var(--coral)}.chip.day.on,.chip.on{background:var(--ink-strong);box-shadow:inset 0 -3px 0 var(--blue)}.salon-logo{background:linear-gradient(135deg,var(--blue),var(--coral))}.check-chip:has(input:checked){background:var(--blue-soft);color:var(--blue-ink)}.hours-day:not(.off) .hours-name span{color:var(--ink-strong)}.hours-day:not(.off){box-shadow:inset 3px 0 0 var(--blue)}@media (max-width:760px){.appt-meta{flex-wrap:wrap;justify-content:flex-end}}.day-stats{margin:16px 0}.app{transition:grid-template-columns .18s ease}.app.rail-open{grid-template-columns:224px minmax(0,1fr)}.rail{overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.rail-head{display:grid;justify-items:center;grid-gap:8px;gap:8px;margin-bottom:10px}.rail-head .rail-logo{margin-bottom:0}.rail-btn{position:relative;flex:none}.rail-btn.on{background:var(--card);color:var(--ink-strong);box-shadow:var(--shadow)}.rail-btn.t-green{color:var(--green-ink)}.rail-btn.t-green:hover{background:var(--green-soft)}.rail-label{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.rail-toggle{color:var(--ink-40)}.rail-toggle .rail-label{display:none}.rail-open .rail{align-items:stretch;padding:18px 14px}.rail-open .rail-head{display:flex;align-items:center;justify-content:space-between}.rail-open .rail-btn{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:0 14px;border-radius:14px;font-size:14px;font-weight:500;text-align:left}.rail-open .rail-head .rail-toggle{width:42px;padding:0;justify-content:center;border-radius:999px}.rail-open .rail-label{position:static;width:auto;height:auto;overflow:hidden;-webkit-clip-path:none;clip-path:none;text-overflow:ellipsis}.rail-open .rail-toggle .rail-label{display:none}.rail-open .rail-btn.t-main{box-shadow:var(--shadow)}.rail-open .rail-bottom{display:grid;grid-gap:4px;gap:4px}.rail .icon{flex:none}.period-chips{align-items:center;margin:12px 0 0}.period-chips .chip{text-decoration:none}.range-form{display:flex;align-items:center;gap:6px;margin:0 0 0 auto}.range-form input[type=date]{width:auto;height:38px;padding:0 10px}.pay-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:12px;gap:12px;margin-bottom:8px}.pay-split .card{padding:6px 0 4px}.pay-split h3{font-size:13px;color:var(--ink-60);font-weight:600;margin:10px 20px 2px}.pay-split .list li{padding:10px 20px}.amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--green-ink);white-space:nowrap}.amount small{font-weight:500;color:var(--ink-40)}.amount.due,.pay-row.k-REFUND .amount{color:var(--coral-ink)}.list li.pay-row:before{background:var(--green)}.list li.pay-row.k-DEPOSIT:before{background:var(--blue)}.list li.pay-row.k-REFUND:before{background:var(--coral)}.pay-row .time-tag{background:var(--green-soft);color:var(--green-ink)}.pay-row.k-DEPOSIT .time-tag{background:var(--blue-soft);color:var(--blue-ink)}.pay-row.k-REFUND .time-tag{background:var(--coral-soft);color:var(--coral-ink)}.pill.k-PAYMENT{background:var(--green-soft);color:var(--green-ink)}.pill.k-DEPOSIT{background:var(--blue-soft);color:var(--blue-ink)}.pill.k-REFUND{background:var(--coral-soft);color:var(--coral-ink)}.pill.m-NAKIT{background:var(--yellow-soft);color:var(--yellow-ink)}.pill.m-KART{background:var(--lilac-soft);color:var(--lilac-ink)}.pill.m-HAVALE,.pill.m-ONLINE{background:var(--soft);color:var(--ink-60)}@media (max-width:760px){.range-form{margin:4px 0 0;width:100%}.range-form input[type=date]{flex:1 1;min-width:0}.pay-row .row-link{flex-direction:column;align-items:stretch;gap:8px}.pay-row .appt-meta{justify-content:flex-start;padding-left:2px}.pay-row .amount{margin-left:auto}.period-chips .chip{padding:8px 12px}}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h2{margin-bottom:10px}.button.ghost-btn{background:var(--card);color:var(--ink-strong);box-shadow:var(--shadow);text-decoration:none}.button.ghost-btn:hover{filter:none;background:var(--soft)}.pay-chart{padding:16px 20px 12px;margin-bottom:12px}.pay-chart-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}.pay-chart-head h3{font-size:13px;color:var(--ink-60);font-weight:600;margin:0}.pay-chart-head .muted{font-size:12px}.bars{gap:2px;height:150px;margin-top:14px;border-bottom:1px solid var(--line)}.bar-col,.bars{display:flex;align-items:flex-end}.bar-col{flex:1 1;height:100%;justify-content:center;position:relative;cursor:default;outline:none}.bar{width:min(100%,22px);min-height:2px;background:var(--blue);border-radius:4px 4px 0 0;transition:background .12s}.bar-col:focus .bar,.bar-col:hover .bar{background:#5f80c4}.bar-col[data-tip]:focus:after,.bar-col[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);z-index:2;background:var(--ink-strong);color:#fff;font-size:12px;font-weight:500;padding:5px 9px;border-radius:8px;white-space:nowrap;pointer-events:none}.bar-col:first-child[data-tip]:hover:after{left:0;transform:none}.bar-col:last-child[data-tip]:hover:after{left:auto;right:0;transform:none}.bars-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-40);margin-top:6px}.search select{width:auto;flex:none}td.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.theme-blue{--brand:var(--blue);--brand-soft:var(--blue-soft);--brand-btn:#4a6fb5}.theme-coral{--brand:var(--coral);--brand-soft:var(--coral-soft);--brand-btn:#b8423f}.theme-lilac{--brand:var(--lilac);--brand-soft:var(--lilac-soft);--brand-btn:#6f5bb5}.theme-green{--brand:var(--green);--brand-soft:var(--green-soft);--brand-btn:#277556}.theme-yellow{--brand:var(--yellow);--brand-soft:var(--yellow-soft);--brand-btn:#8f5a0c}.theme-ink{--brand:#3a3f4b;--brand-soft:#e9ebef;--brand-btn:var(--ink-strong)}.brand-scope .button,.brand-scope button:not(.ghost):not(.chip){background:var(--brand-btn)}.brand-scope .chip.day.on,.brand-scope .chip.on{background:var(--brand-btn);color:#fff;box-shadow:none}.brand-scope .salon-logo{background:linear-gradient(135deg,var(--brand),var(--brand-btn))}.brand-scope h1:after,.brand-scope h2:before{background:var(--brand)}.brand-scope.page{background:linear-gradient(180deg,var(--brand-soft) 0,transparent 260px);border-radius:32px}.welcome-note{background:var(--card);border-left:4px solid var(--brand);border-radius:14px;padding:12px 16px;margin:14px 0 4px;color:var(--ink);box-shadow:var(--shadow);white-space:pre-line}.theme-pick{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0}.theme-pick legend{font-size:14px;font-weight:500;margin-bottom:8px;padding:0}.theme-swatch{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:999px;background:var(--card);box-shadow:var(--shadow);cursor:pointer;font-size:14px}.theme-swatch input{position:absolute;opacity:0;pointer-events:none}.swatch-dot{width:22px;height:22px;border-radius:999px;background:linear-gradient(135deg,var(--brand),var(--brand-btn))}.theme-swatch:has(input:checked){outline:2px solid var(--brand-btn);outline-offset:1px;font-weight:600}.theme-swatch:has(input:focus-visible){outline:2px solid var(--ink-strong)}.cal-day{cursor:pointer}.cal-ev.movable{cursor:-webkit-grab;cursor:grab;touch-action:auto}.cal-ev.movable,.cal.is-dragging,.cal.is-dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.cal.is-dragging,.cal.is-dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important}.cal-ev.drag-src{opacity:.35}.cal-ghost{z-index:6;pointer-events:none;box-shadow:0 8px 24px rgba(13,13,13,.18);outline:2px solid var(--blue);background:#fff}.cal-off{position:absolute;left:0;right:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(135deg,rgba(37,45,61,.06) 0 6px,rgba(37,45,61,.02) 6px 12px);border-top:2px solid var(--ink-40)}.cal-off span{display:inline-block;margin:3px 4px;font-size:11px;font-weight:600;color:var(--ink-60);background:var(--card);padding:1px 6px;border-radius:6px}.cal-help{margin-top:10px}.drawer-layer{position:fixed;inset:0;z-index:50;background:rgba(13,13,13,.22);display:flex;justify-content:flex-end;animation:fade .15s ease}.drawer{width:min(420px,100%);height:100%;background:var(--panel);box-shadow:-12px 0 40px rgba(13,13,13,.15);display:flex;flex-direction:column;animation:slide-in .2s ease;border-radius:24px 0 0 24px;overflow:hidden}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 12px}.drawer-head strong{display:block;font-size:17px;color:var(--ink-strong)}.drawer-head small{color:var(--ink-60);font-size:14px}.drawer-tabs{display:flex;gap:4px;margin:0 20px 6px;padding:4px;background:var(--card);border-radius:999px;box-shadow:var(--shadow)}.drawer-tabs button{flex:1 1;background:transparent;color:var(--ink-60);padding:8px}.drawer-tabs button.on{background:var(--ink-strong);color:#fff}.drawer-body{padding:12px 20px 28px;overflow-y:auto;flex:1 1}.svc-pick{border:0;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px}.svc-pick legend{font-size:14px;font-weight:500;margin-bottom:6px;padding:0}.svc-group{background:var(--card);border-radius:14px;padding:8px 6px;box-shadow:var(--shadow)}.svc-group>small{gap:6px;font-size:12px;color:var(--ink-60);font-weight:600;padding:2px 8px 4px}.svc-group>small,.svc-opt{display:flex;align-items:center}.svc-opt{gap:10px;padding:7px 8px;border-radius:10px;font-size:14px;cursor:pointer}.svc-opt:hover{background:var(--soft)}.svc-opt:has(input:checked){background:var(--blue-soft)}.svc-opt span{flex:1 1}.svc-opt em{font-style:normal;font-size:12px;color:var(--ink-40);white-space:nowrap}.drawer-sum{margin:0;font-size:13px;color:var(--ink-60)}.book-flow{display:flex;flex-direction:column;gap:14px;padding-bottom:0}.step{background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:14px 16px 16px;display:grid;grid-gap:10px;gap:10px}.step h4{margin:0;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink-strong)}.step h4 span{width:22px;height:22px;border-radius:999px;display:inline-grid;place-items:center;background:var(--ink-strong);color:#fff;font-size:12px}.step label{font-size:13px;color:var(--ink-60)}.step .grid2{gap:10px}.known{margin:0;font-size:13px;color:var(--green-ink,#2f6b45);background:var(--green-soft);padding:6px 10px;border-radius:10px;width:-moz-fit-content;width:fit-content}.picked{display:flex;flex-wrap:wrap;gap:6px}.picked-pill{background:var(--blue-soft);color:var(--blue-ink);padding:4px 10px;font-size:13px;font-weight:600;border-radius:999px}.picked-pill span{margin-left:4px;opacity:.7}.cat-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.cat-tabs::-webkit-scrollbar{display:none}.cat-tabs button{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;background:var(--soft);color:var(--ink-60);padding:6px 12px;font-size:13px;border-radius:999px}.cat-tabs button.on{background:var(--ink-strong);color:#fff}.cat-tabs .dot{width:8px;height:8px;border-radius:999px}.cat-tabs i{position:absolute;top:2px;right:2px;width:7px;height:7px;border-radius:999px;background:var(--green)}.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.svc-tile{position:relative;display:grid;grid-gap:2px;gap:2px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);cursor:pointer;background:var(--panel)}.svc-tile:hover{border-color:var(--ink-40)}.svc-tile.on{border-color:var(--blue);background:var(--blue-soft)}.svc-tile input{position:absolute;opacity:0;pointer-events:none}.svc-tile:has(input:focus-visible){outline:2px solid var(--ink-strong);outline-offset:2px}.svc-tile strong{font-size:14px;color:var(--ink-strong);font-weight:600;line-height:1.25}.svc-tile small{font-size:12px;color:var(--ink-60)}.cust-list{display:grid;grid-gap:2px;gap:2px;max-height:260px;overflow-y:auto}.cust-list>small{padding:2px 4px;font-size:12px}.cust-list button{display:grid;grid-template-columns:30px 1fr auto;align-items:center;grid-gap:10px;gap:10px;text-align:left;background:transparent;color:var(--ink-strong);padding:7px 8px;border-radius:10px;font-weight:500;font-size:14px}.cust-list button:focus-visible,.cust-list button:hover{background:var(--soft)}.cust-list button small{color:var(--ink-60);font-size:12px;font-weight:400}.cust-av{width:30px;height:30px;border-radius:999px;display:inline-grid;place-items:center;background:var(--lilac-soft);color:var(--lilac-ink);font-weight:600;font-size:13px}.cust-picked{display:grid;grid-template-columns:30px 1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:10px 12px;border-radius:12px;background:var(--blue-soft)}.cust-picked strong{display:block;font-size:15px;color:var(--ink-strong)}.cust-picked small{font-size:12px;color:var(--ink-60)}.fix-status{font-size:13px;margin:0}.link-btn{background:none;padding:0;color:var(--blue-ink);font-size:13px;font-weight:600;width:-moz-fit-content;width:fit-content}.book-foot{position:-webkit-sticky;position:sticky;bottom:0;margin:0 -20px;padding:14px 20px 20px;background:var(--panel);border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;box-shadow:0 -8px 20px rgba(13,13,13,.05)}.book-sum{display:flex;align-items:baseline;gap:10px;font-size:14px}.book-sum strong{color:var(--ink-strong);font-size:16px}.book-sum span{color:var(--ink-60);flex:1 1}.book-sum b{font-size:16px;color:var(--ink-strong)}.small-check{font-size:13px;color:var(--ink-60)}.book-foot button[type=submit]{width:100%}@keyframes slide-in{0%{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:12px;background:var(--ink-strong);color:#fff;padding:10px 10px 10px 18px;border-radius:999px;box-shadow:0 10px 30px rgba(13,13,13,.25);font-size:14px;max-width:calc(100% - 32px)}.toast.bad{background:#8f2f2d}.toast a{color:#fff;font-weight:600}.toast button{background:rgba(255,255,255,.15);padding:2px 10px;font-size:16px}@media (max-width:760px){.drawer{border-radius:0}}.branch-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px;margin-bottom:8px}.branch-card{position:relative;display:grid;grid-gap:4px;gap:4px;padding:16px 18px;background:var(--card);border-radius:18px;box-shadow:var(--shadow);cursor:pointer;border:2px solid transparent}.branch-card input{position:absolute;opacity:0;pointer-events:none}.branch-card strong{font-size:16px;color:var(--ink-strong)}.branch-card span{font-size:13px;color:var(--ink-60)}.branch-card a{font-size:13px;width:-moz-fit-content;width:fit-content}.branch-card.on{border-color:var(--brand-btn,var(--ink-strong));background:var(--brand-soft,var(--blue-soft))}.branch-card:has(input:focus-visible){outline:2px solid var(--ink-strong);outline-offset:2px}.branch-list{display:grid;grid-gap:10px;gap:10px}.branch-item{padding:0;overflow:hidden}.branch-item summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;cursor:pointer;flex-wrap:wrap}.branch-item summary .muted{font-size:13px}.branch-item.off{opacity:.7}.branch-item .branch-form{padding:4px 20px 20px}.branch-item.add summary{color:var(--blue-ink)}.pill.branch-pill{background:var(--lilac-soft);color:var(--lilac-ink);margin-left:8px}.wa-status{display:flex;gap:12px;align-items:flex-start}.wa-status strong{font-size:15px}.wa-status p{margin:2px 0 0}.wa-dot{flex:none;width:12px;height:12px;border-radius:999px;margin-top:4px;background:var(--yellow);box-shadow:0 0 0 4px var(--yellow-soft)}.wa-dot.on{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.wa-numbers li{padding:10px 0;font-size:14px}.app .page.wide:has(.cal2-bar){max-width:1480px}.cal-tabs-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.cal-tabs-top h1{margin:0}.seg{display:inline-flex;gap:2px;padding:4px;background:var(--card);border-radius:999px;box-shadow:var(--shadow)}.seg a,.seg button{padding:7px 14px;border-radius:999px;text-decoration:none;color:var(--ink-60);font-size:14px;font-weight:500;background:transparent;white-space:nowrap}.seg a:hover,.seg button:hover:not(:disabled){color:var(--ink-strong);filter:none}.seg a.on,.seg button.on{background:var(--ink-strong);color:#fff}.seg.small a,.seg.small button{padding:6px 12px;font-size:13px}.cal2-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.cal2-bar>button.ghost,.cal2-bar>select{min-height:40px}.cal2-bar>button.ghost.is-on{background:var(--ink-strong);color:#fff;border-color:var(--ink-strong)}.cal2-bar>select{width:auto}.cal2-nav{display:flex;align-items:center;gap:4px;position:relative}.cal2-label{background:transparent;color:var(--ink-strong);font-weight:600;font-size:16px;padding:8px 10px}.cal2-label span{font-size:11px;color:var(--ink-40)}.cal2-label:hover:not(:disabled){filter:none;background:var(--card)}.cal2-date{position:absolute;left:44px;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0;min-height:0}.cal2-spacer{flex:1 1}.cal2-menu{position:relative}.menu-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:200px;background:var(--card);border-radius:14px;box-shadow:0 12px 32px rgba(13,13,13,.16);padding:6px;display:grid}.menu-pop a,.menu-pop button{background:transparent;color:var(--ink);text-align:left;padding:9px 12px;border-radius:10px;font-size:14px;text-decoration:none;font-weight:500}.menu-pop a:hover,.menu-pop button:hover{background:var(--soft);filter:none}.cal2-body{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}.cal2-body.with-panel{grid-template-columns:minmax(0,1fr) 270px}.cal2-main{position:relative;min-width:0}.cal2-main.is-loading .cal2-month,.cal2-main.is-loading .cal2-wrap{filter:blur(2px);opacity:.6;pointer-events:none}.cal2-loading{position:absolute;inset:0;display:grid;place-content:center;grid-auto-flow:column;grid-gap:10px;gap:10px;align-items:center;font-weight:600;color:var(--ink-strong);z-index:8}.spinner{width:18px;height:18px;border-radius:999px;border:2.5px solid var(--line);border-top-color:var(--ink-strong);animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.cal2-empty{padding:40px;text-align:center}.cal2-wrap{overflow:auto;max-height:calc(100vh - 250px);min-height:420px;padding:0}.cal2{display:grid;position:relative}.cal2-corner,.cal2-head{position:-webkit-sticky;position:sticky;top:0;z-index:4;background:var(--card);border-bottom:1px solid var(--line)}.cal2-corner{left:0;z-index:5;font-size:10px;color:var(--ink-40);display:grid;place-items:end center;padding-bottom:6px}.cal2-head{padding:10px 8px;text-align:center;font-size:13px;color:var(--ink-60);border-left:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.cal2-head strong{color:var(--ink-strong);font-size:15px;margin-right:2px}.cal2-head.today{color:var(--blue-ink)}.cal2-head.today strong{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:999px;background:var(--ink-strong);color:#fff;font-size:13px}.cal2-dot{display:inline-block;width:9px;height:9px;border-radius:999px;margin-right:6px;vertical-align:0;flex:none}.cal2-allday-label{position:-webkit-sticky;position:sticky;left:0;z-index:3;background:var(--card);font-size:10px;color:var(--ink-40);text-align:center;padding:6px 2px}.cal2-allday,.cal2-allday-label{border-bottom:1px solid var(--line)}.cal2-allday{border-left:1px solid var(--line);padding:3px;display:flex;flex-wrap:wrap;gap:3px;min-height:26px}.cal2-block-chip{font-size:11px;font-weight:600;background:#eceef2;color:var(--ink-60);padding:2px 8px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cal2-hours{position:-webkit-sticky;position:sticky;left:0;z-index:3;background:var(--card)}.cal2-hours span{position:absolute;right:8px;transform:translateY(-50%);font-size:11px;color:var(--ink-40)}.cal2-hours span:first-child{transform:none}.cal2-col{position:relative;border-left:1px solid var(--line);cursor:pointer}.cal2-col.today{background:#f7f9fd}.cal2-col>i{position:absolute;left:0;right:0;border-top:1px dashed var(--line);pointer-events:none}.cal2-col>i.hr{border-top-style:solid}.cal2-closed{background:rgba(37,45,61,.045)}.cal2-closed,.cal2-now{position:absolute;left:0;right:0;pointer-events:none}.cal2-now{border-top:2px solid #e5484d;z-index:7}.cal2-now:before{content:"";position:absolute;left:-1px;top:-6px;border:5px solid transparent;border-left:6px solid #e5484d}.cal2-ev{--c:var(--blue);position:absolute;z-index:2;overflow:hidden;border-radius:8px;padding:3px 7px 3px 9px;font-size:12px;line-height:1.3;background:color-mix(in srgb,var(--c) 15%,#fff);color:var(--ink-strong);border-left:3px solid var(--c);cursor:pointer;box-shadow:0 1px 2px rgba(13,13,13,.06)}.cal2-ev:focus-visible,.cal2-ev:hover{z-index:6;box-shadow:0 4px 14px rgba(13,13,13,.14);outline:none}.cal2-ev-t{font-weight:600}.cal2-ev-s,.cal2-ev-t{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal2-ev-s{color:var(--ink-60);font-size:11px}.cal2-ev.s-PENDING{background:#fff;border:1.5px dashed var(--c);border-left:3px solid var(--c)}.cal2-ev.s-CANCELLED{background:#fff;border-left:1px solid var(--c);border:1px solid var(--c);border-left-width:3px;opacity:.8}.cal2-ev.s-CANCELLED .cal2-ev-s,.cal2-ev.s-CANCELLED .cal2-ev-t{text-decoration:line-through;color:var(--ink-40)}.cal2-ev.s-NO_SHOW{opacity:.55}.cal2-ev.s-ARRIVED .cal2-ev-t b{color:var(--green-ink)}.cal2-ev.s-NO_SHOW .cal2-ev-t b{color:var(--coral-ink)}.cal2-ev.movable{cursor:-webkit-grab;cursor:grab}.cal2-ev.movable,.cal2.is-dragging,.cal2.is-dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.cal2.is-dragging,.cal2.is-dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important}.cal2-ev.drag-src{opacity:.3}.cal2-ghost{z-index:9;pointer-events:none;box-shadow:0 8px 24px rgba(13,13,13,.2);outline:2px solid var(--ink-strong)}.cal2-block{--c:#9aa0aa;background:#eceef2;border-left-color:#9aa0aa;cursor:default;z-index:1}.cal2-block .cal2-ev-t{color:var(--ink-60)}.cal2-lock{position:absolute;top:3px;right:6px;font-size:12px;color:var(--ink-40)}.cal2-tip{position:fixed;z-index:70;max-width:240px;background:#1f2430;color:#fff;padding:9px 12px;border-radius:10px;font-size:12px;display:grid;grid-gap:2px;gap:2px;pointer-events:none;box-shadow:0 10px 30px rgba(13,13,13,.25)}.cal2-tip strong{font-size:13px}.cal2-tip em{font-style:normal;color:#c7ccd6;font-size:11px;margin-top:2px}.cal2-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0;overflow:hidden}.cal2-mhead{padding:8px;font-size:12px;font-weight:600;color:var(--ink-60);text-align:center;background:var(--card)}.cal2-mcell,.cal2-mhead{border-bottom:1px solid var(--line)}.cal2-mcell{min-height:118px;border-right:1px solid var(--line);padding:4px;display:flex;flex-direction:column;gap:2px;cursor:pointer;min-width:0}.cal2-mcell:nth-child(7n){border-right:0}.cal2-mcell.out .cal2-mday{color:var(--ink-40)}.cal2-mcell.out{background:#fafbfc}.cal2-mday{align-self:flex-start;background:transparent;color:var(--ink-strong);font-size:13px;font-weight:600;padding:2px 7px;border-radius:999px;min-height:0}.cal2-mday:hover:not(:disabled){background:var(--soft);filter:none}.cal2-mcell.today .cal2-mday{background:var(--ink-strong);color:#fff}.cal2-mev{--c:var(--blue);display:flex;align-items:center;gap:5px;width:100%;text-align:left;background:color-mix(in srgb,var(--c) 13%,#fff);color:var(--ink-strong);font-size:11.5px;font-weight:500;padding:2px 6px;border-radius:6px;min-height:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal2-mev i{flex:none;width:6px;height:6px;border-radius:999px;background:var(--c)}.cal2-mev:hover:not(:disabled){filter:brightness(.96)}.cal2-mev.s-CANCELLED{background:#fff;text-decoration:line-through;color:var(--ink-40)}.cal2-mev.s-NO_SHOW{opacity:.55}.cal2-mblock{background:#eceef2;color:var(--ink-60);display:block}.cal2-more{background:transparent;color:var(--blue-ink);font-size:12px;font-weight:600;padding:1px 6px;text-align:left;min-height:0}.cal2-panel{grid-template-columns:minmax(0,1fr);align-content:start;background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:14px 16px 16px;display:grid;grid-gap:12px;gap:12px;position:-webkit-sticky;position:sticky;top:12px;max-height:calc(100vh - 40px);overflow-y:auto}.cal2-panel>header{display:flex;align-items:center;justify-content:space-between}.cal2-panel>header strong{font-size:15px;color:var(--ink-strong)}.cal2-panel .round-btn{width:32px;height:32px;box-shadow:none;background:var(--soft)}.cal2-type{border:0;padding:0;margin:0;display:grid;grid-gap:4px;gap:4px}.cal2-fhead span,.cal2-type legend{font-size:12px;font-weight:600;color:var(--ink-40);text-transform:uppercase;letter-spacing:.04em;padding:0;margin-bottom:4px}.cal2-panel .row.check{font-size:14px;color:var(--ink);gap:8px;align-items:center}.cal2-fhead{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px}.cal2-fhead span{margin:0}.cal2-acc{border:1px solid var(--line);border-radius:14px;overflow:hidden}.cal2-acc.open{border-color:var(--ink-40)}.cal2-acc-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--soft);color:var(--ink-strong);border-radius:0;padding:10px 12px;font-size:14px;font-weight:600}.cal2-acc-head:hover:not(:disabled){filter:none;background:#eef1f5}.cal2-acc-body{display:grid;grid-gap:6px;gap:6px;padding:10px 12px 12px}.cal2-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:13px}.drawer-layer.center{justify-content:center;align-items:center;padding:16px}.modal{width:min(460px,100%);padding:0 0 18px;animation:fade .15s ease}.modal-body{padding:0 20px;display:grid;grid-gap:16px;gap:16px}.modal-body fieldset{border:0;padding:0;margin:0;display:grid;grid-gap:8px;gap:8px}.modal-body legend{font-size:14px;font-weight:500;color:var(--ink-60);padding:0;margin-bottom:6px}.row-tight{display:flex;gap:6px;align-items:center}.row-tight .round-btn{text-decoration:none}.ap-detail{display:grid;grid-gap:12px;gap:12px}.ap-kind{font-size:12px;font-weight:600;color:var(--blue-ink);background:var(--blue-soft);padding:2px 10px;border-radius:999px;width:-moz-fit-content;width:fit-content}.ap-detail h3{margin:0;font-size:18px;color:var(--ink-strong)}.ap-detail dl{margin:0;display:grid;grid-template-columns:118px 1fr;grid-gap:9px 12px;gap:9px 12px;background:var(--card);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow);font-size:14px}.ap-detail dt{color:var(--ink-60)}.ap-detail dd{margin:0;color:var(--ink-strong);overflow-wrap:anywhere}.ap-foot{border-top:1px solid var(--line);padding:14px 20px 20px;display:grid;grid-gap:8px;gap:8px;background:var(--panel)}.ap-status{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:12px;gap:12px;font-size:14px;color:var(--ink-strong)}.ap-status,.ap-status select{font-weight:600}.slot-sug{display:grid;grid-gap:6px;gap:6px}.slot-sug>small{font-size:12px;color:var(--ink-60);font-weight:600}.slot-sug .muted{font-size:13px}.slot-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:120px;overflow-y:auto}.slot-chips button{background:var(--soft);color:var(--ink-strong);padding:5px 10px;font-size:13px;border-radius:999px;min-height:0}.slot-chips button.on{background:var(--ink-strong);color:#fff}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.list-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.list-bar .button.small-btn{padding:8px 14px;font-size:14px;text-decoration:none}.list-filters{padding:0;margin-bottom:12px;overflow:hidden}.list-filters summary{padding:12px 18px;cursor:pointer;font-weight:600;color:var(--ink-strong);font-size:14px}.list-filter-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:10px 12px;gap:10px 12px;padding:0 18px 16px;align-items:end}.list-filter-form label{font-size:13px;display:grid;grid-gap:4px;gap:4px}.list-filter-actions{display:flex;gap:12px;align-items:center;justify-content:flex-end;grid-column:1/-1}.table-card{overflow-x:auto;padding:0}.ap-table{width:100%;border-collapse:collapse;font-size:14px}.ap-table th{text-align:left;font-size:12px;color:var(--ink-40);font-weight:600;padding:12px 14px;white-space:nowrap}.ap-table td,.ap-table th{border-bottom:1px solid var(--line)}.ap-table td{padding:10px 14px;vertical-align:middle}.ap-table tr:last-child td{border-bottom:0}.ap-table td:last-child a{text-decoration:none;font-size:18px;color:var(--ink-40)}.ap-cust{display:flex;align-items:center;gap:10px}.ap-cust strong{display:block;color:var(--ink-strong);font-weight:600}.ap-cust small{color:var(--ink-60);font-size:12px}.status-cell{display:grid;grid-gap:4px;gap:4px}.status-select{min-height:32px;padding:4px 10px;font-size:13px;font-weight:600;border-radius:999px;width:auto;border:0}.moved-tag{display:block;font-size:11px;color:var(--yellow-ink);font-weight:600}.pager{justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:14px}.pager,.pager-links{display:flex;align-items:center}.pager-links{gap:14px}.pager-size{display:flex;gap:6px;align-items:center}.pager-size a{padding:2px 8px;border-radius:999px;text-decoration:none}.pager-size a.on{background:var(--ink-strong);color:#fff}@media (max-width:1100px){.cal2-body.with-panel{grid-template-columns:minmax(0,1fr)}.cal2-panel{position:fixed;right:0;top:0;bottom:0;width:min(320px,100%);max-height:none;z-index:45;border-radius:20px 0 0 20px;box-shadow:-12px 0 40px rgba(13,13,13,.15)}}@media (max-width:760px){.cal2-bar{gap:6px}.cal2-label{font-size:14px}.cal2-wrap{max-height:calc(100vh - 220px)}.cal2-mcell{min-height:84px}.cal2-mev{font-size:10.5px}}@media print{.appbar,.cal-help,.cal-tabs-top nav,.cal2-bar,.cal2-panel,.rail,.toast{display:none!important}.cal2-body.with-panel{grid-template-columns:1fr}.cal2-wrap{max-height:none;overflow:visible}.app{display:block}.app .page{margin:0;padding:0;background:#fff;max-width:none}}.appt-actions{flex-wrap:wrap;margin:4px 0 8px}.chip.day.full:not(.on){opacity:.38}.sticky-bar{display:none}@media (max-width:720px){.sticky-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:-webkit-sticky;position:sticky;bottom:0;z-index:5;margin:16px -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -6px 16px rgb(0 0 0/6%)}.sticky-bar span{display:grid;line-height:1.25}.sticky-bar small{font-size:12px;color:var(--ink-60)}.sticky-bar button{flex:none}}button.ghost.danger-btn{color:var(--danger)}.delete-row{display:flex;justify-content:flex-end;padding:0 0 12px}.inline-delete{display:inline;margin-left:8px}.delete-row .inline-delete{margin-left:0}.notice.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;margin:0;max-width:min(92vw,460px);box-shadow:0 8px 24px rgba(0,0,0,.14);font-weight:600;pointer-events:none;animation:toast-in .25s ease-out,toast-out .4s ease-in 3.5s forwards}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-out{to{opacity:0;transform:translate(-50%,12px);visibility:hidden}}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.page-head .head-actions{display:flex;gap:8px;flex-wrap:wrap}.button.add-btn,button.add-btn{white-space:nowrap}.rec-table{width:100%;border-collapse:collapse;font-size:14px}.rec-table th{text-align:left;font-weight:500;font-size:12px;color:var(--ink-60);padding:10px 16px}.rec-table td,.rec-table th{border-bottom:1px solid var(--line)}.rec-table td{padding:12px 16px;vertical-align:middle}.rec-table tr:last-child td{border-bottom:0}.rec-table tr.off td:not(.acts){opacity:.55}.rec-table .num,.rec-table td.acts{text-align:right;white-space:nowrap}.rec-table td.acts{width:1%}.rec-table .who{display:flex;align-items:center;gap:10px}.acts>*+*{margin-left:6px}.act-btn{display:inline-flex;align-items:center;gap:6px;background:var(--card);color:var(--ink);border:1px solid var(--line);padding:6px 10px;border-radius:999px;font-size:13px;font-weight:600;min-height:32px;cursor:pointer}.act-btn:hover{background:var(--soft);filter:none}.act-btn .icon{width:15px;height:15px}.act-btn.danger,button.act-btn.danger{background:var(--card);color:var(--danger)}button.act-btn.danger:hover{background:#fdecec}.cat-card-head{justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.cat-card-head,.cat-card-head h2{display:flex;align-items:center;gap:8px}.cat-card-head h2{margin:0;font-size:16px}.cat-card-head .acts>*+*{margin-left:6px}.status-pill{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--green-soft);color:var(--green-ink);font-weight:600;white-space:nowrap}.status-pill.off{background:var(--soft);color:var(--ink-60)}dialog.modal{border:0;border-radius:18px;padding:0;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);box-shadow:0 24px 64px rgba(0,0,0,.22);background:var(--card);color:var(--ink)}dialog.modal::-webkit-backdrop{background:rgba(20,20,30,.38)}dialog.modal::backdrop{background:rgba(20,20,30,.38)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:var(--card);z-index:1}.modal-head h2{margin:0;font-size:18px}.modal-body{padding:16px 20px 20px}.modal-body form{display:grid;grid-gap:12px;gap:12px}@media (max-width:640px){.act-btn span,.rec-table .hide-sm{display:none}.act-btn{padding:6px 8px}}.cat-card{padding:0;overflow:hidden;margin-bottom:16px}.cat-card .empty{padding:16px;margin:0}td.acts{text-align:right;white-space:nowrap}a.act-btn{text-decoration:none}.customer-note{white-space:pre-wrap;margin:12px 0}dialog.dlg{position:fixed;inset:0;margin:auto;border:0;border-radius:18px;padding:0;height:-moz-fit-content;height:fit-content;width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 24px 64px rgba(0,0,0,.22);background:var(--card);color:var(--ink);text-align:left}dialog.dlg::-webkit-backdrop{background:rgba(20,20,30,.42)}dialog.dlg::backdrop{background:rgba(20,20,30,.42)}.dlg-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:var(--card);z-index:1}.dlg-head h2{margin:0;font-size:18px}.dlg-head h2:before{display:none}.dlg-body{padding:18px 20px 20px;display:grid;grid-gap:14px;gap:14px}.dlg-body form{margin:0}.dlg-body .grid2,.dlg-body .grid3,.dlg-body form{display:grid;grid-gap:12px;gap:12px}.dlg-body .grid2{grid-template-columns:1fr 1fr}.dlg-body .grid3{grid-template-columns:1fr 1fr 1fr}.dlg-body .row-form>input,.dlg-body label>input:not([type=checkbox]):not([type=radio]),.dlg-body label>select,.dlg-body label>textarea{width:100%;min-width:0}.dlg-body .row.check{display:flex;align-items:center;gap:10px}.dlg-danger-zone,.dlg-delete{border-top:1px solid var(--line);padding-top:12px}.dlg-delete{display:flex;justify-content:flex-start}button.link-danger{background:transparent;color:var(--danger);padding:6px 0;font-weight:600;display:inline-flex;align-items:center;gap:6px;border-radius:6px}button.link-danger:hover:not(:disabled){filter:none;text-decoration:underline}button.link-danger .icon{width:15px;height:15px}@media (max-width:640px){.dlg-body .grid2,.dlg-body .grid3{grid-template-columns:1fr}}.rec-table .sel-cell{width:36px;padding-right:0}.rec-table .sel-cell input{width:18px;height:18px;accent-color:var(--ink-strong);cursor:pointer;margin:0}.rec-table tr.clickable{cursor:pointer}.rec-table tbody tr.clickable:hover td{background:var(--soft)}.rec-table tr.sel td{background:color-mix(in srgb,var(--accent,#6b7cff) 10%,transparent)}.sel-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:8px;background:var(--ink-strong);color:#fff;padding:8px 8px 8px 18px;border-radius:999px;box-shadow:0 12px 32px rgba(0,0,0,.25);animation:toast-in .2s ease-out;white-space:nowrap}.sel-bar form{margin:0;display:inline}.sel-count{margin-right:6px;font-size:14px}button.sel-btn{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.14);color:#fff;padding:8px 14px;font-size:14px}button.sel-btn .icon{width:15px;height:15px}button.sel-btn.danger{background:var(--danger)}button.sel-btn.ghost{background:transparent;color:rgba(255,255,255,.8)}.cat-card-head .edit-trigger{background:transparent;color:var(--ink);padding:4px 8px;margin:-4px -8px;border-radius:10px;display:inline-flex;align-items:center;gap:8px;font-size:16px}.cat-card-head .edit-trigger:hover:not(:disabled){background:var(--soft);filter:none}@media (max-width:640px){.sel-bar{left:12px;right:12px;transform:none;justify-content:space-between}}body:has(.sel-bar) .notice.toast{bottom:84px}.dlg-body form>*,.dlg-body>*{min-width:0}@media (max-width:640px){dialog.dlg{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.dlg-body{padding:14px}.dlg-body .hours-day{padding:10px}.dlg-body .hours-range{gap:2px}}