/* Appointment-only reference layout. Load after the shared clinic styles.
   Calendar positions remain 44px per 30 minutes; do not scale slot heights. */
#view .appointment-workspace {
  --appointment-accent: #00a6c4;
  --appointment-line: #dedfe3;
  --appointment-sidebar-width: 267px;
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--appointment-line);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  color: #393d44;
}
.appointment-workspace [hidden] { display: none !important; }
.appointment-workspace button { box-shadow: none; }
.appointment-workspace .appointment-command-bar {
  flex: none;
  min-height: 46px;
  padding: 0 12px;
  gap: 12px;
  background: #fff;
  border-bottom: 1px solid var(--appointment-line);
}
.appointment-workspace .appointment-command-bar .schedule-mode-tabs {
  flex: 1;
  align-self: stretch;
  align-items: stretch;
  min-width: 0;
  width: auto;
  padding: 0;
  margin: 0;
  gap: 0;
  border: 0;
  background: #fff;
}
.appointment-workspace .appointment-command-bar .schedule-mode-tabs button {
  flex: none;
  min-height: 46px;
  padding: 11px 15px 9px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: #fff;
  color: #34383f;
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
}
.appointment-workspace .appointment-command-bar .schedule-mode-tabs button.active {
  color: #049ab5;
  background: #fff;
  border-bottom-color: var(--appointment-accent);
}
.appointment-workspace .appointment-command-bar > .actions {
  flex: none;
  gap: 7px;
  margin: 0;
}
.appointment-workspace .appointment-command-bar > .actions button {
  min-height: 32px;
  padding: 6px 11px;
  border-radius: 3px;
  font-size: 12px;
  white-space: nowrap;
}
.appointment-workspace .appointment-command-bar button.primary {
  color: #fff;
  background: var(--appointment-accent);
  border-color: #00a0bf;
}
.appointment-workspace .appointment-layout {
  flex: 1;
  display: grid;
  grid-template-columns: var(--appointment-sidebar-width) minmax(0, 1fr);
  align-items: stretch;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}
