/* Booking and reception share the site's typography, spacing and controls. */
.booking-shell,.secretary-shell{padding:38px 0 60px;background:linear-gradient(120deg,#eaf3f6,#f6edf2);min-height:70vh}.booking-container{max-width:1080px}.booking-head,.secretary-header{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:28px}.booking-kicker,.secretary-eyebrow,.booking-step__number{font-size:12px;font-weight:600;color:var(--rose)}.booking-head h1,.secretary-header h1{font-size:clamp(1.8rem,3vw,2.6rem);margin:7px 0}.booking-head p,.secretary-header p{font-size:13px}.booking-hours{display:grid;gap:3px;min-width:185px;padding:15px 20px;border:1px solid var(--border);border-radius:14px;background:#fcfdfd88}.booking-hours span,.booking-hours small{font-size:11px;color:var(--muted)}.booking-hours strong{font-size:18px;font-weight:500}.booking-progress{display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;gap:18px;margin:0 0 24px;padding:20px 24px;border:1px solid var(--border);border-radius:15px;background:#fcfdfd99}.booking-progress__item{display:flex;gap:11px;align-items:center;color:#536d7a}.booking-progress__item>span{width:32px;height:32px;display:grid;place-items:center;border:1px solid #bfced5;background:#edf2f4;border-radius:50%;font-size:13px}.booking-progress__item strong{display:block;font-size:12px;font-weight:500}.booking-progress__item small{display:block;font-size:10px}.booking-progress__item.is-active>span{background:var(--accent);color:#fff;border-color:var(--accent)}.booking-progress__item.is-active strong{color:var(--ink);font-weight:700}.booking-progress__item.is-done>span{background:#dcece8;color:#365c4e;border-color:#b8d3c8}.booking-progress__line{height:1px;background:#c8d8df}.patient-form-note{display:flex;align-items:flex-start;gap:10px;background:var(--blue-soft);padding:14px;border-radius:12px;margin-top:24px}.patient-form-note>span{color:var(--accent);font-size:17px;flex:none}.patient-form-note p{font-size:11px}.booking-form{display:grid;gap:18px;align-content:start}.booking-field{display:grid;gap:8px;font-size:13px;min-width:0}.booking-field>span{font-weight:500}.booking-field em,.secretary-create-form em,.secretary-login-form em{font-size:11px;font-style:normal;color:#983c56}.booking-field.has-error input{border-color:#be6e90}.appointment-input{font-size:14px!important;min-height:49px!important}.appointment-input--phone,.appointment-input--otp{direction:ltr;font-family:var(--font);letter-spacing:.1em;font-size:18px!important}.appointment-input--otp{text-align:center;letter-spacing:.3em}.booking-primary,.secretary-primary-button{min-height:47px;padding:12px 20px;background:var(--accent);border:1px solid var(--accent);border-radius:10px;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.booking-primary:hover,.secretary-primary-button:hover{background:#294e5e}.booking-combined-card{display:grid;grid-template-columns:1fr 1.25fr;background:var(--surface);border:1px solid var(--border);border-radius:20px;overflow:hidden}.patient-form-panel{padding:30px}.booking-panel-title>span{font-size:11px;color:var(--rose)}.booking-panel-title h2{font-size:21px;margin:7px 0}.booking-panel-title p{font-size:12px}.patient-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 14px;margin-top:24px}.patient-form-note{margin-top:22px}.schedule-panel{padding:30px;border-inline-start:1px solid var(--border);background:#f0f6f8}.schedule-panel__head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:22px}.schedule-panel__head>div>span{font-size:11px;color:var(--rose)}.schedule-panel__head h2{font-size:19px;margin-top:7px}.schedule-panel__head>small{font-size:10px;padding:4px 7px;background:var(--blue-soft);border-radius:6px;white-space:nowrap}.schedule-date-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;margin-bottom:10px}.schedule-date-label span{font-size:10px;color:var(--muted)}.schedule-date-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:22px}.schedule-date{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--surface);border:1px solid #c6d8df;border-radius:10px;padding:9px 4px;color:var(--ink);min-height:82px;cursor:pointer}.schedule-date span{font-size:10px}.schedule-date strong{font-size:19px;line-height:1.6;font-weight:500}.schedule-date small{font-size:9px;color:var(--muted)}.schedule-date.is-selected{background:#d9ecf2;border-color:#6e9cae;box-shadow:inset 0 0 0 1px #6e9cae}.schedule-date input[type=date]{position:absolute;inset:0;opacity:0;cursor:pointer}.schedule-date:focus-within{outline:3px solid #538494;outline-offset:2px}.schedule-date--calendar strong{height:30px;display:grid;place-items:center;color:var(--accent)}.schedule-date--calendar svg{width:22px;height:22px}.schedule-slots-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 10px;font-size:11px}.schedule-slots-head>span{font-size:10px;color:var(--muted)}.schedule-slots-head i{width:6px;height:6px;display:inline-block;border-radius:50%;background:#8eb6c4;margin-inline-end:5px}.schedule-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.schedule-time{min-width:0;min-height:46px;border:1px solid #c4d6de;border-radius:8px;background:#fbfdfd;color:var(--ink);display:flex;flex-direction:column;align-items:center;padding:8px;cursor:pointer}.schedule-time strong{font-size:13px;font-weight:500;line-height:1.4}.schedule-time small{font-size:9px;color:var(--muted);margin-top:2px}.schedule-time.is-selected{background:var(--accent);border-color:var(--accent);color:#fff}.schedule-time.is-selected small{color:#e1edf2}.schedule-time.is-busy{opacity:.65;background:#e3eaf0;border-color:transparent}.schedule-time.is-busy strong{text-decoration:line-through}.schedule-empty{grid-column:1/-1;padding:25px 15px;border:1px dashed #c5d6df;border-radius:12px;text-align:center}.schedule-empty>span{font-size:24px;color:var(--accent)}.schedule-empty p{font-size:12px}.schedule-loading{grid-column:1/-1;font-size:12px;color:var(--muted);padding:20px 10px}.schedule-selected{margin-top:17px;padding:12px 14px;border:1px solid #bbd5e0;background:#e0eef4;border-radius:9px}.schedule-selected span{font-size:10px;color:var(--muted);display:block}.schedule-selected strong{font-size:12px;display:block;margin-top:4px}.schedule-error{font-size:12px;color:#983c56;margin:10px 0}.needs-selection{outline:2px solid #b16689;outline-offset:6px;border-radius:10px}.booking-submit-row{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:20px 30px;border-top:1px solid var(--border)}.booking-submit-row strong,.booking-submit-row span{display:block}.booking-submit-row strong{font-size:12px;font-weight:500}.booking-submit-row span{font-size:11px;color:var(--muted);margin-top:4px}.booking-primary--continue{min-width:180px}.booking-messages,.secretary-messages{display:grid;gap:8px;margin-bottom:20px}.booking-message,.secretary-message,.appointment-alert{padding:12px 15px;font-size:12px;border:1px solid #c6ded6;background:#e6f1ed;border-radius:10px}.appointment-alert--error,.secretary-message--error{color:#983c56;background:#f7e6ed;border-color:#e5c6d3}.appointment-alert{margin-bottom:12px}.appointment-alert ul{margin:0}
/* Reception */
.secretary-shell__inner{width:min(1380px,calc(100% - 48px))}.secretary-header__tools{display:flex;align-items:end;gap:12px}.secretary-date-filter{display:grid;gap:5px;font-size:11px}.secretary-date-filter>div{display:flex;gap:8px}.secretary-date-filter input{min-width:150px}.secretary-date-filter button,.secretary-logout,.secretary-status-form button,.secretary-edit-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c6d6dd;border-radius:8px;padding:8px 12px;min-height:42px;background:var(--surface);color:var(--accent);font-size:11px;white-space:nowrap}.secretary-logout{color:var(--rose);background:var(--pink-soft);border-color:#dfc9d4}.secretary-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:24px}.secretary-stats>div{padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.secretary-stats span{display:block;font-size:11px;color:var(--muted)}.secretary-stats strong{font-size:26px;font-weight:500;color:var(--accent);display:block}.secretary-workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:24px;align-items:start}.secretary-schedule-card,.secretary-register-card,.secretary-edit-card,.secretary-login-card{padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:17px;min-width:0}.secretary-panel__head{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:18px}.secretary-panel__head span{font-size:11px;color:var(--rose)}.secretary-panel__head h2{font-size:19px;margin-top:4px}.secretary-hours-badge{padding:5px 9px;background:var(--blue-soft);color:var(--accent);border-radius:8px;font-size:11px}.secretary-slot{display:grid;grid-template-columns:46px 10px minmax(0,1fr);align-items:start;gap:12px;margin-bottom:9px}.secretary-slot__time{font-size:12px;line-height:42px;color:var(--accent);font-variant-numeric:tabular-nums}.secretary-slot__dot{height:8px;width:8px;border-radius:50%;background:#c4d8e1;margin-top:17px}.secretary-slot.is-booked .secretary-slot__dot{background:#8eabc0}.secretary-free-slot{display:flex;align-items:center;gap:8px;min-height:42px;border:1px dashed #d8e4e8;padding:8px 12px;border-radius:8px;background:#f7fafb}.secretary-free-slot span{font-size:11px;color:var(--muted)}.secretary-free-slot small{font-size:9px;color:var(--muted)}.secretary-patient-card{padding:15px;border:1px solid #c6d8e0;border-radius:12px;background:#f0f6f9}.secretary-patient-card__title{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.secretary-patient-card h3{font-size:14px}.secretary-patient-meta{display:flex;gap:7px 12px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-top:8px}.secretary-patient-card__main p{font-size:11px;margin-top:8px}.secretary-patient-card__actions{display:flex;gap:8px;margin-top:12px}.secretary-status-form{display:flex;gap:6px;min-width:0}.secretary-status-form select{font-size:11px;min-height:40px;padding:7px;width:150px}.secretary-patient-card__actions button,.secretary-edit-link{min-height:40px;font-size:10px}.status-pill{font-size:9px;padding:3px 8px;background:#e1ebf1;color:#435e71;border-radius:6px}.status-pill--arrived{background:#dfede6;color:#426650}.status-pill--completed{background:#e5e5f3;color:#606487}.status-pill--cancelled{background:var(--pink-soft);color:var(--rose)}.status-pill--no_show{background:#f2ebdf;color:#7b6547}.secretary-register-card__intro{font-size:12px;margin-bottom:20px}.secretary-create-form{display:grid;grid-template-columns:1fr 1fr;gap:16px 12px}.secretary-create-form label{font-size:12px;display:grid;align-content:start;gap:7px;min-width:0}.secretary-create-form input,.secretary-create-form select,.secretary-create-form textarea{font-size:13px}.secretary-create-form label:last-of-type,.secretary-create-form .appointment-alert,.secretary-primary-button{grid-column:1/-1}.secretary-create-form small{font-size:10px;color:var(--muted)}.secretary-login-section,.secretary-edit-section{padding:55px 18px;min-height:65vh;display:grid;place-items:center;background:linear-gradient(130deg,#eaf3f6,#f5eaf1)}.secretary-login-card{width:min(460px,100%);padding:30px}.secretary-login-card__brand{display:flex;align-items:center;gap:14px}.secretary-login-card__brand>span{width:48px;height:48px;display:grid;place-items:center;background:var(--blue-soft);border-radius:14px;color:var(--accent)}.secretary-login-card__brand svg{width:24px;height:24px}.secretary-login-card h1{font-size:24px}.secretary-login-card small{font-size:11px;color:var(--rose)}.secretary-login-card>p{font-size:12px;margin:16px 0 23px}.secretary-login-form{display:grid;gap:17px}.secretary-login-form label{display:grid;gap:7px;font-size:13px}.secretary-login-form input{direction:ltr}.secretary-edit-card{width:min(720px,100%);padding:28px}.secretary-edit-card h1{font-size:22px}.secretary-panel__head>a{font-size:11px;text-decoration:underline}
/* Booking receipt */
.appointment-success-wrap{background:linear-gradient(130deg,#eaf3f6,#f5eaf1)}.appointment-success{max-width:740px;margin:auto;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:36px}.appointment-success__icon{width:64px;height:64px;display:grid;place-items:center;background:#e0eeea;color:#497a68;border-radius:50%;margin:0 auto 17px}.appointment-success__icon svg{width:30px;height:30px}.appointment-success h1{font-size:28px;margin:6px 0}.appointment-success>p{font-size:13px}.appointment-ticket{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:right;gap:18px;background:#eff5f7;border-radius:14px;padding:22px;margin:26px 0}.appointment-ticket small{font-size:11px;color:var(--muted)}.appointment-ticket strong{display:block;font-size:14px;margin-top:5px;font-weight:500}.center-buttons{justify-content:center}
@media(max-width:1050px){.secretary-workspace{grid-template-columns:1fr}.secretary-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-combined-card{grid-template-columns:1fr 1.2fr}.patient-form-panel,.schedule-panel{padding:24px}.patient-field-grid{grid-template-columns:1fr}}
@media(max-width:760px){.booking-shell,.secretary-shell{padding:27px 0 40px}.booking-head,.secretary-header{align-items:stretch;flex-direction:column;gap:18px}.booking-head h1,.secretary-header h1{font-size:1.9rem}.booking-head p,.secretary-header p{font-size:12px}.booking-hours{display:flex;align-items:center;gap:15px;min-width:0;padding:12px 16px}.booking-hours strong{font-size:15px}.booking-hours small{display:none}.booking-progress{grid-template-columns:1fr 1fr 1fr;gap:12px;padding:15px 10px}.booking-progress__line{display:none}.booking-progress__item{flex-direction:column;gap:6px;text-align:center}.booking-progress__item small{display:none}.booking-progress__item strong{font-size:10px}.booking-combined-card{grid-template-columns:1fr}.patient-form-panel,.schedule-panel{padding:22px}.schedule-panel{border-inline-start:0;border-top:1px solid var(--border)}.patient-field-grid{grid-template-columns:1fr 1fr;gap:15px 10px}.booking-field{font-size:11px}.appointment-input{font-size:13px!important}.appointment-input--phone,.appointment-input--otp{font-size:18px!important}.schedule-panel__head h2{font-size:18px}.schedule-date-label{flex-wrap:wrap}.booking-submit-row{padding:20px 22px;align-items:stretch;flex-direction:column;gap:15px}.secretary-shell__inner{width:calc(100% - 28px)}.secretary-header__tools{align-items:end}.secretary-date-filter{flex:1}.secretary-date-filter input{min-width:0}.secretary-date-filter>div{min-width:0}.secretary-stats{gap:9px}.secretary-stats>div{padding:12px}.secretary-stats span{font-size:10px}.secretary-stats strong{font-size:23px}.secretary-schedule-card,.secretary-register-card{padding:16px}.secretary-slot{grid-template-columns:36px minmax(0,1fr);gap:8px}.secretary-slot__dot{display:none}.secretary-slot__time{font-size:10px}.secretary-patient-card{padding:12px}.secretary-patient-card__actions{flex-wrap:wrap}.secretary-status-form{flex:1}.secretary-status-form select{width:auto;flex:1;min-width:0}.secretary-create-form{grid-template-columns:1fr}.secretary-create-form label:last-of-type,.secretary-primary-button{grid-column:auto}.secretary-edit-card{padding:20px}.secretary-edit-card .secretary-panel__head{align-items:start;flex-direction:column}.appointment-success{padding:26px 19px}.appointment-ticket{grid-template-columns:1fr 1fr;gap:17px;padding:17px}.appointment-ticket strong{font-size:12px}.appointment-success h1{font-size:24px}}
@media(max-width:380px){.patient-field-grid{grid-template-columns:1fr}.schedule-date-strip,.schedule-slots{gap:6px}.schedule-date span{font-size:9px}}

/* 2026-10 booking/schedule additions */
.schedule-date--calendar select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}.schedule-date--calendar.is-selected strong{color:var(--ink)}
.secretary-slot.is-closed .secretary-free-slot{background:#eceff2;border-style:solid;border-color:#e0e5e9}.secretary-slot.is-closed .secretary-free-slot span{color:#7b6a72}.secretary-slot.is-closed .secretary-slot__dot{background:#c9b3bd}
.secretary-cancelled{margin-bottom:24px;padding:14px 18px;background:var(--surface);border:1px solid var(--border);border-radius:14px;font-size:12px}.secretary-cancelled summary{display:flex;align-items:center;justify-content:flex-start;gap:4px;cursor:pointer;color:#983c56;font-weight:500}.secretary-cancelled summary b{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-inline-start:6px;padding:0 6px;border-radius:11px;background:#f7e6ed;font-weight:600}.secretary-cancelled ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}.secretary-cancelled li{display:flex;flex-wrap:wrap;gap:6px 14px;padding:9px 12px;border-radius:9px;background:#f7fafb}.secretary-cancelled li span{color:var(--muted)}.secretary-cancelled li strong{font-weight:500;text-decoration:line-through;text-decoration-color:#c9a3b4}
.schedule-form{grid-template-columns:1fr 1fr}.schedule-form .appointment-alert,.schedule-form .schedule-form__check,.schedule-form .secretary-primary-button{grid-column:1/-1}.schedule-form .schedule-form__check{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #e5c6d3;background:#fbf3f6;border-radius:10px;line-height:1.9}.schedule-form__check input{width:18px;height:18px;flex:none;margin-top:3px;accent-color:var(--accent)}.schedule-form__check em{flex-basis:100%}
.schedule-closed-list{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:8px}.schedule-closed-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 14px;padding:11px 14px;border:1px solid #e0e5e9;border-radius:10px;background:#eceff2;font-size:13px}.schedule-closed-list li strong{font-weight:500}.schedule-closed-list li span{font-size:11px;color:var(--muted)}.schedule-closed-list li.is-empty{background:#f7fafb;border-style:dashed;color:var(--muted);font-size:12px}.schedule-closed-head{margin-top:26px}.schedule-closed-note{margin-top:18px;font-size:11px;color:var(--muted);line-height:2}
.appointment-notice>p{max-width:520px;margin-inline:auto}.appointment-notice .appointment-ticket{margin-top:20px}.appointment-success__icon--muted{background:var(--blue-soft);color:var(--accent)}.appointment-success__icon--muted svg{width:28px;height:28px}
.appointment-success__icon--cancelled{background:#f7e6ed;color:#983c56}
@media(max-width:760px){.schedule-form{grid-template-columns:1fr}.secretary-header__tools{flex-wrap:wrap}.secretary-header__tools>.secretary-edit-link{order:3;flex:1 1 100%}}

/* ===== Type & size scale (tokens defined in site.css) ===== */
.booking-head h1,.secretary-header h1{font-size:var(--fs-h1);line-height:1.6}
.appointment-success h1{font-size:var(--fs-h2)}
.booking-panel-title h2,.schedule-panel__head h2,.secretary-panel__head h2,.secretary-login-card h1,.secretary-edit-card h1{font-size:var(--fs-h3)}
.booking-head p,.secretary-header p{font-size:var(--fs-lead)}
.appointment-success>p{font-size:var(--fs-body)}
.booking-panel-title p,.secretary-login-card>p,.secretary-register-card__intro,.booking-submit-row strong{font-size:var(--fs-sm)}
.booking-kicker,.secretary-eyebrow,.booking-step__number,.booking-panel-title>span,.schedule-panel__head>div>span,.secretary-panel__head span,.secretary-login-card small,.booking-hours span,.booking-hours small,.patient-form-note p,.booking-submit-row span,.schedule-date-label,.schedule-date-label span,.schedule-slots-head,.schedule-slots-head>span,.schedule-selected span,.schedule-selected strong,.secretary-stats span,.secretary-hours-badge,.secretary-free-slot span,.secretary-patient-meta,.secretary-patient-card__main p,.secretary-create-form small{font-size:var(--fs-xs)}
.schedule-date span,.schedule-date small,.schedule-time small,.booking-progress__item small,.secretary-free-slot small,.status-pill,.schedule-panel__head>small{font-size:var(--fs-2xs)}
.booking-progress__item strong{font-size:var(--fs-xs)}
.booking-field,.secretary-create-form label,.secretary-login-form label{font-size:var(--fs-sm)}
.appointment-input{font-size:var(--fs-body)!important;min-height:var(--control-h)!important}
.appointment-input--phone,.appointment-input--otp{font-size:18px!important}
.secretary-create-form input,.secretary-create-form select,.secretary-create-form textarea{font-size:var(--fs-body)}
.booking-primary,.secretary-primary-button{min-height:var(--control-h);font-size:var(--fs-body);font-weight:600}
.secretary-date-filter button,.secretary-logout,.secretary-status-form button,.secretary-edit-link,.secretary-patient-card__actions button{min-height:var(--control-h-sm);font-size:var(--fs-xs)}
.secretary-status-form select{min-height:var(--control-h-sm);font-size:var(--fs-xs)}
.secretary-patient-card h3{font-size:var(--fs-body)}

/* ===== UX layer (tokens in site.css): depth and feedback,palette unchanged ===== */
.booking-progress,.booking-combined-card,.secretary-stats>div,.secretary-schedule-card,.secretary-register-card,.secretary-edit-card,.secretary-login-card,.secretary-cancelled,.appointment-success{box-shadow:var(--shadow-card)}
.booking-primary,.secretary-primary-button,.schedule-date,.schedule-time,.secretary-patient-card,.secretary-free-slot,.secretary-date-filter button,.secretary-logout,.secretary-status-form button,.secretary-edit-link{transition:background-color .18s,border-color .18s,box-shadow .18s,transform .18s var(--ease)}
@media(hover:hover){
  .booking-primary:hover,.secretary-primary-button:hover{transform:translateY(-1px);box-shadow:0 8px 20px #2a4b5a26}
  .schedule-date:not(.is-selected):hover,.schedule-time:not(:disabled):not(.is-selected):hover{border-color:#6e9cae;background:var(--blue-soft)}
  .secretary-patient-card:hover{box-shadow:var(--shadow-card);border-color:#9fbccb}
  .secretary-slot.is-free .secretary-free-slot:hover{border-color:#9fbccb;background:var(--surface)}
  .secretary-date-filter button:hover,.secretary-status-form button:hover,.secretary-edit-link:hover{background:var(--blue-soft);border-color:#97b9c6}
}
.booking-primary:active,.secretary-primary-button:active,.schedule-date:active,.schedule-time:not(:disabled):active{transform:scale(.98)}
.schedule-time.is-selected{box-shadow:0 6px 16px #2a4b5a30}
.booking-shell,.secretary-shell{padding-block:clamp(28px,1rem + 2.5vw,48px) clamp(40px,1.5rem + 3vw,64px)}
@media(max-width:760px){
  .booking-primary--continue,.secretary-login-form .secretary-primary-button{width:100%}
}

/* Doctor panel for online screenings */
.panel-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.panel-filters{display:flex;flex-wrap:wrap;gap:6px}
.panel-filters a{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:var(--fs-xs)}
.panel-filters a b{font-weight:600;color:var(--muted)}
.panel-filters a.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
.panel-filters a.is-active b{color:#dbe9ef}
.panel-search{display:flex;gap:6px}
.panel-search input{min-width:240px}
.panel-list{display:grid;gap:0;padding:6px 18px}
.panel-row{display:grid;grid-template-columns:150px minmax(0,1.3fr) minmax(0,1fr) 110px 100px;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}
.panel-row:last-child{border-bottom:0}
.panel-row:hover strong{color:var(--rose)}
.panel-row__review{font-size:var(--fs-xs);color:var(--muted)}
.panel-empty{padding:24px 4px;font-size:var(--fs-sm)}
.result-pill{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:8px;font-size:var(--fs-xs);font-weight:600;background:#e1ebf1;color:#435e71;white-space:nowrap}
.result-pill--normal{background:#dfede6;color:#426650}
.result-pill--monitoring,.result-pill--concern{background:#f2ebdf;color:#7b6547}
.result-pill--referral,.result-pill--below_cutoff{background:var(--pink-soft);color:var(--rose)}
.result-pill--invalid{background:#eceff2;color:#5f6b73}
.panel-overview{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;margin-bottom:20px}
.panel-verdict p{font-size:var(--fs-body);margin-top:10px}
.panel-verdict__concern{color:var(--rose)!important;font-weight:600}
.panel-verdict small{display:block;margin-top:10px;font-size:var(--fs-xs);color:var(--muted)}
.panel-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0}
.panel-facts dt{font-size:var(--fs-xs);color:var(--muted)}
.panel-facts dd{margin:3px 0 0;font-size:var(--fs-body);font-weight:600}
.secretary-shell .secretary-schedule-card+.secretary-schedule-card,.panel-overview+.secretary-schedule-card{margin-top:20px}
.panel-table-wrap{overflow-x:auto}
.panel-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.panel-table th,.panel-table td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}
.panel-table thead th{font-size:var(--fs-xs);color:var(--muted);font-weight:500}
.panel-table tbody th{font-weight:600}
.panel-table__row--referral{background:#fbf3f6}
.panel-table__row--monitoring{background:#faf6ef}
.panel-hint{margin-top:12px;font-size:var(--fs-xs);color:var(--muted)}
.panel-answers{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.panel-answers li{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;padding:12px 14px;border-radius:12px;background:#f7fafb;font-size:var(--fs-sm)}
.panel-answers li>span{font-size:var(--fs-xs);font-weight:600;color:var(--accent)}
.panel-answers li.is-concern{background:#fbf3f6}
.panel-answers li.is-concern>span{color:var(--rose)}
.panel-answers strong{font-weight:500;display:block}
.panel-answers small{font-size:var(--fs-xs);color:var(--muted)}
.panel-answers p{margin-top:6px;font-size:var(--fs-sm);color:var(--ink);white-space:pre-line}
.panel-section{margin-top:10px}
.panel-answer-list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.panel-answer-list li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;font-size:var(--fs-sm);padding:6px 0;border-bottom:1px dashed var(--border)}
.panel-answer-list__value{font-weight:600;color:var(--accent)}
@media(max-width:900px){.panel-overview{grid-template-columns:1fr}.panel-row{grid-template-columns:1fr 1fr;row-gap:4px}.panel-search input{min-width:0}}
@media print{.secretary-header__tools,.ds-nav,.site-footer{display:none}.secretary-schedule-card{box-shadow:none}.panel-section{display:block}.panel-section:not([open])>*:not(summary){display:block}}

/* Patient records */
.record-count{font-size:var(--fs-sm);color:var(--muted)}
.patient-row{grid-template-columns:minmax(0,1.3fr) 150px 130px 70px 90px 140px}
.record-badge{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--blue-soft);color:var(--accent);font-size:var(--fs-xs);font-weight:600}
.record-facts{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}
.panel-facts dd[dir=ltr]{text-align:right}
.record-docs{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.record-docs li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#f7fafb}
.record-docs__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--pink-soft);color:var(--rose);font-size:var(--fs-2xs);font-weight:700}
.record-docs strong{display:block;font-size:var(--fs-body);font-weight:600}
.record-docs small{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:var(--fs-xs);color:var(--muted)}
.record-docs__actions{display:flex;flex-wrap:wrap;gap:6px}
.record-card{margin-bottom:20px}
.record-hint{margin:0 0 12px}
.record-search{margin-bottom:14px}
.record-form fieldset{display:grid;gap:8px;margin:0 0 14px;padding:0;border:0}
.record-form__label{padding:0;margin-bottom:2px;font-size:var(--fs-xs);color:var(--muted)}
.record-option{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .15s,background-color .15s}
.record-option:hover{border-color:#a9c4cf}
.record-option:has(input:checked){border-color:var(--accent);background:var(--blue-soft)}
.record-option input{flex:none;width:18px;height:18px;margin:0}
.record-option strong{display:block;font-size:var(--fs-sm);font-weight:600}
.record-option small{display:block;font-size:var(--fs-xs);color:var(--muted)}
.record-filed{font-size:var(--fs-body)}
.record-filed a{color:var(--accent);font-weight:700}
.record-filed a:hover{text-decoration:underline}
.record-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.record-remove{padding:8px;border:0;background:none;color:#983c56;font:inherit;font-size:var(--fs-sm);cursor:pointer}
.record-remove:hover{text-decoration:underline}
.secretary-patient-card__title h3 a:hover{color:var(--rose)}
@media(max-width:900px){.patient-row{grid-template-columns:1fr 1fr}.record-facts{grid-template-columns:1fr 1fr}.record-docs li{grid-template-columns:44px minmax(0,1fr)}.record-docs__actions{grid-column:1/-1}}

/* Phone and code steps: one focused card in the middle of the page. */
.booking-verify{max-width:460px;margin:0 auto;padding:34px 32px 28px;text-align:center;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-card)}
.booking-verify__icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border-radius:16px;background:var(--blue-soft);color:var(--accent)}
.booking-verify__icon svg{width:26px;height:26px}
.booking-verify h2{margin:6px 0 8px;font-size:var(--fs-h3)}
.booking-verify>p{font-size:var(--fs-body);line-height:2;color:var(--muted)}
.booking-verify>p b{color:var(--ink);font-weight:700;unicode-bidi:isolate}
.booking-verify__edit{margin-inline-start:6px;color:var(--accent);font-weight:600;white-space:nowrap}
.booking-verify__edit:hover{text-decoration:underline}
.booking-verify__form{display:grid;gap:12px;margin-top:22px;text-align:right}
.booking-verify__form .booking-field{margin:0}
.booking-verify__form .appointment-input--phone{text-align:center;font-size:18px!important;letter-spacing:.08em}
.booking-verify .booking-primary{width:100%}
.booking-verify__status{margin-top:12px;padding:8px 12px;border-radius:10px;background:#e1eeeb;color:#35624f;font-size:var(--fs-sm)}
.booking-verify__status--error{background:#f5e3eb;color:#983c56}
.booking-verify__error{display:block;text-align:center;font-style:normal;font-size:var(--fs-sm);color:#983c56}
.booking-verify__resend{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:18px;font-size:var(--fs-sm);color:var(--muted)}
.booking-verify__resend button{padding:6px;border:0;background:none;color:var(--accent);font:inherit;font-weight:700;cursor:pointer}
.booking-verify__resend button:hover:not(:disabled){text-decoration:underline}
.booking-verify__resend button:disabled{color:var(--muted);font-weight:500;cursor:default}
.booking-verify__timer{min-width:2.6em;text-align:left;font-variant-numeric:tabular-nums}
.booking-verify__hint{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--muted)}
.booking-verify__note{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:18px;font-size:var(--fs-xs)!important}
.booking-verify__note svg{width:16px;height:16px;flex:none;color:var(--accent)}
/* Six code boxes drawn over one real input, so SMS autofill and paste keep working; without script the plain input shows. */
.otp-input{position:relative}
.otp-input__boxes{display:none}
.otp-input.is-enhanced .otp-input__boxes{display:flex;justify-content:center;gap:8px;direction:ltr}
.otp-input__boxes span{display:grid;place-items:center;flex:1 1 0;max-width:52px;height:58px;border:1px solid #bdcfd6;border-radius:12px;background:var(--surface);color:var(--ink);font-size:22px;font-weight:700;transition:border-color .15s,box-shadow .15s}
.otp-input__boxes span.is-filled{border-color:#97b9c6}
.otp-input.is-focused .otp-input__boxes span.is-active{border-color:var(--accent);box-shadow:0 0 0 3px #5384943a}
.otp-input.has-error .otp-input__boxes span{border-color:#be6e90}
/* :not([type=hidden]) matches the weight of the site-wide input rule, which this must override. */
.otp-input.is-enhanced input.appointment-input--otp:not([type=hidden]){position:absolute;inset:0;z-index:1;width:100%;height:100%;min-height:0;padding:0;border:0;background:transparent;box-shadow:none;color:transparent;caret-color:transparent;font-size:16px!important}
.otp-input.is-enhanced input.appointment-input--otp:not([type=hidden]):focus-visible{box-shadow:none}
.otp-input.is-enhanced input.appointment-input--otp::placeholder{color:transparent}
.otp-input.is-enhanced input.appointment-input--otp::selection{background:transparent;color:transparent}
@media(prefers-reduced-motion:no-preference){.otp-input.has-error .otp-input__boxes{animation:otp-shake .35s}}
@keyframes otp-shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media(max-width:480px){.booking-verify{padding:26px 18px 22px}.otp-input.is-enhanced .otp-input__boxes{gap:6px}}
