@font-face{font-family:"Pretendard";src:url("fonts/PretendardVariable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{--ink:#203653;--muted:#768397;--green:#2864df;--light:#eaf1ff;--line:#dfe6f0;--bg:#f4f7fc;--red:#ae4236}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 "Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;-webkit-text-size-adjust:100%}
button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:12px 18px;min-height:48px;font-weight:700}button:hover:not(:disabled){background:var(--light)}button:disabled{cursor:not-allowed;background:#eef0f3;border-color:#e2e5ea;color:#969da8}.primary{background:var(--green);border-color:var(--green);color:#fff}.primary:hover:not(:disabled){background:#1d4eb5}.secondary{background:var(--light);color:var(--green);border-color:var(--light)}button:focus-visible,a:focus-visible,input:focus,select:focus{outline:3px solid #8aaff5;outline-offset:3px}
header{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1232px)/2))}.brand{font-size:20px;font-weight:800;letter-spacing:-.5px}main{max-width:1280px;margin:auto;padding:0 24px 64px}h1{font-size:36px;line-height:1.25;letter-spacing:-1.2px;margin:0 0 10px}h2{font-size:22px;letter-spacing:-.6px;margin:0 0 20px}h3{font-size:18px;margin:24px 0 12px}p{margin:0 0 20px}.hint{font-size:14px;color:var(--muted);line-height:1.7}.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px}.admin-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:32px 0 24px}.actions{display:flex;gap:10px}.actions>*{flex:1}.admin-top .actions{flex-shrink:0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{padding:22px}.stat span{display:block;font-size:14px;color:var(--muted)}.stat strong{display:block;font-size:38px;letter-spacing:-1px;line-height:1.35;margin-top:8px;font-variant-numeric:tabular-nums}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.toolbar h2{margin:0 auto 0 0}.toolbar input{width:auto;max-width:300px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;margin:16px 0 8px;font-size:16px;font-weight:600}input,select{width:100%;min-width:0;min-height:54px;border:1px solid #d0dbeb;background:#fff;color:var(--ink);border-radius:12px;padding:12px 14px}input[type=date]{font-weight:650;font-variant-numeric:tabular-nums}.full{width:100%}.spaced{margin-top:20px}
.staff-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.staff-slot{min-width:0;border:1px solid var(--line);border-radius:18px;background:#fff;padding:20px}.slot-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.slot-heading>strong{font-size:25px;letter-spacing:-.6px;font-variant-numeric:tabular-nums}.badge{display:inline-block;font-size:12px;font-weight:650;background:var(--light);color:var(--green);padding:5px 9px;border-radius:8px;white-space:nowrap}.slot-count{display:flex;align-items:baseline;gap:7px;margin:14px 0 0;font-variant-numeric:tabular-nums}.slot-count>strong{font-size:48px;color:var(--green);letter-spacing:-1px;line-height:1.2}.slot-count>span{font-size:18px;color:var(--muted)}.staff-slot p{margin:6px 0 18px}.staff-slot .actions button{padding:12px 4px;min-height:52px;font-size:18px}.staff-slot.full-slot{background:#fff3ee;border-color:#eaccc0}.full-slot .slot-count>strong{color:var(--red)}.full-slot .badge{background:#f7ded4;color:var(--red)}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.notification-list{max-height:400px;overflow:auto}.notification{padding:16px 0;border-bottom:1px solid var(--line);font-size:16px}.notification.unread{border-left:3px solid var(--green);padding-left:12px}.notification small{display:block;color:var(--muted);font-size:13px;margin-top:5px}.inline-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0;border-bottom:1px solid var(--line)}.inline-row button{font-size:15px;flex-shrink:0}.empty{text-align:center;color:var(--muted);padding:24px}.message{padding:16px 20px;margin:16px 0;border-radius:12px;background:#fff0eb;color:#973a30;font-weight:600;overflow-wrap:anywhere}.message.ok{background:var(--light);color:var(--green)}.login-card{max-width:460px;margin:64px auto}.login-card h1{font-size:32px}.login-card .primary{min-height:58px;font-size:18px}footer{border-top:1px solid var(--line);padding:24px;color:var(--muted);text-align:center;font-size:13px}[hidden]{display:none!important}
@media(max-width:1050px){.staff-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.admin-grid{grid-template-columns:1fr}.staff-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-top{align-items:flex-start}.admin-top .actions{flex-direction:column}.stats{gap:10px}.stat{padding:18px 14px}.stat strong{font-size:34px}.toolbar h2{width:100%;margin-bottom:4px}}
@media(max-width:600px){
 header{height:58px;padding:0 max(18px,env(safe-area-inset-left))}.brand{font-size:19px}main{padding:0 max(16px,env(safe-area-inset-left)) max(40px,env(safe-area-inset-bottom))}h1{font-size:34px}h2{font-size:23px}.hint{font-size:14px}.card{padding:22px;border-radius:20px}.admin-top{margin:26px 0 22px;display:block}.admin-top .actions{display:flex;flex-direction:row;gap:10px;margin-top:18px}.admin-top .actions button{font-size:16px;min-height:50px}.stats{gap:8px;margin-bottom:28px}.stat{padding:15px 10px;border-radius:14px}.stat span{font-size:12px;line-height:1.5;min-height:36px;word-break:keep-all}.stat strong{font-size:32px;margin-top:6px;white-space:nowrap}.booking-panel{padding:0;border:0;background:transparent}.booking-panel>.toolbar{position:sticky;top:0;z-index:5;background:var(--bg);padding:14px 0;margin-bottom:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px solid var(--line)}.booking-panel>.toolbar h2{grid-column:1/-1;width:auto;margin:0 0 4px}.booking-panel .toolbar input{width:100%;max-width:none;min-height:60px;font-size:21px;border-radius:14px}.booking-panel .toolbar button{min-height:60px;font-size:16px;padding:12px 15px}.booking-panel>.hint{margin:0 0 20px;font-size:14px}.staff-slot-grid{grid-template-columns:1fr;gap:18px}.staff-slot{display:grid;grid-template-columns:1fr auto;align-items:center;padding:24px;border-radius:22px;box-shadow:0 4px 14px #20365304}.slot-heading{flex-direction:column;align-items:flex-start;gap:7px}.slot-heading>strong{font-size:34px;line-height:1.1;letter-spacing:-1px}.badge{font-size:13px;padding:5px 9px}.slot-count{margin:0;gap:7px}.slot-count>strong{font-size:60px;line-height:1;letter-spacing:-2px}.slot-count>span{font-size:19px}.staff-slot>p{grid-column:1/-1;font-size:16px;margin:14px 0 18px}.staff-slot .actions{grid-column:1/-1;gap:12px}.staff-slot .actions button{min-height:64px;font-size:24px;border-radius:14px;font-weight:750}.admin-grid{margin-top:28px;gap:20px}.admin-grid .toolbar{gap:12px}.admin-grid .toolbar h2{width:auto;margin:0 auto 0 0}.admin-grid .toolbar button{font-size:15px}.field-grid{grid-template-columns:1fr;gap:0}.notification{font-size:16px}.inline-row button{min-height:48px}.login-card{margin-top:36px;padding:28px 22px}.login-card h1{font-size:34px}.login-card input{min-height:60px;font-size:19px}.login-card .primary{min-height:64px;font-size:21px}.message{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:16px;right:16px;z-index:20;margin:0;box-shadow:0 8px 30px #20365320;font-size:15px;pointer-events:none;border:1px solid #b7caf0}footer{font-size:13px}
}
@media(max-width:360px){.staff-slot{padding:20px}.slot-heading>strong{font-size:32px}.slot-count>strong{font-size:54px}.slot-count>span{font-size:17px}.stat{padding:14px 8px}.stat span{font-size:11px}.stat strong{font-size:29px}.booking-panel .toolbar input{font-size:19px}.booking-panel .toolbar button{padding:12px 10px}}

/* Large, always-visible calendar replacing the browser date popup. */
.booking-workspace{display:grid;grid-template-columns:390px minmax(0,1fr);gap:24px;align-items:start}.calendar-card{padding:28px;position:sticky;top:20px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:28px}.calendar-eyebrow{font-size:14px;color:var(--muted);margin:0 0 8px}.calendar-heading h2{font-size:27px;letter-spacing:-1px;margin:0;white-space:nowrap}.calendar-nav{display:flex;gap:6px}.calendar-nav button{height:46px;min-height:46px;width:42px;padding:0;font-size:29px;line-height:1}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{text-align:center;font-size:14px;color:var(--muted);margin-bottom:16px}.calendar-weekdays span:first-child{color:#bc766d}.calendar-weekdays span:last-child{color:#6586a2}.calendar-days{row-gap:12px}.calendar-day{position:relative;height:50px;min-height:50px;min-width:0;padding:0;border:0;background:transparent;border-radius:14px;font-size:20px;font-weight:650;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1.2}.calendar-day.weekend{color:#a6afbd}.calendar-day.is-today:not(.selected){box-shadow:inset 0 0 0 1px #8fb1f4;background:#edf3ff}.calendar-day small{font-size:9px;font-weight:500;margin-top:3px}.calendar-day.selected,.calendar-day.selected:hover{background:var(--green);color:white;box-shadow:0 5px 14px #2864df22}.calendar-bottom{border-top:1px solid var(--line);padding-top:22px;margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-bottom>span{font-size:14px;color:var(--green);font-weight:650}.calendar-bottom button{padding:8px 16px;font-size:14px;min-height:44px}.booking-workspace .staff-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-workspace .booking-panel>.toolbar h2{width:auto;flex:1;margin:0}.booking-workspace .booking-panel>.toolbar input[type=hidden]{display:none}.booking-workspace .staff-slot{padding:18px}.booking-workspace .slot-heading>strong{font-size:24px}.booking-workspace .badge{font-size:11px;padding:5px 6px}
@media(max-width:1100px){.booking-workspace{grid-template-columns:350px minmax(0,1fr);gap:20px}.calendar-card{padding:22px}.calendar-heading h2{font-size:25px}.calendar-nav button{width:38px}.booking-workspace .staff-slot-grid{grid-template-columns:1fr}.booking-workspace .staff-slot{display:grid;grid-template-columns:1fr auto;align-items:center}.booking-workspace .staff-slot .actions,.booking-workspace .staff-slot>p{grid-column:1/-1}.booking-workspace .slot-count{margin-top:0}}
@media(max-width:900px){.booking-workspace{grid-template-columns:1fr}.calendar-card{position:static;max-width:580px;width:100%;justify-self:center;padding:28px}.calendar-heading{margin-bottom:25px}.calendar-heading h2{font-size:30px}.calendar-nav button{width:48px;height:48px;min-height:48px}.calendar-days{gap:8px}.calendar-day{height:58px;min-height:58px;font-size:23px}.calendar-weekdays{font-size:15px;margin-bottom:17px}.booking-workspace .staff-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-workspace .staff-slot{display:block}.booking-workspace .slot-count{margin-top:14px}}
@media(max-width:600px){.booking-workspace{gap:24px}.calendar-card{padding:24px 18px;border-radius:22px}.calendar-heading h2{font-size:28px}.calendar-nav{gap:5px}.calendar-nav button{width:44px;height:48px}.calendar-days{column-gap:3px;row-gap:10px}.calendar-day{height:51px;min-height:51px;font-size:21px;border-radius:14px}.calendar-day small{font-size:10px}.calendar-weekdays{font-size:14px}.calendar-bottom{margin-top:23px;padding-top:18px}.calendar-bottom>span{font-size:13px}.calendar-bottom button{font-size:15px}.booking-workspace .staff-slot-grid{grid-template-columns:1fr}.booking-workspace .staff-slot{display:grid;padding:24px}.booking-workspace .slot-heading>strong{font-size:34px}.booking-workspace .badge{font-size:13px;padding:5px 9px}.booking-workspace .slot-count{margin:0}.booking-workspace .booking-panel>.toolbar{display:flex;flex-wrap:nowrap}.booking-workspace .booking-panel>.toolbar h2{font-size:23px}.booking-workspace .booking-panel>.toolbar button{min-height:50px}}
@media(max-width:360px){.calendar-card{padding:22px 14px}.calendar-heading{gap:6px}.calendar-heading h2{font-size:24px}.calendar-nav button{width:38px;min-height:44px;height:44px}.calendar-days{column-gap:2px}.calendar-day{font-size:20px;height:48px;min-height:48px}.calendar-bottom>span{font-size:12px}.calendar-bottom button{padding:8px 12px}.booking-workspace .booking-panel>.toolbar h2{font-size:20px}.booking-workspace .staff-slot{padding:20px}.booking-workspace .slot-heading>strong{font-size:32px}}

/* Closed and full slots use a neutral monochrome treatment. */
.staff-slot.closed-slot,.staff-slot.full-slot{background:#eceef1;border-color:#dee1e6;box-shadow:none}.staff-slot.closed-slot .slot-heading>strong,.staff-slot.closed-slot .slot-count>strong,.staff-slot.full-slot .slot-count>strong{color:#7a828e}.staff-slot.closed-slot .slot-count>span,.staff-slot.closed-slot .hint{color:#8b939e}.staff-slot.closed-slot .badge,.staff-slot.full-slot .badge{background:#dfe3e8;color:#777f8b}.staff-slot.closed-slot .actions button{background:#e3e6eb;border-color:#d5dae1;color:#697280}.staff-slot.closed-slot .actions button:hover:not(:disabled){background:#d4d9e1;color:#4d5869}.staff-slot.closed-slot .actions button:disabled{background:#e5e8ec;border-color:#dde1e6;color:#a0a7b1}

/* Holidays remain legible in the large monthly calendar. */
.calendar-day{height:66px;min-height:66px}.calendar-day small{display:block;max-width:100%;padding:0 2px;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day.holiday{color:#c34c56;background:#fff5f5}.calendar-day.office-closed{background:#eef0f3;color:#818996}.calendar-day.selected,.calendar-day.selected:hover{background:var(--green);color:#fff}.calendar-legend{margin:22px 0 8px;font-size:12px;color:var(--muted)}.calendar-legend span{color:#c34c56}.calendar-detail{font-size:15px;line-height:1.7;margin:18px 0 14px;word-break:keep-all}.calendar-card #calendar-coverage{font-size:12px;margin:0}.calendar-card .calendar-bottom{margin-top:18px}#toggle-day-off{min-height:52px}

/* Compact count cards: the count and status already explain availability. */
.booking-workspace .staff-slot{padding:16px}
.booking-workspace .staff-slot .actions{margin-top:12px}
.booking-workspace .slot-count{margin-top:8px}
.booking-workspace .staff-slot-grid{gap:12px}
@media(max-width:1100px) and (min-width:901px){.booking-workspace .slot-count{margin-top:0}}
@media(max-width:600px){.booking-workspace .staff-slot{padding:16px 18px;border-radius:18px}.booking-workspace .slot-count{margin:0}.booking-workspace .slot-count>strong{font-size:48px}.booking-workspace .slot-heading>strong{font-size:30px}.booking-workspace .staff-slot .actions button{min-height:52px;font-size:21px;padding:8px 4px}.booking-workspace .staff-slot .actions{gap:10px;margin-top:14px}}

.connection-label{color:#d33142;font-weight:750}.notification-controls{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.notification-controls small{font-size:12px;color:var(--muted);max-width:270px;word-break:keep-all}.notification-controls .notifications-on{background:var(--green);border-color:var(--green);color:#fff}.notification-controls .notifications-on:hover:not(:disabled){background:#1d4eb5}@media(max-width:600px){.notification-controls{align-items:flex-start;margin-top:16px}.notification-controls button{min-height:50px}}

/* Mobile-first single-column board, including on desktop. */
body>header{height:52px;padding:0 max(18px,calc((100vw - 568px)/2));}.brand{font-size:18px}
.admin-main{max-width:600px;padding:0 16px 40px}.admin-top{margin:18px 0;gap:10px;display:flex;align-items:flex-start}.admin-top h1{font-size:26px}.admin-top #refresh-status{font-size:11px}.notification-controls{margin:0;align-items:flex-end;flex-shrink:0}.notification-controls button{min-height:44px;padding:9px 12px;font-size:13px}.notification-controls small{display:none}
.booking-workspace{display:block}.calendar-toggle{position:sticky;top:0;z-index:10;width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:14px;min-height:56px;background:#fff;box-shadow:0 3px 12px #2036530a;margin-bottom:12px;scroll-margin-top:0;padding:12px 16px}.calendar-toggle span:first-child{font-size:18px}.calendar-toggle span:last-child{font-size:12px;color:var(--green);white-space:nowrap}
.calendar-card{position:static;max-width:none;padding:20px 16px;margin-bottom:16px}.calendar-heading{margin-bottom:16px}.calendar-heading h2{font-size:26px}.calendar-eyebrow{display:none}.calendar-days{row-gap:5px;column-gap:3px}.calendar-day{height:54px;min-height:54px;font-size:20px}.calendar-weekdays{margin-bottom:10px}.calendar-legend{margin-top:14px}.calendar-bottom{padding-top:12px!important;margin-top:12px!important}.calendar-detail{margin:10px 0;font-size:14px}#toggle-day-off{min-height:44px;padding:8px}
.stats{gap:8px;margin-bottom:16px}.stat{padding:12px 10px;border-radius:14px}.stat span{font-size:11px;min-height:32px}.stat strong{font-size:28px;margin-top:4px}
.booking-panel{padding:0;border:0;background:transparent}.booking-workspace .booking-panel>.toolbar{position:static;display:flex;flex-wrap:nowrap;margin-bottom:10px;padding:0;background:transparent}.booking-workspace .booking-panel>.toolbar h2{font-size:20px}.booking-workspace .booking-panel>.toolbar button{min-height:44px;font-size:13px;padding:9px 12px}.booking-panel>.hint{font-size:12px;margin-bottom:14px}
.booking-workspace .staff-slot-grid{grid-template-columns:1fr;gap:12px}.booking-workspace .staff-slot{display:grid;grid-template-columns:1fr auto;align-items:center;padding:16px 18px;border-radius:18px}.booking-workspace .slot-heading{flex-direction:column;align-items:flex-start;gap:6px}.booking-workspace .slot-heading>strong{font-size:30px}.booking-workspace .badge{font-size:12px}.booking-workspace .slot-count{margin:0}.booking-workspace .slot-count>strong{font-size:48px}.booking-workspace .slot-count>span{font-size:18px}.booking-workspace .staff-slot .actions{grid-column:1/-1;margin-top:12px;gap:10px}.booking-workspace .staff-slot .actions button{min-height:52px;font-size:21px;padding:8px 4px}.admin-grid{grid-template-columns:1fr;gap:16px;margin-top:20px}.admin-grid>.card{padding:20px}.field-grid{grid-template-columns:1fr;gap:0}
@media(max-width:360px){.admin-main{padding-left:12px;padding-right:12px}.calendar-toggle{padding:12px}.calendar-toggle span:first-child{font-size:16px}.calendar-card{padding:18px 12px}.admin-top h1{font-size:24px}.calendar-day{font-size:19px}.calendar-heading h2{font-size:24px}}

/* More breathing room around the mobile board. */
.admin-main{padding-left:24px;padding-right:24px}.admin-top{margin-top:26px}
@media(max-width:360px){.admin-main{padding-left:20px;padding-right:20px}}

.calendar-toggle-icon{flex-shrink:0;color:var(--green)}

/* A separate switch for popup delivery, independent of data synchronization. */
.notification-controls #enable-notifications{display:flex;align-items:center;gap:10px;padding:8px 10px;min-height:54px;background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:14px}.switch-copy{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.switch-copy strong{font-size:13px}.switch-copy>span{font-size:11px;color:var(--muted);font-weight:500}.switch-track{display:flex;align-items:center;width:38px;height:24px;padding:3px;background:#cbd1da;border-radius:99px;transition:background .15s}.switch-thumb{display:block;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0002;transition:transform .15s}.notifications-on .switch-track{background:var(--green)}.notifications-on .switch-thumb{transform:translateX(14px)}.notifications-on .switch-copy>span{color:var(--green)}.notification-controls #enable-notifications:hover:not(:disabled){background:#f5f8ff}.notification-controls #enable-notifications:disabled{opacity:.65}.admin-top{flex-wrap:wrap}.admin-top>div:first-child{flex:1;min-width:140px}@media(prefers-reduced-motion:reduce){.switch-track,.switch-thumb{transition:none}}

/* Readable synchronization status on mobile. */
.admin-top #refresh-status{display:block;font-size:14px;line-height:1.7;margin-top:8px;word-break:keep-all}

/* Calendar dates use numbers and color; keep the month header within narrow screens. */
.calendar-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.calendar-heading>div{min-width:0}.calendar-heading h2{white-space:normal;display:flex;flex-direction:column;gap:3px;line-height:1.2;letter-spacing:-.5px}.calendar-year{font-size:14px;font-weight:600;color:var(--muted)}.calendar-month-number{font-size:28px;font-weight:800}.calendar-nav{flex-shrink:0;gap:4px}.calendar-nav button{width:42px;min-height:44px;height:44px}.calendar-card #calendar-coverage:empty{display:none}.calendar-card{min-width:0}.calendar-toggle{min-width:0}.calendar-toggle #mobile-date-label{min-width:0;white-space:normal;text-align:left}

/* Label sits outside the switch; position and color express its state. */
.notification-controls{flex-direction:row;align-items:center;gap:4px}.notification-switch-label{margin:0;font-size:13px;font-weight:650;white-space:nowrap;cursor:pointer}.notification-controls #enable-notifications{padding:10px 4px;min-width:46px;min-height:44px;border:0;background:transparent;box-shadow:none}.notification-controls #enable-notifications:hover:not(:disabled){background:transparent}.notification-controls small{display:none}

#confirm-date{min-height:52px;font-size:17px;margin:4px 0 10px}#toggle-day-off{font-size:14px}

/* Calendar dialog: choose a date, then confirm once. */
dialog.calendar-card{position:fixed;inset:0;margin:auto;width:calc(100% - 40px);max-width:420px;max-height:calc(100dvh - 40px);overflow-y:auto;padding:24px 18px;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 70px #172a4933}dialog.calendar-card:not([open]){display:none}dialog.calendar-card::backdrop{background:#172a4970}.calendar-modal-open{overflow:hidden}dialog #confirm-date{margin:20px 0 0;position:sticky;bottom:0}dialog .calendar-heading{margin-bottom:20px}

/* Short, readable summary labels with quieter units. */
.stats .stat{padding:15px 10px}.stats .stat>span{font-size:14px;font-weight:650;line-height:1.4;min-height:0;color:#52627a;white-space:nowrap;letter-spacing:-.4px}.stats .stat>strong{font-size:36px;font-weight:800;line-height:1.2;margin-top:10px;letter-spacing:-1px;white-space:nowrap}.stats .stat-unit{font-size:14px;font-weight:500;color:#68778c;letter-spacing:0;margin-left:3px}@media(max-width:360px){.stats .stat{padding:14px 8px}.stats .stat>strong{font-size:32px}.stats .stat>span{font-size:13px}.stats .stat-unit{font-size:13px}}

/* Each time slot fits on one row: time, booked/remaining, controls. */
.booking-workspace .staff-slot{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;padding:14px 12px}.booking-workspace .slot-heading>strong{font-size:23px;letter-spacing:-.5px}.booking-workspace .slot-heading{gap:5px}.booking-workspace .badge{font-size:10px;padding:3px 5px;max-width:100%}.booking-workspace .slot-count{gap:3px;white-space:nowrap}.booking-workspace .slot-count>strong{font-size:32px;letter-spacing:-1px}.booking-workspace .slot-count>span{font-size:17px}.slot-remaining{font-size:24px;font-weight:750;color:var(--ink)}.slot-count small{font-size:12px;font-weight:500;margin-left:2px}.closed-slot .slot-remaining{color:#7a828e}.booking-workspace .staff-slot .actions{grid-column:auto;gap:6px;margin:0}.booking-workspace .staff-slot .actions button{flex:none;min-width:44px;min-height:46px;padding:6px;font-size:18px;border-radius:11px}@media(max-width:360px){.booking-workspace .staff-slot{gap:6px;padding:12px 9px}.booking-workspace .slot-heading>strong{font-size:21px}.booking-workspace .slot-count>strong{font-size:29px}.slot-remaining{font-size:22px}.booking-workspace .staff-slot .actions{gap:4px}}

#calendar-operation{border-top:1px solid var(--line);padding-top:16px;margin:16px 0 0;font-size:15px;font-weight:650;color:var(--green)}

.stats .stat{text-align:center}


.notification-switch-label{font-size:13px;color:#68778c}.notification-switch-label.is-active{color:var(--green)}

.booking-workspace .booking-panel>.toolbar{border-bottom:0}


.account-bar{display:flex;justify-content:space-between;align-items:center;margin-top:16px;color:var(--muted);font-size:13px}.account-bar button{min-height:36px;padding:6px 12px;font-size:13px}.login-shell{max-width:420px;margin:10vh auto;padding:24px}.login-shell h1{font-size:28px}.login-shell form{margin-top:24px}.login-shell button{margin-top:24px}.login-error{color:#c43343;margin-top:16px}

#refresh{display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}#refresh svg{flex-shrink:0}

/* Compact summary remains below the pinned date picker while browsing slots. */
.booking-workspace>.stats{position:sticky;top:56px;z-index:9;background:var(--bg);padding:8px 0;margin-bottom:12px;box-shadow:0 8px 12px -12px #20365340}.stats .stat{padding:10px 8px;border-radius:13px}.stats .stat>span{font-size:13px}.stats .stat>strong{font-size:30px;margin-top:5px;line-height:1.15}.stats .stat-unit{font-size:12px}.booking-workspace>.calendar-toggle{margin-bottom:4px}

.notification-controls #enable-notifications{min-height:48px;padding:10px 8px;gap:10px;touch-action:manipulation;cursor:pointer}.notification-controls #enable-notifications>*{pointer-events:none}.notification-switch-label{line-height:1.4}

/* Larger touch switch for phone use. */
.notification-controls #enable-notifications{min-height:60px;min-width:210px;padding:12px 14px;gap:14px;border:1px solid #dfe6f0;border-radius:16px;background:#fff;touch-action:manipulation}.notification-controls #enable-notifications:hover:not(:disabled){background:#f5f8ff}.notification-controls .notification-switch-label{font-size:15px;font-weight:650}.notification-controls .switch-track{width:58px;height:34px;padding:4px;flex-shrink:0}.notification-controls .switch-thumb{width:26px;height:26px}.notification-controls .notifications-on .switch-thumb{transform:translateX(24px)}

/* Compact login card with a single thin input border. */
.login-shell{width:calc(100% - 48px);max-width:360px;margin:10vh auto;padding:26px 22px}.login-shell input{border:1px solid #111;box-shadow:none;min-height:50px}.login-shell input:focus,.login-shell input:focus-visible{border:1px solid #000;outline:none;box-shadow:none;background:#f5f8ff}.login-shell h1{font-size:26px}.login-shell .primary{min-height:50px}.login-shell input:focus-visible{caret-color:#000}@media(max-width:360px){.login-shell{width:calc(100% - 40px);padding:24px 18px}}

.password-field{position:relative}.login-shell .password-field input{padding-right:52px}.login-shell #password-toggle{position:absolute;right:2px;top:2px;min-height:46px;width:46px;padding:10px;margin:0;border:0;background:transparent;color:#404a59;display:flex;align-items:center;justify-content:center}.eye-slash{display:none}#password-toggle[aria-pressed=true] .eye-slash{display:block}.login-shell .remember-login{display:flex;align-items:center;gap:10px;margin:18px 0 0;cursor:pointer;font-size:14px}.login-shell .remember-login input{width:20px;height:20px;min-height:20px;flex-shrink:0;margin:0;accent-color:var(--green)}.remember-login small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}

/* Clean white login with restrained calendar motion. */
body.login-page{background:#fff}.login-page .login-shell{width:calc(100% - 56px);max-width:360px;margin:clamp(32px,7vh,72px) auto;padding:0 0 32px;border:0;border-radius:0;background:transparent;box-shadow:none}.login-symbol{width:104px;height:104px;margin:0 auto 14px}.login-symbol svg{display:block;width:100%;height:100%;overflow:visible}.login-page h1{text-align:center;font-size:28px;letter-spacing:-1px;margin-bottom:10px}.login-page .login-shell>.hint{text-align:center;font-size:14px;margin-bottom:30px}.login-page .login-shell form{margin-top:0}.login-page .login-shell input:not([type=checkbox]){background:#f6f7f9;border:1px solid #e5e7eb;min-height:54px;transition:border-color .15s,background .15s}.login-page .login-shell input:not([type=checkbox]):focus{border:1px solid #111;background:#fff;outline:none;box-shadow:none}.login-page .login-shell input:autofill{box-shadow:0 0 0 1000px #f6f7f9 inset}.login-page .login-shell input:autofill:focus{box-shadow:0 0 0 1000px #fff inset}.login-page .login-shell label{font-size:15px}.login-page .login-shell .remember-login{font-size:14px}.login-page .login-shell #password-toggle{top:4px}.login-page .login-shell #login-submit{min-height:54px;margin-top:26px}.symbol-calendar{animation:calendar-float 4.5s ease-in-out infinite;transform-origin:56px 56px}.symbol-check{animation:check-float 4.5s ease-in-out infinite;transform-origin:81px 78px}.symbol-spark{animation:spark-soft 4.5s ease-in-out infinite}@keyframes calendar-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes check-float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.04)}}@keyframes spark-soft{0%,100%{opacity:.5}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.symbol-calendar,.symbol-check,.symbol-spark{animation:none}.login-page input{transition:none}}

@media(hover:hover){.login-page .login-shell input:not([type=checkbox]):hover{border-color:#111}}

.install-footer{max-width:600px;margin:auto;padding:24px 24px 32px}.install-footer button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;color:var(--green);background:#fff;border:1px solid var(--line);font-size:16px}.install-footer p{font-size:12px;margin:10px 0 0}#install-help{width:calc(100% - 48px);max-width:360px;border:0;border-radius:20px;padding:26px;color:var(--ink);box-shadow:0 20px 60px #172a4933}#install-help::backdrop{background:#172a4970}#install-help h2{font-size:22px}#install-instructions{white-space:pre-line;line-height:1.9;font-size:15px}
