.appointment-workspace{padding:0;overflow:hidden;border-radius:10px}.appointment-workspace .schedule-mode-tabs{margin:0;padding:0 18px;border-bottom:1px solid #e2e9ed}.appointment-workspace .schedule-mode-tabs button{padding:15px 12px;border-radius:0}.appointment-layout{display:grid;grid-template-columns:208px minmax(0,1fr)}.appointment-sidebar{padding:16px 12px;border-right:1px solid #e2e9ed;background:#fbfcfd}.appointment-board-main{min-width:0;padding:0 16px 12px}.appointment-month-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:6px}.appointment-month-heading strong{font-size:14px}.appointment-month-heading button{border:0;background:transparent;padding:3px 9px;font-size:20px}.appointment-mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}.appointment-mini-grid>span{font-size:11px;color:#6a7c88;padding-bottom:8px}.appointment-mini-grid button{border:0;background:transparent;border-radius:5px;padding:4px 0;min-width:0;display:flex;flex-direction:column;align-items:center;line-height:17px;font-size:12px;color:#344c5b}.appointment-mini-grid small{font-size:9px;line-height:12px;color:#8a9ba5}.appointment-mini-grid button.outside{color:#adb8bf}.appointment-mini-grid button.today{box-shadow:inset 0 0 0 1px #159aae}.appointment-mini-grid button.selected{background:#078aa3;color:#fff}.appointment-mini-grid button.selected small{color:#e2f8fc}.appointment-mini-grid button:hover{background:#e4f3f6;color:#146879}.appointment-mini-grid button.selected:hover{background:#087a91;color:white}.appointment-sidebar-title{font-size:12px;font-weight:650;color:#607681;margin:22px 6px 9px}.appointment-sidebar .appointment-doctor-strip{display:flex;flex-direction:column;gap:3px;padding:0;border:0;margin:0}.appointment-sidebar .appointment-doctor-strip button{display:flex;align-items:center;justify-content:space-between;border:0;border-radius:5px;background:transparent;margin:0;padding:9px 10px;font-size:12px;text-align:left}.appointment-sidebar .appointment-doctor-strip button.active{background:#e0f2f6;color:#086c83}.appointment-sidebar .appointment-doctor-strip small{padding:1px 6px;border-radius:4px;background:#edf1f4;color:#617b89}.appointment-workspace .calendar-range{margin:15px 0 12px}.appointment-range-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.appointment-workspace .calendar-range h2{font-size:17px}.appointment-workspace .calendar-navigation button{padding:6px 10px;font-size:12px}.appointment-workspace .toolbar{gap:6px;margin-bottom:10px}.appointment-workspace .toolbar input,.appointment-workspace .toolbar select,.appointment-workspace .toolbar button{font-size:12px;min-height:32px;padding:6px 8px}.appointment-workspace #ap-date{width:132px;flex:none}.appointment-workspace #ap-search{min-width:190px;flex:1}.appointment-workspace #ap-doctor,.appointment-workspace #ap-status{display:none}.appointment-workspace #ap-week-strip{display:none}.appointment-workspace .appointment-status-strip{gap:4px;margin:6px 0;padding:0;flex-wrap:wrap}.appointment-workspace .appointment-status-strip button{font-size:11px;padding:5px 7px;border:1px solid transparent;border-radius:4px;display:flex;align-items:center;gap:5px}.appointment-workspace .appointment-status-strip button::before{content:'';width:6px;height:6px;background:var(--event-color,#8ba0aa);border-radius:2px}.appointment-workspace .appointment-status-strip button.active{border-color:#1796aa;background:#eff9fb}.appointment-workspace #ap-sync{font-size:10px;color:#8495a0;margin:8px 0}.appointment-workspace #ap-sync.error{color:#b63f3f}.appointment-workspace .calendar-legend,.appointment-workspace .calendar-help{display:none}.appointment-workspace .calendar-empty{font-size:12px;padding:7px 10px;margin:6px 0}.appointment-workspace .schedule-scroll{max-height:calc(100vh - 330px);min-height:270px;border-radius:5px;scrollbar-gutter:auto}.appointment-workspace .schedule-column-title,.appointment-workspace .schedule-corner{min-height:54px;padding:9px 6px;background:#f5f9fb;color:#35596b;font-size:13px}.appointment-workspace .schedule-column-title small{font-size:10px;margin-top:3px}.appointment-workspace .schedule-event{background:var(--event-bg);border-left:3px solid var(--event-color);border-top:1px solid var(--event-color);border-radius:4px}.appointment-workspace .schedule-time,.appointment-workspace .schedule-slot{height:var(--calendar-slot-height,44px)}.appointment-workspace .schedule-time{font-size:10px;line-height:22px}.appointment-workspace .schedule-slot{border-top:1px dashed #e7edf0}.appointment-workspace .schedule-slot:nth-child(4n+1){border-top:1px solid #d6e4e9}.appointment-workspace .schedule-time:nth-child(even){color:#91a1aa}.appointment-workspace button:focus-visible{outline:2px solid #078aa3;outline-offset:1px}
.appointment-dialog{width:min(760px,94vw)}.appointment-dialog .appointment-duration>span{display:block;font-size:13px;color:#617783;margin-bottom:8px}.appointment-duration>div{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.appointment-duration button,.appointment-projects button{padding:5px 10px;font-size:12px;border:1px solid #dce5e9;background:white;border-radius:5px}.appointment-duration button.active,.appointment-projects button.active{background:#e1f3f8;border-color:#3299af;color:#126a7e}.appointment-duration output{font-size:12px;color:#597581;margin-left:4px}.appointment-projects{border:1px solid #e1e8ec;background:#f9fbfc;border-radius:8px;padding:11px 13px}.appointment-projects summary{font-size:13px;cursor:pointer}.appointment-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.appointment-project-grid strong{display:block;font-size:11px;color:#738995;margin-bottom:6px}.appointment-project-grid>div>div{display:flex;gap:5px;flex-wrap:wrap}.appointment-patient-search small{color:#7b8d97;font-size:11px}.appointment-dialog .coordination-reference{order:10}.appointment-dialog .actions{position:sticky;bottom:-24px;padding:12px 0;background:white;z-index:4;border-top:1px solid #e7edf0}
@media(max-width:1100px){.appointment-layout{grid-template-columns:180px minmax(0,1fr)}.appointment-sidebar{padding:14px 8px}.appointment-board-main{padding:0 10px 10px}.appointment-workspace .calendar-range{gap:8px}.appointment-workspace .schedule-scroll{max-height:calc(100vh - 365px)}}
@media(max-width:700px){.appointment-layout{display:block}.appointment-sidebar{display:none}.appointment-workspace #ap-week-strip{display:block}.appointment-workspace #ap-doctor,.appointment-workspace #ap-status{display:block}.appointment-workspace .calendar-range{align-items:flex-start}.appointment-range-title{gap:4px}.appointment-workspace .schedule-scroll{max-height:460px}.appointment-workspace .toolbar{display:none}.appointment-workspace.filter-open .toolbar{display:flex}.appointment-workspace .schedule-mode-tabs{padding:0 8px}.appointment-workspace .schedule-mode-tabs button{padding:12px 9px;font-size:13px}.appointment-project-grid{grid-template-columns:1fr}.appointment-dialog .actions{bottom:-16px}}
.main:has(.appointment-workspace){padding-left:18px;padding-right:18px}.main:has(.appointment-workspace) .topbar{height:56px;margin-bottom:12px}.main:has(.appointment-workspace) #view>.pagehead{margin-bottom:12px}.main:has(.appointment-workspace) #view>.pagehead h1{font-size:22px;margin:0}.appointment-workspace .appointment-status-strip button.active{color:#176477}.appointment-workspace .schedule-event strong{order:-1}.appointment-workspace .schedule-scroll{max-height:calc(100vh - 285px)}
@media(max-width:700px){.main:has(.appointment-workspace){padding-left:10px;padding-right:10px}.appointment-workspace .schedule-scroll{max-height:460px}}
.appointment-workspace .schedule-scroll{max-height:calc(100vh - 360px)}
.appointment-dialog{width:min(980px,94vw)}.appointment-dialog #modal-content>h2{margin:0 0 18px;font-size:20px}.appointment-dialog .appointment-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:20px;align-items:start}.appointment-dialog .appointment-entry{gap:12px 14px;align-content:start}.appointment-dialog .appointment-entry>label{margin:0;gap:5px;font-size:12px}.appointment-dialog .appointment-entry input,.appointment-dialog .appointment-entry select{padding:8px 10px;font-size:12px;min-height:36px}.appointment-dialog .appointment-duration{margin:0;padding:4px 0}.appointment-dialog .appointment-duration>span{font-size:12px;margin:0 0 6px}.appointment-dialog .appointment-duration button{padding:5px 7px;font-size:11px}.appointment-dialog .appointment-suggestions{display:flex;flex-direction:column;gap:12px}.appointment-dialog .appointment-project-grid{grid-template-columns:1fr;gap:12px}.appointment-dialog .coordination-reference{font-size:11px;padding:9px}.appointment-dialog .coordination-reference>div{max-height:150px}.appointment-dialog .appointment-projects button{font-size:11px;padding:4px 7px}.appointment-dialog .appointment-project-grid strong{margin-bottom:5px}.appointment-dialog .appointment-patient-search small{font-size:10px}.appointment-dialog .actions{bottom:-24px;margin-top:14px}
@media(max-width:700px){.appointment-dialog .appointment-form-layout{grid-template-columns:1fr}.appointment-dialog .appointment-project-grid{grid-template-columns:1fr 1fr}.appointment-dialog .appointment-entry{gap:10px}.appointment-dialog .actions{bottom:-16px}.appointment-workspace .schedule-scroll{max-height:460px}}
.appointment-dialog [hidden]{display:none!important}.appointment-new-patient{border:1px solid #cfe4e5;border-radius:8px;padding:10px 12px;background:#f4faf9}.appointment-new-patient p:empty{display:none}.appointment-new-patient .grid{gap:10px}.appointment-new-patient label{font-size:12px}.appointment-new-patient p{font-size:12px;margin:8px 0}.appointment-new-patient button{font-size:12px}.appointment-new-patient #ap-new-duplicates{display:flex;flex-wrap:wrap;gap:6px}
.appointment-new-patient .patient-birth-field,.registration-patient-birth .patient-birth-field{grid-template-columns:minmax(0,1fr);gap:6px}.appointment-new-patient .patient-birth-label,.registration-patient-birth .patient-birth-label{padding:0}.registration-patient-birth{padding:0 0 10px;margin:0;border-bottom:1px solid var(--ui-line,#dedfe2)}.registration-patient-birth>[data-registration-birth-summary]{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;margin:0 0 7px;font-size:13px}.registration-patient-birth [data-registration-birth-summary]>strong{font-weight:500}.registration-patient-birth [data-registration-birth-summary]>span{color:var(--ui-muted,#777c84);font-size:12px}.registration-patient-birth details{padding:0;border:0;background:none}.registration-patient-birth summary{padding:5px 0;font-size:13px;color:var(--ui-accent,#00a6c4);cursor:pointer}.registration-patient-birth details[open]>summary{margin-bottom:8px}.registration-patient-birth p.subtle{margin:7px 0 0;font-size:12px}

/* Appointment workspace: compact controls and full-width working area. */
#view .appointment-workspace{padding:0;min-width:0;overflow:clip}
.appointment-command-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid #dde7ec;background:#f8fbfd}
.appointment-command-bar .schedule-mode-tabs{border:0;padding:0;display:flex;min-width:0;overflow:auto}
.appointment-command-bar>.actions{flex-shrink:0;gap:8px}
.appointment-workspace.sidebar-collapsed .appointment-layout{grid-template-columns:minmax(0,1fr)}
.appointment-workspace.sidebar-collapsed .appointment-sidebar{display:none}
.appointment-workspace .appointment-layout{align-items:start}
.appointment-workspace .appointment-controls{position:sticky;top:0;z-index:6;background:white;padding-top:1px;border-bottom:1px solid #e5edf1}
.appointment-workspace #ap-doctor{display:block;min-width:130px}
.appointment-workspace .calendar-range{margin:12px 0 8px}
.appointment-workspace .toolbar{margin-bottom:8px}
.appointment-workspace .toolbar input,.appointment-workspace .toolbar select,.appointment-workspace .toolbar button{font-size:13px;min-height:36px}
.appointment-workspace #ap-sync{margin:5px 0;font-size:11px}
.appointment-workspace .calendar-business{margin:5px 0;display:flex;justify-content:space-between;align-items:center;font-size:12px}
.appointment-workspace .calendar-business button{padding:5px 9px}
.appointment-workspace .schedule-scroll{height:calc(100dvh - 340px);max-height:none;min-height:300px;overflow:auto}
.appointment-workspace .schedule-event strong{font-size:13px}
#modal.appointment-detail-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(480px,94vw);height:100dvh;max-height:100dvh;border-radius:14px 0 0 14px;padding:24px;box-sizing:border-box}
#modal.appointment-detail-drawer::backdrop{background:rgba(20,39,57,.16)}
.appointment-detail-drawer .calendar-detail{line-height:1.7}
.appointment-detail-drawer .patient-card-link{font-size:20px;display:block;margin:18px 0 8px}
.appointment-detail-drawer .actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:700px){
 .appointment-command-bar{flex-wrap:wrap;padding:0 4px 8px;gap:6px}
 .appointment-command-bar .schedule-mode-tabs{width:100%;padding:0 94px 0 0}
 .appointment-command-bar>.actions{width:100%;justify-content:flex-end}
 #ap-sidebar-toggle{display:none}
 .appointment-workspace .schedule-scroll{height:60dvh;min-height:280px}
 #modal.appointment-detail-drawer{width:100%;border-radius:0;padding:18px}
 .appointment-workspace .appointment-controls{position:static}
}