.appointment-workspace.sidebar-collapsed .appointment-layout { grid-template-columns: minmax(0, 1fr); }
.appointment-workspace.sidebar-collapsed .appointment-sidebar { display: none; }
.appointment-workspace .appointment-sidebar {
  min-height: 0;
  min-width: 0;
  padding: 15px 12px 12px;
  overflow: auto;
  border-right: 1px solid var(--appointment-line);
  background: #fff;
}
.appointment-workspace .appointment-month-heading { gap: 6px; margin-bottom: 12px; }
.appointment-workspace .appointment-month-heading strong { font-size: 14px; font-weight: 500; }
.appointment-workspace .appointment-month-heading button { min-height: 28px; padding: 3px 7px; color: #8b919a; }
.appointment-workspace .appointment-mini-grid { gap: 2px; }
.appointment-workspace .appointment-mini-grid > span { padding-bottom: 7px; color: #8b9097; font-size: 11px; }
.appointment-workspace .appointment-mini-grid button {
  min-height: 35px;
  padding: 3px 0;
  border-radius: 0;
  background: #fff;
  color: #3b4047;
  font-size: 12px;
  line-height: 17px;
}
.appointment-workspace .appointment-mini-grid button.outside { color: #c4c8cd; }
.appointment-workspace .appointment-mini-grid small { color: #8a9097; font-size: 9px; line-height: 11px; }
.appointment-workspace .appointment-mini-grid button.today { box-shadow: inset 0 0 0 1px #00a6c4; }
.appointment-workspace .appointment-mini-grid button.selected { color: #fff; background: var(--appointment-accent); border-radius: 0; }
.appointment-workspace .appointment-mini-grid button.selected small { color: #fff; }
.appointment-workspace .appointment-sidebar-title {
  margin: 16px -12px 7px;
  padding: 10px 13px;
  border-top: 1px solid var(--appointment-line);
  border-bottom: 1px solid #eceef0;
  background: #f6f7f9;
  color: #626872;
  font-size: 12px;
  font-weight: 400;
}
.appointment-workspace .appointment-doctor-strip button { min-height: 33px; padding: 7px 8px; border-radius: 0; font-size: 12px; }
.appointment-workspace .appointment-doctor-strip button.active { background: #e7f8fc; color: #008ca7; }
.appointment-workspace .appointment-doctor-strip small { background: transparent; color: #84909a; }
.appointment-workspace .appointment-board-main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: #fff;
}
.appointment-workspace .appointment-controls {
  flex: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px 12px;
  position: relative;
  padding: 10px 12px 8px;
  border-bottom: 1px solid var(--appointment-line);
  background: #fff;
  z-index: 6;
}
.appointment-workspace .calendar-range { min-width: 0; margin: 0; gap: 10px; flex-wrap: nowrap; }
.appointment-workspace .appointment-range-title { min-width: 0; gap: 5px 9px; }
.appointment-workspace .calendar-range h2 { font-size: 15px; font-weight: 600; color: #34383f; }
.appointment-workspace #ap-count { font-size: 10px; color: #858d97; }
.appointment-workspace .calendar-navigation { flex: none; gap: 4px; }
.appointment-workspace .calendar-navigation button { min-height: 28px; padding: 4px 7px; font-size: 11px; border-color: #dfe2e6; }
.appointment-workspace .appointment-view-controls { display: flex; align-items: center; gap: 8px; min-width: 0; }
.appointment-workspace .appointment-view-segments { display: flex; flex: none; }
.appointment-workspace .appointment-view-segments button {
  min-width: 38px;
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid #d9dce1;
  border-radius: 0;
  background: #fff;
  color: #727780;
  font-size: 12px;
}
.appointment-workspace .appointment-view-segments button + button { border-left-width: 0; }
.appointment-workspace .appointment-view-segments button:first-child { border-radius: 3px 0 0 3px; }
.appointment-workspace .appointment-view-segments button:last-child { border-radius: 0 3px 3px 0; }
.appointment-workspace .appointment-view-segments button.active,
.appointment-workspace .appointment-view-segments button[aria-pressed="true"] { background: #9599a4; border-color: #9599a4; color: #fff; }
.appointment-workspace .appointment-view-controls select { min-width: 118px; min-height: 30px; padding: 5px 8px; font-size: 12px; }
.appointment-workspace .appointment-primary-filters,
.appointment-workspace .appointment-filter-body {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  min-width: 0;
  margin: 0;
}
.appointment-workspace .appointment-primary-filters input,
.appointment-workspace .appointment-primary-filters select,
.appointment-workspace .appointment-primary-filters button,
.appointment-workspace .appointment-filter-body input,
.appointment-workspace .appointment-filter-body select,
.appointment-workspace .appointment-filter-body button { min-height: 30px; padding: 5px 8px; border-radius: 3px; font-size: 12px; }
.appointment-workspace #ap-doctor { display: block; width: 135px; min-width: 120px; }
.appointment-workspace #ap-search { flex: 1; width: 230px; min-width: 100px; max-width: 380px; }
.appointment-workspace #ap-date { width: 135px; flex: none; }
.appointment-workspace .appointment-filter-body #ap-status { display: block; }
.appointment-workspace .appointment-filter-body { padding: 8px; background: #f8fafb; border: 1px solid #edf0f2; }
.appointment-workspace .appointment-filter-field { display: flex; align-items: center; gap: 6px; margin: 0; color: #858d97; font-size: 11px; }
.appointment-workspace .appointment-filter-field > span { white-space: nowrap; }
.appointment-workspace .appointment-primary-filters .appointment-filter-toggle { position: static; display: block; width: auto; min-height: 30px; margin: 0; color: #169db5; }
.appointment-workspace #ap-week-strip { display: none; }
.appointment-workspace .appointment-status-strip {
  grid-column: 1;
  display: flex;
  flex-wrap: wrap;
  min-width: 0;
  gap: 3px;
  margin: 0;
  padding: 0;
  border: 0;
}
.appointment-workspace .appointment-status-strip button {
  display: flex;
  align-items: center;
  gap: 4px;
  min-height: 25px;
  padding: 3px 7px;
  border: 1px solid transparent;
  border-radius: 2px;
  font-size: 11px;
  line-height: 17px;
  box-shadow: none;
  color: var(--event-ink, #5e6570);
  background: var(--event-bg, #f1f3f5);
}
.appointment-workspace .appointment-status-strip button::before { content: none; }
.appointment-workspace .appointment-status-strip button:first-child { color: #68717c; background: #f1f3f5; border-color: #d9dfe5; }
.appointment-workspace .appointment-status-strip button.active { border-color: #008ba8; outline: 1px solid #008ba8; outline-offset: 0; }
.appointment-workspace .appointment-status-strip small { color: inherit; font-size: 10px; }
.appointment-workspace #ap-sync { grid-column: 2; max-width: none; margin: 0; color: #959ba4; font-size: 10px; line-height: 15px; text-align: right; white-space: nowrap; }
.appointment-workspace #ap-sync.error { max-width: 250px; color: #b63f3f; white-space: normal; overflow-wrap: anywhere; }
.appointment-workspace #ap-results { display: flex; flex: 1; flex-direction: column; min-height: 0; min-width: 0; width: 100%; overflow: auto; }
.appointment-workspace .calendar-business { flex: none; margin: 0; padding: 4px 12px; border-bottom: 1px solid #eceef1; color: #8d959e; font-size: 10px; }
.appointment-workspace .calendar-business button { padding: 2px 6px; min-height: 21px; color: #279aaf; border-color: #e0e5e9; font-size: 10px; }
.appointment-workspace .calendar-empty { flex: none; margin: 0; padding: 6px 12px; background: #f8fafb; border-radius: 0; color: #7e8993; font-size: 11px; }
#view .appointment-workspace .schedule-scroll { flex: 1; height: auto; min-height: 0; max-height: none; width: 100%; border: 0; border-radius: 0; overflow: auto; box-sizing: border-box; }
.appointment-workspace .schedule-grid { grid-template-columns: 48px repeat(var(--calendar-columns), minmax(var(--calendar-column-width), 1fr)); }
.appointment-workspace .schedule-column-title,
.appointment-workspace .schedule-column-title:nth-child(3n),
.appointment-workspace .schedule-column-title.is-today,
.appointment-workspace .schedule-corner { min-height: 54px; padding: 10px 6px 7px; background: #fff; color: #34383f; border-color: #e0e1e4; border-radius: 0; font-size: 13px; }
.appointment-workspace .schedule-column-title small { margin-top: 4px; color: #9298a0; font-size: 10px; font-weight: 400; }
.appointment-workspace .schedule-times { background: #fff; border-color: #e0e1e4; }
.appointment-workspace .schedule-time { color: #9298a0; border-color: #eef0f2; font-size: 10px; }
.appointment-workspace .schedule-end-time { color: #9298a0; background: #fff; }
.appointment-workspace .schedule-lane { border-color: #dfe2e5; }
.appointment-workspace .schedule-slot { border-top-color: #eef0f2; border-top-style: solid; }
.appointment-workspace .schedule-slot:nth-child(4n + 1) { border-top-color: #dfe2e5; }
.appointment-workspace .schedule-slot.outside-business-hours { background: #f5f6f7; }
.appointment-workspace .schedule-slot.business-hours { background: #fff; }
.appointment-workspace .schedule-slot:hover,
.appointment-workspace .schedule-slot:focus-visible { background: #e6f8fd; }
.appointment-workspace .state-booked { --event-color: #49b6df; --event-bg: #89d6f2; --event-ink: #164964; }
.appointment-workspace .state-arrived { --event-color: #83b947; --event-bg: #c8e7a9; --event-ink: #385a20; }
.appointment-workspace .state-waiting { --event-color: #68ad56; --event-bg: #a9d994; --event-ink: #315324; }
.appointment-workspace .state-working { --event-color: #e6a135; --event-bg: #ffd18a; --event-ink: #6c4510; }
.appointment-workspace .state-done { --event-color: #69a780; --event-bg: #b2d5bc; --event-ink: #315b40; }
.appointment-workspace .state-cancelled { --event-color: #9ba2ac; --event-bg: #dfe3e8; --event-ink: #606975; }
.appointment-workspace .state-missed { --event-color: #798493; --event-bg: #a6afbb; --event-ink: #27394d; }
.appointment-workspace .schedule-event {
  gap: 1px;
  padding: 3px 6px;
  background: var(--event-bg);
  color: var(--event-ink);
  border: 1px solid #fff;
  border-radius: 5px;
  box-shadow: 0 2px 4px #39495524;
}
.appointment-workspace .schedule-event strong { order: -1; color: inherit; font-size: 13px; line-height: 17px; font-weight: 600; }
.appointment-workspace .schedule-event .event-time,
.appointment-workspace .schedule-event .event-purpose,
.appointment-workspace .schedule-event .event-doctor,
.appointment-workspace .schedule-event small { color: inherit; font-size: 11px; }
/* Doctor lanes already name the clinician in their header. Other views keep
   the clinician beside the patient; chair lanes carry a distinct prefix. */
.appointment-workspace .schedule-event > .event-doctor,
.appointment-workspace[data-view="day"] .schedule-scroll:not(.schedule-combined) .schedule-lane[data-lane-doctor]:not([data-calendar-lane^="chair:"]) > .schedule-event > strong > small { display: none; }
.appointment-workspace .schedule-event:hover { border-color: var(--event-color); filter: brightness(.98); }
.appointment-workspace #ap-results > .tablewrap { flex: 1; min-height: 0; overflow: auto; border: 0; border-radius: 0; }
.appointment-workspace #ap-results table { width: 100%; min-width: 900px; font-size: 12px; }
.appointment-workspace #ap-results th { position: sticky; top: 0; z-index: 2; padding: 10px; color: #434850; background: #f5f6f7; border: 1px solid #dfe1e5; font-size: 12px; white-space: nowrap; }
.appointment-workspace #ap-results td { padding: 8px 10px; border-right: 1px solid #e0e3e7; border-bottom: 1px solid #e0e3e7; color: #68717c; }
.appointment-workspace #ap-results tbody tr:nth-child(even) { background: #f5f6f9; }
.appointment-workspace #ap-results tbody tr:hover { background: #eaf8fc; }
.appointment-workspace #ap-results td .actions { gap: 4px; }
.appointment-workspace #ap-results td .actions button { padding: 3px 5px; color: #159ab3; font-size: 11px; }
.appointment-workspace #ap-results .patient-name-link,
.appointment-workspace #ap-results .record-text-link { color: #159ab3; font-size: 12px; }
.appointment-workspace .appointment-record-table { display: flex; flex: 1; flex-direction: column; min-width: 0; min-height: 0; padding: 9px 10px 0; }
.appointment-workspace .appointment-record-table > .tablewrap { flex: 1; min-height: 0; overflow: auto; border: 1px solid #dfe1e5; border-radius: 0; }
.appointment-workspace .appointment-record-table td { vertical-align: middle; }
.appointment-workspace .appointment-record-table td > small { display: block; margin-top: 4px; color: #9298a0; font-size: 10px; white-space: nowrap; }
.appointment-workspace .appointment-record-table td:nth-child(1) { min-width: 115px; }
.appointment-workspace .appointment-record-table td:nth-child(2) { min-width: 110px; }
.appointment-workspace .appointment-record-table td:nth-child(3) { min-width: 120px; }
.appointment-workspace .appointment-record-table td:nth-child(5) { min-width: 110px; max-width: 220px; overflow-wrap: anywhere; }
.appointment-workspace .appointment-record-table td:last-child { min-width: 210px; }
.appointment-workspace .appointment-patient-tags { margin-top: 4px; font-size: 10px; }
.appointment-workspace .appointment-patient-tags .badge { padding: 1px 4px; margin: 1px 2px 1px 0; font-size: 10px; }
.appointment-workspace .appointment-status-label { display: inline-block; padding: 3px 7px; border-radius: 2px; background: var(--event-bg); color: var(--event-ink); font-size: 11px; white-space: nowrap; }
.appointment-workspace .appointment-row-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 6px; }
.appointment-workspace .appointment-row-actions > button,
.appointment-workspace .appointment-row-more summary { padding: 3px 0; border: 0; border-radius: 0; color: #129ab3; background: transparent; font-size: 11px; white-space: nowrap; cursor: pointer; }
.appointment-workspace .appointment-row-actions > button:hover,
.appointment-workspace .appointment-row-more summary:hover { color: #007d98; text-decoration: underline; }
.appointment-workspace .appointment-row-more { position: relative; }
.appointment-workspace .appointment-row-more summary { list-style: none; }
.appointment-workspace .appointment-row-more summary::-webkit-details-marker { display: none; }
.appointment-workspace .appointment-row-more[open] summary { color: #007d98; text-decoration: underline; }
/* Opening a row expands its cell so every action remains reachable within
   the table scroll area, including the last row and narrow desktop widths. */
.appointment-workspace .appointment-row-more[open] { flex-basis: 100%; }
.appointment-workspace .appointment-row-more > div { display: flex; flex-wrap: wrap; gap: 3px 7px; max-width: 270px; margin-top: 5px; padding: 7px 9px; border: 1px solid #d8e5e9; border-radius: 3px; background: #fff; box-shadow: 0 2px 6px #263d4414; }
.appointment-workspace .appointment-row-more > div > button { padding: 4px 0; border: 0; background: transparent; color: #129ab3; font-size: 11px; }
.appointment-workspace .appointment-row-more > div > button:hover { color: #007d98; text-decoration: underline; }
.appointment-workspace .appointment-row-more summary:focus-visible,
.appointment-workspace .appointment-row-actions button:focus-visible { outline: 2px solid #008fae; outline-offset: 2px; }
.appointment-workspace .calendar { flex: 1; min-height: 0; }
.appointment-workspace .calendar .calday { min-height: 130px; }

@media screen and (min-width: 721px) {
  /* Keep every clinician heading equally compact, including the old tinted
     nth/today variants. The time-slot and drag coordinate scale is unchanged. */
  .appointment-workspace .schedule-column-title,
  .appointment-workspace .schedule-column-title:nth-child(3n),
  .appointment-workspace .schedule-column-title.is-today,
  .appointment-workspace .schedule-corner { min-height: 42px; padding: 7px 6px; line-height: 15px; }
  .appointment-workspace .schedule-column-title small { margin-top: 1px; line-height: 11px; }
  .appointment-workspace .appointment-month-heading strong { order: -1; margin-right: auto; font-size: 14px; font-weight: 400; }
  /* Status filters are flat reference-style chips. Their palette belongs
     only to these controls; existing appointment-card states are unchanged. */
  .appointment-workspace .appointment-status-strip { flex-wrap: nowrap; overflow-x: auto; gap: 4px; padding: 1px; scrollbar-width: none; }
  .appointment-workspace .appointment-status-strip::-webkit-scrollbar { display: none; }
  .appointment-workspace .appointment-status-strip button[data-ap-status] {
    flex: none; min-height: 25px; padding: 2px 7px; border: 0; border-radius: 0;
    font-size: 13px; line-height: 20px; font-weight: 400;
    color: #424951; background: var(--status-chip-bg, #f1f3f5);
  }
  .appointment-workspace .appointment-status-strip button[data-ap-status=""] { --status-chip-bg: #f1f3f5; }
  .appointment-workspace .appointment-status-strip button[data-ap-status="预约"] { --status-chip-bg: #fff2b0; }
  .appointment-workspace .appointment-status-strip button[data-ap-status="到店"] { --status-chip-bg: #a6e3ef; }
  .appointment-workspace .appointment-status-strip button[data-ap-status="候诊"] { --status-chip-bg: #c7e8b7; }
  .appointment-workspace .appointment-status-strip button[data-ap-status="就诊中"] { --status-chip-bg: #ffd5a1; }
  .appointment-workspace .appointment-status-strip button[data-ap-status="完成"] { --status-chip-bg: #d1cff5; }
  .appointment-workspace .appointment-status-strip button[data-ap-status="取消"] { --status-chip-bg: #e4e7eb; }
  .appointment-workspace .appointment-status-strip button[data-ap-status="爽约"] { --status-chip-bg: #a5aec3; }
  .appointment-workspace .appointment-status-strip button[data-ap-status].active { outline: 1px solid #008ba8; outline-offset: 0; }
  .appointment-workspace #ap-sync:not(.error) { font-size: 9px; line-height: 12px; }
  .shell .main:has(.appointment-workspace) { min-width: 0; padding: 0 8px 8px; }
  .main:has(.appointment-workspace) .topbar { height: 52px; min-height: 52px; margin: 0 -8px 8px; box-sizing: border-box; }
  .main:has(.appointment-workspace) #view { min-width: 0; }
  .main:has(.appointment-workspace) #view > .pagehead { display: none; }
  #view .appointment-workspace { height: calc(100dvh - 68px); min-height: 420px; }
}
@media screen and (min-width: 1251px) {
  .appointment-workspace .appointment-primary-filters { grid-column: 2; grid-row: 2; flex-wrap: nowrap; justify-content: flex-end; }
  .appointment-workspace .appointment-primary-filters #ap-search { width: 175px; max-width: 175px; }
  .appointment-workspace .appointment-primary-filters .appointment-filter-toggle { white-space: nowrap; }
  .appointment-workspace .appointment-status-strip { grid-column: 1; grid-row: 2; }
  .appointment-workspace #ap-sync { grid-column: 1 / -1; text-align: right; }
}
@media screen and (min-width: 721px) and (max-width: 1250px) {
  #view .appointment-workspace { --appointment-sidebar-width: 240px; }
  .appointment-workspace .appointment-controls { gap: 6px 9px; padding: 9px 10px 7px; }
  .appointment-workspace .calendar-range { flex-wrap: wrap; gap: 4px 8px; }
  .appointment-workspace .calendar-navigation button { padding: 4px 5px; }
  .appointment-workspace .appointment-status-strip { grid-column: 1 / -1; }
  .appointment-workspace #ap-sync { grid-column: 1 / -1; max-width: none; }
  .appointment-workspace .appointment-command-bar { padding: 0 7px; gap: 6px; }
  .appointment-workspace .appointment-command-bar .schedule-mode-tabs button { padding-left: 10px; padding-right: 10px; }
  .appointment-workspace .appointment-command-bar > .actions { gap: 4px; }
  .appointment-workspace .appointment-command-bar > .actions button { padding-left: 7px; padding-right: 7px; }
}
@media screen and (min-width: 721px) and (max-width: 980px) {
  .appointment-workspace .appointment-command-bar { flex-wrap: wrap; }
  .appointment-workspace .appointment-command-bar > .actions { padding: 5px 0; }
  .appointment-workspace .appointment-controls { grid-template-columns: minmax(0, 1fr); }
  .appointment-workspace .appointment-view-controls,
  .appointment-workspace #ap-sync { grid-column: 1; }
  .appointment-workspace .calendar-range { justify-content: space-between; }
}
@media screen and (max-width: 720px) {
  .main:has(.appointment-workspace) { min-width: 0; padding-left: 8px; padding-right: 8px; }
  .main:has(.appointment-workspace) .topbar { display: grid; grid-template-columns: minmax(0, 1fr); position: static; width: auto; height: auto; min-height: 0; gap: 2px; margin: 0 -8px 6px; padding: 5px 8px; box-sizing: border-box; background: #fff; border-bottom: 1px solid #e1e5e9; }
  .main:has(.appointment-workspace) .topbar .shell-heading { display: flex; justify-content: flex-start; width: 100%; min-height: 20px; gap: 6px; }
  .main:has(.appointment-workspace) .topbar .shell-heading strong { display: block; color: #078ea7; font-size: 13px; line-height: 20px; }
  .main:has(.appointment-workspace) .topbar .shell-heading small { display: none; }
  .main:has(.appointment-workspace) .topbar .shell-tools { display: flex; justify-content: flex-start; flex-wrap: wrap; align-items: center; width: 100%; min-width: 0; gap: 3px 5px; font-size: 11px; line-height: 18px; }
  .main:has(.appointment-workspace) .topbar button { min-height: 32px; padding: 5px 6px; border-radius: 3px; font-size: 11px; white-space: nowrap; }
  .main:has(.appointment-workspace) .topbar #open-host-status { margin-right: 0; }
  .main:has(.appointment-workspace) .topbar .badge { padding: 2px 5px; font-size: 10px; white-space: nowrap; }
  .main:has(.appointment-workspace) #view > .pagehead { display: none; }
  #view .appointment-workspace { height: auto; min-height: calc(100dvh - 165px); padding: 0 !important; overflow: hidden; }
  .appointment-workspace .appointment-command-bar { flex-wrap: wrap; min-height: 0; padding: 0 7px 5px; gap: 3px; }
  .appointment-workspace .appointment-command-bar .schedule-mode-tabs { flex-basis: 100%; width: 100%; padding: 0; }
  .appointment-workspace .appointment-command-bar .schedule-mode-tabs button { min-height: 36px; padding: 6px 12px 5px; font-size: 13px; }
  .appointment-workspace .appointment-command-bar > .actions { width: 100%; justify-content: flex-end; flex-wrap: wrap; gap: 5px; }
  .appointment-workspace #new-appointment { position: static; inset: auto; margin: 0; min-height: 32px; border-radius: 3px; box-shadow: none; font-size: 12px; }
  .appointment-workspace #ap-sidebar-toggle { display: none; }
  .appointment-workspace .appointment-layout { display: block !important; overflow: visible; }
  .appointment-workspace .appointment-sidebar { display: none !important; }
  .appointment-workspace .appointment-board-main { overflow: visible; }
  .appointment-workspace .appointment-controls { display: flex; flex-wrap: wrap; align-items: center; position: static; gap: 5px; padding: 7px 8px 6px; }
  .appointment-workspace .calendar-range { width: 100%; flex-wrap: wrap; gap: 5px; }
  .appointment-workspace .calendar-range h2 { font-size: 14px; }
  .appointment-workspace .calendar-navigation { flex-wrap: wrap; }
  .appointment-workspace .calendar-navigation button { min-height: 32px; }
  .appointment-workspace .appointment-view-controls { width: 100%; justify-content: space-between; }
  .appointment-workspace[data-mode="reception"] .appointment-view-controls,
  .appointment-workspace[data-mode="list"] .appointment-view-controls { display: none; }
  .appointment-workspace .appointment-view-segments button { min-height: 32px; min-width: 42px; }
  .appointment-workspace .appointment-primary-filters { width: 100%; gap: 6px; }
  .appointment-workspace #ap-doctor { flex: 1; width: 110px; min-width: 105px; max-width: 150px; }
  .appointment-workspace #ap-search { flex: 1 1 160px; width: auto; min-width: 115px; max-width: none; }
  .appointment-workspace .appointment-primary-filters .appointment-filter-toggle { position: static; min-height: 32px; padding: 5px 8px; font-size: 12px; }
  .appointment-workspace #ap-week-strip { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; width: 100%; min-width: 0; gap: 0 4px; }
  .appointment-workspace .week-strip-heading { grid-column: 1; grid-row: 1; justify-content: flex-start; min-width: 0; min-height: 32px; gap: 5px; margin: 0; font-size: 12px; }
  .appointment-workspace .week-strip-heading button { min-width: 32px; min-height: 32px; padding: 0 5px; font-size: 20px; line-height: 28px; }
  .appointment-workspace .week-strip { grid-column: 1 / -1; grid-row: 2; gap: 2px; margin: 0; padding: 1px 0 3px; border-bottom: 0; }
  .appointment-workspace .week-strip button { justify-content: center; min-height: 54px; height: 54px; gap: 1px; padding: 3px 0; border-radius: 3px; line-height: 12px; }
  .appointment-workspace .week-strip span { font-size: 10px; line-height: 12px; }
  .appointment-workspace .week-strip strong { width: auto; height: 22px; background: transparent; border-radius: 0; color: inherit; font-size: 16px; line-height: 22px; }
  .appointment-workspace .week-strip small { color: #71838d; font-size: 10px; line-height: 11px; }
  .appointment-workspace .week-strip .selected strong { background: transparent; }
  .appointment-workspace .week-strip .selected span,
  .appointment-workspace .week-strip .selected small { color: #fff; }
  .appointment-workspace .month-picker-toggle { grid-column: 2; grid-row: 1; min-height: 32px; margin: 0; padding: 4px 5px; font-size: 11px; line-height: 20px; white-space: nowrap; }
  .appointment-workspace #ap-date-picker { grid-column: 1 / -1; grid-row: 3; min-width: 0; }
  .appointment-workspace .month-picker-grid { padding: 5px 0; }
  .appointment-workspace .month-picker-grid button { min-height: 38px; padding: 3px 0; }
  .appointment-workspace .appointment-status-strip { flex: 1 0 100%; flex-wrap: nowrap; max-width: 100%; overflow-x: auto; padding: 2px 0; }
  .appointment-workspace .appointment-status-strip button { min-height: 32px; flex: none; }
  .appointment-workspace #ap-sync { width: 100%; max-width: none; font-size: 10px; text-align: left; }
  .appointment-workspace #ap-results { flex: none; min-height: 180px; overflow: auto; }
  #view .appointment-workspace .schedule-scroll { flex: none; height: 60dvh; min-height: 300px; max-height: none; }
  .appointment-workspace .schedule-column-title,
  .appointment-workspace .schedule-column-title:nth-child(3n),
  .appointment-workspace .schedule-corner { min-height: 45px; padding: 7px 5px; font-size: 12px; }
  .appointment-workspace #ap-results > .tablewrap { max-height: 65dvh; }
  .appointment-workspace #ap-results table { min-width: 760px; }
  .appointment-workspace .calendar { flex: none; min-width: 650px; }
}
@media print {
  #view .appointment-workspace { display: block; height: auto; min-height: 0; overflow: visible; }
  .appointment-workspace .appointment-layout,
  .appointment-workspace .appointment-board-main,
  .appointment-workspace #ap-results { display: block; overflow: visible; }
  .appointment-workspace .appointment-sidebar { display: none; }
  #view .appointment-workspace .schedule-scroll { height: auto; max-height: none; overflow: visible; }
}
