/* Foundation: fonts, variables, reset, typography, controls. */
:root{color-scheme:dark;--bg:#0d0507;--panel:#171013;--panel-soft:#20171a;--line:#3a2e32;--text:#f7f2f3;--muted:#bdb1b5;--accent:#f0d7de;--accent-contrast:#1a1013;--accent-emphasis:#f0d7de;--input-bg:#100a0c;--chrome-bg:rgba(13,5,7,0.97);--hover-bg:rgba(255,255,255,0.035);--danger:#f3a1aa;--danger-contrast:#2b0c10;--success:#bfe4c8;--shadow:0 22px 60px rgba(0,0,0,0.26);--font-family-ui:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:600;--brand-logo-width-topbar:200px;--brand-logo-width-login:210px;--topbar-side-width-mobile:88px;--button-radius:8px;--button-radius-compact:7px;--tab-radius:8px;}
*{box-sizing:border-box;}
html{width:100%;max-width:100%;overflow-x:hidden;overflow-x:clip;overscroll-behavior-x:none;background:var(--bg);}
body{position:relative;width:100%;margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-family-ui);font-weight:var(--font-weight-regular);font-synthesis:none;font-size:17px;line-height:1.45;max-width:100%;overflow-x:hidden;overflow-x:clip;overscroll-behavior-x:none;}
button,input,select{font:inherit;}
button,input,select,textarea{transition:border-color 160ms ease,background-color 160ms ease,color 160ms ease,box-shadow 160ms ease,transform 160ms ease,filter 160ms ease;}
input,select{min-height:44px;}
button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border:1px solid var(--accent);border-radius:var(--button-radius);padding:0.38rem 0.85rem;background:var(--accent);color:var(--accent-contrast,#1a1013);font-weight:var(--font-weight-bold);line-height:1;cursor:pointer;white-space:nowrap;}
button:hover{filter:brightness(1.05);transform:translateY(-1px);}
button:active{transform:translateY(0);}
button:disabled{cursor:not-allowed;opacity:0.55;}
button.secondary{background:transparent;color:var(--text);border-color:var(--line);}
button.danger{background:var(--danger);border-color:var(--danger);color:var(--danger-contrast,#2b0c10);}
button.compact{min-height:32px;padding:0.28rem 0.7rem;border-radius:var(--button-radius-compact);}
button.icon-button{min-width:36px;min-height:36px;padding:0;border-radius:var(--button-radius);font-size:1.45rem;background:transparent;color:var(--text);border-color:transparent;}
input,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:0.65rem 0.72rem;background:var(--input-bg,#100a0c);color:var(--text);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);}

/* iOS Safari 26 can over-measure padded native date/time controls at width:100%.
   Remove control padding on narrow viewports so these replaced elements cannot widen the page. */
@media (max-width:760px){
  input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"]{
    display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;inline-size:100%;max-inline-size:100%;min-inline-size:0;-webkit-min-logical-width:0;padding:0;overflow:hidden;-webkit-appearance:textfield;appearance:textfield;
  }
  input[type="date"]::-webkit-date-and-time-value,input[type="time"]::-webkit-date-and-time-value,input[type="datetime-local"]::-webkit-date-and-time-value,input[type="month"]::-webkit-date-and-time-value,input[type="week"]::-webkit-date-and-time-value{inline-size:100%;min-inline-size:0;margin:0;overflow:hidden;}
  input[type="date"]::-webkit-datetime-edit,input[type="time"]::-webkit-datetime-edit,input[type="datetime-local"]::-webkit-datetime-edit,input[type="month"]::-webkit-datetime-edit,input[type="week"]::-webkit-datetime-edit{display:block;min-inline-size:0;overflow:hidden;padding:0;}
}
button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
label{display:grid;gap:0.38rem;color:var(--muted);font-size:0.92rem;font-weight:var(--font-weight-medium);}
h1,h2,h3,p{margin-top:0;}
h1{font-size:clamp(1.55rem,5vw,2.3rem);margin-bottom:0;font-weight:var(--font-weight-bold);}
h2{font-size:1.2rem;margin-bottom:0.7rem;font-weight:var(--font-weight-bold);}
h3{font-size:1.05rem;margin-bottom:0;font-weight:var(--font-weight-medium);}
.eyebrow,.section-kicker{margin-bottom:0.3rem;text-transform:uppercase;letter-spacing:0.11em;font-size:0.78rem;color:var(--muted);font-weight:var(--font-weight-medium);}
.muted{color:var(--muted);}
.small{font-size:0.9rem;}

/* Phone-safe time editor: iOS Safari can let its native time control exceed the layout box.
   Keep the real input as the data source, but use compact selects on phone widths. */
.compact-time-control{display:none;min-width:0;max-width:100%;width:100%;}
@media (max-width:820px){
  input[type="time"].mobile-time-native{display:none!important;}
  .compact-time-control{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:.4rem;width:100%;max-width:100%;min-width:0;overflow:hidden;}
  .compact-time-control select{box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:46px;padding:.55rem .35rem;font-size:1rem;text-align:center;text-align-last:center;}
}

/* UI stabilization: deterministic validation and submit feedback. */
form.is-submitting{cursor:progress;}
form.is-submitting button[type="submit"],form.is-submitting input[type="submit"]{cursor:wait;}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 16%,transparent);}
.has-field-error>.field-validation-error,.field-validation-error{display:block;margin-top:.15rem;color:var(--danger);font-size:.8rem;font-weight:var(--font-weight-medium);line-height:1.35;}
.help-disclosure{max-width:760px;margin:0;border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);padding-top:.45rem;}
.help-disclosure>summary{width:max-content;max-width:100%;cursor:pointer;color:var(--muted);font-size:.82rem;font-weight:var(--font-weight-medium);line-height:1.35;}
.help-disclosure>summary:hover,.help-disclosure[open]>summary{color:var(--text);}
.help-disclosure>p{margin:.55rem 0 0;line-height:1.55;}
form[data-save-state][data-save-state="saved"] button[type="submit"]:disabled,form[data-save-state][data-save-state="saved"] input[type="submit"]:disabled{opacity:.78;}
form[data-save-state][data-save-state="dirty"] button[type="submit"]{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent);}

/* Application shell: top bar, primary navigation, panels and shared shell layout. */
/* Grow navigation only as desktop space permits; keep compact laptop content width. */
:root{--app-primary-nav-width:clamp(218px,21vw,264px);}
.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;min-height:88px;padding:max(0.65rem,env(safe-area-inset-top)) clamp(1rem,4vw,2.5rem) 0.65rem;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:var(--chrome-bg);backdrop-filter:blur(16px);}
.topbar-brand{display:contents;}
.topbar-logo-link{grid-column:1;justify-self:start;display:block;width:var(--brand-logo-width-topbar);max-width:100%;border-radius:6px;line-height:0;transition:filter 160ms ease,transform 160ms ease;}
.topbar-logo-link:hover{filter:brightness(1.08);transform:translateY(-1px);}
.topbar-logo-link:active{transform:translateY(0);}
.topbar-logo-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}
.topbar-logo{display:block;width:100%;max-width:100%;max-height:70px;height:auto;object-fit:contain;object-position:left center;}
.topbar-title{grid-column:2;justify-self:center;min-width:0;text-align:center;}
.topbar-title .eyebrow{margin-bottom:0.15rem;}
.topbar h1{font-size:clamp(1.1rem,2.4vw,1.55rem);line-height:1.12;white-space:nowrap;}
.topbar-actions{grid-column:3;justify-self:end;display:flex;align-items:center;gap:.55rem}.topbar-create-menu{position:relative;display:inline-flex}.topbar-create-popover{position:absolute;z-index:60;top:calc(100% + .55rem);right:0;display:grid;gap:.3rem;width:max-content;min-width:230px;max-width:min(290px,calc(100vw - 1rem));padding:.45rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 16px 38px rgba(0,0,0,.28)}.topbar-create-popover[hidden]{display:none!important}.topbar-create-action{display:flex;width:100%;min-height:42px;align-items:center;justify-content:flex-start;gap:.65rem;padding:.58rem .7rem;border-color:transparent;background:transparent;color:var(--text);text-align:left;box-shadow:none}.topbar-create-action:hover,.topbar-create-action:focus-visible{border-color:var(--line);background:var(--hover-bg);color:var(--text);transform:none;filter:none}.topbar-create-action .ui-icon{flex:0 0 18px;width:18px;height:18px;color:var(--muted)}.topbar-search-button{display:inline-flex;align-items:center;gap:.4rem}.topbar-search-button .ui-icon{width:17px;height:17px}.topbar-new-appointment-button{display:inline-flex;align-items:center;justify-content:center;width:40px;min-width:40px;padding:0;border-color:color-mix(in srgb,var(--accent) 92%,var(--line));background:var(--accent);color:var(--accent-contrast,#1a1013);box-shadow:0 10px 24px rgba(0,0,0,.16)}.topbar-new-appointment-button:hover,.topbar-new-appointment-button:focus-visible{background:color-mix(in srgb,var(--accent) 90%,white 10%);border-color:color-mix(in srgb,var(--accent) 96%,white 4%);color:var(--accent-contrast,#1a1013);transform:none;filter:none}.topbar-new-appointment-button .ui-icon{width:19px;height:19px;stroke-width:2.75;color:var(--accent-contrast,#1a1013)}.topbar>#logoutButton{grid-column:3;justify-self:end;}
.mobile-nav-toggle{display:none;}
.nav-backdrop{display:none;}
.nav-drawer-header{display:none;}
.tabbar{position:fixed;top:88px;bottom:0;left:0;z-index:19;display:flex;width:var(--app-primary-nav-width);flex-direction:column;gap:0.34rem;overflow-y:auto;overflow-x:hidden;padding:0.85rem 0.7rem max(1rem,env(safe-area-inset-bottom));border-right:1px solid var(--line);background:var(--chrome-bg);backdrop-filter:blur(16px);scrollbar-width:thin;scrollbar-color:var(--line) transparent;}
.tab-button{font-size:.95rem;flex:0 0 auto;display:flex;width:100%;min-height:46px;align-items:center;justify-content:flex-start;gap:0.72rem;padding:0.65rem 0.78rem;border-radius:10px;background:transparent;color:var(--muted);border-color:transparent;text-align:left;}
.tab-button .ui-icon{flex:0 0 18px !important;width:18px !important;height:18px !important;min-width:18px !important;max-width:18px !important;min-height:18px !important;max-height:18px !important;}
.tab-button span{min-width:0;}
.tab-button>span:not(.nav-attention-count){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tab-button:hover{color:var(--text);background:var(--hover-bg);}
.tab-button.is-active{color:var(--accent-contrast,#1a1013);background:var(--accent);border-color:var(--accent);}

.tab-button[data-tab="attention"]{gap:.44rem;padding-inline:.64rem;}
.tab-button .nav-attention-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* At compact laptop widths allow the long attention label to use two lines instead of ellipsis. */
@media(min-width:1025px) and (max-width:1180px){.tab-button[data-tab="attention"] .nav-attention-label{overflow:visible;text-overflow:clip;white-space:normal;line-height:1.2;}}
.tab-button .nav-attention-count{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:1.1rem;height:1.1rem;margin-left:auto;padding:0 .22rem;border:1px solid color-mix(in srgb,var(--danger) 48%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--danger) 10%,var(--panel-soft));color:var(--text);font-size:.65rem;font-weight:var(--font-weight-bold);line-height:1;}
.tab-button .nav-attention-count[hidden]{display:none!important;}
.tab-button.has-attention:not(.is-active) .nav-attention-count{color:var(--text);}
.tab-button.is-active .nav-attention-count{border-color:color-mix(in srgb,var(--text) 28%,transparent);background:color-mix(in srgb,var(--text) 9%,transparent);}
.nav-secondary-group{display:grid;gap:.2rem;margin-top:.5rem;padding-top:.7rem;border-top:1px solid var(--line);}
.nav-secondary-summary{display:flex;min-height:38px;align-items:center;gap:.55rem;padding:.46rem .68rem;list-style:none;border-radius:8px;color:var(--muted);cursor:pointer;font-size:.73rem;font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;user-select:none;}
.nav-secondary-summary::-webkit-details-marker{display:none;}
.nav-secondary-summary:hover{color:var(--text);background:transparent;}
.nav-secondary-summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.nav-secondary-summary .ui-icon{flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;min-height:18px!important;max-height:18px!important;}
.nav-secondary-summary .ui-icon:not(.nav-secondary-chevron){display:none;}
.nav-secondary-summary .nav-secondary-chevron{margin-left:auto;transition:transform 160ms ease;}
.nav-secondary-group[open]>.nav-secondary-summary .nav-secondary-chevron{transform:rotate(180deg);}
.nav-secondary-group.has-active>.nav-secondary-summary{color:var(--text);}
.nav-secondary-items{display:grid;gap:.2rem;padding-left:.45rem;}
.nav-secondary-items .tab-button{min-height:42px;padding-left:.73rem;font-size:.94rem;color:color-mix(in srgb,var(--text) 76%,var(--muted));}
.nav-secondary-items .tab-button.is-active{color:var(--accent-contrast,#1a1013);}
.nav-workspace-group{display:grid;gap:.12rem;min-width:0;}
.nav-workspace-group[hidden]{display:none!important;}
.nav-workspace-trigger .nav-workspace-chevron{margin-left:auto;transition:transform 160ms ease;}
.nav-workspace-group.is-open>.nav-workspace-trigger .nav-workspace-chevron{transform:rotate(180deg);}
.nav-workspace-panel{display:grid;gap:.12rem;min-width:0;margin:-.08rem .38rem .18rem;padding:.08rem 0 .22rem .64rem;}
.nav-workspace-panel[hidden]{display:none!important;}
.nav-workspace-subviews{display:grid;gap:.16rem;min-width:0;border-left:1px solid color-mix(in srgb,var(--line) 60%,transparent);padding-left:.38rem;}
.nav-workspace-subview-button{display:flex;width:100%;min-width:0;min-height:38px;align-items:center;justify-content:flex-start;padding:.45rem .55rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:.9rem;font-weight:var(--font-weight-medium);line-height:1.3;text-align:left;white-space:normal;overflow-wrap:break-word;box-shadow:none;}
.nav-workspace-subview-button:hover:not(.is-active){transform:none;filter:none;background:var(--hover-bg);color:var(--text);}
.nav-workspace-subview-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.nav-workspace-subview-button.is-active{border-color:color-mix(in srgb,var(--line) 60%,transparent);background:color-mix(in srgb,var(--accent) 8%,var(--panel-soft));color:var(--text);font-weight:var(--font-weight-bold);box-shadow:inset 2px 0 color-mix(in srgb,var(--accent) 60%,var(--line));}
.nav-workspace-subview-button-danger:not(.is-active){color:var(--danger);}
.nav-workspace-subgroup{display:grid;gap:.08rem;min-width:0;}
.nav-workspace-subgroup>summary{display:flex;min-height:38px;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .55rem;border:1px solid transparent;border-radius:8px;color:color-mix(in srgb,var(--text) 85%,var(--muted));cursor:pointer;font-size:.9rem;font-weight:var(--font-weight-bold);line-height:1.3;list-style:none;user-select:none;}
.nav-workspace-subgroup>summary>span:first-child{min-width:0;overflow-wrap:break-word;}
.nav-workspace-subgroup>summary::-webkit-details-marker{display:none;}
.nav-workspace-subgroup>summary:hover{background:var(--hover-bg);color:var(--text);}
.nav-workspace-subgroup>summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.nav-workspace-subgroup.contains-active>summary{border-color:transparent;background:transparent;color:var(--text);}
.nav-workspace-subgroup-chevron{flex:0 0 auto;width:.42rem;height:.42rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-.08rem) rotate(45deg);transition:transform 160ms ease;}
.nav-workspace-subgroup[open] .nav-workspace-subgroup-chevron{transform:translateY(.1rem) rotate(225deg);}
.nav-workspace-subgroup-items{display:grid;gap:.12rem;min-width:0;margin:.02rem 0 .18rem .28rem;padding-left:.28rem;border-left:1px solid color-mix(in srgb,var(--line) 60%,transparent);}
.nav-workspace-subgroup-items .nav-workspace-subview-button{min-height:38px;padding-left:.55rem;font-size:.88rem;}
@media(max-width:1024px){.nav-secondary-items .tab-button{font-size:.98rem;} .nav-secondary-summary{min-height:50px;padding:.72rem .8rem;font-size:.82rem;}.nav-secondary-items{padding-left:.2rem;}.nav-workspace-panel{padding-left:.72rem;}.nav-workspace-subview-button,.nav-workspace-subgroup>summary{min-height:44px;padding:.6rem .62rem;font-size:.9rem;}.nav-workspace-subgroup-items .nav-workspace-subview-button{min-height:44px;font-size:.88rem;}}
.shell{width:auto;max-width:1440px;min-width:0;margin:1.2rem 1.25rem 4rem calc(var(--app-primary-nav-width) + 1.25rem);}

/* Demo role switcher: compact, responsive, and visually consistent with AppointFrame controls. */
.demo-mode-banner{display:flex;align-items:center;justify-content:flex-start;gap:.45rem;flex-wrap:wrap;margin:0 0 1rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);box-shadow:var(--shadow)}
.demo-mode-banner[hidden]{display:none!important}.demo-mode-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.45rem .72rem;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);font:inherit;font-size:.8rem;font-weight:var(--font-weight-bold);line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer}.demo-mode-link:hover,.demo-mode-link:focus-visible{border-color:var(--accent);background:var(--hover-bg);color:var(--text);filter:none;transform:none}.demo-mode-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.demo-mode-link.is-active{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast,#1a1013)}
@media(max-width:560px){.demo-mode-banner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.demo-mode-link{width:100%;min-height:42px}}
.tab-panel{display:none;min-width:0;gap:1rem;}
.tab-panel.is-active{display:grid;}
.panel{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:clamp(1rem,3vw,1.5rem);box-shadow:var(--shadow);}
.section-heading-row{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;}
.compact-heading{align-items:center;margin-top:1rem;}
.field-inline{min-width:min(220px,100%);}
.toolbar{display:flex;flex-wrap:wrap;gap:0.55rem;margin:0.8rem 0 1rem;}
.panel-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;}
.panel-actions>:first-child{flex:1 1 auto;min-width:0;}
.panel-actions>button{flex:0 0 auto;}

/* Global quick finder and cross-record navigation. */
.global-search-dialog{width:min(720px,calc(100vw - 2rem))}.global-search-card{width:100%;max-height:min(760px,calc(100vh - 2rem));overflow:auto}.global-search-input-label{display:grid;gap:.35rem}.global-search-input-label input{font-size:1rem}.global-search-results{display:grid;gap:1rem;margin-top:1rem}.global-search-group{display:grid;gap:.45rem}.global-search-group h3{margin:0;color:var(--muted);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.global-search-group>div{display:grid;gap:.4rem}.global-search-result{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem .8rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-align:left}.global-search-result:hover,.global-search-result:focus-visible{background:var(--hover-bg);border-color:var(--accent)}.global-search-result span:first-child{display:grid;gap:.16rem;min-width:0}.global-search-result strong,.global-search-result small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-result small{color:var(--muted);font-size:.78rem}.global-search-result>span:last-child{font-size:1.25rem;color:var(--muted)}.global-search-empty{margin:.5rem 0}.is-focus-highlight{outline:2px solid var(--accent);outline-offset:3px;transition:outline-color .25s ease}.record-entity-link,.record-package-link,.lesson-package-entity-link{display:inline-flex;align-items:center;gap:.3rem;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--muted) 55%,transparent);text-underline-offset:2px}.record-entity-link:hover,.record-package-link:hover,.lesson-package-entity-link:hover{color:var(--accent);background:transparent}.record-entity-link:disabled{cursor:default;text-decoration:none;opacity:1}.record-package-link{display:block;margin-top:.18rem;color:var(--muted);font-size:.78rem}.lesson-package-list-tools{display:flex;align-items:end;justify-content:flex-end;gap:.7rem;flex-wrap:wrap}.lesson-package-search{min-width:min(280px,100%)}.lesson-package-search input{min-width:220px}.lesson-package-menu-item[aria-disabled="true"]{opacity:.48;cursor:help}.lesson-package-menu-item[aria-disabled="true"]:hover{background:transparent;color:var(--muted)}
@media(max-width:760px){.topbar-actions{grid-column:3;gap:.5rem}.topbar-search-button{width:42px;min-width:42px;padding-inline:0;border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--panel-soft);color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent)}.topbar-search-button:hover,.topbar-search-button:focus-visible{border-color:color-mix(in srgb,var(--accent) 72%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel-soft));color:var(--text);transform:none;filter:none}.topbar-search-button span{display:none}.topbar-search-button .ui-icon{width:18px;height:18px}.topbar-new-appointment-button{width:42px;min-width:42px}.lesson-package-list-tools{width:100%;align-items:stretch}.lesson-package-search{width:100%}.lesson-package-search input{width:100%;min-width:0}.global-search-dialog{width:calc(100vw - 1rem)}.global-search-card{max-height:calc(100vh - 1rem)}}

/* Actions Required: class names are retained to preserve existing UI semantics. */
.dashboard-attention-panel{display:grid;gap:.85rem;}
.dashboard-attention-panel[hidden]{display:none!important;}
.dashboard-attention-heading{margin-bottom:0;}
.dashboard-attention-heading h2{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.dashboard-attention-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.65rem;height:1.65rem;padding:0 .45rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);font-size:.82rem;line-height:1;color:var(--text);}
.dashboard-attention-list{display:grid;gap:.55rem;}
.dashboard-attention-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.75rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.dashboard-attention-copy{display:grid;gap:.22rem;min-width:0;}
.dashboard-attention-copy strong{line-height:1.35;}
.dashboard-attention-copy span{color:var(--muted);font-size:.86rem;line-height:1.4;overflow-wrap:anywhere;}
.dashboard-attention-item.is-critical{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));}
.dashboard-attention-item.is-warning{border-color:color-mix(in srgb,var(--accent) 26%,var(--line));}
.dashboard-attention-action{white-space:nowrap;}
.dashboard-attention-empty{padding:.7rem .1rem;}
.dashboard-attention-footer{display:flex;justify-content:flex-start;}
@media (max-width:760px){.dashboard-attention-item{grid-template-columns:1fr;align-items:start;}.dashboard-attention-action{width:100%;}.dashboard-attention-footer button{width:100%;}}

@media(max-width:760px){
  .dashboard-attention-panel{gap:.6rem}
  .dashboard-attention-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin-bottom:0;align-items:start}
  .dashboard-attention-heading>#attentionRefreshButton{justify-self:start;width:auto;min-width:0}
  .dashboard-attention-list{gap:.5rem}
}

.dashboard-attention-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.5rem;}
.dashboard-attention-location{display:grid;gap:.35rem;min-width:210px;}
.dashboard-attention-location label{font-size:.75rem;font-weight:600;}
.dashboard-attention-controls select{min-width:210px;max-width:290px;}

/* Location remains authoritative; category and action-type filters only refine this scope. */
.dashboard-attention-category,.dashboard-attention-type,.dashboard-attention-view{display:grid;gap:.35rem;min-width:155px;}
.dashboard-attention-category label,.dashboard-attention-type label,.dashboard-attention-view label{font-size:.75rem;font-weight:600;}
.dashboard-attention-category select,.dashboard-attention-type select,.dashboard-attention-view select{min-width:155px;max-width:260px;}
.dashboard-attention-controls{align-items:flex-end;}
/* A type group is a full-width section heading, not another item or a thin divider. */
.dashboard-attention-group-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;margin-top:1.1rem;padding:.72rem .9rem;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-left:4px solid var(--accent);border-radius:10px;background:color-mix(in srgb,var(--accent) 9%,var(--panel));}
.dashboard-attention-group-heading:first-child{margin-top:0;}
.dashboard-attention-group-heading h3{margin:0;color:var(--text);font-size:1.07rem;font-weight:var(--font-weight-bold,700);line-height:1.35;}
.dashboard-attention-group-heading .muted.small{display:inline-flex;align-items:center;padding:.22rem .6rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--text);font-size:.76rem;line-height:1.4;white-space:normal;}
@media(max-width:540px){.dashboard-attention-group-heading{align-items:flex-start;gap:.4rem;padding:.65rem .72rem}.dashboard-attention-group-heading h3{font-size:1rem}.dashboard-attention-group-heading .muted.small{font-size:.73rem;}}
.dashboard-attention-footer button[hidden]{display:none!important;}
@media(max-width:760px){.dashboard-attention-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem}.dashboard-attention-controls select{width:100%;min-width:0;max-width:none}.dashboard-attention-location{min-width:0}.dashboard-attention-footer button{width:100%;}}

/* Action exceptions: use the established settings typography and controls. */
.action-exception-setting-row { display: flex; align-items: center; gap: 0.75rem; margin: 0.65rem 0; cursor: pointer; }
.action-exception-setting-row input[type=checkbox] { flex: none; width: 1.1rem; height: 1.1rem; }
.action-exception-settings-actions { margin-top: 1.25rem; }

/* Actions Required: orderly, responsive filter bar. The Location/Meeting filter
   stays first and continues to be applied by the existing action logic. */
.dashboard-attention-panel .dashboard-attention-heading {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  align-items: start;
  gap: 1.5rem;
}
.dashboard-attention-panel .dashboard-attention-heading > div:first-child {
  min-width: 0;
  max-width: 38rem;
}
.dashboard-attention-panel .dashboard-attention-controls {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr);
  align-items: end;
  gap: .85rem 1rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel-soft);
}
.dashboard-attention-panel .dashboard-attention-controls > div {
  display: grid;
  gap: .4rem;
  min-width: 0;
}
.dashboard-attention-panel .dashboard-attention-controls label {
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.25;
}
.dashboard-attention-panel .dashboard-attention-controls select {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
}
.dashboard-attention-panel .dashboard-attention-view { grid-column: 1; }
.dashboard-attention-panel .dashboard-attention-controls #attentionRefreshButton {
  grid-column: 2;
  align-self: end;
  justify-self: start;
  white-space: nowrap;
  width: auto;
  min-width: 0;
}
@media (max-width: 1200px) {
  .dashboard-attention-panel .dashboard-attention-heading { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .dashboard-attention-panel .dashboard-attention-controls { width: 100%; }
}
@media (max-width: 700px) {
  .dashboard-attention-panel .dashboard-attention-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: .8rem; }
  .dashboard-attention-panel .dashboard-attention-location { grid-column: 1 / -1; }
  .dashboard-attention-panel .dashboard-attention-view { grid-column: 1; }
  .dashboard-attention-panel .dashboard-attention-controls #attentionRefreshButton { grid-column: 2; }
}
@media (max-width: 430px) {
  .dashboard-attention-panel .dashboard-attention-controls { grid-template-columns: minmax(0, 1fr); }
  .dashboard-attention-panel .dashboard-attention-location,
  .dashboard-attention-panel .dashboard-attention-view,
  .dashboard-attention-panel .dashboard-attention-controls #attentionRefreshButton { grid-column: 1; }
  .dashboard-attention-panel .dashboard-attention-controls #attentionRefreshButton { width: 100%; }
}

/* Action Exceptions settings: clear page hierarchy, readable category headers,
   and compact controls rather than one long, loosely spaced column. */
#settings-view-action-exceptions > .settings-section { gap: 1.2rem; }
#settings-view-action-exceptions > .settings-section > .settings-section-heading {
  max-width: none;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--line);
}
#actionExceptionSettingsHeading {
  margin: .25rem 0 .55rem;
  color: var(--text);
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -.02em;
}
#actionExceptionSettingsForm { width: 100%; max-width: none; }
#actionExceptionTypeGroups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}
#actionExceptionTypeGroups > .settings-section {
  min-width: 0;
  overflow: hidden;
  gap: 0;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--panel);
}
#actionExceptionTypeGroups > .settings-section > h3 {
  margin: 0;
  padding: .9rem 1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--accent) 27%, var(--line));
  border-left: 4px solid var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, var(--panel));
  color: var(--text);
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.3;
}
#actionExceptionTypeGroups .action-exception-setting-row {
  display: flex;
  align-items: center;
  min-height: 2.9rem;
  gap: .7rem;
  margin: 0;
  padding: .65rem .95rem;
  cursor: pointer;
  line-height: 1.35;
}
#actionExceptionTypeGroups .action-exception-setting-row + .action-exception-setting-row {
  border-top: 1px solid color-mix(in srgb, var(--line) 65%, transparent);
}
#actionExceptionTypeGroups .action-exception-setting-row:hover {
  background: var(--hover-bg);
}
#actionExceptionTypeGroups .action-exception-setting-row:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
#actionExceptionTypeGroups .action-exception-setting-row input[type=checkbox] {
  flex: none;
  width: 1.1rem;
  height: 1.1rem;
  margin: 0;
}
#actionExceptionSettingsForm .action-exception-settings-actions { margin-top: .25rem; }
@media (max-width: 850px) {
  #actionExceptionTypeGroups { grid-template-columns: minmax(0, 1fr); }
}

/* Messages reminder workspace. */
.messages-panel{display:grid;gap:1rem;}
.messages-heading{margin-bottom:0;}

.messages-heading-actions{display:flex;align-items:end;justify-content:flex-end;gap:.55rem;flex-wrap:wrap;min-width:0;}
.messages-scope-filter{display:grid;gap:.25rem;min-width:min(250px,100%);margin:0;color:var(--muted);font-size:.72rem;font-weight:var(--font-weight-medium);letter-spacing:.04em;}
.messages-scope-filter select{min-width:0;min-height:38px;color:var(--text);font-size:.86rem;letter-spacing:normal;}
@media(max-width:700px){.messages-heading-actions{width:100%;justify-content:stretch}.messages-scope-filter{flex:1 1 100%;min-width:0}.messages-heading-actions>button{flex:1 1 auto}}
.messages-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.7rem;}
#messagesWorkspaceRemindersPanel .messages-summary{grid-template-columns:repeat(3,minmax(0,1fr));}
.messages-summary article{display:grid;gap:0.15rem;padding:0.8rem 0.9rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.messages-summary span{color:var(--muted);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;}
.messages-summary strong{font-size:1.35rem;}
.messages-help{display:flex;align-items:flex-start;gap:0.55rem;padding:0.75rem 0.85rem;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--accent) 4%,var(--panel-soft));color:var(--muted);}
.messages-help .ui-icon{flex:0 0 17px !important;width:17px !important;height:17px !important;margin-top:0.12rem;color:var(--accent-emphasis,var(--accent));}
.messages-help p{margin:0;font-size:0.88rem;}
.messages-reminder-list{display:grid;gap:0.75rem;}
.messages-empty{display:grid;gap:0.25rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);text-align:center;}
.message-reminder-card{display:grid;grid-template-columns:90px minmax(0,1fr);gap:1rem;padding:0.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.message-reminder-card.is-missing-phone{border-color:color-mix(in srgb,var(--danger) 40%,var(--line));}
.message-reminder-time{display:grid;align-content:start;gap:0.15rem;padding-right:0.9rem;border-right:1px solid var(--line);}
.message-reminder-time strong{font-size:1.2rem;}
.message-reminder-time span{color:var(--muted);font-size:0.82rem;overflow-wrap:anywhere;}
.message-reminder-main{min-width:0;display:grid;gap:0.7rem;}
.message-reminder-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:0.8rem;}
.message-reminder-heading>div{min-width:0;}
.message-reminder-meta{display:flex;flex-wrap:wrap;gap:0.35rem 0.9rem;margin-top:0.35rem;color:var(--muted);font-size:0.84rem;}
.message-reminder-meta .ui-value{min-width:0;}
.message-reminder-text{padding:0.65rem 0.75rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:10px;background:var(--panel);}
.message-reminder-label{display:block;margin-bottom:0.3rem;color:var(--muted);font-size:0.72rem;font-weight:var(--font-weight-medium);letter-spacing:0.07em;text-transform:uppercase;}
.message-reminder-text p{margin:0;font-size:0.9rem;line-height:1.5;overflow-wrap:anywhere;}
.message-reminder-automation-note{padding:0.55rem 0.7rem;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--accent) 5%,var(--panel));color:var(--muted);font-size:0.84rem;line-height:1.45;}
.message-reminder-automation-note.is-manual-required{border-color:color-mix(in srgb,var(--danger) 42%,var(--line));background:color-mix(in srgb,var(--danger) 6%,var(--panel));color:var(--danger);}
.message-reminder-card.is-manual-required{border-color:color-mix(in srgb,var(--danger) 42%,var(--line));}
.message-reminder-actions{display:flex;align-items:center;flex-wrap:wrap;gap:0.5rem;}
.message-phone-warning{color:var(--danger);font-size:0.86rem;}
.message-sent-note{color:var(--success);font-size:0.86rem;font-weight:var(--font-weight-medium);}
.button-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:0.45rem;}
.button-with-icon .ui-icon{color:currentColor;}

/* Manual studio-policy review broadcast. */
.policy-review-panel{margin-top:0;}
.policy-review-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,0.9fr);gap:0.9rem;align-items:start;}
.policy-review-preview,.policy-review-recipients{min-width:0;padding:0.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.policy-review-preview-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;font-size:0.9rem;}
.policy-review-template-buttons{display:flex;flex-wrap:wrap;gap:0.45rem;margin-top:0.75rem;}
.policy-review-template-button{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:0.35rem 0.7rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:0.82rem;font-weight:var(--font-weight-medium);}
.policy-review-recipient-heading{display:flex;justify-content:space-between;gap:0.7rem;align-items:center;margin-bottom:0.55rem;}
.policy-review-recipient-list{display:grid;gap:0.45rem;min-width:0;max-width:100%;max-height:340px;overflow:auto;padding-right:0.15rem;}
.policy-review-recipient{display:flex;justify-content:space-between;gap:0.7rem;align-items:center;min-width:0;max-width:100%;padding:0.55rem 0.6rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);}
.policy-review-recipient>span:first-child{display:flex;gap:0.4rem;align-items:center;min-width:0;max-width:100%;}
.policy-review-recipient>span:last-child{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word;}
.policy-review-recipient .ui-icon{flex:0 0 16px!important;width:16px!important;height:16px!important;}
.policy-review-actions{margin:0;}
.policy-review-results{display:grid;gap:0.45rem;}
.policy-review-result{display:flex;justify-content:space-between;gap:0.8rem;align-items:flex-start;padding:0.6rem 0.7rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);font-size:0.86rem;}
.policy-review-result>span:first-child{display:grid;gap:0.1rem;}
.policy-review-result small{color:var(--muted);}
.policy-review-result.is-sent>span:last-child{color:var(--success);}
.policy-review-result.is-failed{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));}
.policy-review-result.is-failed>span:last-child{color:var(--danger);max-width:62%;overflow-wrap:anywhere;text-align:right;}
@media (max-width:800px){.policy-review-grid{grid-template-columns:1fr;}.policy-review-summary{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:520px){.policy-review-summary{grid-template-columns:1fr;}.policy-review-recipient,.policy-review-result{align-items:flex-start;flex-direction:column;}.policy-review-result.is-failed>span:last-child{max-width:none;text-align:left;}}

/* Compact Messages workspace: frequent operational queues stay separate from occasional manual sends. */
.messages-workspace-tabs{display:grid;grid-template-columns:repeat(3,minmax(max-content,1fr));gap:3px;width:min(100%,620px);min-width:0;max-width:100%;padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--panel);margin-bottom:1rem}
.messages-workspace-tabs button{min-width:0;min-height:38px;padding:.45rem .8rem;border:0;border-radius:8px;background:transparent;color:var(--muted);box-shadow:none;white-space:nowrap;line-height:1.12}
.messages-workspace-tabs button:hover{filter:none;transform:none;background:var(--hover-bg);color:var(--text)}
.messages-workspace-label-short{display:none}
.messages-workspace-tabs .is-selected{background:color-mix(in srgb,var(--accent) 16%,var(--panel-soft));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 48%,var(--line))}
[data-messages-workspace-panel]{min-width:0;max-width:100%}
[data-messages-workspace-panel][hidden],.messages-panel[hidden]{display:none!important}
.messages-completed-toolbar{display:flex;justify-content:flex-end}
.messages-completed-list{margin-top:.25rem;padding-top:.85rem;border-top:1px solid var(--line)}
.manual-message-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;min-width:0;max-width:100%;margin-bottom:1rem}
.manual-message-tool{display:grid;gap:.22rem;min-height:0;padding:.85rem .95rem;text-align:left;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text)}
.manual-message-tool strong{font-size:.92rem}.manual-message-tool span{color:var(--muted);font-size:.8rem;line-height:1.35}
.manual-message-tool.is-selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
@media(max-width:620px){.messages-workspace-tabs{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.messages-workspace-tabs button{padding-inline:.35rem;font-size:.78rem}.messages-workspace-label-full{display:none}.messages-workspace-label-short{display:inline}.manual-message-tools{grid-template-columns:1fr}}

/* Manual send recipient selection. Selection is intentionally empty until the administrator chooses recipients. */
.policy-review-recipient-heading>div{display:grid;gap:.08rem;min-width:0}
.manual-recipient-selected-count{display:block;margin-top:.12rem}
.manual-recipient-select-all{display:inline-flex;align-items:center;gap:.4rem;margin:0;white-space:nowrap;color:var(--text);font-size:.82rem;font-weight:var(--font-weight-medium);cursor:pointer}
.manual-recipient-select-all input,.manual-recipient-checkbox{width:1rem!important;min-width:1rem;height:1rem;margin:0;padding:0;accent-color:var(--accent);cursor:pointer}
.manual-recipient-row{cursor:pointer}
.manual-recipient-row>span:first-child{gap:.45rem}
.manual-recipient-row:has(.manual-recipient-checkbox:checked){border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.general-announcement-recipients{min-width:0;max-width:100%}
.general-announcement-panel label,.general-announcement-panel textarea{min-width:0;max-width:100%}
@media (max-width:520px){.policy-review-recipient-heading{align-items:flex-start;flex-direction:column}.manual-recipient-select-all{padding-top:.1rem}.general-announcement-panel .toolbar,.policy-review-actions{display:grid;grid-template-columns:1fr;gap:.55rem;width:100%}.general-announcement-panel .toolbar button,.policy-review-actions button{width:100%;min-width:0;white-space:normal}}
/* First-session follow-up cards have no reminder-time column; use the full available row width. */
#firstSessionFollowUpList .message-reminder-card{grid-template-columns:minmax(0,1fr);gap:.7rem;width:100%;min-width:0;max-width:100%}
#firstSessionFollowUpList .message-reminder-main{grid-column:1 / -1;width:100%;min-width:0}
#firstSessionFollowUpList .message-reminder-heading,#firstSessionFollowUpList .message-reminder-heading>div,#firstSessionFollowUpList .message-reminder-meta,#firstSessionFollowUpList .message-reminder-actions{min-width:0;max-width:100%}
@media(max-width:620px){#firstSessionFollowUpList .message-reminder-heading{align-items:flex-start;flex-direction:column}#firstSessionFollowUpList .message-reminder-actions{display:grid;grid-template-columns:1fr;width:100%}#firstSessionFollowUpList .message-reminder-actions button{width:100%;min-width:0;white-space:normal}}
.messages-help-disclosure{display:block;}
.messages-help-disclosure>summary{display:flex;align-items:center;gap:.55rem;cursor:pointer;color:var(--muted);font-size:.88rem;font-weight:var(--font-weight-medium);}
.messages-help-disclosure>summary .ui-icon{margin-top:0;}
.messages-help-disclosure[open]>summary{margin-bottom:.6rem;color:var(--text);}
.messages-help-disclosure>p{padding-left:1.55rem;line-height:1.5;}

/* Phone stabilization: keep communication filters inside the card instead of
   allowing the heading action column to widen the whole Messages workspace. */
@media(max-width:620px){
  #tab-messages{min-width:0;max-width:100%;overflow-x:hidden}
  .messages-panel{width:100%;max-width:100%;min-width:0;overflow:hidden}
  .messages-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem;margin-bottom:0}
  .messages-heading>div,.messages-heading-actions{width:100%;max-width:100%;min-width:0}
  .messages-heading-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;align-items:stretch;justify-content:stretch}
  .messages-scope-filter{width:100%;max-width:100%;min-width:0}
  .messages-scope-filter select,.messages-heading-actions>button{width:100%;max-width:100%;min-width:0}
}

/* Shared tables, row actions and filter grids. */
.table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:13px;-webkit-overflow-scrolling:touch;}
.data-table{width:100%;border-collapse:collapse;min-width:650px;}
.data-table th,.data-table td{text-align:left;padding:0.7rem;border-bottom:1px solid var(--line);vertical-align:middle;}
.data-table th{color:var(--muted);font-size:0.82rem;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:0.07em;background:var(--panel-soft);}
.data-table tr:last-child td{border-bottom:0;}
.data-table td input,.data-table td select{min-width:135px;}
.hours-table{min-width:520px;}
.hours-table-wrap{width:100%;min-width:0;}
.row-actions{display:flex;justify-content:flex-end;gap:0.35rem;}
.row-actions button{min-height:30px;padding:0.22rem 0.58rem;border-radius:var(--button-radius-compact);font-size:0.82rem;}
.planner-status-actions{display:grid;justify-items:start;gap:0.4rem;}
.planner-status-actions .remove-row{min-height:30px;padding:0.22rem 0.58rem;border-radius:var(--button-radius-compact);font-size:0.82rem;}
.range-grid,.override-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:0.7rem;}
.records-filter-grid{grid-template-columns:repeat(3,minmax(0,220px));}

/* Location-specific closure is a compact three-field desktop form.
   Keep Location, From and To on one row; the save action must size to its label. */
.location-closure-grid{grid-template-columns:minmax(220px,260px) repeat(2,minmax(0,220px));align-items:end;max-width:730px;}
.location-closure-actions{justify-content:flex-start;}
.location-closure-actions>:first-child{flex:0 0 auto;}


/* Operating Hours becomes a labelled card editor on phones instead of a horizontally scrolling table. */
@media (max-width:620px){
  .hours-table-wrap{overflow:visible;border:0;border-radius:0;}
  .hours-table{display:block;width:100%;min-width:0;}
  .hours-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  .hours-table tbody{display:grid;gap:.7rem;width:100%;}
  .hours-table tbody tr:not(.hours-empty){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;min-width:0;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
  .hours-table tbody tr:not(.hours-empty) td{display:grid;gap:.3rem;min-width:0;padding:0;border:0;}
  .hours-table tbody tr:not(.hours-empty) td:nth-child(1),.hours-table tbody tr:not(.hours-empty) td:nth-child(4){grid-column:1/-1;}
  .hours-table tbody tr:not(.hours-empty) td::before{color:var(--muted);font-size:.76rem;font-weight:var(--font-weight-medium);letter-spacing:.07em;text-transform:uppercase;}
  .hours-table tbody tr:not(.hours-empty) td:nth-child(1)::before{content:"Day";}
  .hours-table tbody tr:not(.hours-empty) td:nth-child(2)::before{content:"From";}
  .hours-table tbody tr:not(.hours-empty) td:nth-child(3)::before{content:"To";}
  .hours-table tbody tr:not(.hours-empty) td:nth-child(4)::before{content:"Action";}
  .hours-table td input,.hours-table td select{width:100%;min-width:0;}
  .hours-table .row-actions{display:grid;justify-content:stretch;}
  .hours-table .row-actions button{width:100%;min-width:0;}
  .hours-table tbody tr.hours-empty{display:block;width:100%;}
  .hours-table tbody tr.hours-empty td{display:block;width:100%;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
}

/* Scannable recurring availability grouped by weekday. */
.hours-scan-note{margin:.8rem 0 1rem;}
.hours-day-list{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;width:100%;max-width:100%;min-width:0;}
.hours-day-card{width:100%;max-width:100%;min-width:0;align-self:start;border:1px solid var(--line);border-radius:13px;background:var(--panel-soft);overflow:hidden;}
.hours-day-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;cursor:pointer;list-style:none;}
.hours-day-summary::-webkit-details-marker{display:none;}
.hours-day-summary>span:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:.45rem;min-width:0;}
.hours-day-summary strong{font-size:1rem;}
.hours-day-summary-hint{flex:0 0 auto;}
.hours-day-card[open] .hours-day-summary{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,var(--panel-soft));}
.hours-day-content{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;width:100%;max-width:100%;padding:.85rem;min-width:0;}
.hours-day-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:.65rem;align-items:end;min-width:0;}
.hours-quick-duration{display:grid;gap:.28rem;min-width:0;color:var(--muted);font-size:.78rem;}
.hours-quick-duration>span{display:flex;align-items:center;gap:.45rem;min-width:0;}
.hours-quick-duration-input{width:110px;min-width:0;}
.hours-window-list{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem;width:100%;max-width:100%;min-width:0;}
.hours-window-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.6rem;align-items:end;min-width:0;padding:.7rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:11px;background:var(--panel);}
.hours-window-row label,.override-window-row label{display:grid;gap:.28rem;min-width:0;color:var(--muted);font-size:.78rem;}
.hours-window-row input,.override-window-row input{width:100%;min-width:0;}
.hours-day-empty{margin:0;padding:.2rem 0;}

/* Date exceptions: one editor date, grouped weekly review. */
.override-window-list{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem;width:100%;max-width:100%;min-width:0;}
.override-window-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.6rem;align-items:end;min-width:0;padding:.7rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.override-quick-add{display:grid;grid-template-columns:minmax(190px,260px) auto minmax(0,1fr);gap:.65rem;align-items:end;margin-top:.7rem;padding:.75rem;border:1px dashed var(--line);border-radius:11px;min-width:0;}
.override-quick-duration{display:grid;gap:.28rem;min-width:0;color:var(--muted);font-size:.78rem;}
.override-quick-duration-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center;min-width:0;}
.override-quick-duration-control input{min-width:0;width:100%;}
.override-quick-duration-control>span{white-space:nowrap;}
.override-quick-add>p{margin:0;}
.override-week-list{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;width:100%;max-width:100%;margin-top:.85rem;min-width:0;}
.override-week-group{min-width:0;border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden;}
.override-week-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;list-style:none;background:var(--panel-soft);}
.override-week-summary::-webkit-details-marker{display:none;}
.override-week-summary>span:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;min-width:0;}
.override-week-records{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;width:100%;max-width:100%;padding:.75rem;min-width:0;}
.override-record-card{display:grid;gap:.6rem;min-width:0;padding:.75rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:11px;background:var(--panel-soft);}
.override-record-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;min-width:0;}
.override-record-heading>div{display:grid;gap:.15rem;min-width:0;}
.override-record-heading strong{overflow-wrap:anywhere;}
.override-record-windows{display:flex;flex-wrap:wrap;gap:.4rem;min-width:0;}
.override-window-pill{display:inline-flex;align-items:center;min-height:28px;padding:.2rem .55rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:.82rem;font-variant-numeric:tabular-nums;}
.override-record-actions{display:flex;justify-content:flex-end;}
.override-empty{margin:.85rem 0 0;}

@media (min-width:900px){
  .hours-day-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;}
  .hours-day-card[open]{grid-column:1/-1;}
}
@media (max-width:760px){
  .hours-day-toolbar{grid-template-columns:1fr 1fr;}
  .hours-day-toolbar .add-hours-window{grid-column:1/-1;width:100%;}
  .hours-day-toolbar .quick-add-hours{width:100%;}
  .override-quick-add{grid-template-columns:1fr auto;}
  .override-quick-add>p{grid-column:1/-1;}
}
@media (max-width:620px){
  .hours-day-content,.hours-window-list,.override-window-list{width:100%;max-width:100%;min-width:0;}
  .hours-day-list,.hours-day-card,.hours-day-content,.hours-window-list,.override-window-list,.override-week-list,.override-week-group,.override-week-records{width:100%;max-width:100%;min-width:0;}
  .hours-window-row,.override-window-row{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;min-width:0;overflow:hidden;contain:inline-size;}
  .hours-window-row label,.override-window-row label{display:block;width:100%;max-width:100%;min-width:0;overflow:hidden;contain:inline-size;}
  .hours-window-row input[type="time"],.override-window-row input[type="time"]{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;inline-size:100%;max-inline-size:100%;min-inline-size:0;-webkit-min-logical-width:0;padding:0;overflow:hidden;-webkit-appearance:textfield;appearance:textfield;}
  .hours-window-row input[type="time"]::-webkit-date-and-time-value,.override-window-row input[type="time"]::-webkit-date-and-time-value{inline-size:100%;min-inline-size:0;margin:0;overflow:hidden;}
  .hours-window-row input[type="time"]::-webkit-datetime-edit,.override-window-row input[type="time"]::-webkit-datetime-edit{display:block;min-inline-size:0;overflow:hidden;padding:0;}
  .hours-window-row .remove-hours,.override-window-row .remove-override-window{grid-column:1;width:100%;max-width:100%;}
}
@media (max-width:520px){
  .hours-day-summary,.override-week-summary{align-items:flex-start;}
  .hours-day-summary-hint,.override-week-summary>span:last-child{font-size:.72rem;}
  .hours-day-toolbar{grid-template-columns:1fr;}
  .hours-day-toolbar .add-hours-window{grid-column:1;}
  .hours-quick-duration>span{display:grid;grid-template-columns:minmax(0,1fr) auto;}
  .hours-quick-duration-input{width:100%;}
  .override-quick-add{grid-template-columns:1fr;}
  .override-quick-add .secondary{width:100%;}
  .override-record-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;}
  .override-record-actions{justify-content:stretch;}
  .override-record-actions button{width:100%;}
}

/* Audit trail timeline and events. */
.audit-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:0.7rem;align-items:end;}
.audit-filter-grid>label{min-width:0;}
.audit-filter-grid>label select{width:100%;}
.notification-audit-search{grid-column:1 / -1;}
.notification-audit-search input{width:100%;}
.audit-delete-note{margin:0.35rem 0 0.9rem;}
.audit-timeline{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--panel);}
.audit-empty{padding:1.15rem;text-align:center;}
.audit-day-group+.audit-day-group{border-top:1px solid var(--line);}
.audit-day-heading{display:flex;align-items:center;gap:0.55rem;padding:0.8rem 1rem;background:var(--panel-soft);border-bottom:1px solid var(--line);}
.audit-day-heading .ui-icon{color:var(--muted);}
.audit-day-heading strong{font-size:0.95rem;font-weight:var(--font-weight-semibold);}
.audit-day-heading>span{padding:0.18rem 0.45rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel);font-size:0.7rem;font-weight:var(--font-weight-medium);letter-spacing:0.06em;}
.audit-day-events{padding:0.25rem 1rem 0.5rem;}
.audit-event{position:relative;display:grid;grid-template-columns:62px 38px minmax(0,1fr);gap:0.75rem;align-items:start;padding:0.78rem 0;}
.audit-event+.audit-event{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);}
.audit-event-time{padding-top:0.45rem;color:var(--muted);font-size:0.82rem;text-align:right;font-variant-numeric:tabular-nums;}
.audit-event-marker{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);color:var(--muted);}
.audit-event-marker .ui-icon{width:16px !important;height:16px !important;max-width:16px !important;max-height:16px !important;flex-basis:16px !important;}
.audit-event-marker::after{content:"";position:absolute;top:34px;bottom:-1.05rem;left:50%;width:1px;background:var(--line);transform:translateX(-50%);z-index:-1;}
.audit-event:last-child .audit-event-marker::after{display:none;}
.audit-event-administrative .audit-event-marker{color:var(--accent-emphasis,var(--accent));}
.audit-event-messaging .audit-event-marker{color:var(--accent-emphasis,var(--accent));background:color-mix(in srgb,var(--accent) 7%,var(--panel-soft));}
.audit-event-card{min-width:0;display:grid;gap:0.48rem;padding-top:0.18rem;}
.audit-event-primary{display:flex;align-items:center;flex-wrap:wrap;gap:0.45rem;min-width:0;}
.audit-event-primary>strong{min-width:0;font-size:0.94rem;}
.audit-event-primary .status-badge{margin-left:auto;}
.audit-category-badge{display:inline-flex;align-items:center;min-height:22px;padding:0.1rem 0.42rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel-soft);font-size:0.7rem;line-height:1;}
.audit-event-context{display:flex;align-items:center;flex-wrap:wrap;gap:0.38rem 0.85rem;min-width:0;color:var(--muted);font-size:0.86rem;}
.audit-context-item{display:inline-flex;align-items:center;gap:0.35rem;min-width:0;}
.audit-context-item .ui-icon{color:var(--muted);}
.audit-context-item span{min-width:0;overflow-wrap:anywhere;}
.audit-event-detail{display:flex;align-items:flex-start;gap:0.4rem;min-width:0;padding:0.5rem 0.6rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:9px;background:var(--panel-soft);color:var(--muted);font-size:0.82rem;line-height:1.45;}
.audit-event-detail .ui-icon{flex:0 0 14px !important;margin-top:0.08rem;color:var(--muted);}
.audit-event-detail span{min-width:0;overflow-wrap:anywhere;}

/* Audit Trail: date -> client/subject -> events. */
.audit-day-events{display:grid;gap:.7rem;padding:.7rem 1rem .85rem;}
.audit-subject-group{min-width:0;border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:11px;background:var(--panel-soft);overflow:hidden;}
.audit-subject-heading{display:flex;align-items:center;gap:.55rem;min-width:0;padding:.62rem .75rem;border-bottom:1px solid color-mix(in srgb,var(--line) 84%,transparent);background:var(--panel);}
.audit-subject-heading>.ui-icon{flex:0 0 17px !important;color:var(--muted);}
.audit-subject-heading>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .55rem;min-width:0;}
.audit-subject-heading strong{min-width:0;overflow-wrap:anywhere;font-size:.9rem;}
.audit-subject-events{padding:0 .75rem .2rem;min-width:0;}
.audit-subject-events .audit-event{padding:.7rem 0;}
@media(max-width:620px){
  .audit-day-events{padding:.55rem;}
  .audit-subject-heading{align-items:flex-start;}
  .audit-subject-heading>div{display:grid;gap:.12rem;}
  .audit-subject-events{padding:0 .55rem .15rem;}
  .audit-event{grid-template-columns:48px 32px minmax(0,1fr);gap:.5rem;}
  .audit-event-time{font-size:.76rem;}
  .audit-event-marker{width:30px;height:30px;}
  .audit-event-marker::after{top:30px;}
}

/* Lazy Audit Trail: date -> subject -> WhatsApp / Email / application activity. */
.audit-day-group{display:block;min-width:0;}
.audit-day-group>.audit-day-heading{cursor:pointer;list-style:none;}
.audit-day-group>.audit-day-heading::-webkit-details-marker{display:none;}
.audit-day-group>.audit-day-heading::before{content:"›";flex:0 0 auto;color:var(--muted);font-size:1.08rem;line-height:1;transition:transform .15s ease;}
.audit-day-group[open]>.audit-day-heading::before{transform:rotate(90deg);}
.audit-day-group:not([open])>.audit-day-heading{border-bottom:0;}
.audit-day-count{margin-left:auto!important;padding:0!important;border:0!important;background:transparent!important;letter-spacing:0!important;}
.audit-subject-group>.audit-subject-heading{cursor:pointer;list-style:none;border-bottom:0;}
.audit-subject-group>.audit-subject-heading::-webkit-details-marker{display:none;}
.audit-subject-group>.audit-subject-heading::before{content:"›";flex:0 0 auto;color:var(--muted);font-size:1rem;line-height:1;transition:transform .15s ease;}
.audit-subject-group[open]>.audit-subject-heading::before{transform:rotate(90deg);}
.audit-subject-group[open]>.audit-subject-heading{border-bottom:1px solid color-mix(in srgb,var(--line) 84%,transparent);}
.audit-subject-channels{display:grid;gap:.5rem;padding:.55rem;min-width:0;}
.audit-activity-group{min-width:0;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:10px;background:var(--panel);overflow:hidden;}
.audit-activity-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0;padding:.55rem .65rem;cursor:pointer;list-style:none;}
.audit-activity-heading::-webkit-details-marker{display:none;}
.audit-activity-heading>span:first-child{display:flex;align-items:center;gap:.45rem;min-width:0;}
.audit-activity-heading>span:first-child::before{content:"›";color:var(--muted);font-size:1rem;line-height:1;transition:transform .15s ease;}
.audit-activity-group[open]>.audit-activity-heading>span:first-child::before{transform:rotate(90deg);}
.audit-activity-heading .ui-icon{color:var(--muted);}
.audit-activity-events{min-width:0;padding:0 .65rem .2rem;border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);}
.audit-activity-group:not([open])>.audit-activity-events{display:none!important;}
.audit-activity-events .audit-event{padding:.7rem 0;}
.audit-load-more{width:100%;margin:.55rem 0;}
.records-page-status{display:inline-flex;align-items:center;padding:0 .5rem;}
@media(max-width:620px){
  .audit-day-heading{align-items:flex-start;flex-wrap:wrap;}
  .audit-day-count{margin-left:0!important;width:100%;padding-left:1.55rem!important;}
  .audit-subject-channels{padding:.45rem;}
  .audit-activity-heading{align-items:flex-start;}
  .audit-activity-events{padding:0 .5rem .15rem;}
}
/* Phase 4: configurable WhatsApp dynamic button contracts. */
.whatsapp-utility-button-editor{grid-column:1/-1;display:grid;gap:10px;padding:12px;border-top:1px solid var(--border,#3a2a30)}.whatsapp-utility-button-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.whatsapp-utility-button-list{display:grid;gap:8px}.whatsapp-utility-button-row{display:grid;grid-template-columns:72px minmax(130px,.8fr) minmax(180px,1.2fr) minmax(160px,1fr) auto;gap:8px;align-items:end}.whatsapp-utility-button-row label{display:grid;gap:4px}.whatsapp-utility-language{max-width:150px}@media(max-width:760px){.whatsapp-utility-button-heading{display:grid}.whatsapp-utility-button-row{grid-template-columns:1fr}}

.diagnostics-workspace{min-width:0;display:grid;}
.diagnostics-frame{display:block;width:100%;min-height:min(920px,calc(100dvh - 190px));border:0;background:var(--bg);color-scheme:dark light;}
@media(max-width:900px){.diagnostics-frame{min-height:calc(100dvh - 155px);}}

/* Client forms, phone controls, filters and cards. */
.two-column-panel{display:grid;grid-template-columns:1.2fr 0.8fr;gap:1.5rem;}
.inline-form{display:grid;grid-template-columns:1fr auto;gap:0.55rem;margin-bottom:1rem;}
.client-add-form{display:grid;grid-template-columns:1fr minmax(220px,0.8fr) auto;gap:0.55rem;margin-bottom:1rem;}
.client-add-form-contact{grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) minmax(210px,1fr) minmax(180px,0.9fr) minmax(180px,auto) auto;}
.phone-input-group{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:0;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--input-bg,#100a0c);transition:border-color 160ms ease,box-shadow 160ms ease;}
.phone-input-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent);}
.phone-country-picker{position:relative;min-width:112px;}
.phone-country-trigger{width:100%;min-height:42px;height:100%;justify-content:flex-start;gap:0.42rem;padding:0.55rem 0.62rem;border:0;border-right:1px solid var(--line);border-radius:9px 0 0 9px;background:transparent;color:var(--text);font-weight:var(--font-weight-medium);}
.phone-country-trigger:hover,.phone-country-trigger:active{transform:none;filter:none;background:var(--panel-soft);}
.phone-country-trigger:focus-visible{outline:none;}
.phone-country-flag{flex:0 0 auto;font-size:1rem;line-height:1;}
.phone-country-dial{min-width:0;font-variant-numeric:tabular-nums;}
.phone-country-chevron{margin-left:auto;color:var(--muted);font-size:0.78rem;}
.phone-input-group>.phone-number-input{min-width:0;width:100%;border:0;border-radius:0 9px 9px 0;background:transparent;box-shadow:none;}
.phone-input-group>.phone-number-input:focus{border-color:transparent;box-shadow:none;}
.phone-country-menu{position:absolute;top:calc(100% + 0.42rem);left:0;z-index:90;width:min(330px,calc(100vw - 2rem));padding:0.42rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);}
.phone-country-menu[hidden]{display:none;}
.phone-country-search{min-height:38px;margin-bottom:0.35rem;}
.phone-country-options{display:grid;max-height:260px;overflow-y:auto;overscroll-behavior:contain;}
.phone-country-option{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:0.55rem;width:100%;min-height:38px;padding:0.42rem 0.5rem;border:0;border-radius:8px;background:transparent;color:var(--text);font-weight:var(--font-weight-medium);text-align:left;}
.phone-country-option:hover,.phone-country-option:focus-visible,.phone-country-option.is-active{transform:none;filter:none;background:var(--panel-soft);outline:none;}
.phone-country-option-flag{font-size:1rem;line-height:1;}
.phone-country-option-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.phone-country-option strong{color:var(--muted);font-size:0.82rem;font-variant-numeric:tabular-nums;}
.phone-country-empty{padding:0.75rem;color:var(--muted);font-size:0.84rem;text-align:center;}
.phone-country-code{display:none;}
.client-booking-create-option{display:flex;align-items:center;gap:0.5rem;margin:0;color:var(--muted);font-size:0.86rem;line-height:1.3;white-space:nowrap;}
.client-booking-create-option input{width:auto;min-height:auto;margin:0;}
.client-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:0.85rem;flex-wrap:wrap;margin-bottom:0.35rem;}
.client-filter-tabs{display:inline-flex;gap:0.25rem;padding:0.2rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.client-filter-tab{min-height:34px;padding:0.3rem 0.8rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);}
.client-filter-tab.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast,#1a1013);}
.client-search{display:grid;grid-template-columns:auto minmax(220px,320px);align-items:center;gap:0.5rem;color:var(--muted);font-size:0.82rem;}
.client-search input{min-height:36px;}
.client-list-summary{margin:0;}
.client-list{display:grid;grid-template-columns:repeat(2,minmax(320px,1fr));gap:0.85rem;align-items:start;}
.client-editor[hidden]{display:none;}
.client-editor-subtitle{margin:.25rem 0 0;}
.client-editor-form{display:grid;gap:1rem;padding:1.1rem;}
.client-editor-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem;align-items:end;}
.client-editor-field{display:grid;gap:.4rem;min-width:0;color:var(--muted);font-size:.88rem;}
.client-editor-field>input{width:100%;min-width:0;}
.client-editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;padding-top:.15rem;}
@media(max-width:760px){
  .client-editor-contact-grid{grid-template-columns:1fr;}
  .client-editor-form{padding:1rem;}
  .client-editor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .client-editor-actions button{width:100%;}
}
.client-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:start;align-self:start;column-gap:0.8rem;row-gap:0.9rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 6px 18px rgba(30,20,25,0.04);}
.client-card.inactive>.client-avatar,.client-card.inactive>.client-card-main{opacity:0.72;}
.client-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--panel-soft);color:var(--muted);font-weight:var(--font-weight-medium);font-size:0.95rem;}
.client-card-main{min-width:0;}
.client-card-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-medium);}
.client-card-email,.client-card-phone{display:block;margin-top:0.18rem;min-width:0;color:var(--muted);font-size:0.9rem;line-height:1.35;overflow-wrap:anywhere;word-break:break-word;}
.client-card-email.is-missing,.client-card-phone.is-missing{font-style:italic;}
.client-menu{position:relative;justify-self:end;}
.client-menu.is-open{z-index:30;}
.client-menu-button{width:34px;height:34px;min-height:34px;padding:0;border:1px solid transparent;border-radius:50%;background:var(--panel-soft);color:var(--muted);font-size:1.15rem;line-height:1;}
.client-menu-button:hover,.client-menu-button:focus-visible{border-color:var(--line);color:var(--text);}
.client-menu-popover{position:absolute;top:calc(100% + 0.35rem);right:0;z-index:20;display:none;width:max-content;min-width:190px;max-width:calc(100vw - 2rem);padding:0.35rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);}
.client-menu.is-open .client-menu-popover{display:grid;overflow-y:auto;overscroll-behavior:contain;}
.client-menu.opens-upward .client-menu-popover{top:auto;bottom:calc(100% + 0.35rem);}
.client-menu-item{width:100%;justify-content:flex-start;min-height:36px;padding:0.4rem 0.6rem;border:0;background:transparent;color:var(--text);text-align:left;border-radius:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.client-menu-item:hover,.client-menu-item:focus-visible{background:var(--panel-soft);}
.client-menu-item.danger{color:var(--danger-text,#b4232d);}
/* Differentiate reversible deactivation from permanent deletion in action menus. */
.client-menu-popover .client-menu-item.warning{background:color-mix(in srgb,var(--warning,#d6a250) 18%,var(--panel));border:1px solid color-mix(in srgb,var(--warning,#d6a250) 45%,var(--line));color:var(--text);}
.client-menu-popover .client-menu-item.warning:hover,.client-menu-popover .client-menu-item.warning:focus-visible{background:color-mix(in srgb,var(--warning,#d6a250) 27%,var(--panel));}
.client-menu-popover .client-menu-item.danger{margin-top:0.3rem;background:color-mix(in srgb,var(--danger) 22%,var(--panel));border:1px solid color-mix(in srgb,var(--danger) 50%,var(--line));color:var(--text);}
.client-menu-popover .client-menu-item.danger:hover,.client-menu-popover .client-menu-item.danger:focus-visible{background:color-mix(in srgb,var(--danger) 32%,var(--panel));}
.client-card-footer{grid-column:1 / -1;display:flex;justify-content:flex-end;align-items:center;gap:0.5rem;}
.client-schedule-button{min-width:96px;}
.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0,0,0,0) !important;white-space:nowrap !important;border:0 !important;}


/* Participant communication history uses a wider, viewport-bound dialog with an independently scrollable history list. */
#clientCommunicationDialog{width:min(760px,calc(100vw - 2rem));max-width:760px;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow:hidden;}
#clientCommunicationDialog .client-communication-history-card{width:100%;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);min-height:0;grid-template-rows:auto auto auto minmax(0,1fr) auto auto;overflow:hidden;}
.client-communication-history-heading{align-items:flex-start;}
.client-communication-history-heading>div{min-width:0;}
.client-communication-history-heading h2,.client-communication-history-heading .section-kicker{overflow-wrap:anywhere;}
.client-communication-history-note{margin:0;line-height:1.55;}
.client-history-filter-form{display:grid;gap:0.55rem;align-items:end;padding:0.65rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.client-communication-history-filters{grid-template-columns:minmax(0,1.6fr) minmax(120px,0.65fr) minmax(120px,0.65fr) auto;}
.client-appointment-history-filters{grid-template-columns:minmax(0,1.7fr) minmax(145px,0.7fr) auto;}
.client-history-filter-form label{display:grid;gap:0.28rem;min-width:0;color:var(--muted);font-size:0.78rem;}
.client-history-filter-form input,.client-history-filter-form select{min-height:38px;padding:0.48rem 0.58rem;font-size:1rem;}
.client-history-apply{min-height:38px;}
.client-history-pagination{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;min-width:0;}
.client-history-pagination>div{display:flex;gap:0.4rem;}
.client-history-range{min-width:0;}
.client-communication-history-list{display:flex;flex-direction:column;gap:0.55rem;min-height:0;overflow-y:auto;overflow-anchor:none;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-top:0.15rem;padding-right:0.3rem;-webkit-overflow-scrolling:touch;}
.communication-history-entry{padding:0.2rem 0 0.1rem;}
.communication-history-entry+.communication-history-entry{padding-top:0.95rem;border-top:1px solid var(--line);}
.communication-history-entry-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;min-width:0;}
.communication-history-entry-title{display:grid;gap:0.18rem;min-width:0;}
.communication-history-entry-title>strong,.communication-history-channel{min-width:0;overflow-wrap:anywhere;}
.communication-history-entry-heading>.status-badge{flex:0 0 auto;}
.communication-history-context{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.45rem 0.8rem;}
.communication-history-timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0.45rem 0.8rem;}
.communication-history-context span,.communication-history-timeline span{display:block;min-width:0;overflow-wrap:anywhere;}
.communication-history-entry details{min-width:0;}
.communication-history-entry details p{overflow-wrap:anywhere;}
.communication-history-entry .dialog-actions{margin-top:0.1rem;}
.client-communication-history-actions{padding-top:0.15rem;border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);}
@media (max-width:620px){
  #clientCommunicationDialog.is-communication-history{width:calc(100vw - 1rem);max-width:none;height:calc(100vh - 1rem);height:calc(100dvh - 1rem);max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem);margin:auto;box-sizing:border-box;border-radius:14px;}
  #clientCommunicationDialog.is-communication-history .client-communication-history-card{width:100%;height:100%;min-height:0;max-height:none;box-sizing:border-box;grid-template-rows:auto auto minmax(0,1fr) auto;padding:1rem;gap:0.62rem;}
  .client-communication-history-heading{gap:0.5rem;}
  .client-communication-history-heading .icon-button{flex:0 0 44px;min-width:44px;min-height:44px;}
  .client-communication-history-note{display:none;}
  .client-history-filter-form{gap:0.48rem;padding:0.55rem;}
  .client-communication-history-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
  .client-communication-history-filters>label:first-child{grid-column:1/-1;}
  .client-communication-history-filters .client-history-apply{grid-column:1/-1;width:100%;}
  .client-appointment-history-filters{grid-template-columns:1fr;}
  .client-history-filter-form input,.client-history-filter-form select{min-width:0;}
  .client-history-pagination{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0.55rem;}
  .client-history-pagination>div{display:grid;grid-template-columns:repeat(2,minmax(78px,1fr));gap:0.35rem;}
  .client-history-pagination button{width:100%;}
  .client-communication-history-list{gap:0.62rem;padding-right:0.1rem;min-height:0;}
  .client-communication-history-actions{display:none;}
  .communication-history-entry-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0.55rem;}
  .communication-history-context,.communication-history-timeline{grid-template-columns:1fr;}
  .communication-history-entry .dialog-actions{justify-content:stretch;}
  .communication-history-entry .dialog-actions button{width:100%;}
}
@media (max-width:380px){
  #clientCommunicationDialog.is-communication-history{width:calc(100vw - 0.5rem);height:calc(100vh - 0.5rem);height:calc(100dvh - 0.5rem);max-height:calc(100vh - 0.5rem);max-height:calc(100dvh - 0.5rem);border-radius:12px;}
  #clientCommunicationDialog.is-communication-history .client-communication-history-card{height:100%;min-height:0;max-height:none;padding:0.85rem;}
  .client-communication-history-filters{grid-template-columns:1fr;}
  .client-communication-history-filters>label:first-child,.client-communication-history-filters .client-history-apply{grid-column:1;}
  .client-history-pagination{grid-template-columns:1fr;}
  .client-history-pagination>div{grid-template-columns:1fr 1fr;}
  .communication-history-entry-heading{grid-template-columns:1fr;}
  .communication-history-entry-heading>.status-badge{justify-self:start;}
}

/* Participant appointment history reuses the communication dialog shell with a compact scrollable record list. */
#clientCommunicationDialog .client-appointment-history-card{width:100%;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);min-height:0;grid-template-rows:auto auto auto minmax(0,1fr) auto auto;overflow:hidden;}
.client-appointment-history-list{display:grid;gap:0.7rem;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:0.3rem;-webkit-overflow-scrolling:touch;}
.client-appointment-history-entry{display:grid;gap:0.5rem;padding:0.75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.client-appointment-history-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;min-width:0;}
.client-appointment-history-heading>div{display:grid;gap:0.15rem;min-width:0;}
.client-appointment-history-heading strong,.client-appointment-history-heading span{overflow-wrap:anywhere;}
.client-appointment-history-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.35rem 0.8rem;color:var(--muted);font-size:0.8rem;}
.client-appointment-history-meta span{min-width:0;overflow-wrap:anywhere;}
.client-appointment-history-meta strong{color:var(--text);}
@media (max-width:620px){
  #clientCommunicationDialog .client-appointment-history-card{max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem);padding:1rem;}
  .client-appointment-history-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;}
  .client-appointment-history-meta{grid-template-columns:1fr;}
}

/* Communication history is grouped by date and each date expands on demand. */
.communication-history-day-group{display:block;flex:0 0 auto;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;}
.communication-history-day-heading{position:relative;display:flex;align-items:center;gap:.55rem;min-width:0;padding:.62rem .75rem;cursor:pointer;list-style:none;background:var(--panel-soft);}
.communication-history-day-heading::-webkit-details-marker{display:none;}
.communication-history-day-heading::before{content:"›";flex:0 0 auto;color:var(--muted);font-size:1.15rem;line-height:1;transform:rotate(0deg);transition:transform .15s ease;}
.communication-history-day-group[open]>.communication-history-day-heading{border-bottom:1px solid var(--line);}
.communication-history-day-group[open]>.communication-history-day-heading::before{transform:rotate(90deg);}
.communication-history-day-title{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;min-width:0;}
.communication-history-day-title .ui-icon{color:var(--muted);}
.communication-history-day-heading strong{font-size:.9rem;}
.communication-history-weekday{padding:.12rem .38rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel);font-size:.66rem;font-weight:var(--font-weight-medium);letter-spacing:.05em;}
.communication-history-day-count{margin-left:auto;flex:0 0 auto;}
.communication-history-day-entries{display:grid;padding:.25rem .75rem .55rem;min-width:0;}
.communication-history-day-group:not([open])>.communication-history-day-entries{display:none!important;}
.communication-history-day-group[open]>.communication-history-day-entries{display:grid;}
.communication-history-title-line{display:flex;align-items:baseline;gap:.55rem;min-width:0;}
.communication-history-title-line time{flex:0 0 auto;color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums;}
.communication-history-title-line strong{min-width:0;overflow-wrap:anywhere;}
@media(max-width:520px){
  .communication-history-day-heading{align-items:flex-start;}
  .communication-history-day-title{align-items:flex-start;}
  .communication-history-day-count{font-size:.72rem;}
  .communication-history-title-line{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.45rem;}
  .communication-history-day-entries{padding:0 .6rem .3rem;}
}

@media (max-width:760px){.client-card{scroll-margin-top:132px;}}

/* Lazy communication history: date -> channel -> communications. */
.communication-history-channel-group{min-width:0;border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:10px;background:var(--panel-soft);overflow:hidden;}
.communication-history-channel-group+.communication-history-channel-group{margin-top:.45rem;}
.communication-history-channel-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0;padding:.58rem .65rem;cursor:pointer;list-style:none;background:var(--panel);}
.communication-history-channel-heading::-webkit-details-marker{display:none;}
.communication-history-channel-heading>span:first-child{display:flex;align-items:center;gap:.45rem;min-width:0;}
.communication-history-channel-heading>span:first-child::before{content:"›";color:var(--muted);font-size:1rem;line-height:1;transition:transform .15s ease;}
.communication-history-channel-group[open]>.communication-history-channel-heading>span:first-child::before{transform:rotate(90deg);}
.communication-history-channel-heading .ui-icon{color:var(--muted);}
.communication-history-channel-entries{display:grid;gap:.7rem;min-width:0;padding:.55rem .65rem .65rem;border-top:1px solid color-mix(in srgb,var(--line) 84%,transparent);}
.communication-history-channel-group:not([open])>.communication-history-channel-entries{display:none!important;}
.communication-history-load-more{justify-self:stretch;width:100%;}
@media(max-width:520px){
  .communication-history-channel-heading{align-items:flex-start;}
  .communication-history-channel-heading>span:last-child{font-size:.72rem;}
  .communication-history-channel-entries{padding:.45rem .5rem .55rem;}
}

.client-session-notes{margin-top:.75rem;border-top:1px solid var(--line);padding-top:.65rem}.client-session-notes summary{cursor:pointer;font-weight:700}.client-session-notes p{margin:.65rem 0;white-space:pre-wrap;line-height:1.45}
.client-editor-preferred-location{grid-column:1/-1;align-self:start;width:min(100%,520px);}
.client-editor-preferred-location select{width:100%;max-width:520px;}

/* Location-aware participant appointment history. */
#clientCommunicationDialog.is-appointment-history{width:min(980px,calc(100vw - 2rem));max-width:980px;}
#clientCommunicationDialog.is-appointment-history .client-appointment-history-card{width:100%;}
.client-appointment-history-filters{grid-template-columns:repeat(4,minmax(0,1fr));}
.client-appointment-history-filters .client-history-search-field{grid-column:span 2;}
.client-appointment-history-filters .client-history-apply{align-self:end;}
@media(max-width:820px){
  #clientCommunicationDialog.is-appointment-history{width:calc(100vw - 1rem);max-width:none;}
  .client-appointment-history-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
  .client-appointment-history-filters .client-history-search-field{grid-column:1/-1;}
  .client-appointment-history-filters .client-history-apply{grid-column:1/-1;width:100%;}
}
@media(max-width:520px){
  .client-appointment-history-filters{grid-template-columns:1fr;}
  .client-appointment-history-filters .client-history-search-field,.client-appointment-history-filters .client-history-apply{grid-column:1;}
}

/* Compact collection creation: keep list screens scannable and move create forms into responsive dialogs. */
.client-toolbar-actions{display:flex;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:.65rem;margin-left:auto;min-width:0;}
.client-toolbar-actions .directory-location-field{width:240px;min-width:190px;}
.client-toolbar-actions .client-search{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:.3rem;min-width:220px;width:300px;max-width:320px;}
.client-toolbar-actions .client-search input{width:100%;min-width:0;min-height:40px;}
.client-toolbar-actions>button{flex:0 0 auto;min-height:40px;white-space:nowrap;}
.person-create-dialog{width:min(760px,calc(100% - 2rem));max-width:760px;max-height:calc(100dvh - 2rem);overflow:hidden;}
.person-create-dialog-card{width:100%;min-width:0;max-height:calc(100dvh - 2rem);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;}
.person-create-dialog-card>.dialog-heading{position:sticky;top:-1.2rem;z-index:5;margin:-1.2rem -1.2rem 0;padding:1.2rem 0 .8rem;background:var(--panel);border-bottom:1px solid var(--line);}
.person-create-dialog-card>.dialog-heading>div{min-width:0;}
.person-create-dialog-card>.dialog-heading h2{margin:.1rem 0 0;overflow-wrap:anywhere;}
.person-create-intro{margin:0;line-height:1.5;}
.person-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.1rem;align-items:start;min-width:0;}
.person-create-field{display:grid;gap:.4rem;min-width:0;color:var(--muted);font-size:.88rem;}
.person-create-field>input,.person-create-field>select,.person-create-field>.phone-input-group,.person-create-field>.timezone-picker{width:100%;min-width:0;max-width:100%;}
.person-create-field-full{grid-column:1 / -1;}
.person-create-dialog .client-booking-create-option{align-self:center;padding:.7rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);white-space:normal;color:var(--text);}
.person-create-dialog-actions{padding-top:.8rem;border-top:1px solid var(--line);}
@media(max-width:760px){
  .client-toolbar-actions{width:100%;display:grid;grid-template-columns:1fr;margin-left:0;}
  .client-toolbar-actions .directory-location-field,.client-toolbar-actions .client-search{width:100%;min-width:0;max-width:none;}
  .client-toolbar-actions>button{width:100%;}
  .person-create-dialog{width:calc(100% - 1rem);max-width:calc(100% - 1rem);max-height:calc(100dvh - 1rem);margin:auto;border-radius:14px;}
  .person-create-dialog-card{max-height:calc(100dvh - 1rem);padding:1rem;}
  .person-create-dialog-card>.dialog-heading{top:-1rem;margin:-1rem -1rem 0;padding:1rem 0 .75rem;}
  .person-create-grid{grid-template-columns:1fr;gap:.85rem;}
  .person-create-field-full{grid-column:1;}
  .person-create-dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;}
  .person-create-dialog-actions button{width:100%;}
}
@media(max-width:430px){.person-create-dialog-actions{grid-template-columns:1fr;}}

/* Location facet on the three Unified directory screens. */
.directory-location-field{display:grid;gap:.3rem;min-width:190px;max-width:280px;color:var(--muted);font-size:.82rem;}
.directory-location-field select{min-height:40px;width:100%;min-width:0;}
@media(max-width:760px){.directory-location-field{max-width:none;width:100%;}}
.client-package-associations { display:grid; gap:.6rem; min-width:0; padding:.8rem; border:1px solid var(--line); border-radius:12px; }
.client-package-associations > label { display:grid; gap:.4rem; }
.client-package-association-list { display:grid; gap:.4rem; max-height:14rem; overflow:auto; padding:.45rem; border:1px solid var(--line); border-radius:8px; }
.client-package-association-choice { display:flex !important; align-items:center; justify-content:flex-start; gap:.6rem; padding:.3rem; }
.client-package-association-choice input[type="checkbox"] { appearance:auto; width:18px !important; height:18px !important; min-width:18px !important; min-height:18px !important; max-width:18px; max-height:18px; margin:0; padding:0; flex:0 0 18px; accent-color:var(--accent); }
.client-package-association-choice span { overflow-wrap:anywhere; }

/* Lesson package tracking and weekly progress review. */
.lesson-packages-panel,.lesson-progress-review-panel{display:grid;gap:1rem;}
.lesson-packages-heading{margin-bottom:0;}
.lesson-packages-heading>div{flex:1 1 auto;min-width:0;}
.lesson-packages-heading>#refreshLessonPackagesButton{flex:0 0 auto;align-self:flex-end;white-space:nowrap;overflow-wrap:normal;}
@media(max-width:620px){.lesson-packages-heading>#refreshLessonPackagesButton{flex:1 1 100%;align-self:stretch;width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere;}}
.lesson-package-summary,.lesson-progress-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.7rem;}
.lesson-package-summary article,.lesson-progress-summary article{display:grid;gap:0.15rem;padding:0.8rem 0.9rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.lesson-package-summary span,.lesson-progress-summary span{color:var(--muted);font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;}
.lesson-package-summary strong,.lesson-progress-summary strong{font-size:1.35rem;}
.lesson-package-setup-card,.lesson-package-list-section{display:grid;gap:0.85rem;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);}
.lesson-package-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;}
.lesson-package-form>label{display:grid;gap:0.35rem;color:var(--muted);font-size:0.84rem;}
.lesson-package-form>label input,.lesson-package-form>label select{min-height:38px;padding:.48rem .58rem;color:var(--text);font-size:.86rem;}
.lesson-package-initial-payment-fieldset{grid-column:1/-1;min-width:0;margin:0;padding:.72rem;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--panel) 76%,transparent)}
.lesson-package-initial-payment-fieldset legend{padding:0 .35rem;color:var(--muted);font-size:.82rem}
.lesson-package-initial-payment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}
.lesson-package-initial-payment-grid>label{display:grid;gap:.32rem;min-width:0;color:var(--muted);font-size:.8rem}
.lesson-package-initial-payment-grid input{min-width:0;min-height:38px;padding:.48rem .58rem;color:var(--text);font-size:.86rem}
.lesson-package-initial-payment-fieldset>p{margin:.55rem 0 0}
.lesson-package-toggle{display:flex !important;align-items:center;gap:0.55rem;align-self:end;min-height:42px;padding:0.5rem 0.65rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);}
.lesson-package-toggle input{width:auto;min-height:auto;margin:0;}
.lesson-package-members-fieldset{grid-column:1/-1;min-width:0;margin:0;padding:0.75rem;border:1px solid var(--line);border-radius:11px;}
.lesson-package-members-fieldset legend{padding:0 0.35rem;color:var(--muted);font-size:0.82rem;}
.lesson-package-member-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.45rem;}
.lesson-package-member-options label{display:flex;align-items:center;gap:0.45rem;min-width:0;padding:0.45rem 0.55rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:0.86rem;}
.lesson-package-member-options input{width:auto;min-height:auto;margin:0;}
.lesson-package-member-options span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lesson-package-form>.toolbar{grid-column:1/-1;margin:0;}
.lesson-package-list,.lesson-progress-review-list{display:grid;gap:0.75rem;}

.lesson-package-series-groups{display:grid;gap:.75rem}
.lesson-package-series-group{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:visible}
.lesson-package-series-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;padding:.8rem .9rem;cursor:pointer;list-style:none}
.lesson-package-series-summary::-webkit-details-marker{display:none}
.lesson-package-series-summary::before{content:"›";flex:0 0 auto;color:var(--muted);font-size:1.25rem;line-height:1;transform:rotate(0deg);transition:transform .15s ease}
.lesson-package-series-group[open]>.lesson-package-series-summary::before{transform:rotate(90deg)}
.lesson-package-series-copy{display:grid;gap:.16rem;min-width:0;flex:1 1 auto}
.lesson-package-series-copy>strong{overflow-wrap:anywhere}
.lesson-package-series-copy>span{color:var(--muted);font-size:.8rem;line-height:1.35}
.lesson-package-series-count{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0 .55rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:.8rem;font-weight:700}
.lesson-package-series-cycles{display:grid;gap:.75rem;padding:.75rem;border-top:1px solid var(--line);background:color-mix(in srgb,var(--panel-soft) 54%,transparent)}
.lesson-package-series-cycles>.lesson-package-card{margin:0}
.lesson-package-card,.lesson-progress-review-card{display:grid;gap:0.75rem;padding:0.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);}
.lesson-package-card.is-complete{border-color:color-mix(in srgb,var(--success) 42%,var(--line));}
.lesson-package-card.is-previous{opacity:0.78;}
.lesson-package-card-head,.lesson-progress-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.lesson-package-card-head>div:first-child,.lesson-progress-review-head>div:first-child{min-width:0;}
.lesson-package-title-row{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;}
.lesson-package-card-head .muted,.lesson-progress-review-head span{display:block;margin-top:0.2rem;}
.lesson-package-progress,.lesson-progress-current{display:grid;flex:0 0 auto;gap:0.12rem;text-align:right;}
.lesson-package-progress strong,.lesson-progress-current strong{font-size:1.2rem;}
.lesson-package-progress span,.lesson-progress-current span{color:var(--muted);font-size:0.8rem;}
.lesson-package-head-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:.55rem;flex:0 0 auto;min-width:0}
.lesson-package-menu{position:relative;flex:0 0 auto}
.lesson-package-menu-button{width:34px;height:34px;min-height:34px;padding:0;border:1px solid transparent;border-radius:50%;background:var(--panel-soft);color:var(--muted);font-size:1.15rem;line-height:1}
.lesson-package-menu-button:hover,.lesson-package-menu-button:focus-visible{border-color:var(--line);color:var(--text)}
.lesson-package-menu-popover{position:absolute;top:calc(100% + .35rem);right:0;z-index:40;display:none;width:max-content;min-width:230px;max-width:min(310px,calc(100vw - 2rem));padding:.35rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}
.lesson-package-menu.is-open .lesson-package-menu-popover{display:grid;overflow-y:auto;overscroll-behavior:contain}
.lesson-package-menu.opens-upward .lesson-package-menu-popover{top:auto;bottom:calc(100% + .35rem)}
.lesson-package-menu-item{width:100%;justify-content:flex-start;min-height:36px;padding:.42rem .62rem;border:0;background:transparent;color:var(--text);text-align:left;border-radius:8px;white-space:normal;line-height:1.25}
.lesson-package-menu-item:hover,.lesson-package-menu-item:focus-visible{transform:none;filter:none;background:var(--panel-soft)}
.lesson-package-menu-item.is-attention{color:#d5a54f}
.lesson-package-menu-item.danger{color:var(--danger-text,#b4232d)}
.lesson-package-menu-item:disabled{opacity:.48;cursor:not-allowed;background:transparent;transform:none;filter:none}
.lesson-package-menu-divider{display:block;height:1px;margin:.3rem .25rem;background:var(--line)}
.lesson-package-meta{display:flex;flex-wrap:wrap;gap:0.5rem 1rem;color:var(--muted);font-size:0.84rem;}
.lesson-package-meta>span{display:inline-flex;align-items:center;gap:0.35rem;min-width:0;}
.lesson-package-meta .ui-icon{flex:0 0 15px !important;width:15px !important;height:15px !important;}
.lesson-package-warning{display:flex;align-items:flex-start;gap:0.5rem;padding:0.65rem 0.75rem;border:1px solid color-mix(in srgb,var(--warning,#c48b22) 38%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--warning,#c48b22) 7%,var(--panel-soft));color:var(--muted);font-size:0.84rem;}
.lesson-package-warning .ui-icon{flex:0 0 16px !important;width:16px !important;height:16px !important;margin-top:0.08rem;}
.lesson-package-complimentary-note{display:flex;align-items:flex-start;gap:.5rem;padding:.65rem .75rem;border:1px solid color-mix(in srgb,var(--success) 38%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--success) 7%,var(--panel-soft));color:var(--muted);font-size:.84rem}
.lesson-package-complimentary-note .ui-icon{flex:0 0 16px!important;width:16px!important;height:16px!important;margin-top:.08rem}
.lesson-package-payment-setup-note{grid-column:1/-1;margin:0;padding:.65rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.lesson-package-services-fieldset{grid-column:1/-1;min-width:0;margin:0;padding:.75rem;border:1px solid var(--line);border-radius:11px}
.lesson-package-services-fieldset legend{padding:0 .35rem;color:var(--muted);font-size:.82rem}
.lesson-package-services-fieldset>p{margin:0 0 .6rem}
.lesson-package-service-options{display:grid;gap:.5rem}
.lesson-package-service-option{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr);gap:.45rem .75rem;align-items:center;min-width:0;padding:.65rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.lesson-package-service-select{display:flex;align-items:center;gap:.5rem;min-width:0;color:var(--text)!important;font-size:.86rem!important}
.lesson-package-service-select input{width:auto!important;min-height:auto!important;margin:0}
.lesson-package-service-select span{display:flex;align-items:center;gap:.45rem;min-width:0;flex-wrap:wrap}
.lesson-package-service-select em{color:var(--muted);font-size:.75rem;font-style:normal}
.lesson-package-service-rate{display:grid;grid-template-columns:auto minmax(90px,1fr);align-items:center;gap:.45rem;color:var(--muted)!important;font-size:.78rem!important}
.lesson-package-service-rate input{min-width:0;min-height:38px;padding:.48rem .58rem;font-size:.86rem}
.lesson-package-service-option>.muted{grid-column:1/-1}
.lesson-package-legacy-payment-note{grid-column:1/-1;margin:0;padding:.6rem .7rem;border:1px dashed var(--line);border-radius:10px;background:var(--panel-soft)}

.lesson-package-actions{display:flex;align-items:center;justify-content:flex-end;gap:0.45rem;flex-wrap:wrap;}
.lesson-package-empty{padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-align:center;}
.lesson-package-dialog{width:min(1040px,calc(100% - 2rem));max-width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);margin-inline:auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;}
.lesson-package-dialog .dialog-card{width:100%;max-width:none;min-width:0;max-height:none;overflow:visible;}
.lesson-package-edit-dialog .lesson-package-form{margin-top:0.25rem;}
.lesson-package-lessons-dialog{display:grid;gap:0.8rem;}
.lesson-package-opening-balance{display:grid;grid-template-columns:1fr auto;gap:0.18rem 0.6rem;padding:0.7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.lesson-package-opening-balance p{grid-column:1/-1;margin:0;}
.lesson-package-opening-unmatched{padding-top:0.35rem;border-top:1px solid var(--line);color:var(--muted);}
.lesson-package-counted-list{display:grid;gap:0.45rem;}
.lesson-package-counted-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:0.65rem;padding:0.6rem 0.7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.lesson-package-counted-list article>div{min-width:0;display:grid;gap:0.12rem;}
.lesson-package-counted-list article span{color:var(--muted);font-size:0.82rem;}
.lesson-package-counted-list article.is-opening-lesson{border-style:dashed;}
.lesson-package-counted-list article .status-badge{white-space:nowrap;}
.lesson-package-count-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--panel);color:var(--text) !important;font-variant-numeric:tabular-nums;}
.lesson-progress-week-picker{display:flex;align-items:flex-end;gap:0.5rem;flex-wrap:wrap;}
.lesson-progress-week-picker label{display:grid;gap:0.3rem;color:var(--muted);font-size:0.8rem;}
.lesson-progress-week-picker input{min-height:38px;}
.lesson-progress-help{margin:0;}
.lesson-progress-review-meta{display:flex;align-items:center;gap:0.55rem 0.9rem;flex-wrap:wrap;color:var(--muted);font-size:0.82rem;}
.lesson-progress-preview{border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);overflow:hidden;}
.lesson-progress-preview summary{cursor:pointer;padding:0.55rem 0.7rem;color:var(--muted);font-size:0.82rem;font-weight:var(--font-weight-medium);}
.lesson-progress-preview pre{margin:0;padding:0.7rem;border-top:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;font-size:0.86rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;}
@media (max-width:900px){.lesson-package-member-options{grid-template-columns:repeat(2,minmax(0,1fr));}.lesson-package-service-option{grid-template-columns:1fr}.lesson-package-service-option>.muted{grid-column:1}.lesson-package-service-rate{grid-template-columns:auto minmax(90px,1fr)}}
@media (max-width:700px){.lesson-package-dialog{width:calc(100% - 2rem);max-width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);margin-inline:auto;border-radius:14px;}.lesson-package-dialog .dialog-card{padding:1rem;}.lesson-package-summary,.lesson-progress-summary{grid-template-columns:1fr;}.lesson-package-form{grid-template-columns:1fr;}.lesson-package-members-fieldset,.lesson-package-services-fieldset,.lesson-package-form>.toolbar,.lesson-package-payment-setup-note,.lesson-package-legacy-payment-note{grid-column:1;}.lesson-package-member-options{grid-template-columns:1fr;}.lesson-package-card-head,.lesson-progress-review-head{display:grid;}.lesson-package-head-actions{width:100%;justify-content:space-between}.lesson-package-progress,.lesson-progress-current{text-align:left;}.lesson-package-actions{justify-content:stretch;}.lesson-package-actions button{flex:1 1 140px;}.lesson-progress-week-picker{width:100%;}.lesson-progress-week-picker label{flex:1 1 180px;}.lesson-package-counted-list article{grid-template-columns:32px minmax(0,1fr);align-items:start;}.lesson-package-counted-list article .status-badge{grid-column:2;justify-self:start;}.lesson-package-opening-balance{grid-template-columns:minmax(0,1fr) auto;}}

.lesson-package-default-size-form{display:flex;align-items:end;gap:.7rem;flex-wrap:wrap;margin:0 0 1rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft)}
.lesson-package-default-size-form label{min-width:170px;max-width:220px}
.lesson-package-default-size-form p{flex:1 1 300px;margin:0 0 .15rem}
@media(max-width:720px){.lesson-package-default-size-form{align-items:stretch}.lesson-package-default-size-form label{max-width:none;flex:1 1 100%}.lesson-package-default-size-form button{width:100%}}


@media(max-width:620px){.lesson-package-series-summary{align-items:flex-start;gap:.65rem;padding:.75rem}.lesson-package-series-copy>span{font-size:.76rem}.lesson-package-series-count{min-width:28px;height:28px;padding:0 .45rem}.lesson-package-series-cycles{padding:.6rem}}

/* Fixed-package lifecycle attention and history views. */
.lesson-package-list-section>.section-heading-row{align-items:flex-start}
.lesson-package-list-section>.section-heading-row>div:first-child{flex:1 1 auto;min-width:0}
.lesson-package-view-switch{display:grid;grid-template-columns:repeat(2,minmax(96px,1fr));flex:0 0 auto;min-width:214px;gap:3px;padding:3px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
.lesson-package-view-switch button{min-width:0;min-height:38px;padding:.45rem .8rem;border:0;border-radius:8px;background:transparent;color:var(--muted);box-shadow:none;white-space:nowrap}
.lesson-package-view-switch button:hover{filter:none;transform:none;background:var(--hover-bg);color:var(--text)}
.lesson-package-view-switch .is-selected{border-color:transparent;background:color-mix(in srgb,var(--accent) 16%,var(--panel-soft));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 48%,var(--line))}
.lesson-package-meta>span>span{overflow-wrap:anywhere}
.lesson-package-card.is-expiring{--lesson-package-expiry:#d5a54f;border-color:color-mix(in srgb,var(--lesson-package-expiry) 58%,var(--line));background:color-mix(in srgb,var(--lesson-package-expiry) 6%,var(--panel));box-shadow:inset 3px 0 0 color-mix(in srgb,var(--lesson-package-expiry) 82%,transparent)}
.lesson-package-card.is-expiring .lesson-package-status-badge{color:color-mix(in srgb,var(--lesson-package-expiry) 86%,#fff);border-color:color-mix(in srgb,var(--lesson-package-expiry) 52%,var(--line));background:color-mix(in srgb,var(--lesson-package-expiry) 11%,transparent)}
/* A deliberate pause is not an expiry warning: neutral card, understated status badge. */
.lesson-package-card.is-paused .lesson-package-status-badge{color:color-mix(in srgb,var(--muted) 72%,#d5a54f);border-color:var(--line);background:var(--panel-soft)}
.lesson-package-expiry-warning{position:relative;display:flex;align-items:flex-start;gap:.65rem;overflow:hidden;padding:.78rem .9rem;border:1px solid color-mix(in srgb,var(--lesson-package-expiry,#d5a54f) 38%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--lesson-package-expiry,#d5a54f) 8%,var(--panel-soft));color:var(--text);font-size:.85rem;line-height:1.4}
.lesson-package-expiry-warning::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--lesson-package-expiry,#d5a54f)}
.lesson-package-expiry-warning .ui-icon{flex:0 0 17px!important;width:17px!important;height:17px!important;margin-top:.08rem;color:var(--lesson-package-expiry,#d5a54f)}
.lesson-package-expiry-copy{display:grid;gap:.12rem;min-width:0}
.lesson-package-expiry-copy strong{font-size:.9rem;color:var(--text)}
.lesson-package-expiry-copy span{color:var(--muted);font-size:.82rem}
.lesson-package-expiry-attention{border-color:#d5a54f!important;background:#d5a54f!important;color:#1a1206!important}
.lesson-package-expiry-attention:hover{filter:brightness(1.06)}
.lesson-package-card.is-completed-closed{border-color:color-mix(in srgb,var(--success) 42%,var(--line));opacity:.9}
.lesson-package-card.is-expired{border-color:color-mix(in srgb,var(--danger,#c94b50) 48%,var(--line));background:color-mix(in srgb,var(--danger,#c94b50) 6%,var(--panel));opacity:.94}
.lesson-package-extension-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:.7rem;margin-top:.45rem}
.lesson-package-extension-grid>label{display:grid;gap:.35rem;color:var(--muted);font-size:.84rem}
.lesson-package-extension-grid #lessonPackageExtensionDateField{grid-column:2/4}
@media(max-width:700px){.lesson-package-list-section>.section-heading-row{gap:.8rem}.lesson-package-view-switch{width:100%;min-width:0}.lesson-package-card{padding:.85rem}.lesson-package-meta{display:grid;grid-template-columns:1fr;gap:.45rem}.lesson-package-meta>span{align-items:flex-start}.lesson-package-expiry-warning{padding:.75rem .8rem .75rem .9rem}.lesson-package-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:.5rem}.lesson-package-actions button{width:100%;min-width:0;white-space:normal;line-height:1.15;padding-inline:.55rem}.lesson-package-extension-grid{grid-template-columns:1fr}.lesson-package-extension-grid #lessonPackageExtensionDateField{grid-column:1}}
@media(max-width:420px){.lesson-package-actions{grid-template-columns:1fr}}

/* Manual package communication preview. Preview remains visible even when sending is blocked. */
.package-communication-dialog-card{display:grid;gap:1rem;min-width:0}
.package-communication-dialog-card>.dialog-heading{position:sticky;top:0;z-index:4;min-width:0;padding:.15rem 0 .8rem;border-bottom:1px solid var(--line);background:var(--panel)}
.package-communication-dialog-card>.dialog-heading>div:first-child{min-width:0}
.package-communication-dialog-card>.dialog-heading .section-kicker,.package-communication-dialog-card>.dialog-heading h2{max-width:100%;overflow-wrap:anywhere}
.package-communication-dialog-card>.dialog-heading .icon-button{flex:0 0 auto;align-self:flex-start}
.package-communication-recipient-summary{display:grid;gap:.22rem;padding:.75rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.package-communication-recipient-summary p{margin:0;overflow-wrap:anywhere}
.package-communication-preview-section,.package-communication-availability-section{display:grid;gap:.65rem}
.package-communication-preview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.package-communication-preview-heading h3{margin:.08rem 0 0;font-size:1rem}
.package-communication-preview-heading>p{margin:0;text-align:right}
.package-communication-preview-grid,.package-communication-availability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.package-communication-preview-card,.package-communication-channel-status{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);overflow:hidden}
.package-communication-preview-card-heading,.package-communication-channel-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border-bottom:1px solid var(--line)}
.package-communication-email-subject,.package-communication-template-meta{display:grid;gap:.2rem;padding:.65rem .8rem;border-bottom:1px solid var(--line);background:var(--panel)}
.package-communication-email-subject span,.package-communication-template-meta span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.package-communication-email-subject strong,.package-communication-template-meta strong{font-size:.84rem;overflow-wrap:anywhere}
.package-communication-email-preview{display:block;box-sizing:border-box;width:100%;min-height:330px;margin:0;padding:1rem;border:0;background:#fff;color:#111;font:inherit;font-size:.88rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:inset 0 0 0 1px #e6e0e2}
.package-communication-whatsapp-preview{min-height:330px;margin:0;padding:1rem;background:var(--panel);color:var(--text);font:inherit;font-size:.88rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.package-communication-preview-error{margin:0;padding:1rem;color:var(--muted);font-size:.84rem}
.package-communication-channel-status{padding:.75rem .8rem;overflow:visible}
.package-communication-channel-status .package-communication-channel-heading{padding:0 0 .45rem;border:0}
.package-communication-channel-status p{margin:0;overflow-wrap:anywhere}
.package-communication-channel-status.is-unavailable{background:color-mix(in srgb,var(--danger,#c94b50) 4%,var(--panel-soft))}
.package-communication-actions{margin-top:.1rem;min-width:0;flex-wrap:wrap}
.package-communication-actions button{max-width:100%;min-width:0}
.package-communication-footnote{margin:0}
@media(max-width:820px){.package-communication-preview-grid,.package-communication-availability-grid{grid-template-columns:1fr}.package-communication-email-preview,.package-communication-whatsapp-preview{min-height:280px}.package-communication-preview-heading{align-items:flex-start}.package-communication-preview-heading>p{text-align:left}}
@media(max-width:520px){.package-communication-preview-heading{display:grid;gap:.3rem}.package-communication-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.package-communication-actions button{width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}.package-communication-email-preview,.package-communication-whatsapp-preview{min-height:240px}}
@media(max-width:390px){.package-communication-actions{grid-template-columns:1fr}}

/* Manual session-package payment reminder. */
.package-payment-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}
.package-payment-summary>div{display:grid;gap:.18rem;min-width:0;padding:.65rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.package-payment-summary span{color:var(--muted);font-size:.75rem;line-height:1.3}
.package-payment-summary strong{font-size:1rem;overflow-wrap:anywhere}


.package-payment-breakdown{display:grid;gap:.55rem}
.package-payment-breakdown-list{display:grid;gap:.45rem}
.package-payment-breakdown-list article{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-width:0;padding:.65rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.package-payment-breakdown-list article>div{display:grid;gap:.15rem;min-width:0}
.package-payment-breakdown-list article span{color:var(--muted);font-size:.8rem}
.package-payment-breakdown-list article>strong{flex:0 0 auto}

.package-payment-calculated-total{display:grid;gap:.25rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.package-payment-calculated-total>span{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}
.package-payment-calculated-total>strong{font-size:1.25rem}
.package-payment-calculated-total>p{margin:0}
.package-payment-amount-field{display:grid;gap:.35rem;color:var(--muted);font-size:.84rem}
.package-payment-amount-field input{color:var(--text)}
.package-payment-availability-grid{grid-template-columns:minmax(0,1fr)}
.package-payment-preview-card{max-width:100%}
@media(max-width:820px){.package-payment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.lesson-package-head-actions{width:100%;justify-content:space-between}.lesson-package-progress{text-align:left}.lesson-package-menu-popover{right:0;max-width:calc(100vw - 2rem)}.package-payment-summary{grid-template-columns:1fr}}


/* Phase 1 package allocation and financial reconciliation. */
.lesson-package-service-option{grid-template-columns:minmax(0,1fr) minmax(165px,.4fr) minmax(155px,.36fr)}
.lesson-package-service-allocation{display:grid;grid-template-columns:auto minmax(72px,1fr);align-items:center;gap:.45rem;color:var(--muted)!important;font-size:.78rem!important}
.lesson-package-service-allocation input{min-width:0;min-height:38px;padding:.48rem .58rem;font-size:.86rem}
.lesson-package-financial-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.lesson-package-financial-summary article{display:grid;gap:.15rem;min-width:0;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.lesson-package-financial-summary article span{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}
.lesson-package-financial-summary article strong{overflow-wrap:anywhere;font-size:.95rem}
.lesson-package-payment-detail-section{display:grid;gap:.45rem}
.lesson-package-payment-detail-section h3{margin:0;font-size:.95rem}
.lesson-package-payment-calculation-dialog,.lesson-package-record-payment-dialog{display:grid;gap:.85rem}
.lesson-package-recorded-payment-date{min-width:9rem}
.lesson-package-recorded-payment-amount{min-width:7rem;max-width:9rem}
.lesson-package-recorded-payment-note{min-width:9rem;max-width:15rem}
.lesson-package-payment-edit-actions{display:flex;flex-wrap:wrap;gap:.4rem;min-width:9rem}
@media(max-width:900px){.lesson-package-service-option{grid-template-columns:1fr}.lesson-package-service-rate,.lesson-package-service-allocation{grid-template-columns:auto minmax(90px,1fr)}.lesson-package-initial-payment-grid{grid-template-columns:1fr}.lesson-package-financial-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.lesson-package-financial-summary{grid-template-columns:1fr}}

/* Phase 4 Live package-screen reorganization. */
.lesson-package-command-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft)}
.lesson-package-command-bar>div:first-child{display:grid;gap:.15rem;min-width:0}
.lesson-package-command-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;flex:0 0 auto}
.lesson-package-defaults-popover{position:relative}
.lesson-package-defaults-popover>summary{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.48rem .75rem;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);font-weight:var(--font-weight-bold);line-height:1;cursor:pointer;list-style:none;user-select:none}
.lesson-package-defaults-popover>summary::-webkit-details-marker{display:none}
.lesson-package-defaults-popover[open]>summary{background:var(--hover-bg)}
.lesson-package-defaults-popover .lesson-package-default-size-form{position:absolute;top:calc(100% + .45rem);right:0;z-index:45;display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;width:min(760px,calc(100vw - 3rem));max-width:none;margin:0;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);align-items:end}
.lesson-package-defaults-popover .lesson-package-default-size-form label{min-width:0;max-width:none}
.lesson-package-defaults-popover .lesson-package-default-size-form p{grid-column:1/-1;margin:0}
.lesson-package-create-dialog-card{display:grid;gap:.9rem}
.lesson-package-basis-field{align-content:start}
.lesson-package-basis-field select,#editLessonPackageBasis{width:100%;min-height:44px;height:44px;padding:.65rem .72rem;align-self:start;justify-self:stretch}
.lesson-package-create-dialog-card>.dialog-heading{position:sticky;top:0;z-index:5;padding-bottom:.75rem;border-bottom:1px solid var(--line);background:var(--panel)}
.lesson-package-create-section{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.7fr);gap:.65rem .8rem;padding:.8rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft)}
.lesson-package-create-section>div:first-child{display:grid;gap:.12rem;align-content:start}
.lesson-package-create-section>label{display:grid;gap:.35rem;color:var(--muted);font-size:.84rem}
.lesson-package-create-section>.lesson-package-initial-payment-fieldset{grid-column:1/-1;background:var(--panel)}
.lesson-package-format-lock{display:grid;gap:.2rem;align-content:start;padding:.65rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.lesson-package-format-lock>span{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}
.lesson-package-format-lock>strong{font-size:.92rem}
.lesson-package-format-lock>small{color:var(--muted);line-height:1.4}

@media(max-width:820px){
  .lesson-package-command-bar{align-items:stretch;flex-direction:column}
  .lesson-package-command-actions{justify-content:stretch}
  .lesson-package-command-actions>button,.lesson-package-defaults-popover{flex:1 1 0}
  .lesson-package-defaults-popover>summary{width:100%}
  .lesson-package-defaults-popover .lesson-package-default-size-form{left:0;right:auto;grid-template-columns:1fr;width:min(520px,calc(100vw - 3rem));align-items:stretch}
  .lesson-package-create-section{grid-template-columns:1fr}
  .lesson-package-create-section>.lesson-package-initial-payment-fieldset{grid-column:1}
}
@media(max-width:560px){
  .lesson-package-command-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .lesson-package-defaults-popover .lesson-package-default-size-form{position:fixed;left:1rem;right:1rem;top:auto;bottom:1rem;width:auto;max-height:calc(100dvh - 2rem);overflow:auto}
  .lesson-package-head-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start}
}
@media(max-width:410px){
  .lesson-package-command-actions{grid-template-columns:1fr}
  .lesson-package-head-actions{grid-template-columns:minmax(0,1fr) auto}
}

/* Mode-specific package entitlements: Individual and Group remain independent inside one package. */
.lesson-package-entitlement-tabs{display:flex;align-items:center;gap:.45rem;margin:.15rem 0 .7rem;padding:.25rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);width:max-content;max-width:100%}
.lesson-package-entitlement-tabs button{min-width:110px;min-height:36px;padding:.45rem .8rem}
.lesson-package-entitlement-tabs button.is-selected{background:var(--hover-bg);border-color:var(--accent);color:var(--text)}
.lesson-package-entitlement-panel{display:grid;gap:.55rem;min-width:0}
.lesson-package-entitlement-panel[hidden]{display:none!important}
.lesson-package-entitlement-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.1rem .1rem 0}
.lesson-package-entitlement-panel-heading>div{display:grid;gap:.12rem;min-width:0}
.lesson-package-entitlement-options{display:grid;gap:.55rem;min-width:0}
.lesson-package-entitlement-option{display:grid;grid-template-columns:minmax(260px,1fr) minmax(170px,210px) minmax(150px,180px);gap:.6rem .8rem;align-items:start;min-width:0;padding:.72rem .78rem;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.lesson-package-entitlement-select{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:.65rem!important;min-width:0;padding:.12rem 0;color:var(--text)!important;font-size:.84rem!important;cursor:pointer}
.lesson-package-entitlement-select input[type="checkbox"]{appearance:auto;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;margin:.12rem 0 0!important;padding:0!important;accent-color:var(--accent);cursor:pointer}
.lesson-package-entitlement-select input[type="checkbox"]:disabled{cursor:not-allowed;opacity:.62}
.lesson-package-entitlement-select span{display:grid;gap:.12rem;min-width:0;line-height:1.3}
.lesson-package-entitlement-select strong{min-width:0;overflow-wrap:anywhere;font-size:.9rem}
.lesson-package-entitlement-select em{color:var(--muted);font-size:.74rem;font-style:normal;font-weight:400}
.lesson-package-entitlement-rate,.lesson-package-entitlement-allocation{display:grid!important;grid-template-columns:1fr;align-content:start;gap:.28rem!important;min-width:0;color:var(--muted)!important;font-size:.76rem!important;line-height:1.3}
.lesson-package-entitlement-rate input,.lesson-package-entitlement-allocation input{width:100%;min-width:0;min-height:38px;padding:.48rem .55rem;color:var(--text);font-size:.84rem}
.lesson-package-entitlement-rate input[readonly]{opacity:.82;cursor:not-allowed}
.lesson-package-entitlement-note{grid-column:1/-1;min-width:0;padding-left:calc(18px + .65rem);line-height:1.4;overflow-wrap:anywhere}
@media(max-width:900px){
  .lesson-package-entitlement-option{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .lesson-package-entitlement-select,.lesson-package-entitlement-note{grid-column:1/-1}
}
@media(max-width:700px){
  .lesson-package-entitlement-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .lesson-package-entitlement-tabs button{width:100%;min-width:0}
  .lesson-package-entitlement-option{grid-template-columns:1fr;padding:.68rem}
  .lesson-package-entitlement-select,.lesson-package-entitlement-rate,.lesson-package-entitlement-allocation,.lesson-package-entitlement-note{grid-column:1}
  .lesson-package-entitlement-note{padding-left:0}
}

/* Compact package workspace: scalable active list + dedicated weekly review. */
.lesson-package-primary-tabs{grid-template-columns:repeat(4,minmax(104px,1fr));width:min(100%,620px);min-width:0;margin:0}
.lesson-package-primary-tabs button{white-space:normal;line-height:1.12}
#lessonPackageListSection[hidden],#lessonPackageWeeklySection[hidden]{display:none!important}
.lesson-package-card.is-compact-active{gap:.55rem;padding:.72rem .82rem}
.lesson-package-card.is-compact-active .lesson-package-card-head{align-items:center}
.lesson-package-card.is-compact-active .lesson-package-head-actions{align-items:center}
.lesson-package-card.is-compact-active .lesson-package-progress strong{font-size:1.08rem}
.lesson-package-detail-toggle{min-height:34px;padding:.38rem .62rem;font-size:.8rem;white-space:nowrap}
.lesson-package-compact-summary{display:flex;align-items:center;gap:.45rem 1rem;flex-wrap:wrap;color:var(--muted);font-size:.8rem}
.lesson-package-compact-summary>span{display:inline-flex;align-items:center;gap:.32rem;min-width:0}
.lesson-package-compact-summary .ui-icon{flex:0 0 14px!important;width:14px!important;height:14px!important}
.lesson-package-compact-summary strong{color:var(--text);font-weight:var(--font-weight-medium);overflow-wrap:anywhere}
.lesson-package-card-details{display:grid;gap:.65rem;padding-top:.12rem}
.lesson-package-card-details[hidden]{display:none!important}
@media(max-width:700px){.lesson-package-primary-tabs{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-package-card.is-compact-active .lesson-package-card-head{gap:.55rem}.lesson-package-card.is-compact-active .lesson-package-head-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.lesson-package-card.is-compact-active .lesson-package-progress{min-width:0}.lesson-package-detail-toggle{min-width:0}.lesson-package-compact-summary{gap:.4rem .75rem}}
@media(max-width:460px){.lesson-package-primary-tabs button{padding-inline:.45rem;font-size:.8rem}.lesson-package-card.is-compact-active .lesson-package-head-actions{grid-template-columns:minmax(0,1fr) auto}.lesson-package-card.is-compact-active .lesson-package-detail-toggle{grid-column:1/2;justify-self:start}.lesson-package-card.is-compact-active .lesson-package-menu{grid-column:2;grid-row:1/3;align-self:center}}
.lesson-package-payment-detail-section .table-scroll{border:1px solid var(--line);border-radius:12px;overflow:auto}.lesson-package-payment-detail-section table{width:100%;min-width:560px;border-collapse:collapse}.lesson-package-payment-detail-section th{padding:.65rem .75rem;background:var(--panel-soft);color:var(--muted);font-size:.76rem;letter-spacing:.04em;text-transform:uppercase;text-align:left}.lesson-package-payment-detail-section th:nth-child(n+2),.lesson-package-payment-detail-section td:nth-child(n+2){text-align:right;white-space:nowrap}.lesson-package-payment-detail-section td{padding:.68rem .75rem;border-top:1px solid var(--line);vertical-align:top}.lesson-package-payment-detail-section td:first-child{min-width:220px}.lesson-package-payment-detail-section td:last-child{font-weight:var(--font-weight-semibold,600)}@media(max-width:700px){.lesson-package-payment-detail-section .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.lesson-package-payment-detail-section table{min-width:520px}}

/* Package editor sections: keep routine package setup compact and reveal financial/policy details only when selected. */
.lesson-package-editor-tabs{display:flex;flex-wrap:wrap;gap:.4rem;margin:.1rem 0 .65rem;border-bottom:1px solid var(--line);padding-bottom:.5rem}
.lesson-package-editor-tabs button{min-width:92px;min-height:36px;padding:.38rem .72rem}
.lesson-package-editor-tabs button.is-selected{background:var(--panel-soft);border-color:var(--accent);color:var(--accent-emphasis,var(--accent))}
.lesson-package-form[data-editor-tab="package"]>.lesson-package-create-payment-section,
.lesson-package-form[data-editor-tab="package"]>.lesson-package-edit-payment-section,
.lesson-package-form[data-editor-tab="package"]>.lesson-package-policy-section{display:none}
.lesson-package-form[data-editor-tab="payments"]>*{display:none}
.lesson-package-form[data-editor-tab="payments"]>.lesson-package-create-payment-section,
.lesson-package-form[data-editor-tab="payments"]>.lesson-package-edit-payment-section{display:grid;grid-column:1/-1}
.lesson-package-form[data-editor-tab="policies"]>*{display:none}
.lesson-package-form[data-editor-tab="policies"]>.lesson-package-policy-section{display:grid;grid-column:1/-1}
.lesson-package-policy-section{gap:.75rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}
.lesson-package-policy-section>div:first-child{display:grid;gap:.2rem}
.lesson-package-policy-defaults{display:grid;gap:.7rem;margin:.35rem 0 0;padding:.75rem;border:1px solid var(--line);border-radius:10px}
.lesson-package-policy-defaults legend{padding:0 .35rem;color:var(--text);font-weight:var(--font-weight-bold);font-size:.86rem}
.lesson-package-policy-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;align-items:end}
.lesson-package-policy-inline[hidden],.lesson-package-policy-section [hidden]{display:none!important}
.lesson-package-refund-adjustment-grid{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(220px,1fr) auto;gap:.65rem;align-items:end;margin:.8rem 0}
.lesson-package-refund-adjustment-grid button{align-self:end}
.lesson-package-transfer-summary{display:grid;gap:.45rem;margin:.65rem 0;padding:.75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.lesson-package-transfer-summary p{margin:0}
@media(max-width:700px){.lesson-package-editor-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem}.lesson-package-editor-tabs button{min-width:0;width:100%;padding:.36rem .45rem;font-size:.82rem}.lesson-package-policy-inline,.lesson-package-refund-adjustment-grid{grid-template-columns:1fr}.lesson-package-refund-adjustment-grid button{width:100%}}


/* Responsive stabilization: compact phone package workspace. */
@media(max-width:700px){
  .lesson-packages-panel{gap:.75rem}
  .lesson-packages-heading{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem;margin-bottom:0}
  .lesson-packages-heading>#refreshLessonPackagesButton{flex:none;align-self:start;justify-self:start;width:auto;min-width:0;min-height:40px;padding:.45rem .72rem;white-space:nowrap;overflow-wrap:normal}
  .lesson-package-list-section{gap:.65rem;padding:.8rem}
  .lesson-package-list-section>.section-heading-row{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem;margin-bottom:0;align-items:start}
  .lesson-package-list-tools{width:100%;max-width:100%;justify-content:stretch;overflow:hidden}
  .lesson-package-search{display:grid;width:100%;min-width:0;max-width:100%;gap:.3rem}
  .lesson-package-search input{width:100%;min-width:0;max-width:100%}
  .lesson-package-card.is-compact-active{position:relative;padding-right:3.45rem}
  .lesson-package-card.is-compact-active .lesson-package-card-head{display:grid;grid-template-columns:minmax(0,1fr);gap:.48rem;align-items:start}
  .lesson-package-card.is-compact-active .lesson-package-head-actions{display:flex;align-items:center;justify-content:space-between;gap:.55rem;width:100%;min-width:0}
  .lesson-package-card.is-compact-active .lesson-package-progress{min-width:0;text-align:left}
  .lesson-package-card.is-compact-active .lesson-package-menu{position:absolute;top:.68rem;right:.68rem;z-index:6}
  .lesson-package-card.is-compact-active .lesson-package-menu-popover{top:calc(100% + .35rem);right:0;left:auto;max-height:min(70dvh,520px);overflow-y:auto;overscroll-behavior:contain}
  .lesson-package-card.is-compact-active .lesson-package-menu.opens-upward .lesson-package-menu-popover{top:auto;bottom:calc(100% + .35rem)}
}
.client-package-request-review { margin: 1rem 0; padding: 1rem; }
.client-package-request-review > summary { cursor: pointer; display: flex; gap: .7rem; align-items: center; flex-wrap: wrap; }
.client-package-admin-card { display: grid; gap: .65rem; padding: 1rem; border: 1px solid var(--border, #7775); border-radius: .8rem; margin-top: .8rem; }
.client-package-admin-card h4, .client-package-admin-card p { margin: 0; }
.client-package-admin-card ul { margin: 0; padding-left: 1.4rem; }
.client-package-admin-member { display: grid; grid-template-columns: minmax(0,1fr) minmax(12rem,1fr); gap: .65rem; align-items: center; }
.client-package-admin-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.client-package-admin-card .client-package-self { display: flex; align-items: center; gap: .5rem; }
.client-package-review-section { min-width:0; display:grid; gap:.6rem; margin:.4rem 0; padding:.8rem; border:1px solid var(--line); border-radius:10px; }
.client-package-review-section legend { padding:0 .35rem; font-weight:700; }
.client-package-review-section > label:not(.client-package-approval-check) { display:grid; gap:.3rem; min-width:0; }
.client-package-review-section input:not([type="checkbox"]),.client-package-review-section select { width:100%; min-width:0; }
.client-package-review-section .client-package-approval-check { display:flex; align-items:flex-start; gap:.65rem; }
.client-package-review-section .client-package-approval-check input[type="checkbox"],.client-package-admin-card .client-package-self input[type="checkbox"] { appearance:auto; flex:0 0 18px; width:18px !important; height:18px !important; min-width:18px !important; min-height:18px !important; margin:0; padding:0; }
.client-package-review-section [hidden] { display:none !important; }
.client-package-review-receipt-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:.6rem; }
.client-package-review-receipt-fields > label { display:grid; gap:.3rem; }
@media (max-width:740px) { .client-package-review-receipt-fields { grid-template-columns:1fr; } }
@media (max-width: 740px) { .client-package-admin-member { grid-template-columns: 1fr; } }

/* Service type list, editor and cards. */
.service-types-panel{gap:1rem;}
.service-types-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.service-filter-menu{position:relative;z-index:8;}
.service-filter-button{display:inline-flex;align-items:center;gap:0.55rem;min-height:40px;padding:0.45rem 0.7rem;border:1px solid transparent;background:transparent;color:var(--text);font-size:1rem;font-weight:var(--font-weight-medium);}
.service-filter-button:hover,.service-filter-button:focus-visible,.service-filter-menu.is-open .service-filter-button{border-color:var(--line);background:var(--panel-soft);}
.service-filter-count,.service-filter-option-count{display:inline-grid;place-items:center;min-width:25px;height:25px;padding:0 0.38rem;border:1px solid var(--line);border-radius:7px;background:var(--panel-soft);color:var(--muted);font-size:0.78rem;font-weight:var(--font-weight-medium);}
.service-filter-chevron{color:var(--muted);font-size:1rem;transform:translateY(-1px);transition:transform 120ms ease;}
.service-filter-menu.is-open .service-filter-chevron{transform:rotate(180deg) translateY(1px);}
.service-filter-popover{position:absolute;top:calc(100% + 0.4rem);left:0;display:none;width:max-content;min-width:225px;padding:0.4rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);}
.service-filter-menu.is-open .service-filter-popover{display:grid;gap:0.15rem;}
.service-filter-option{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0.8rem;width:100%;min-height:38px;padding:0.45rem 0.6rem;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;}
.service-filter-option:hover,.service-filter-option:focus-visible,.service-filter-option.is-selected{background:var(--panel-soft);}
.service-filter-option.is-selected{font-weight:var(--font-weight-medium);}
.service-types-actions{display:flex;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:0.65rem;margin-left:auto;min-width:0;}
.service-types-actions .directory-location-field{width:240px;min-width:190px;}
.service-search{display:grid;grid-template-columns:minmax(0,1fr);gap:.3rem;min-width:220px;width:300px;max-width:320px;color:var(--muted);font-size:.82rem;}
.service-search input{width:100%;min-width:0;min-height:40px;}
.service-card-meta{display:flex;align-items:center;gap:0.45rem;color:var(--muted);font-size:0.88rem;}
.service-editor{gap:0;padding:0;overflow:hidden;}
.service-editor[hidden]{display:none;}
.service-editor form{display:grid;gap:0;}
.service-editor-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line);}
.service-editor-header h2{margin:0.15rem 0 0;}
.service-editor-actions{display:flex;align-items:center;gap:0.65rem;}
.service-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem;padding:1.1rem;}
.service-editor-field{display:grid;align-content:start;gap:0.45rem;min-width:0;color:var(--muted);font-size:0.88rem;}
.service-editor-label{display:inline-flex;align-items:baseline;gap:0.18rem;width:fit-content;}
.required-mark{display:inline;flex:0 0 auto;}
.service-duration-control{display:flex;flex-wrap:wrap;align-items:end;gap:0.65rem;}
.service-duration-part{display:grid;gap:0.35rem;min-width:0;width:max-content;}
.service-duration-part>span{font-size:0.8rem;}
.service-duration-part select{width:auto;min-width:78px;max-width:96px;padding-inline:.58rem;}
.service-editor-field>input,.service-editor-field>textarea{width:100%;}
.service-editor-field-wide{grid-column:span 1;}
.service-editor-field-full{grid-column:1 / -1;}
.service-editor-field textarea{min-height:150px;resize:vertical;}
.service-details-card,.service-scheduling-rules{display:grid;gap:.9rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel-soft) 72%,transparent);}
.service-editor-section-heading,.service-scheduling-rules-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.service-editor-section-heading h3,.service-scheduling-rules-heading h3{margin:0;}
.service-editor-section-heading p,.service-scheduling-rules-heading p{margin:0;max-width:620px;}
.service-details-grid{display:grid;grid-template-columns:minmax(210px,.75fr) minmax(0,1.25fr);gap:1rem;align-items:start;}
.service-details-grid .service-editor-field-full{grid-column:auto;}
.service-details-grid textarea{min-height:112px;}
.service-scheduling-rules-grid{display:grid;grid-template-columns:minmax(190px,.9fr) repeat(2,minmax(180px,.7fr));gap:1rem;align-items:start;}
.service-scheduling-rules-grid>.service-editor-field{min-width:0;}
.service-scheduling-rules-grid .input-with-suffix{width:min(100%,180px);}
.service-scheduling-rules-grid .input-with-suffix input{min-width:0;}
.field-hint{color:var(--muted);font-size:0.78rem;line-height:1.4;}
.service-segment-field{min-width:0;margin:0;padding:0;border:0;}
.service-segment-field legend{margin-bottom:0.45rem;color:var(--muted);font-size:0.88rem;}
.service-segmented-control{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,340px);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);}
.service-segmented-control label{position:relative;display:block;margin:0;cursor:pointer;}
.service-segmented-control label+label{border-left:1px solid var(--line);}
.service-segmented-control input{position:absolute;opacity:0;pointer-events:none;}
.service-segmented-control span{display:grid;place-items:center;min-height:42px;padding:0.45rem 0.8rem;color:var(--text);background:transparent;transition:background 120ms ease,color 120ms ease;}
.service-segmented-control input:checked+span{background:var(--panel-soft);color:var(--accent-emphasis,var(--accent));font-weight:var(--font-weight-medium);}
.service-segmented-control input:focus-visible+span{outline:2px solid var(--accent);outline-offset:-2px;}
.service-followup-control{margin-bottom:0.15rem;}
.service-card-list{align-items:start;}
.service-card{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;min-height:118px;}
.service-card.inactive{opacity:1;}
.service-card.inactive .service-card-content{opacity:0.5;}
.service-card.inactive .service-card-menu{opacity:1;}
.service-card-content{min-width:0;display:grid;align-content:start;gap:0.42rem;}
.service-card-heading{display:flex;align-items:center;gap:0.5rem;min-width:0;}
.service-card-heading .client-card-name{flex:0 1 auto;}
.service-inactive-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:22px;padding:0.1rem 0.42rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);background:var(--panel-soft);font-size:0.72rem;line-height:1;}
.service-card-description{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:0.88rem;line-height:1.4;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;}
.service-empty-state{grid-column:1 / -1;display:grid;justify-items:start;gap:0.3rem;padding:1.25rem;border:1px dashed var(--line);border-radius:12px;background:var(--panel-soft);}
.client-row.inactive{opacity:0.55;}
.client-row button{min-height:30px;padding:0.22rem 0.58rem;border-radius:var(--button-radius-compact);font-size:0.82rem;}
.service-location-field{display:grid;gap:.55rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.location-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;min-width:0;}
.location-choice-list.is-disabled{opacity:.55;}
.location-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start;min-width:0;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer;}
.location-choice>input{width:1rem;height:1rem;min-height:0;margin-top:.18rem;}
.location-choice>span{display:grid;gap:.16rem;min-width:0;}
.location-choice strong,.location-choice small{overflow-wrap:anywhere;}
.location-choice small{color:var(--muted);font-size:.78rem;line-height:1.35;}
.location-choice.is-inactive{opacity:.65;}
@media(max-width:720px){.location-choice-list{grid-template-columns:1fr;}}

@media(max-width:760px){.service-editor-section-heading,.service-scheduling-rules-heading{display:grid;gap:.35rem}.service-details-grid,.service-scheduling-rules-grid{grid-template-columns:1fr}.service-details-grid .service-editor-field-full{grid-column:1}.service-scheduling-rules-grid .input-with-suffix{width:min(100%,180px)}}

@media(max-width:760px){.service-types-actions .directory-location-field,.service-types-actions .service-search{width:100%;min-width:0;max-width:none;}}

/* Service Location Offering cards and editor. */
.service-offering-heading{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.65rem;}
.service-offering-info{flex:1 1 560px;min-width:0;display:grid;gap:.22rem;}
.service-offering-list{margin-top:.75rem;}
.service-offering-card{grid-template-rows:auto;}
.service-offering-avatar{border-radius:12px;}
.service-offering-card-main{display:grid;gap:.18rem;}
.service-offering-meta{display:block;min-width:0;color:var(--muted);font-size:.86rem;line-height:1.35;overflow-wrap:anywhere;}
.service-offering-warning{display:block;color:var(--danger-text,#b4232d);font-size:.8rem;font-weight:var(--font-weight-medium);}
.service-offering-card .status-badge{justify-self:start;margin-top:.2rem;}
.service-offering-menu{grid-column:3;grid-row:1;}
.service-offering-dialog{width:min(900px,calc(100vw - 2rem));max-width:900px;max-height:calc(100dvh - 2rem);overflow:hidden;}
.service-offering-dialog-card{width:100%;max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;}
.service-offering-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem;align-items:start;}
.service-offering-editor-grid>label,.service-offering-editor-grid>fieldset{min-width:0;}
.service-offering-editor-grid select,.service-offering-editor-grid input{width:100%;min-width:0;}
.service-offering-group-settings,.service-offering-availability-section,.service-offering-unavailable-section{display:grid;gap:.75rem;padding-top:.9rem;border-top:1px solid var(--line);}
.service-offering-group-settings h3,.service-offering-availability-heading h3{margin:0;}
.service-offering-minimum-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;}
.service-offering-availability-heading{display:grid;gap:.2rem;}
.service-offering-availability-heading p{margin:0;}
.service-offering-hours-mode{display:grid;gap:.6rem;margin:0;padding:0;border:0;}
.service-offering-hours-mode>label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer;}
.service-offering-hours-mode>label>input{margin-top:.18rem;}
.service-offering-hours-mode>label>span{display:grid;gap:.12rem;min-width:0;}
.service-offering-hours-mode small{color:var(--muted);font-size:.78rem;line-height:1.4;}
.service-offering-window-row{min-width:0;}
.service-offering-window-row label{min-width:0;}
.service-offering-window-row input{min-width:0;}
.service-offering-day-card{min-width:0;}

.service-offering-unavailable-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.75rem;align-items:end;}
.service-offering-unavailable-controls>label{min-width:0;}
.service-offering-unavailable-controls input{width:100%;min-width:0;}
.service-offering-unavailable-controls>button{white-space:nowrap;}
.service-offering-unavailable-list{display:grid;gap:.5rem;}
.service-offering-unavailable-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.service-offering-unavailable-row>span{display:grid;gap:.1rem;min-width:0;}
.service-offering-unavailable-row button{flex:0 0 auto;}
.service-empty-state{display:grid;gap:.25rem;min-width:0;padding:1rem;border:1px dashed var(--line);border-radius:12px;background:var(--panel-soft);}
.service-editor-field.is-structurally-locked{opacity:.82;}
@media(max-width:760px){
  .service-offering-heading{align-items:stretch;}
  .service-offering-heading>button{width:100%;}
  .service-offering-editor-grid,.service-offering-minimum-grid,.service-offering-unavailable-controls{grid-template-columns:1fr;}
  .service-offering-unavailable-controls>button{width:100%;}
  .service-offering-unavailable-row{align-items:stretch;flex-direction:column;}
  .service-offering-unavailable-row button{width:100%;}
  .service-offering-dialog{width:calc(100vw - 1rem);max-width:none;max-height:calc(100dvh - 1rem);margin:auto;}
  .service-offering-dialog-card{max-height:calc(100dvh - 1rem);padding:1rem;}
  .service-offering-list{grid-template-columns:1fr;}
}

/* Resource mappings are Offering configuration only; scheduling enforcement lives in the Resource engine phases. */
.service-offering-resources-section{display:grid;gap:.7rem;padding-top:.9rem;border-top:1px solid var(--line);}
.service-offering-resource-heading{display:grid;gap:.2rem;}
.service-offering-resource-heading h3,.service-offering-resource-heading p{margin:0;}
.service-offering-resource-options{display:grid;gap:.6rem;}
.service-offering-resource-option{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,1fr);gap:.8rem;align-items:center;padding:.75rem .8rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.service-offering-resource-option.is-selected{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel));}
.service-offering-resource-option.is-inactive{opacity:.72;}
.service-offering-resource-choice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;min-width:0;}
.service-offering-resource-choice>input{width:auto;min-width:0;margin-top:.18rem;accent-color:var(--accent);}
.service-offering-resource-choice>span{display:grid;gap:.12rem;min-width:0;}
.service-offering-resource-choice small{color:var(--muted);line-height:1.35;}
.service-offering-resource-controls{display:grid;grid-template-columns:minmax(180px,1fr) minmax(90px,.4fr);gap:.65rem;align-items:end;}
.service-offering-resource-controls>label{display:grid;gap:.32rem;min-width:0;}
.service-offering-resource-controls select,.service-offering-resource-controls input{width:100%;min-width:0;}
.service-offering-resource-summary{color:var(--text);}
@media(max-width:760px){
  .service-offering-resource-option,.service-offering-resource-controls{grid-template-columns:1fr;}
}

/* Danger/check controls, toasts and status badges. */
.danger-zone{border-left:1px solid var(--line);padding-left:1.5rem;display:grid;align-content:start;gap:0.75rem;}
.check-row{display:flex;grid-template-columns:auto 1fr;align-items:start;gap:0.6rem;}
.check-row input{width:auto;min-height:auto;margin-top:0.25rem;}
.notice-stack{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:120;width:min(520px,calc(100vw - 2rem));display:grid;justify-items:end;gap:0.65rem;pointer-events:none;}
.notice-toast{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:start;justify-self:end;width:fit-content;min-width:min(280px,100%);max-width:100%;gap:0.7rem;overflow:visible;padding:0.82rem 0.82rem 0.82rem 0.9rem;border:1px solid color-mix(in srgb,var(--success) 38%,var(--line));border-radius:14px;background:var(--panel);color:var(--text);box-shadow:0 16px 42px rgba(0,0,0,0.34);font-weight:var(--font-weight-medium);line-height:1.42;pointer-events:auto;animation:notice-in 180ms ease-out both;}
.notice-toast.is-scrollable{max-height:min(80dvh,560px);overflow:hidden;}
.notice-toast.error{border-color:color-mix(in srgb,var(--danger) 46%,var(--line));background:var(--panel);color:var(--text);}
.notice-toast.is-leaving{animation:notice-out 160ms ease-in both;}
.notice-toast-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:rgba(191,228,200,0.12);color:var(--success);}
.notice-toast.error .notice-toast-icon{background:rgba(246,154,166,0.12);color:var(--danger);}
.notice-toast-icon .ui-icon{width:16px !important;height:16px !important;max-width:16px !important;max-height:16px !important;flex-basis:16px !important;}
.notice-toast-message{min-width:0;max-width:48ch;overflow-wrap:anywhere;white-space:pre-wrap;padding-top:0.16rem;}
.notice-toast.is-scrollable .notice-toast-message{max-height:min(70dvh,480px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding-right:0.25rem;}
.notice-toast-close{position:sticky;top:0;align-self:start;width:28px;height:28px;min-height:28px;padding:0;border:0;border-radius:8px;background:transparent;color:currentColor;font-size:1.25rem;line-height:1;opacity:0.72;box-shadow:none;}
.notice-toast-close:hover,.notice-toast-close:focus-visible{background:var(--hover-bg);opacity:1;transform:none;}
@keyframes notice-in{from{opacity:0;transform:translateY(10px) scale(0.985);} to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes notice-out{from{opacity:1;transform:translateY(0) scale(1);} to{opacity:0;transform:translateY(8px) scale(0.985);}}
.schedule-note{margin-top:0.35rem;color:var(--muted);font-size:0.82rem;}
.status-badge{display:inline-flex;align-items:center;width:fit-content;min-height:24px;padding:0.12rem 0.5rem;border:1px solid var(--line);border-radius:999px;font-size:0.8rem;font-weight:var(--font-weight-medium);letter-spacing:0.04em;line-height:1;}
.status-badge.is-complete{color:var(--success);border-color:rgba(191,228,200,0.42);background:rgba(191,228,200,0.08);}
.status-badge.is-scheduled,.status-badge.is-attempted{color:var(--accent-emphasis,var(--accent));border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 8%,transparent);}
.status-badge.is-failed{color:var(--danger);border-color:rgba(246,154,166,0.42);background:rgba(246,154,166,0.07);}
.appointment-state{display:grid;gap:0.25rem;justify-items:start;margin-bottom:0.45rem;}

/* First-run scheduling setup guidance. Hidden permanently after onboarding completion. */
.initial-setup-context,
.initial-setup-checklist {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--panel);
  box-shadow: var(--shadow);
}
.initial-setup-context[hidden],
.initial-setup-checklist[hidden] { display: none !important; }
.initial-setup-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 18px;
  padding: 12px 14px;
}
.initial-setup-context-copy { min-width: 0; }
.initial-setup-context-copy .section-kicker { margin-bottom: 2px; }
.initial-setup-context-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}
.initial-setup-checklist {
  display: grid;
  gap: 16px;
  margin: 0 0 20px;
  padding: 18px;
}
.initial-setup-checklist-heading,
.initial-setup-checklist-footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.initial-setup-checklist-heading h2 { margin: 2px 0 6px; }
.initial-setup-progress {
  min-width: 190px;
  display: grid;
  gap: 7px;
  justify-items: end;
}
.initial-setup-progress-track {
  width: 190px;
  max-width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--line);
}
.initial-setup-progress-track > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--accent);
  transition: width 180ms ease;
}
.initial-setup-steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.initial-setup-step {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 12px;
  background: var(--panel-soft, var(--panel));
}
.initial-setup-step.is-complete { opacity: .86; }
.initial-setup-step-marker {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  font-weight: 700;
}
.initial-setup-step.is-complete .initial-setup-step-marker { border-color: currentColor; }
.initial-setup-step-body { min-width: 0; }
.initial-setup-step-body strong { display: block; margin: 2px 0 4px; }
.initial-setup-step-body p { margin: 0; }
.initial-setup-step-action { align-self: center; }
.initial-setup-checklist-footer { align-items: center; }
.initial-setup-checklist-footer p { margin: 0; }
.admin-calendar-new-appointment { white-space: nowrap; }
@media (max-width: 760px) {
  .initial-setup-context,
  .initial-setup-checklist-heading,
  .initial-setup-checklist-footer {
    align-items: stretch;
    flex-direction: column;
  }
  .initial-setup-context-actions { width: 100%; }
  .initial-setup-context-actions > button { flex: 1 1 0; }
  .initial-setup-progress { min-width: 0; width: 100%; justify-items: stretch; }
  .initial-setup-progress-track { width: 100%; }
  .initial-setup-steps { grid-template-columns: minmax(0, 1fr); }
  .initial-setup-step { grid-template-columns: 28px minmax(0, 1fr); }
  .initial-setup-step-action { grid-column: 2; justify-self: start; }
  .initial-setup-checklist-footer > button { width: 100%; }
}

/* Appointment records, completion state and pagination. */
.data-table tr.is-complete td{background:rgba(191,228,200,0.025);}
.data-table tr.is-complete input:disabled,.data-table tr.is-complete select:disabled{opacity:0.72;color:var(--muted);cursor:not-allowed;}
.past-completed>td[data-label="Date"],.past-completed>td[data-label="Service"],.past-completed>td[data-label="Staff"],.past-completed>td[data-label="Available start"],.past-completed>td[data-label="End"],.past-completed>td[data-label="Participant"]{opacity:0.58;}
.past-completed>td[data-label="Date"] input,.past-completed>td[data-label="Service"] select,.past-completed>td[data-label="Staff"] select,.past-completed>td[data-label="Available start"] select,.past-completed>td[data-label="Participant"] select{color:inherit;}
.past-completed>td[data-label="Status"],.past-completed>td[data-label="Action"]{opacity:1;}
.row-status,.record-status{min-width:128px;min-height:36px;}
.ui-icon{width:14px !important;height:14px !important;min-width:14px !important;max-width:14px !important;min-height:14px !important;max-height:14px !important;flex:0 0 14px !important;display:inline-block !important;vertical-align:middle;fill:none !important;stroke:currentColor !important;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--text);}
.ui-heading,.ui-value,.records-date-group th span,.notification-audit-date-group th span{display:inline-flex;align-items:center;gap:0.45rem;}
.ui-heading .ui-icon{color:var(--muted);}
.client-card .ui-value,.service-card .ui-value{min-width:0;color:var(--muted);}
.client-card .ui-value .ui-icon,.service-card .ui-value .ui-icon{color:var(--muted);}
.records-table .ui-value,.notification-audit-table .ui-value{min-width:0;}
.records-table .ui-value .ui-icon,.notification-audit-table .ui-value .ui-icon{color:var(--muted);flex:0 0 14px !important;}
.records-table .status-badge,.notification-audit-table .status-badge{display:inline-flex;align-items:center;gap:0.4rem;}
.records-table .status-badge .ui-icon,.notification-audit-table .status-badge .ui-icon{color:currentColor;}
.records-table tr.is-complete td[data-label="Date"],.records-table tr.is-complete td[data-label="Start"],.records-table tr.is-complete td[data-label="End"],.records-table tr.is-complete td[data-label="Participant"],.records-table tr.is-complete td[data-label="Staff"],.records-table tr.is-complete td[data-label="Service"],.records-table tr.is-complete td[data-label="Format"]{color:var(--muted);opacity:0.64;}
.records-date-group th{padding:0.9rem 0.9rem 0.55rem;border:0;border-bottom:1px solid var(--line);background:var(--panel-soft);color:var(--text);font-size:0.92rem;font-weight:var(--font-weight-semibold);text-align:left;letter-spacing:0.01em;}
.records-date-group th span{display:inline-flex;align-items:center;min-height:30px;}
.records-date-group:first-child th{padding-top:0.65rem;}
.records-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0.45rem;margin-top:1rem;}
.records-page-button{min-width:38px;min-height:36px;padding:0.35rem 0.65rem;}
.records-page-button.is-active{background:var(--accent);color:var(--bg);border-color:var(--accent);}
.records-page-button:disabled{opacity:0.45;cursor:not-allowed;}
.notification-audit-date-group th{padding:0.9rem 0.9rem 0.55rem;border:0;border-bottom:1px solid var(--line);background:var(--panel-soft);color:var(--text);font-size:0.92rem;font-weight:var(--font-weight-semibold);text-align:left;letter-spacing:0.01em;}
.notification-audit-date-group th span{display:inline-flex;align-items:center;min-height:30px;}
.notification-audit-date-group:first-child th{padding-top:0.65rem;}
#recordsSummary,#notificationAuditSummary{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0.75rem 1.25rem;margin:0.85rem 0 0;line-height:1.5;text-align:center;}
#recordsSummary span+span::before,#notificationAuditSummary span+span::before{content:"•";margin-right:1.25rem;color:var(--muted);}

.instructor-picker-control{display:flex;align-items:center;gap:.48rem;min-width:0;width:100%}.instructor-picker-control>select{flex:1 1 auto;min-width:0;width:100%}.instructor-capacity-trigger{display:inline-flex;flex:0 0 36px;width:36px;min-width:36px;height:36px;min-height:36px;align-items:center;justify-content:center;padding:0;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.instructor-capacity-trigger:hover{border-color:var(--line);background:var(--panel-soft);color:var(--text)}.instructor-capacity-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.instructor-capacity-trigger svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.planner-table th:nth-child(4),.planner-table td:nth-child(4){min-width:188px}.instructor-capacity-dialog{width:min(640px,calc(100% - 2rem));max-width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);margin:auto}.instructor-capacity-dialog .dialog-card{max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain}.instructor-capacity-dialog .dialog-heading{position:sticky;top:-1.2rem;z-index:3;margin:-1.2rem -1.2rem 0;padding:1.2rem 4.2rem .8rem 1.2rem;background:var(--panel);border-bottom:1px solid var(--line)}.instructor-capacity-dialog .dialog-heading .icon-button{position:absolute;top:1rem;right:1.2rem;z-index:4;margin:0}.instructor-capacity-dialog .dialog-heading h3{margin:.12rem 0 0}.instructor-capacity-explainer{margin:0;padding:.68rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);line-height:1.45}.instructor-capacity-list{display:grid;gap:.55rem;margin-top:.1rem}.instructor-capacity-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.8rem .85rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft)}.instructor-capacity-row.is-selected{border-color:color-mix(in srgb,var(--accent) 52%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel-soft))}.instructor-capacity-main{display:grid;gap:.18rem;min-width:0}.instructor-capacity-main>strong{font-size:.94rem}.capacity-badge{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.instructor-capacity-row.is-override .capacity-badge{color:var(--accent)}.capacity-warning{font-size:.76rem;color:var(--danger,#a33)}.instructor-capacity-row.is-blocked{opacity:.62}.instructor-capacity-row button{flex:0 0 auto}.instructor-capacity-dialog .dialog-actions{padding-top:.1rem;border-top:0}.instructor-load-note,#editInstructorLoadNote,#groupInstructorLoadNote{display:block;margin-top:.2rem;line-height:1.25}@media(max-width:760px){.planner-table th:nth-child(4),.planner-table td:nth-child(4){min-width:0}}@media(max-width:560px){.instructor-picker-control{gap:.45rem}.instructor-capacity-trigger{flex-basis:44px;width:44px;min-width:44px;height:44px;min-height:44px}.instructor-capacity-dialog{width:calc(100% - 1rem);max-width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}.instructor-capacity-dialog .dialog-card{max-height:calc(100dvh - 1rem);padding:1rem}.instructor-capacity-dialog .dialog-heading{top:-1rem;margin:-1rem -1rem 0;padding:1rem 3.8rem .7rem 1rem}.instructor-capacity-dialog .dialog-heading .icon-button{top:.8rem;right:1rem}.instructor-capacity-row{align-items:flex-start;flex-direction:column}.instructor-capacity-row button{width:100%}}

/* Phase 3A: the weekly planner is a responsive card grid at every viewport size.
   This removes the planner's horizontal-scrolling table layout while preserving
   the existing semantic table markup and field/event wiring. */
.planner-wrap{width:100%;max-width:100%;overflow:visible;border:0;border-radius:0;}
.planner-table{display:block;width:100%;max-width:100%;min-width:0;border-collapse:separate;}
.planner-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.planner-table tbody{display:grid;width:100%;max-width:100%;gap:.55rem;min-width:0;}
.planner-table tbody tr:not(.planner-empty){display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:.48rem .64rem;width:100%;max-width:100%;min-width:0;padding:.68rem .72rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);align-items:start;}
.planner-table tbody tr.planner-draft-row{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 38%,var(--line));}
.planner-table tbody td{display:grid;align-content:start;gap:.2rem;min-width:0;max-width:100%;padding:0;border:0;}
.planner-table tbody td[data-label]::before{content:none;display:none;}
.planner-field-label{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted);font-size:.66rem;font-weight:var(--font-weight-semibold);letter-spacing:.065em;text-transform:uppercase;line-height:1.15;}
.planner-field-label .ui-icon{color:var(--muted);}
.planner-table td input,.planner-table td select,.planner-table td textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0;}
.planner-table td textarea{resize:vertical;min-height:52px;height:52px;padding:.55rem .62rem;line-height:1.35;}
.planner-table td:nth-child(1){grid-column:1 / span 3;}
.planner-table td:nth-child(2){grid-column:4 / span 4;}
.planner-table td:nth-child(3){grid-column:8 / span 4;}
.planner-table td:nth-child(4){grid-column:12 / span 5;}
.planner-table td:nth-child(5){grid-column:1 / span 4;}
.planner-table td:nth-child(6){grid-column:5 / span 4;}
.planner-table td:nth-child(7){grid-column:9 / span 2;}
.planner-table td:nth-child(8){grid-column:11 / span 3;}
.planner-table td:nth-child(9){grid-column:14 / span 3;}
.planner-table .row-end{display:flex;align-items:center;box-sizing:border-box;width:100%;height:44px;min-height:44px;max-height:44px;padding:.62rem .7rem;border:1px solid var(--line);border-radius:10px;background:var(--input-bg,#100a0c);font-variant-numeric:tabular-nums;}
.planner-table .planner-status-actions{align-content:start;justify-items:stretch;}
.planner-table .planner-status-actions .status-badge{justify-self:start;max-width:100%;}
.planner-table .planner-status-actions button{width:100%;min-height:32px;padding:.28rem .55rem;font-size:.82rem;}
.planner-table .row-package-inline{display:grid;gap:.18rem;min-width:0;}
.planner-table .row-package-inline[hidden]{display:none;}
.planner-table .row-resource-note{display:block;overflow-wrap:anywhere;line-height:1.2;font-size:.76rem;}
.planner-table .schedule-note,.planner-table .row-timezone-note,.planner-table .instructor-load-note,.planner-table .row-package-note{overflow-wrap:anywhere;line-height:1.2;font-size:.76rem;}
.planner-table tbody tr.planner-empty{display:block;width:100%;min-width:0;}
.planner-table tbody tr.planner-empty td{display:block;width:100%;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}

@media (max-width:1040px) and (min-width:761px){
  .planner-table tbody tr:not(.planner-empty){grid-template-columns:repeat(8,minmax(0,1fr));}
  .planner-table td:nth-child(1){grid-column:1 / span 2;}
  .planner-table td:nth-child(2){grid-column:3 / span 3;}
  .planner-table td:nth-child(9){grid-column:6 / span 3;}
  .planner-table td:nth-child(3){grid-column:1 / span 4;}
  .planner-table td:nth-child(4){grid-column:5 / span 4;}
  .planner-table td:nth-child(5){grid-column:1 / span 4;}
  .planner-table td:nth-child(6){grid-column:5 / span 4;}
  .planner-table td:nth-child(7){grid-column:1 / span 2;}
  .planner-table td:nth-child(8){grid-column:3 / span 6;}
}

@media (max-width:760px){
  .planner-table tbody tr:not(.planner-empty){grid-template-columns:minmax(0,1fr);gap:.68rem;padding:.8rem;}
  .planner-table tbody td:nth-child(n){grid-column:1;}
  .planner-table tbody td{width:100%;max-width:100%;min-width:0;}
  .planner-table td textarea{min-height:84px;}
}

/* Phase 3B: split the appointment workspace into scheduling and retrieval views. */
.appointment-workspace-tabs{display:flex;align-items:center;gap:.25rem;overflow-x:auto;margin:0 0 .85rem;padding:0 .2rem;border-bottom:1px solid var(--line);scrollbar-width:none;}
.appointment-workspace-tabs::-webkit-scrollbar{display:none;}
.appointment-workspace-tab{flex:0 0 auto;min-height:42px;padding:.65rem .85rem;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-weight:var(--font-weight-semibold);white-space:nowrap;}
.appointment-workspace-label-short{display:none;}
.appointment-workspace-tab:hover{background:transparent;color:var(--text);}
.appointment-workspace-tab.is-active{border-bottom-color:var(--accent);color:var(--text);}
.appointment-workspace-panel[hidden]{display:none!important;}

.records-filter-primary{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end;}
.records-filter-primary .records-search-field{grid-column:1 / span 2;}

/* Saved appointments are read-only/retrieval records rather than editable planner forms.
   Use three clear zones — time, appointment details and state/actions — so the card stays
   dense without recreating a horizontally scrolling table. */
.records-wrap{width:100%;max-width:100%;overflow:visible;border:0;border-radius:0;}
.records-table{display:block;width:100%;max-width:100%;min-width:0;border-collapse:separate;}
.records-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.records-table tbody{display:grid;width:100%;max-width:100%;gap:.5rem;min-width:0;}
.records-table tbody tr:not(.records-date-group):not(.records-empty){display:grid;grid-template-columns:minmax(126px,.9fr) minmax(0,5fr) minmax(150px,1.15fr);gap:.72rem;width:100%;max-width:100%;min-width:0;padding:.66rem .72rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);align-items:start;}
.records-table tbody td{min-width:0;max-width:100%;padding:0;border:0;}
.records-table tbody td[data-label]::before{content:none;}
.records-table .record-time-panel{grid-column:1;display:grid;align-content:start;gap:.14rem;padding-right:.15rem;}
.records-table .record-details-panel{grid-column:2;}
.records-table .record-side-panel{grid-column:3;}
.records-table .record-detail-label{display:block;color:var(--muted);font-size:.65rem;font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;line-height:1.15;}
.records-table .record-time-range{display:flex;align-items:center;gap:.18rem;font-variant-numeric:tabular-nums;font-size:1rem;line-height:1.2;}
.records-table .record-time-range .ui-icon{flex:0 0 auto;}
.records-table .record-details-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.05fr) minmax(0,1.3fr);gap:.56rem .9rem;align-items:start;}
.records-table .record-detail{display:grid;align-content:start;gap:.12rem;min-width:0;}
.records-table .record-detail-participant{grid-column:1;grid-row:1;}
.records-table .record-detail-service{grid-column:2;grid-row:1;}
.records-table .record-detail-location{grid-column:3;grid-row:1;}
.records-table .record-detail-staff{grid-column:1;grid-row:2;}
.records-table .record-detail-package{grid-column:2 / span 2;grid-row:2;}
.records-table .record-service-inline{display:flex;align-items:center;gap:.34rem;flex-wrap:wrap;min-width:0;}
.records-table .record-meta{display:block;color:var(--muted);font-size:.72rem;line-height:1.22;overflow-wrap:anywhere;}
.records-table .record-location-name,.records-table .record-package-name{font-weight:var(--font-weight-medium);overflow-wrap:anywhere;}
.records-table .record-package-link{justify-self:start;max-width:100%;padding:0;border:0;background:transparent;color:var(--text);text-align:left;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;}
.records-table .record-entity-link{justify-self:start;justify-content:flex-start;width:auto;max-width:100%;min-height:0;padding:0;border:0;background:transparent;color:var(--text);text-align:left;}
.records-table .record-side-stack{display:grid;gap:.58rem;align-content:start;min-width:0;}
.records-table .record-side-section{display:grid;gap:.2rem;min-width:0;}
.records-table .client-confirmation-badge,.planner-table .client-confirmation-badge{justify-self:start;width:fit-content;max-width:100%;}
.records-table .record-status{width:100%;min-width:0;}
.records-table .row-actions{display:grid;grid-template-columns:1fr;gap:.25rem;}
.records-table .row-actions button{width:100%;min-height:31px;padding:.26rem .5rem;font-size:.8rem;}

.records-table .record-icon-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.38rem;}
.records-table .row-actions button.record-message-button,.records-table .row-actions button.record-notes-button{display:inline-flex;position:relative;align-items:center;justify-content:center;justify-self:start;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);}
.records-table .row-actions button.record-message-button:hover,.records-table .row-actions button.record-message-button:focus-visible,.records-table .row-actions button.record-notes-button:hover,.records-table .row-actions button.record-notes-button:focus-visible{border-color:var(--line);background:var(--hover-bg);}
.records-table .record-message-button .ui-icon,.records-table .record-notes-button .ui-icon{margin:0;}
.records-table .record-message-button .record-message-glyph{flex:0 0 36px!important;width:36px!important;height:36px!important;min-width:36px!important;max-width:36px!important;min-height:36px!important;max-height:36px!important;stroke-width:2.35;}
.records-table .record-notes-button .record-notes-glyph{flex:0 0 38px!important;width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;min-height:38px!important;max-height:38px!important;stroke-width:2.45;}
.records-table .record-notes-state-plus{position:absolute;right:-2px;bottom:-2px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:2px solid var(--panel);border-radius:50%;background:var(--accent);color:var(--accent-contrast);font-size:17px;font-weight:var(--font-weight-bold);line-height:1;}
.saved-participant-message-dialog{width:min(640px,calc(100% - 2rem));max-width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);margin:auto;}
.saved-participant-message-dialog-card{max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain;}
.saved-participant-message-dialog-card>.dialog-heading{position:sticky;top:-1.2rem;z-index:3;margin:-1.2rem -1.2rem 0;padding:1.2rem 4.2rem .8rem 1.2rem;border-bottom:1px solid var(--line);background:var(--panel);}
.saved-participant-message-dialog-card>.dialog-heading .icon-button{position:absolute;top:1rem;right:1.2rem;}
.saved-participant-message-content{display:grid;gap:.75rem;}
.saved-participant-message-field{min-width:0;padding:.8rem .85rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.saved-participant-message-field strong{display:block;margin-bottom:.38rem;font-size:.78rem;color:var(--muted);letter-spacing:.03em;text-transform:uppercase;}
.saved-participant-message-field p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;}
.saved-session-notes-content{display:grid;gap:.9rem;min-width:0;}
.saved-session-notes-backfill-intro{padding:.78rem .85rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.saved-session-notes-backfill-intro p{margin:.35rem 0 0;color:var(--muted);line-height:1.45;}
.saved-session-notes-backfill-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;}
.saved-session-notes-backfill-form label{min-width:0;}
.saved-session-notes-backfill-form textarea{width:100%;min-width:0;resize:vertical;}
.saved-session-notes-backfill-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;}
.saved-session-notes-backfill-status{margin:0;min-height:1.2em;}
.saved-session-notes-dialog{width:min(720px,calc(100% - 2rem));max-width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);margin:auto;}
.saved-session-notes-dialog-card{max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain;}
.saved-session-notes-dialog-card>.dialog-heading{position:sticky;top:-1.2rem;z-index:3;margin:-1.2rem -1.2rem 0;padding:1.2rem 4.2rem .8rem 1.2rem;border-bottom:1px solid var(--line);background:var(--panel);}
.saved-session-notes-dialog-card>.dialog-heading .icon-button{position:absolute;top:1rem;right:1.2rem;}
.saved-session-notes-context{display:grid;gap:.22rem;padding:.75rem .8rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.saved-session-notes-context strong{font-size:1rem}.saved-session-notes-context span,.saved-session-notes-context small{color:var(--muted);line-height:1.35}.saved-session-notes-context small{font-size:.76rem;}
.saved-session-notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;}
.saved-session-note-field{min-width:0;padding:.75rem .8rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.saved-session-note-field strong{display:block;margin-bottom:.35rem;font-size:.78rem;color:var(--muted);letter-spacing:.03em;text-transform:uppercase;}
.saved-session-note-field p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.48;}
@media(max-width:620px){.saved-session-notes-dialog,.saved-participant-message-dialog{width:calc(100% - 1rem);max-width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}.saved-session-notes-dialog-card,.saved-participant-message-dialog-card{max-height:calc(100dvh - 1rem);padding:1rem}.saved-session-notes-dialog-card>.dialog-heading,.saved-participant-message-dialog-card>.dialog-heading{top:-1rem;margin:-1rem -1rem 0;padding:1rem 3.8rem .7rem 1rem}.saved-session-notes-dialog-card>.dialog-heading .icon-button,.saved-participant-message-dialog-card>.dialog-heading .icon-button{top:.8rem;right:1rem}.saved-session-notes-grid,.saved-session-notes-backfill-form{grid-template-columns:1fr}.saved-session-notes-backfill-actions{display:grid;grid-template-columns:1fr}.saved-session-notes-backfill-actions button,.saved-session-notes-dialog .dialog-actions button,.saved-participant-message-dialog .dialog-actions button{width:100%}}
.records-table tbody tr.records-date-group{display:block;width:100%;padding:.12rem 0 0;border:0;background:transparent;}
.records-table tbody tr.records-date-group th{display:block;padding:0;border:0;background:transparent;}
.records-date-toggle{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;min-height:44px;padding:.62rem .78rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);color:var(--text);text-align:left;box-shadow:none;}
.records-date-toggle:hover{transform:none;filter:none;background:var(--hover-bg);}
.records-date-title,.records-date-summary{display:flex;align-items:center;gap:.42rem;min-width:0;}
.records-date-title .ui-icon{flex:0 0 16px!important;width:16px!important;height:16px!important;color:var(--muted);}
.records-date-title strong{overflow-wrap:anywhere;}
.records-date-summary{flex:0 0 auto;color:var(--muted);font-size:.8rem;font-weight:var(--font-weight-medium);white-space:nowrap;}
.records-date-chevron{display:inline-flex;align-items:center;justify-content:center;width:1.2rem;height:1.2rem;font-size:1.1rem;line-height:1;transform:rotate(0deg);transition:transform .16s ease;}
.records-date-chevron.is-expanded{transform:rotate(90deg);}
.records-table tbody tr.records-empty{display:block;width:100%;}
.records-table tbody tr.records-empty td{display:block;width:100%;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.records-table tbody tr.is-complete{opacity:.78;}
.records-table tbody tr.is-complete td{opacity:1!important;color:inherit!important;}

@media (max-width:1120px){
  .records-filter-primary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .records-filter-primary .records-search-field{grid-column:1 / -1;}
  .records-filter-secondary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .records-table tbody tr:not(.records-date-group):not(.records-empty){grid-template-columns:minmax(120px,.8fr) minmax(0,4fr) minmax(145px,1fr);gap:.62rem;}
  .records-table .record-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem .72rem;}
  .records-table .record-detail-participant{grid-column:1;grid-row:1;}
  .records-table .record-detail-service{grid-column:2;grid-row:1;}
  .records-table .record-detail-location{grid-column:1;grid-row:2;}
  .records-table .record-detail-staff{grid-column:2;grid-row:2;}
  .records-table .record-detail-package{grid-column:1 / -1;grid-row:3;}
}
@media (max-width:820px){
  .records-table tbody tr:not(.records-date-group):not(.records-empty){grid-template-columns:minmax(0,1fr);gap:.58rem;padding:.72rem;}
  .records-table .record-time-panel,.records-table .record-details-panel,.records-table .record-side-panel{grid-column:1;}
  .records-table .record-time-panel{display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap;padding-right:0;}
  .records-table .record-time-panel>.record-detail-label{width:100%;}
  .records-table .record-side-stack{grid-template-columns:minmax(0,1fr) minmax(145px,.7fr);align-items:start;}
}
@media (max-width:760px){
  .records-date-toggle{align-items:flex-start;}
  .records-date-summary{font-size:.74rem;}
  .appointment-workspace-tabs{margin-inline:-.1rem;}
  .appointment-workspace-tab{flex:0 0 auto;padding-inline:.68rem;text-align:center;}
  .appointment-workspace-label-full{display:none;}
  .appointment-workspace-label-short{display:inline;}
  .records-filter-primary,.records-filter-secondary{grid-template-columns:1fr;}
  .records-filter-primary .records-search-field{grid-column:1;}
}
@media (max-width:560px){
  .records-table .record-details-grid{grid-template-columns:minmax(0,1fr);gap:.48rem;}
  .records-table .record-detail-participant,.records-table .record-detail-service,.records-table .record-detail-location,.records-table .record-detail-staff,.records-table .record-detail-package{grid-column:1;grid-row:auto;}
  .records-table .record-side-stack{grid-template-columns:minmax(0,1fr);}
  .records-table .row-actions{grid-template-columns:repeat(2,minmax(0,1fr));}
  .records-table .row-actions button:only-child{grid-column:1 / -1;}
}

/* Historical outcome and package-consumption controls. */
.historical-status-control{display:grid;gap:.35rem;align-items:start}
.package-consumption-result{display:inline-flex;align-items:center;width:max-content;max-width:100%;font-size:.76rem;line-height:1.2;color:var(--muted,#667085);white-space:nowrap}
.package-consumption-result.is-counted{color:var(--muted,#667085)}
.package-consumption-result.is-not-counted{color:var(--muted,#667085)}

/* External calendar review/import: provider intake remains read-only; accepted events enter the existing AppointFrame booking workflow. */
body.calendar-sync-modal-open{overflow:hidden;}
.calendar-sync-dialog{width:min(980px,calc(100vw - 1.5rem));max-width:980px;max-height:calc(100dvh - 1.5rem);margin:auto;overflow:hidden;}
.calendar-sync-dialog-card{display:grid;gap:1rem;max-height:calc(100dvh - 1.5rem);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;}
.calendar-sync-dialog-card>.dialog-heading-row{position:sticky;top:-1.2rem;z-index:4;margin:-1.2rem -1.2rem 0;padding:1.2rem 4rem .8rem 1.2rem;border-bottom:1px solid var(--line);background:var(--panel);}
.calendar-sync-dialog-card>.dialog-heading-row>.icon-button{position:absolute;top:1rem;right:1.15rem;margin:0;z-index:2;}
.calendar-sync-intro{margin:0;max-width:820px;line-height:1.5;}
.calendar-sync-empty-state{display:grid;gap:.65rem;padding:1rem;border:1px dashed var(--line);border-radius:12px;background:var(--panel-soft);}
.calendar-sync-empty-state button{justify-self:start;}
.calendar-sync-controls{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--line);border-radius:13px;background:var(--panel-soft);}
.calendar-sync-control-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;}
.calendar-sync-control-grid label,.calendar-sync-custom-range label{display:grid;gap:.35rem;min-width:0;}
.calendar-sync-custom-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;max-width:560px;}
.calendar-sync-range-preview{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;}
.calendar-sync-range-preview strong{font-size:.9rem;}
.calendar-sync-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;}
.calendar-sync-actions button{min-width:190px;}
.calendar-sync-review{display:grid;gap:.8rem;}
.calendar-sync-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.calendar-sync-review-heading h3{margin:.15rem 0 0;}
.calendar-sync-counts{display:flex;gap:.5rem;flex-wrap:wrap;}
.calendar-sync-count{display:inline-flex;align-items:center;gap:.3rem;padding:.38rem .58rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);font-size:.78rem;}
.calendar-sync-event-list{display:grid;gap:.65rem;}
.calendar-sync-event-card{display:grid;gap:.65rem;padding:.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.calendar-sync-event-card.is-already-imported{opacity:.78;}
.calendar-sync-event-card.is-cancelled{opacity:.7;}
.calendar-sync-event-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;}
.calendar-sync-event-title{min-width:0;}
.calendar-sync-event-title h4{margin:0 0 .2rem;font-size:.96rem;overflow-wrap:anywhere;}
.calendar-sync-event-title p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4;}
.calendar-sync-event-state{flex:0 0 auto;}
.calendar-sync-event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .8rem;}
.calendar-sync-event-field{min-width:0;}
.calendar-sync-event-field strong{display:block;margin-bottom:.15rem;color:var(--muted);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;}
.calendar-sync-event-field span,.calendar-sync-event-field a{display:block;overflow-wrap:anywhere;font-size:.84rem;line-height:1.4;}
.calendar-sync-event-details{border-top:1px solid var(--line);padding-top:.55rem;}
.calendar-sync-event-details summary{cursor:pointer;color:var(--muted);font-size:.8rem;}
.calendar-sync-event-description{margin:.55rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.82rem;line-height:1.45;}
.calendar-sync-attendee-list{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.5rem;}
.calendar-sync-attendee{max-width:100%;padding:.25rem .42rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:.72rem;overflow-wrap:anywhere;}
.calendar-sync-readonly-note{display:grid;gap:.2rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--panel) 90%,var(--accent) 10%);}
.calendar-sync-readonly-note span{color:var(--muted);font-size:.82rem;line-height:1.45;}
.calendar-sync-loading,.calendar-sync-no-events{padding:1rem;border:1px dashed var(--line);border-radius:11px;color:var(--muted);text-align:center;}

/* Calendar import mapping (Phase 3): external event -> existing AppointFrame appointment engine. */
.calendar-import-panel{display:grid;gap:.75rem;margin-top:.15rem;padding:.85rem;border:1px solid var(--line);border-radius:11px;background:var(--panel);}
.calendar-import-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;}
.calendar-import-heading>div{display:grid;gap:.12rem;min-width:0;}
.calendar-import-heading>div>span{line-height:1.35;}
.calendar-import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem .8rem;}
.calendar-import-grid label,.calendar-import-historical-status,.calendar-import-message{display:grid;gap:.32rem;min-width:0;font-size:.78rem;font-weight:600;}
.calendar-import-grid select,.calendar-import-historical-status select,.calendar-import-message textarea,.calendar-import-package select{min-width:0;width:100%;}
.calendar-import-package{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);align-items:center;gap:.65rem;}
.calendar-import-package-note{line-height:1.35;}
.calendar-import-override{display:flex;align-items:flex-start;gap:.45rem;font-size:.78rem;line-height:1.35;}
.calendar-import-override input{flex:0 0 auto;margin-top:.12rem;}
.calendar-import-historical-status{max-width:280px;}
.calendar-import-message textarea{resize:vertical;}
.calendar-import-warnings{display:grid;gap:.35rem;}
.calendar-import-warning{padding:.48rem .58rem;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel-soft) 88%,var(--accent) 12%);font-size:.76rem;line-height:1.4;}
.calendar-import-note{margin:0;line-height:1.4;}
.calendar-import-actions{display:flex;justify-content:flex-end;gap:.55rem;}
.calendar-import-button{min-width:190px;}
.calendar-import-unavailable{margin-top:.15rem;padding:.65rem .75rem;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:.78rem;line-height:1.4;}
@media(max-width:760px){
  .calendar-sync-dialog{width:calc(100vw - .75rem);max-width:none;max-height:calc(100dvh - .75rem);}
  .calendar-sync-dialog-card{max-height:calc(100dvh - .75rem);padding:1rem;}
  .calendar-sync-dialog-card>.dialog-heading-row{top:-1rem;margin:-1rem -1rem 0;padding:1rem 3.5rem 1rem 1rem;}
  .calendar-sync-dialog-card>.dialog-heading-row>.icon-button{top:.72rem;right:.8rem;}
  .calendar-sync-control-grid,.calendar-sync-custom-range,.calendar-sync-event-grid{grid-template-columns:1fr;}
  .calendar-sync-actions{display:grid;grid-template-columns:1fr;}
  .calendar-sync-actions button{width:100%;min-width:0;}
  .calendar-sync-review-heading,.calendar-sync-event-top{display:grid;grid-template-columns:1fr;}
  .calendar-sync-event-state{justify-self:start;}
  .calendar-sync-empty-state button{width:100%;}
  .calendar-import-grid,.calendar-import-package{grid-template-columns:1fr;}
  .calendar-import-heading{display:grid;grid-template-columns:1fr;}
  .calendar-import-state{justify-self:start;}
  .calendar-import-actions{display:grid;grid-template-columns:1fr;}
  .calendar-import-button{width:100%;min-width:0;}
}

.calendar-sync-event-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap;}
.calendar-sync-event-select{display:inline-flex;align-items:center;gap:.38rem;padding:.3rem .48rem;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:.75rem;font-weight:600;white-space:nowrap;}
.calendar-sync-event-select input[type="checkbox"],.calendar-import-override input[type="checkbox"]{appearance:auto;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;accent-color:var(--accent);flex:0 0 18px;cursor:pointer;}
.calendar-import-override{min-width:0;max-width:100%;align-items:center;overflow-wrap:anywhere;}
.calendar-sync-bulk-tools{display:grid;gap:.75rem;min-width:0;max-width:100%;padding:.9rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel-soft) 86%,var(--accent) 14%);}
.calendar-sync-bulk-tools>*{min-width:0;max-width:100%;}
.calendar-bulk-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;}
.calendar-bulk-heading>div{display:grid;gap:.15rem;}
.calendar-bulk-selection,.calendar-bulk-actions{display:flex;gap:.5rem;flex-wrap:wrap;}
.calendar-bulk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem .8rem;}
.calendar-bulk-grid label{display:grid;gap:.32rem;min-width:0;font-size:.78rem;font-weight:600;}
.calendar-bulk-grid select{min-width:0;width:100%;}
.calendar-bulk-status{margin:0;line-height:1.4;}
.calendar-external-attachment-note{margin-top:.55rem;}
@media (max-width:760px){
  .calendar-sync-event-top-actions{justify-content:flex-start;}
  .calendar-sync-bulk-tools .calendar-bulk-heading{display:grid;grid-template-columns:1fr;}
  .calendar-bulk-grid{grid-template-columns:1fr;}
  .calendar-bulk-selection,.calendar-bulk-actions{display:grid;grid-template-columns:1fr;}
  .calendar-bulk-selection button,.calendar-bulk-actions button{width:100%;}
}
.calendar-import-client-assist{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.5rem .6rem;border:1px dashed var(--line);border-radius:9px;}
@media(max-width:760px){.calendar-import-client-assist{align-items:stretch;flex-direction:column}.calendar-import-client-assist button{width:100%;}}

/* Google Calendar Phase 4: explicit external-change/deletion review and remembered mapping suggestions. */
.calendar-sync-event-card.is-changed{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));}
.calendar-import-remembered{padding:.48rem .58rem;border:1px dashed var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel-soft) 92%,var(--accent) 8%);font-size:.76rem;line-height:1.4;}
.calendar-external-review-panel{display:grid;gap:.7rem;margin-top:.15rem;padding:.85rem;border:1px solid var(--line);border-radius:11px;background:var(--panel);}
.calendar-external-linked{margin:0;line-height:1.45;}
.calendar-external-change-list{display:grid;gap:.5rem;}
.calendar-external-change-row{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1fr) minmax(0,1fr);gap:.35rem .7rem;align-items:start;padding:.55rem .6rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);font-size:.78rem;line-height:1.4;}
.calendar-external-change-row>strong{grid-row:1 / span 2;}
.calendar-external-change-row>.tiny{grid-column:2 / -1;}
@media(max-width:760px){
  .calendar-external-change-row{grid-template-columns:1fr;}
  .calendar-external-change-row>strong,.calendar-external-change-row>.tiny{grid-column:auto;grid-row:auto;}
}

/* Calendar Sync active-vs-history separation: current provider events stay authoritative. */
.calendar-sync-deletion-section{display:grid;gap:.65rem;padding:.85rem;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--panel-soft) 90%,var(--accent) 10%);}
.calendar-sync-deletion-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;}
.calendar-sync-deletion-heading>div{display:grid;gap:.16rem;min-width:0;}
.calendar-sync-deletion-history{padding:.72rem .85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.calendar-sync-deletion-history>summary{cursor:pointer;font-weight:650;}
.calendar-sync-deletion-history>p{margin:.5rem 0 .7rem;line-height:1.45;}
.calendar-sync-deletion-history>.calendar-sync-event-list{margin-top:.65rem;}
@media(max-width:760px){
  .calendar-sync-deletion-heading{display:grid;grid-template-columns:1fr;}
  .calendar-sync-deletion-heading>.status-badge{justify-self:start;}
}

/* Compact available-start picker. Slot buttons are the UI; a hidden value input carries the selected start time. */
.appointment-slot-control{position:relative;display:grid;min-width:0;width:100%;}
.appointment-slot-value{display:none!important;}
.appointment-slot-trigger{display:flex;align-items:center;justify-content:space-between;gap:.55rem;width:100%;min-width:0;min-height:38px;padding:.45rem .62rem;text-align:left;font-variant-numeric:tabular-nums;}
.appointment-slot-trigger::after{content:'▾';flex:0 0 auto;color:var(--muted);font-size:.8rem;}
.appointment-slot-trigger:disabled::after{opacity:.45;}
.appointment-slot-trigger-start{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.appointment-slot-trigger-end{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:var(--font-weight-medium);white-space:nowrap;}
.planner-table .appointment-slot-trigger-end{display:none;}
.appointment-slot-picker-dialog{width:min(620px,calc(100% - 1rem));max-width:calc(100% - 1rem);margin:auto;}
.appointment-slot-picker-card{width:100%;max-height:min(72dvh,620px);overflow:auto;overscroll-behavior:contain;}
.appointment-slot-picker-context{margin:.2rem 0 .8rem;}
.appointment-slot-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:.55rem;}
.appointment-slot-option{width:100%;min-width:0;min-height:42px;padding:.52rem .55rem;font-variant-numeric:tabular-nums;}
.appointment-slot-option.is-selected{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 48%,transparent);outline-offset:1px;}
.appointment-slot-picker-empty{margin:.5rem 0 0;padding:.85rem;border:1px dashed var(--line);border-radius:10px;text-align:center;}
@media (max-width:560px){
  .appointment-slot-picker-dialog{width:min(100% - .5rem,620px);max-width:calc(100% - .5rem);}
  .appointment-slot-picker-card{max-height:calc(100dvh - 1rem);}
  .appointment-slot-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;}
  .appointment-slot-trigger{min-height:44px;}
}


/* Individual appointment composer: one focused staging surface with a single controlled scroll region. */
body.appointment-composer-open{overflow:hidden;}
.appointment-composer-dialog{width:min(1040px,calc(100vw - 1rem));max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);margin:auto;overflow:hidden;overscroll-behavior:contain;}
.appointment-composer-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;max-width:100%;max-height:calc(100dvh - 1rem);padding:0;gap:0;overflow:hidden;}
.appointment-composer-heading{position:relative;min-width:0;padding:.78rem 3.4rem .68rem 1rem;border-bottom:1px solid var(--line);background:var(--panel);}
.appointment-composer-heading h2{margin:0;font-size:1.1rem;}
.appointment-composer-heading .icon-button{position:absolute;top:.55rem;right:.7rem;z-index:3;margin:0;}
.appointment-composer-body{min-width:0;min-height:0;max-width:100%;padding:.75rem 1rem;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;}
.appointment-composer-status{margin:0 0 .65rem;padding:.58rem .7rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);font-size:.86rem;line-height:1.35;}
.appointment-composer-status[hidden]{display:none;}
.appointment-composer-status.is-error{border-color:var(--danger);}
.appointment-composer-status.is-success{border-color:var(--success);}
.appointment-composer-layout{display:grid;grid-template-columns:minmax(250px,285px) minmax(0,1fr);gap:.75rem;align-items:start;min-width:0;max-width:100%;}
.appointment-composer-context{display:grid;gap:.5rem;min-width:0;max-width:100%;padding:.7rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.appointment-composer-context>*{min-width:0;max-width:100%;}
.appointment-composer-context label{display:grid;gap:.28rem;min-width:0;font-size:.86rem;}
.appointment-composer-context select,.appointment-composer-context textarea{width:100%;max-width:100%;min-width:0;}
.appointment-composer-person{display:grid;grid-template-columns:34px minmax(0,1fr);gap:.55rem;align-items:center;padding-bottom:.5rem;border-bottom:1px solid var(--line);}
.appointment-composer-person-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);}
.appointment-composer-person-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.appointment-composer-person div{display:grid;gap:.05rem;min-width:0;}
.appointment-composer-person strong{overflow-wrap:anywhere;font-size:.92rem;}
.appointment-composer-summary-card{display:grid;gap:.08rem;padding:.48rem .58rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);line-height:1.25;}
.appointment-composer-summary-card[hidden]{display:none;}
.appointment-composer-summary-card strong{font-size:.88rem;}
.appointment-composer-service-summary span{overflow-wrap:anywhere;}
.appointment-composer-location-summary{display:grid;gap:.05rem;margin-top:-.12rem;line-height:1.25;}
.appointment-composer-package{display:grid;gap:.28rem;padding:.5rem .58rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);}
.appointment-composer-package[hidden]{display:none;}
.appointment-composer-message-toggle,.appointment-composer-message-remove{min-height:0;width:max-content;max-width:100%;justify-content:flex-start;padding:.12rem 0;border:0;background:transparent;color:var(--accent);font-weight:600;line-height:1.3;white-space:normal;text-align:left;}
.appointment-composer-message-toggle:hover,.appointment-composer-message-remove:hover{transform:none;filter:none;text-decoration:underline;background:transparent;}
.appointment-composer-message{display:grid;gap:.28rem;min-width:0;}
.appointment-composer-message[hidden]{display:none;}
.appointment-composer-message textarea{min-height:82px;max-height:130px;resize:vertical;}
.appointment-composer-message-remove{color:var(--muted);font-size:.8rem;font-weight:500;}
.appointment-composer-schedule{display:grid;grid-template-columns:minmax(320px,1fr) minmax(210px,.62fr);gap:.75rem;min-width:0;max-width:100%;}
.appointment-composer-calendar-panel,.appointment-composer-times-panel{min-width:0;max-width:100%;padding:.7rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);overflow:hidden;}
.appointment-composer-calendar-heading{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:.35rem;align-items:center;margin-bottom:.45rem;}
.appointment-composer-calendar-heading strong{text-align:center;font-size:.94rem;}
.appointment-composer-calendar-heading .icon-button{width:34px;min-width:34px;height:34px;min-height:34px;padding:0;}
.appointment-composer-weekdays,.appointment-composer-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem;min-width:0;max-width:100%;}
.appointment-composer-weekdays{margin-bottom:.18rem;color:var(--muted);font-size:.64rem;text-transform:uppercase;letter-spacing:.03em;text-align:center;}
.appointment-composer-day{position:relative;display:grid;place-items:center;min-width:0;min-height:34px;padding:.15rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font-size:.86rem;font-variant-numeric:tabular-nums;}
.appointment-composer-day:hover:not(:disabled){border-color:var(--line);background:var(--panel);}
.appointment-composer-day.is-other-month{color:var(--muted);opacity:.68;}
.appointment-composer-day.is-loaded-week::after{content:"";position:absolute;bottom:2px;width:3px;height:3px;border-radius:999px;background:var(--muted);opacity:.7;}
.appointment-composer-day.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--panel));font-weight:700;}
.appointment-composer-day.is-selected::after{background:currentColor;}
.appointment-composer-day.is-past{opacity:.34;cursor:not-allowed;}
.appointment-composer-calendar-panel>p{margin:.42rem 0 0;line-height:1.3;font-size:.78rem;}
.appointment-composer-times-panel{display:grid;align-content:start;gap:.52rem;}
.appointment-composer-times-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding-bottom:.48rem;border-bottom:1px solid var(--line);}
.appointment-composer-times-heading>div{display:grid;gap:.06rem;min-width:0;}
.appointment-composer-times-heading strong{font-size:.9rem;overflow-wrap:anywhere;}
.appointment-manual-time{display:grid;gap:.36rem;min-width:0;padding:.52rem .58rem;border:1px solid color-mix(in srgb,var(--line) 90%,transparent);border-radius:9px;background:var(--panel);}
.appointment-manual-time[hidden]{display:none;}
.appointment-manual-time-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;min-width:0;}
.appointment-manual-time-heading label{min-width:0;font-size:.78rem;font-weight:700;line-height:1.25;}
.appointment-manual-time-heading span{flex:0 0 auto;font-variant-numeric:tabular-nums;}
.appointment-manual-time-controls{display:grid;grid-template-columns:minmax(0,8.5rem) auto;align-items:center;justify-content:start;gap:.42rem;min-width:0;}
.appointment-manual-time-controls input[type=time]{box-sizing:border-box;width:100%;min-width:0;max-width:8.5rem;min-height:38px;padding:.36rem .45rem;font-variant-numeric:tabular-nums;}
.appointment-manual-time-controls button{width:auto;min-width:58px;min-height:38px;padding:.34rem .68rem;}
.appointment-manual-time-error{margin:0;color:var(--danger,#c84f5b);font-size:.76rem;line-height:1.35;overflow-wrap:anywhere;}
.appointment-suggested-times-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;min-width:0;font-size:.76rem;font-weight:700;}
.appointment-suggested-times-heading span:last-child{font-weight:400;}
.appointment-composer-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.38rem;min-width:0;}
.appointment-composer-time{width:100%;min-width:0;min-height:38px;padding:.35rem .4rem;font-size:.88rem;font-variant-numeric:tabular-nums;}
.appointment-composer-time.is-selected{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:1px;}
.appointment-composer-times-empty{margin:0;padding:.65rem;font-size:.84rem;text-align:left;}
.dialog-actions.appointment-composer-actions{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.7rem;margin:0;padding:.68rem 1rem max(.68rem,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--panel);box-shadow:0 -10px 24px rgba(0,0,0,.12);}
.appointment-composer-actions .dialog-action-spacer{display:none;}
.appointment-composer-actions button{min-height:38px;min-width:0;}
@media(max-width:900px){
  .appointment-composer-dialog{width:min(760px,calc(100vw - .75rem));max-width:calc(100vw - .75rem);}
  .appointment-composer-layout{grid-template-columns:1fr;}
  .appointment-composer-context{grid-template-columns:repeat(2,minmax(0,1fr));}
  .appointment-composer-person,.appointment-composer-summary-card,.appointment-composer-location-summary,.appointment-composer-package,.appointment-composer-message-toggle,.appointment-composer-message,.appointment-composer-recurring-toggle,.appointment-composer-recurring{grid-column:1 / -1;}
  .appointment-composer-schedule{grid-template-columns:minmax(0,1fr) minmax(190px,.55fr);}
}
@media(max-width:720px){
  .appointment-composer-dialog{width:calc(100vw - .4rem);max-width:calc(100vw - .4rem);max-height:calc(100dvh - .4rem);}
  .appointment-composer-card{max-height:calc(100dvh - .4rem);}
  .appointment-composer-heading{padding:.68rem 3.2rem .58rem .8rem;}
  .appointment-composer-heading .icon-button{top:.42rem;right:.48rem;}
  .appointment-composer-body{width:100%;max-width:100%;padding:.6rem;overflow-x:hidden;}
  .appointment-composer-layout,.appointment-composer-context,.appointment-composer-schedule{grid-template-columns:minmax(0,1fr);width:100%;max-width:100%;}
  .appointment-composer-person,.appointment-composer-summary-card,.appointment-composer-location-summary,.appointment-composer-package,.appointment-composer-message-toggle,.appointment-composer-message,.appointment-composer-recurring-toggle,.appointment-composer-recurring{grid-column:1;}
  .appointment-composer-context,.appointment-composer-calendar-panel,.appointment-composer-times-panel{width:100%;max-width:100%;padding:.6rem;}
  .appointment-composer-context select,.appointment-composer-context textarea,.appointment-composer-schedule button{max-width:100%;}
  .appointment-manual-time-controls{grid-template-columns:minmax(0,1fr) auto;}
  .appointment-manual-time-controls input[type=time]{max-width:none;}
  .appointment-manual-time-controls .compact-time-control{grid-template-columns:minmax(3.25rem,1fr) minmax(3.25rem,1fr) minmax(4.25rem,1.15fr);gap:.3rem;}
  .appointment-manual-time-controls .compact-time-control select{padding:.45rem .25rem;font-size:.92rem;}
  .appointment-composer-times{grid-template-columns:repeat(3,minmax(0,1fr));}
  .dialog-actions.appointment-composer-actions{grid-template-columns:1fr;gap:.5rem;padding:.58rem .6rem max(.58rem,env(safe-area-inset-bottom));}
  .appointment-composer-actions button{width:100%;min-width:0;}
}
@media(max-width:430px){
  .appointment-manual-time{padding:.48rem .5rem;}
  .appointment-composer-weekdays{font-size:.6rem;}
  .appointment-composer-day{min-height:32px;font-size:.8rem;}
  .appointment-composer-times{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media(max-width:360px){
  .appointment-manual-time-controls{grid-template-columns:minmax(0,1fr);}
  .appointment-manual-time-controls button{justify-self:start;width:auto;}
}

/* Recurring schedule controls stay deliberately secondary inside the Individual composer. */
.appointment-composer-recurring-toggle,.appointment-composer-recurring-remove,.appointment-composer-recurring-add,.appointment-composer-recurring-pattern-remove,.recurring-schedule-end-link{min-height:0;width:max-content;max-width:100%;padding:.12rem 0;border:0;background:transparent;color:var(--accent);font-weight:600;line-height:1.3;white-space:normal;text-align:left;}
.appointment-composer-recurring-toggle:hover,.appointment-composer-recurring-remove:hover,.appointment-composer-recurring-add:hover,.appointment-composer-recurring-pattern-remove:hover,.recurring-schedule-end-link:hover{transform:none;filter:none;text-decoration:underline;background:transparent;}
.appointment-composer-recurring{display:grid;gap:.5rem;min-width:0;padding:.52rem .58rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);}
.appointment-composer-recurring[hidden]{display:none;}
.appointment-composer-recurring-heading{display:flex;align-items:center;justify-content:space-between;gap:.6rem;}
.appointment-composer-recurring-heading strong{font-size:.86rem;}
.appointment-composer-recurring-remove,.appointment-composer-recurring-pattern-remove{color:var(--muted);font-size:.78rem;font-weight:500;}
.appointment-composer-recurring-patterns{display:grid;gap:.48rem;min-width:0;}
.appointment-composer-recurring-pattern{display:grid;gap:.36rem;min-width:0;padding:.46rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:8px;background:var(--panel-soft);}
.appointment-composer-recurring-pattern-head{display:flex;align-items:end;gap:.48rem;min-width:0;}
.appointment-composer-recurring-pattern-head label{display:grid;gap:.2rem;min-width:112px;color:var(--muted);font-size:.72rem;}
.appointment-composer-recurring-time{min-height:34px;padding:.35rem .48rem;font-size:.8rem;font-variant-numeric:tabular-nums;}
.appointment-composer-recurring-pattern-remove{margin-left:auto;align-self:center;}
.appointment-composer-recurring-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.28rem;min-width:0;}
.appointment-composer-recurring-days button{min-width:0;min-height:32px;padding:.28rem .2rem;border-color:var(--line);background:transparent;color:var(--muted);font-size:.72rem;font-weight:600;}
.appointment-composer-recurring-days button.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 24%,var(--panel-soft));color:var(--text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 52%,transparent);}
.appointment-composer-recurring-days button.is-selected:hover{background:color-mix(in srgb,var(--accent) 30%,var(--panel-soft));color:var(--text);filter:none;}
.appointment-composer-recurring-add{font-size:.78rem;}
.appointment-composer-recurring p{margin:0;line-height:1.3;}
.recurring-schedule-end-link{display:inline;margin-left:.3rem;color:var(--muted);font-size:.72rem;font-weight:500;vertical-align:baseline;}
@media (max-width:430px){
  .appointment-composer-recurring-days{grid-template-columns:repeat(4,minmax(0,1fr));}
  .appointment-composer-recurring-pattern-head{align-items:stretch;flex-direction:column;}
  .appointment-composer-recurring-pattern-head label{min-width:0;}
  .appointment-composer-recurring-pattern-remove{margin-left:0;}
}
.appointment-composer-commit-note{max-width:360px;line-height:1.3;}
@media(max-width:760px){.appointment-composer-commit-note{grid-column:1 / -1;max-width:none;}}

/* Appointment workspace declutter: day grouping, compact actions and saved-range presets. */
.appointment-planner-toolbar{align-items:center;gap:.55rem;flex-wrap:wrap;}
.compact-action-menu{position:relative;display:inline-block;}
.compact-action-menu>summary{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:.5rem .75rem;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);font-weight:var(--font-weight-semibold);cursor:pointer;list-style:none;user-select:none;}
.compact-action-menu>summary::-webkit-details-marker{display:none;}
.compact-action-menu>summary::after{content:'▾';margin-left:.45rem;color:var(--muted);font-size:.78rem;}
.compact-action-menu[open]>summary{background:var(--panel-soft);}
.compact-action-menu[open]>summary::after{content:'▴';}
.compact-action-menu-popover{position:absolute;z-index:30;top:calc(100% + .4rem);right:0;display:grid;gap:.28rem;width:max-content;min-width:190px;max-width:min(280px,calc(100vw - 2rem));padding:.45rem;border:1px solid var(--line);border-radius:11px;background:var(--panel);box-shadow:0 14px 34px rgba(0,0,0,.24);}
.compact-action-menu-popover button{width:100%;min-height:38px;text-align:left;justify-content:flex-start;}
.compact-action-menu-popover button:disabled{opacity:.5;}
.planner-table tbody tr.planner-day-group{display:block;width:100%;max-width:100%;padding:.12rem 0 0;border:0;background:transparent;}
.planner-table tbody tr.planner-day-group th{display:flex;align-items:center;justify-content:space-between;gap:.8rem;width:100%;box-sizing:border-box;padding:.55rem .72rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);background:transparent;color:var(--text);text-align:left;}
.planner-day-title{display:inline-flex;align-items:center;gap:.45rem;min-width:0;}
.planner-day-title .ui-icon{width:15px;height:15px;color:var(--muted);}
.planner-day-count{flex:0 0 auto;color:var(--muted);font-size:.78rem;font-weight:var(--font-weight-semibold);}
.records-section-heading{align-items:flex-end;gap:1rem;}
.records-heading-actions{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:.55rem;row-gap:.55rem;flex-wrap:wrap;}
.records-controls-row{margin-top:.15rem;margin-bottom:1rem;}
.records-controls-row .compact-action-menu{position:relative;}
.records-controls-row .compact-action-menu-popover{top:calc(100% + .45rem);left:0;right:auto;}
.records-controls-row .records-more-actions .compact-action-menu-popover{min-width:190px;}
.records-filter-popover{display:block;width:min(820px,calc(100vw - 2.5rem));max-width:none;padding:.7rem;}
.records-filter-secondary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.65rem .75rem;padding:0;}
.records-filter-secondary label{min-width:0;}
.records-filter-secondary select{width:100%;min-width:0;}
.records-filter-service,.records-filter-format,.records-filter-status{grid-column:span 2;}
.records-filter-package-cycle-row{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:end;gap:.65rem .75rem;min-width:0;}
.records-filter-package,.records-filter-cycle{flex:0 1 var(--records-select-width,auto);width:var(--records-select-width,auto);max-width:100%;}
.records-filter-package select,.records-filter-cycle select{width:100%;max-width:100%;}
.records-filter-primary{display:grid;grid-template-columns:minmax(145px,.72fr) minmax(170px,1fr) minmax(170px,1fr) minmax(170px,1fr) minmax(240px,1.35fr);align-items:end;gap:.7rem .8rem;margin-bottom:.75rem;}
.records-filter-primary .records-search-field{grid-column:auto;}
.records-range-preset select{min-width:0;}
.records-custom-range{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(150px,220px));gap:.7rem .8rem;padding:.68rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.records-custom-range[hidden]{display:none!important;}
@media(max-width:1180px){
  .records-filter-primary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .records-filter-primary .records-search-field{grid-column:1 / -1;}
}
@media(max-width:980px){
  .records-filter-primary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .records-filter-primary .records-search-field{grid-column:1 / -1;}
  .records-custom-range{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr));}
  .records-filter-secondary{grid-template-columns:repeat(2,minmax(0,1fr));}
  .records-filter-service,.records-filter-format{grid-column:auto;}
  .records-filter-status{grid-column:1 / -1;}
  .records-filter-package-cycle-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;}
  .records-filter-package,.records-filter-cycle{width:100%;max-width:none;}
}
@media(max-width:620px){
  .appointment-planner-toolbar{display:grid;grid-template-columns:1fr;gap:.5rem;}
  .appointment-planner-toolbar>button,.appointment-planner-toolbar>.compact-action-menu,.appointment-planner-toolbar>.compact-action-menu>summary{width:100%;}
  .appointment-planner-toolbar>.compact-action-menu{grid-column:1;}
  .records-section-heading{display:grid;grid-template-columns:1fr;align-items:stretch;gap:.75rem;}
  .records-heading-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:.55rem;}
  .records-controls-row{margin-top:.1rem;margin-bottom:.9rem;}
  .records-heading-actions .compact-action-menu,.records-heading-actions .compact-action-menu>summary{width:100%;}
  .records-controls-row .records-more-filters{position:static;}
  .records-heading-actions .compact-action-menu-popover{left:0;right:0;width:auto;max-width:none;}
  .records-heading-actions .records-more-filters .records-filter-popover{left:0;right:0;width:auto;max-width:none;}
  .records-filter-primary{grid-template-columns:1fr;}
  .records-filter-primary .records-search-field,.records-custom-range{grid-column:1;}
  .records-custom-range{grid-template-columns:1fr;}
  .records-filter-secondary{grid-template-columns:1fr;}
  .records-filter-service,.records-filter-format,.records-filter-status{grid-column:1;}
  .records-filter-package-cycle-row{grid-template-columns:1fr;grid-column:1;}
  .records-filter-package,.records-filter-cycle{width:100%;max-width:100%;}
  .compact-action-menu-popover{left:0;right:auto;width:100%;max-width:100%;}
  .planner-table tbody tr.planner-day-group th{padding:.55rem .2rem .4rem;}
}

/* Recurring Schedule V2 */
.recurrence-cadence-grid,.recurrence-end-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.48rem .6rem;align-items:end;}
.recurrence-cadence-grid label,.recurrence-end-grid label,.recurrence-monthly-panel label,.recurrence-monthly-editor label,.recurring-schedule-edit-form>label{display:grid;gap:.22rem;color:var(--muted);font-size:.72rem;}
.recurrence-cadence-grid input,.recurrence-cadence-grid select,.recurrence-end-grid input,.recurrence-end-grid select,.recurrence-monthly-panel select,.recurrence-monthly-editor input,.recurrence-monthly-editor select,.recurring-schedule-edit-form>label input{min-height:36px;padding:.36rem .48rem;font-size:.82rem;}
.recurrence-monthly-panel,.recurrence-monthly-editor{display:grid;gap:.48rem;padding:.5rem;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:8px;background:var(--panel-soft);}
.recurrence-monthly-panel[hidden],.recurrence-monthly-editor[hidden],.recurrence-end-grid label[hidden]{display:none!important;}
.recurrence-nth-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:.48rem;}
.recurrence-nth-grid[hidden]{display:none!important;}
.recurring-schedule-manage-link{display:inline;margin-left:.34rem;padding:0;border:0;background:transparent;color:var(--accent);font-size:.72rem;font-weight:600;line-height:1.3;vertical-align:baseline;}
.recurring-schedule-manage-link:hover{transform:none;filter:none;text-decoration:underline;background:transparent;}
.recurring-record-badge{white-space:nowrap;}
.recurring-schedule-manager-dialog,.recurring-schedule-edit-dialog{width:min(720px,calc(100vw - 1.25rem));max-width:none;}
.recurring-schedule-manager-card,.recurring-schedule-edit-card{width:100%;max-width:none;}
.recurring-schedule-manager-list{display:grid;gap:.65rem;max-height:min(62vh,620px);overflow:auto;padding:.08rem .1rem .08rem 0;}
.recurring-schedule-manager-item{display:grid;gap:.42rem;padding:.72rem .78rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);transition:border-color .16s ease,box-shadow .16s ease;}
.recurring-schedule-manager-item.is-focused{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent);}
.recurring-schedule-manager-item-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;}
.recurring-schedule-manager-item-heading>div{display:grid;gap:.12rem;min-width:0;}
.recurring-schedule-kind{color:var(--muted);font-size:.69rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.recurring-schedule-manager-item-heading strong{font-size:.94rem;}
.recurring-schedule-rule{font-size:.84rem;font-weight:650;line-height:1.35;}
.recurring-schedule-manager-meta{color:var(--muted);font-size:.76rem;line-height:1.4;}
.recurring-schedule-manager-ending{line-height:1.35;}
.recurring-schedule-manager-actions{display:flex;flex-wrap:wrap;gap:.45rem;padding-top:.08rem;}
.recurring-schedule-manager-actions button{min-height:34px;padding:.38rem .68rem;font-size:.78rem;}
.recurring-schedule-end-button{border-color:color-mix(in srgb,var(--danger,#d96a73) 45%,var(--line));background:transparent;color:var(--text);}
.recurring-schedule-edit-form{display:grid;gap:.62rem;}
.recurring-schedule-edit-form .appointment-composer-recurring-patterns{max-height:260px;overflow:auto;}

/* Stronger, still quiet day separators in the weekly planner. */
.planner-table tbody tr.planner-day-group{padding:.34rem 0 .08rem;}
.planner-table tbody tr.planner-day-group th{padding:.58rem .72rem;border:1px solid color-mix(in srgb,var(--line) 90%,transparent);border-left:3px solid color-mix(in srgb,var(--accent) 48%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--panel-soft) 94%,var(--accent) 6%);}
.planner-day-title strong{font-weight:750;letter-spacing:.025em;}
.planner-day-title .ui-icon{color:color-mix(in srgb,var(--accent) 54%,var(--muted));}
.planner-day-count{font-weight:700;letter-spacing:.035em;}

@media(max-width:620px){
  .recurrence-cadence-grid,.recurrence-end-grid,.recurrence-nth-grid{grid-template-columns:1fr;}
  .recurring-schedule-manager-item-heading{align-items:flex-start;}
  .recurring-schedule-manager-actions{display:grid;grid-template-columns:1fr 1fr;}
  .recurring-schedule-manager-actions .recurring-schedule-end-button{grid-column:1 / -1;}
  .planner-table tbody tr.planner-day-group th{padding:.52rem .58rem;}
}


/* Appointment creation V3: one shared context, one or many explicit dates/times. */
.appointment-composer-multi-hint{margin:.05rem 0 0;line-height:1.35;}
.appointment-composer-selected-panel{grid-column:1 / -1;display:grid;gap:.55rem;min-width:0;padding:.68rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.appointment-composer-selected-heading{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding-bottom:.48rem;border-bottom:1px solid var(--line);}
.appointment-composer-selected-heading>div{display:grid;gap:.06rem;min-width:0;}
.appointment-composer-selected-heading strong{font-size:.9rem;}
.appointment-composer-selected-heading button{min-height:32px;padding:.3rem .55rem;font-size:.76rem;}
.appointment-composer-selections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;min-width:0;}
.appointment-composer-selection{display:flex;align-items:center;justify-content:space-between;gap:.55rem;min-width:0;padding:.5rem .55rem;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:9px;background:var(--panel);}
.appointment-composer-selection.has-error{border-color:color-mix(in srgb,var(--danger,#d96a73) 55%,var(--line));background:color-mix(in srgb,var(--panel) 94%,var(--danger,#d96a73) 6%);}
.appointment-composer-selection-detail{display:grid;gap:.1rem;min-width:0;line-height:1.3;}
.appointment-composer-selection-detail strong{font-size:.82rem;overflow-wrap:anywhere;}
.appointment-composer-selection-detail span{overflow-wrap:anywhere;}
.appointment-composer-selection-actions{display:flex;gap:.34rem;flex:0 0 auto;}
.appointment-composer-selection-actions button{min-height:30px;padding:.28rem .48rem;font-size:.72rem;}
.appointment-composer-selection-remove{border-color:transparent;background:transparent;color:var(--muted);}
.appointment-composer-selection-remove:hover{background:var(--panel-soft);transform:none;filter:none;}
.appointment-composer-day.has-selection:not(.is-selected){border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 9%,transparent);font-weight:700;}
.appointment-composer-day.has-selection::after{content:"";position:absolute;bottom:2px;width:4px;height:4px;border-radius:999px;background:var(--accent);}
.appointment-composer-time.has-selection{border-color:color-mix(in srgb,var(--accent) 72%,var(--line));background:color-mix(in srgb,var(--accent) 14%,var(--panel));font-weight:700;}

/* Recurring schedules are a first-class workspace, separate from appointment creation. */
.recurring-schedule-workspace{display:grid;gap:.9rem;}
.recurring-schedule-workspace[hidden]{display:none!important;}
.recurring-schedule-workspace-heading{align-items:flex-start;gap:1rem;}
.recurring-schedule-workspace-heading>div{min-width:0;max-width:760px;}
.recurring-schedule-workspace-heading h2{margin:.12rem 0 .3rem;}
.recurring-workspace-intro{margin:0;line-height:1.5;}
.recurring-schedule-workspace-list{max-height:none;overflow:visible;padding:0;grid-template-columns:repeat(2,minmax(0,1fr));}
.recurring-schedule-create-dialog{width:min(850px,calc(100vw - 1rem));max-width:none;max-height:calc(100dvh - 1rem);margin:auto;overflow:hidden;}
.recurring-schedule-create-card{display:grid;gap:.8rem;width:100%;max-height:calc(100dvh - 1rem);overflow-y:auto;overflow-x:hidden;}
.recurring-schedule-create-card>.muted{margin:0;line-height:1.45;}
.recurring-schedule-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem .75rem;}
.recurring-schedule-create-grid label{display:grid;gap:.28rem;min-width:0;font-size:.82rem;}
.recurring-schedule-create-grid select,.recurring-schedule-create-grid input{width:100%;min-width:0;}
.recurring-schedule-create-grid label>span{line-height:1.3;}
.recurring-schedule-create-rule{display:grid;gap:.65rem;padding:.7rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.recurring-schedule-create-rule .appointment-composer-recurring-patterns{max-height:300px;overflow:auto;}
.recurring-schedule-preview-wrap{display:grid;gap:.45rem;padding-top:.55rem;border-top:1px solid var(--line);}
.recurring-schedule-preview-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap;}
.recurring-schedule-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.38rem;}
.recurring-schedule-preview-item{display:grid;gap:.08rem;padding:.46rem .5rem;border:1px solid var(--line);border-radius:8px;background:var(--panel);min-width:0;}
.recurring-schedule-preview-item strong{font-size:.74rem;line-height:1.25;overflow-wrap:anywhere;}
.recurring-schedule-preview-item span{color:var(--muted);font-size:.76rem;font-variant-numeric:tabular-nums;}

@media(max-width:900px){
  .appointment-composer-selections{grid-template-columns:1fr;}
  .recurring-schedule-workspace-list{grid-template-columns:1fr;}
  .recurring-schedule-preview{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(max-width:720px){
  .appointment-composer-selected-panel{grid-column:1;padding:.6rem;}
  .appointment-composer-selection{align-items:flex-start;}
  .appointment-composer-selection-actions{flex-direction:column;}
  .appointment-composer-actions #appointmentComposerAdd{grid-column:1 / -1;}
  .recurring-schedule-workspace-heading{display:grid;grid-template-columns:1fr;}
  .recurring-schedule-workspace-heading>button{width:100%;}
  .recurring-schedule-create-dialog{width:calc(100vw - .4rem);max-width:calc(100vw - .4rem);max-height:calc(100dvh - .4rem);}
  .recurring-schedule-create-card{max-height:calc(100dvh - .4rem);padding:.85rem;}
  .recurring-schedule-create-grid{grid-template-columns:1fr;}
  .recurring-schedule-preview{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:430px){
  .appointment-composer-selected-heading{align-items:flex-start;}
  .appointment-composer-selection{display:grid;grid-template-columns:1fr;}
  .appointment-composer-selection-actions{display:grid;grid-template-columns:1fr 1fr;width:100%;}
  .appointment-composer-selection-actions button{width:100%;}
  .recurring-schedule-preview{grid-template-columns:1fr;}
}

/* Composer visibility refinement: selected appointments stay visible while large time lists scroll independently. */
.appointment-composer-selected-panel[hidden]{display:none!important;}
.appointment-composer-selections{max-height:min(180px,25vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:.16rem;}
.appointment-composer-times-panel{align-self:start;}
.appointment-composer-times{max-height:min(280px,36vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;align-content:start;padding-right:.16rem;}
.recurring-schedule-create-card>.dialog-heading-row,.recurring-schedule-edit-card>.dialog-heading-row{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;min-width:0;padding-right:2.8rem;}
.recurring-schedule-create-card>.dialog-heading-row>div,.recurring-schedule-edit-card>.dialog-heading-row>div{min-width:0;}
.recurring-schedule-create-card>.dialog-heading-row>.icon-button,.recurring-schedule-edit-card>.dialog-heading-row>.icon-button{position:absolute;top:0;right:0;margin:0;z-index:2;}
@media(max-width:620px){
  .appointment-composer-selections{max-height:min(160px,24vh);}
  .appointment-composer-times{max-height:min(220px,30vh);}
}

/* Recurring schedule creation supports both Individual appointments and Group Session shells. */
.recurring-schedule-create-kind{grid-column:1 / -1;max-width:320px;}
.recurring-schedule-create-grid>[hidden]{display:none!important;}

/* Phase 2: administrator operational calendar. Saved appointments only; Planner drafts never render here. */
.admin-calendar-workspace{display:grid;gap:.85rem;min-width:0;}
.admin-calendar-workspace[hidden]{display:none!important;}
.admin-calendar-heading{align-items:flex-start;}
.admin-calendar-heading h2{margin:.12rem 0 .22rem;}
.admin-calendar-heading p{margin:0;}
.admin-calendar-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;align-items:center;gap:.55rem;}
.admin-calendar-view-switch{display:flex;gap:.35rem;align-items:center;}
.admin-calendar-view-switch button.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel-soft));color:var(--text);}
.admin-calendar-nav{display:grid;grid-template-columns:38px minmax(180px,1fr) 38px;align-items:center;gap:.4rem;justify-self:center;width:min(100%,440px);}
.admin-calendar-nav button{min-width:38px;padding:.48rem;}
.admin-calendar-range{text-align:center;font-size:.9rem;white-space:nowrap;}
.admin-calendar-filters{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr)) auto;align-items:end;gap:.55rem;min-width:0;}
.admin-calendar-filters label{display:grid;gap:.24rem;min-width:0;font-size:.78rem;}
.admin-calendar-filters label[hidden]{display:none;}
.admin-calendar-filters select{width:100%;min-width:0;}
.admin-calendar-filter-reset{min-height:44px;white-space:nowrap;}
.admin-calendar-status{margin:0;}
.admin-calendar-status.is-error{color:var(--danger-text,#cf6b73);}
.admin-calendar{min-width:0;}
.admin-calendar-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);}
.admin-calendar-timeline{max-height:min(680px,68vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;}
.admin-calendar-shell{min-width:760px;}
.admin-calendar-day{min-width:500px;}
.admin-calendar-header{position:sticky;top:0;z-index:9;display:grid;grid-template-columns:64px repeat(var(--admin-calendar-columns),minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--panel);}
.admin-calendar-day-head{display:grid;gap:.06rem;padding:.55rem .4rem;border-left:1px solid var(--line);text-align:center;font-size:.78rem;}
.admin-calendar-day-head span{color:var(--muted);font-size:.7rem;}
.admin-calendar-day-head.is-today{background:color-mix(in srgb,var(--accent) 10%,var(--panel));}
.admin-calendar-body{display:grid;grid-template-columns:64px minmax(0,1fr);position:relative;min-height:180px;}
.admin-calendar-time-rail{position:relative;border-right:1px solid var(--line);color:var(--muted);font-size:.68rem;}
.admin-calendar-time-rail span{position:absolute;right:.42rem;transform:translateY(-50%);font-variant-numeric:tabular-nums;}
.admin-calendar-lanes{display:grid;grid-template-columns:repeat(var(--admin-calendar-columns),minmax(0,1fr));position:relative;}
.admin-calendar-lane{position:relative;min-width:0;border-left:1px solid var(--line);overflow:hidden;}
.admin-calendar-lane:first-child{border-left:0;}
.admin-calendar-lane.is-today{background:color-mix(in srgb,var(--accent) 5%,transparent);}
.admin-calendar-lane.is-quick-create-enabled{cursor:crosshair;}
.admin-calendar-lane.is-quick-creating{user-select:none;}
.admin-calendar-unavailable{position:absolute;left:0;right:0;cursor:not-allowed;background:color-mix(in srgb,var(--muted) 8%,transparent);background-image:repeating-linear-gradient(135deg,color-mix(in srgb,var(--muted) 10%,transparent) 0,color-mix(in srgb,var(--muted) 10%,transparent) 4px,transparent 4px,transparent 10px);border-top:1px solid color-mix(in srgb,var(--line) 42%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 34%,transparent);}
.admin-calendar-unavailable.is-override-create-enabled{cursor:pointer;}
.admin-calendar-unavailable.is-override-create-enabled:hover,.admin-calendar-unavailable.is-override-create-enabled:focus-visible{background-color:color-mix(in srgb,var(--accent) 8%,transparent);outline:2px solid color-mix(in srgb,var(--accent) 42%,transparent);outline-offset:-2px;}
.admin-calendar-quick-create-selection{position:absolute;left:3px;right:3px;z-index:7;display:flex;align-items:flex-start;justify-content:flex-start;min-height:18px;padding:.18rem .28rem;border:1px solid color-mix(in srgb,var(--accent) 78%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--accent) 24%,var(--panel));color:var(--text);font-size:.66rem;font-weight:750;line-height:1.1;font-variant-numeric:tabular-nums;pointer-events:none;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent) inset;}
.admin-calendar-quick-create-selection.is-unavailable-selection{border-style:dashed;background:color-mix(in srgb,var(--accent) 16%,var(--panel));}
.admin-calendar-create-popover{position:fixed;z-index:95;display:grid;gap:.3rem;width:max-content;min-width:240px;max-width:min(300px,calc(100vw - 1rem));padding:.48rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 18px 42px rgba(0,0,0,.34);}
.admin-calendar-create-note{margin:0;padding:.32rem .4rem .48rem;color:var(--muted);font-size:.78rem;line-height:1.35;}
.admin-calendar-create-context{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.38rem .5rem .48rem;border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);}
.admin-calendar-create-context strong{font-size:.78rem;}
.admin-calendar-create-context span{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap;}
.admin-calendar-create-action{display:flex;width:100%;min-height:40px;align-items:center;justify-content:flex-start;padding:.52rem .62rem;border-color:transparent;background:transparent;color:var(--text);text-align:left;box-shadow:none;}
.admin-calendar-create-action:hover,.admin-calendar-create-action:focus-visible{border-color:var(--line);background:var(--hover-bg);color:var(--text);transform:none;filter:none;}
.admin-calendar-quick-create-hint{display:inline;}
.admin-calendar-hour-line{position:absolute;left:0;right:0;border-top:1px solid color-mix(in srgb,var(--line) 68%,transparent);pointer-events:none;}
.admin-calendar-event{appearance:none;-webkit-appearance:none;position:absolute;display:grid;align-content:start;justify-content:stretch;justify-items:start;gap:.06rem;min-width:0;min-height:38px;padding:.28rem .36rem;border:1px solid color-mix(in srgb,var(--accent) 48%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));color:var(--text);overflow:hidden;text-align:left;font:inherit;font-size:.68rem;line-height:1.12;cursor:pointer;box-shadow:none;}
.admin-calendar-event:hover,.admin-calendar-event:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 17%,var(--panel));outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent);transform:none;filter:none;}
.admin-calendar-event.is-group{border-style:dashed;}
.admin-calendar-event.is-client-confirmed{border-left:4px solid var(--success);}
.admin-calendar-event.is-completed{opacity:.72;}
.admin-calendar-event.is-cancelled{opacity:.58;text-decoration-line:line-through;text-decoration-thickness:1px;}
.admin-calendar-event.is-no-show{border-style:dotted;}
.admin-calendar-event-time{font-size:.71rem;line-height:1.14;font-variant-numeric:tabular-nums;white-space:nowrap;}
.admin-calendar-event-client,.admin-calendar-event-service,.admin-calendar-event-staff,.admin-calendar-event-location,.admin-calendar-event-status{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-calendar-event-client{font-weight:750;line-height:1.14;}
.admin-calendar-event-staff,.admin-calendar-event-location,.admin-calendar-event-status{color:var(--muted);font-size:.64rem;}
.admin-calendar-event-confirmation{display:inline-flex;align-items:center;justify-self:start;max-width:100%;padding:.18rem .48rem;border:1px solid color-mix(in srgb,var(--success) 55%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--success) 10%,var(--panel));color:var(--success);font-size:.73rem;font-weight:750;line-height:1.25;}
.admin-calendar-event.is-week-detail{gap:.08rem;padding:.3rem .38rem;}
.admin-calendar-event-week-detail{display:block;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.64rem;font-weight:var(--font-weight-medium);line-height:1.14;}
.admin-calendar-event.is-compact .admin-calendar-event-week-detail{display:none;}
.admin-calendar-event.is-day-detail{align-content:center;gap:.12rem;padding:.3rem .48rem;}
.admin-calendar-event-day-main{display:flex;width:100%;min-width:0;align-items:baseline;gap:.5rem;}
.admin-calendar-event-day-main .admin-calendar-event-time{flex:0 0 auto;}
.admin-calendar-event-day-main .admin-calendar-event-client{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-calendar-event-day-detail{display:block;width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.65rem;font-weight:var(--font-weight-medium);}
.admin-calendar-week .admin-calendar-event-location,.admin-calendar-week .admin-calendar-event-status,.admin-calendar-event.is-compact .admin-calendar-event-service,.admin-calendar-event.is-compact .admin-calendar-event-staff,.admin-calendar-event.is-compact .admin-calendar-event-location,.admin-calendar-event.is-compact .admin-calendar-event-status{display:none;}
.admin-calendar-agenda{display:none;}
/* Month is an overview/navigation surface: two inline events per date on larger screens,
   with the full day available from the overflow/date popover. */
.admin-calendar-month{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);}
.admin-calendar-month-weekdays,.admin-calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.admin-calendar-month-weekdays{border-bottom:1px solid var(--line);background:var(--panel);}
.admin-calendar-month-weekdays>div{padding:.5rem .35rem;color:var(--muted);font-size:.7rem;font-weight:var(--font-weight-semibold);text-align:center;text-transform:uppercase;letter-spacing:.03em;}
.admin-calendar-month-grid{align-items:stretch;}
.admin-calendar-month-day{position:relative;display:grid;grid-template-rows:auto auto 1fr;align-content:start;gap:.3rem;min-width:0;min-height:132px;padding:.42rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);}
.admin-calendar-month-day:nth-child(7n){border-right:0;}
.admin-calendar-month-day.is-other-month{background:color-mix(in srgb,var(--panel-soft) 82%,transparent);}
.admin-calendar-month-day.is-other-month>*{opacity:.64;}
.admin-calendar-month-day.is-today{background:color-mix(in srgb,var(--accent) 7%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 52%,transparent);}
.admin-calendar-month-day.is-past .admin-calendar-month-create{display:none;}
.admin-calendar-month-day-heading{display:flex;align-items:center;justify-content:space-between;gap:.28rem;min-width:0;}
button.admin-calendar-month-date{display:grid;place-items:center;min-width:30px;min-height:30px;padding:.2rem;border:0;border-radius:999px;background:transparent;color:var(--text);font-size:.8rem;font-weight:750;box-shadow:none;}
button.admin-calendar-month-date:hover,button.admin-calendar-month-date:focus-visible{background:var(--hover-bg);color:var(--text);outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:-1px;transform:none;filter:none;}
.admin-calendar-month-day.is-today .admin-calendar-month-date{background:var(--accent);color:var(--accent-contrast,#fff);}
.admin-calendar-month-create{min-width:28px;min-height:28px;padding:.12rem .35rem;border-radius:8px;font-size:.95rem;line-height:1;opacity:1;}
.admin-calendar-month-create:hover,.admin-calendar-month-create:focus-visible{filter:brightness(1.08);}
.admin-calendar-month-special{display:block;justify-self:start;max-width:100%;padding:.12rem .34rem;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--panel-soft));color:var(--muted);font-size:.61rem;font-weight:var(--font-weight-semibold);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-calendar-month-special.is-closed{border-color:color-mix(in srgb,var(--danger,#c55) 38%,var(--line));background:color-mix(in srgb,var(--danger,#c55) 8%,var(--panel-soft));}
.admin-calendar-month-events{display:grid;align-content:start;gap:.24rem;min-width:0;}
button.admin-calendar-month-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.28rem;width:100%;min-width:0;min-height:27px;padding:.23rem .3rem;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:7px;background:color-mix(in srgb,var(--accent) 7%,var(--panel-soft));color:var(--text);text-align:left;font:inherit;font-size:.64rem;line-height:1.08;box-shadow:none;}
button.admin-calendar-month-event:hover,button.admin-calendar-month-event:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 13%,var(--panel));outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 11%,transparent);transform:none;filter:none;}
.admin-calendar-month-event.is-group{border-style:dashed;}
.admin-calendar-month-event.is-completed{opacity:.72;}
.admin-calendar-month-event.is-client-confirmed{border-left:4px solid var(--success);}
.admin-calendar-month-event.is-cancelled{opacity:.58;text-decoration:line-through;}
.admin-calendar-month-event.is-no-show{border-style:dotted;}
.admin-calendar-month-event-time{font-variant-numeric:tabular-nums;font-weight:750;white-space:nowrap;}
.admin-calendar-month-event-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-semibold);}
.admin-calendar-month-event-kind{padding:.08rem .2rem;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--muted);font-size:.54rem;font-weight:750;text-transform:uppercase;letter-spacing:.02em;}
.admin-calendar-month-more{display:block;width:100%;min-height:25px;padding:.2rem .28rem;border-color:transparent;background:transparent;color:var(--accent);font-size:.63rem;font-weight:750;text-align:left;box-shadow:none;}
.admin-calendar-month-more:hover,.admin-calendar-month-more:focus-visible{border-color:var(--line);background:var(--hover-bg);color:var(--text);transform:none;filter:none;}
.admin-calendar-month-compact-count{display:none;}
.admin-calendar-month-day-popover{position:fixed;z-index:96;display:grid;gap:.5rem;width:min(390px,calc(100vw - 1rem));max-height:min(620px,calc(100dvh - 1rem));padding:.58rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 20px 52px rgba(0,0,0,.38);overflow-y:auto;}
.admin-calendar-month-day-popover-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem;padding:.25rem .25rem .42rem;border-bottom:1px solid var(--line);}
.admin-calendar-month-day-popover-heading>div{display:grid;gap:.08rem;min-width:0;}
.admin-calendar-month-day-popover-heading strong{font-size:.92rem;}
.admin-calendar-month-day-popover-heading span{color:var(--muted);font-size:.72rem;}
.admin-calendar-month-day-close{min-width:32px;min-height:32px;padding:.12rem;font-size:1.08rem;line-height:1;}
.admin-calendar-month-special-note{justify-self:start;padding:.2rem .42rem;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--panel-soft));color:var(--muted);font-size:.68rem;font-weight:var(--font-weight-semibold);}
.admin-calendar-month-special-note.is-closed{border-color:color-mix(in srgb,var(--danger,#c55) 38%,var(--line));}
.admin-calendar-month-day-list{display:grid;gap:.42rem;min-width:0;}
.admin-calendar-month-day-list .admin-calendar-event{position:relative;left:auto!important;top:auto!important;width:100%!important;height:auto!important;min-height:0;padding:.58rem .62rem;border-radius:9px;font-size:.78rem;}
.admin-calendar-month-day-list .admin-calendar-event-time{font-size:.78rem;}
.admin-calendar-month-day-list .admin-calendar-event-client{font-size:.8rem;}
.admin-calendar-month-day-empty{margin:.25rem;}
.admin-calendar-month-day-actions{display:flex;justify-content:flex-end;gap:.4rem;padding-top:.18rem;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent);}
.admin-calendar-summary{margin:0;}
/* Phase 6: dense schedules summarize by scope instead of rendering thousands of event blocks. */
.admin-calendar-adaptive-summary{display:grid;gap:.8rem;padding:.9rem;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft);}
.admin-calendar-adaptive-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.admin-calendar-adaptive-heading h3{margin:.12rem 0 .22rem;}
.admin-calendar-adaptive-heading p{margin:0;max-width:78ch;}
.admin-calendar-scope-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.65rem;}
button.admin-calendar-scope-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.18rem .65rem;width:100%;min-width:0;padding:.8rem .85rem;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--text);text-align:left;box-shadow:none;}
button.admin-calendar-scope-card:hover,button.admin-calendar-scope-card:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel));transform:none;filter:none;outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 12%,transparent);}
.admin-calendar-scope-card-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:750;}
.admin-calendar-scope-card>strong{font-size:1.2rem;font-variant-numeric:tabular-nums;}
.admin-calendar-scope-card>span:not(.admin-calendar-scope-card-title){color:var(--muted);font-size:.72rem;}
.admin-calendar-scope-card>small{grid-column:1 / -1;color:var(--muted);font-size:.7rem;line-height:1.35;}
@media(max-width:1100px){.admin-calendar-filters{grid-template-columns:repeat(3,minmax(150px,1fr));}.admin-calendar-filter-reset{width:100%;}}
@media(max-width:900px){
  .admin-calendar-toolbar{grid-template-columns:auto minmax(0,1fr);align-items:center;}
  .admin-calendar-toolbar>#appointmentCalendarToday{grid-column:1;grid-row:1;}
  .admin-calendar-view-switch{grid-column:2;grid-row:1;justify-self:end;}
  .admin-calendar-nav{grid-column:1 / -1;grid-row:2;width:100%;justify-self:stretch;}
  .admin-calendar-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
  .admin-calendar-filter-reset{grid-column:1 / -1;}
  .admin-calendar-timeline{display:none;}
  .admin-calendar-agenda{display:grid;gap:.82rem;}
  .admin-calendar-agenda-day{display:grid;gap:.48rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);overflow:hidden;}
  .admin-calendar-agenda-day.is-today{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));}
  .admin-calendar-agenda-day-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.68rem .78rem;border-bottom:1px solid var(--line);background:var(--panel);}
  .admin-calendar-agenda-day-heading .ui-icon{width:18px!important;height:18px!important;color:var(--muted);}
  .admin-calendar-agenda-day-meta{display:grid;min-width:0;gap:.08rem;}
  .admin-calendar-agenda-day-heading strong{font-size:clamp(.9rem,2.4vw,1rem);}
  .admin-calendar-agenda-day-heading span{color:var(--muted);font-size:clamp(.78rem,2.1vw,.88rem);}
  .admin-calendar-agenda-create{min-height:38px;padding:.42rem .66rem;white-space:nowrap;}
  .admin-calendar-agenda-list{display:grid;gap:.55rem;padding:.62rem;}
  .admin-calendar-agenda .admin-calendar-event{position:relative;left:auto!important;top:auto!important;width:100%!important;height:auto!important;min-height:0;gap:.12rem;padding:.72rem .78rem;border-radius:10px;font-size:clamp(.86rem,2.35vw,.94rem);line-height:1.22;}
  .admin-calendar-agenda .admin-calendar-event-time{font-size:clamp(.9rem,2.5vw,1rem);line-height:1.18;}
  .admin-calendar-agenda .admin-calendar-event-client{font-size:clamp(.9rem,2.5vw,1rem);line-height:1.18;}
  .admin-calendar-agenda .admin-calendar-event-service,.admin-calendar-agenda .admin-calendar-event-staff,.admin-calendar-agenda .admin-calendar-event-location,.admin-calendar-agenda .admin-calendar-event-status{display:block;font-size:clamp(.8rem,2.2vw,.9rem);line-height:1.22;}
  .admin-calendar-agenda-empty{margin:.15rem;}
  .admin-calendar-create-popover.is-mobile-sheet{left:max(.5rem,env(safe-area-inset-left))!important;right:max(.5rem,env(safe-area-inset-right))!important;top:auto!important;bottom:max(.5rem,env(safe-area-inset-bottom))!important;width:auto;min-width:0;max-width:none;max-height:calc(100dvh - 1rem);overflow-y:auto;padding:.6rem;border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.42);}
  .admin-calendar-create-popover.is-mobile-sheet .admin-calendar-create-context{padding:.5rem .58rem .62rem;}
  .admin-calendar-create-popover.is-mobile-sheet .admin-calendar-create-context strong{font-size:.94rem;}
  .admin-calendar-create-popover.is-mobile-sheet .admin-calendar-create-action{min-height:48px;padding:.7rem .75rem;font-size:.94rem;}
  .admin-calendar-adaptive-summary{padding:.7rem;}
  .admin-calendar-scope-grid{grid-template-columns:1fr;}
  .admin-calendar-month-day{min-height:112px;padding:.34rem;}
  .admin-calendar-month-create{opacity:1;}
  button.admin-calendar-month-event{grid-template-columns:auto minmax(0,1fr);}
  .admin-calendar-month-event-kind{display:none;}
}
@media(max-width:700px){
  .admin-calendar-month-weekdays>div{padding:.38rem .08rem;font-size:.58rem;letter-spacing:0;}
  .admin-calendar-month-day{grid-template-rows:auto auto 1fr;min-height:70px;padding:.22rem;gap:.2rem;}
  button.admin-calendar-month-date{min-width:26px;min-height:26px;font-size:.72rem;}
  .admin-calendar-month-create{min-width:24px;min-height:24px;padding:0 .2rem;font-size:.82rem;}
  .admin-calendar-month-events{display:none;}
  .admin-calendar-month-compact-count:not([hidden]){display:grid;place-items:center;justify-self:start;min-width:22px;min-height:22px;padding:.08rem .3rem;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--panel-soft));color:var(--text);font-size:.62rem;font-weight:750;box-shadow:none;}
  .admin-calendar-month-special{width:7px;height:7px;padding:0;border:0;border-radius:999px;background:var(--accent);font-size:0;}
  .admin-calendar-month-special.is-closed{background:var(--danger,#c55);}
  .admin-calendar-month-day-popover.is-mobile-sheet{left:max(.5rem,env(safe-area-inset-left))!important;right:max(.5rem,env(safe-area-inset-right))!important;top:auto!important;bottom:max(.5rem,env(safe-area-inset-bottom))!important;width:auto;max-height:calc(100dvh - 1rem);border-radius:16px;padding:.65rem;}
  .admin-calendar-month-day-actions{display:grid;grid-template-columns:1fr 1fr;}
  .admin-calendar-month-day-actions button{min-height:46px;}
}
@media(max-width:430px){.admin-calendar-filters{grid-template-columns:1fr;}.admin-calendar-filter-reset{grid-column:auto;}.admin-calendar-nav{grid-template-columns:36px minmax(0,1fr) 36px;}.admin-calendar-range{font-size:.82rem;}}

/* Individual appointment edit dialog mobile containment.
   Keep every control inside the viewport on iOS Safari. Native date/select
   controls can report an intrinsic width wider than the dialog unless the
   dialog grid and each field are explicitly allowed to shrink. */
#editDialog{
  width:min(620px,calc(100vw - 1rem));
  max-width:calc(100vw - 1rem);
  max-height:calc(100dvh - 1rem);
  margin:auto;
  overflow-x:hidden;
  overflow-y:hidden;
  overscroll-behavior:contain;
}
#editDialog .dialog-card{
  width:100%;
  min-width:0;
  max-width:100%;
  max-height:calc(100dvh - 1rem);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
}
#editDialog .dialog-card>*,
#editDialog label,
#editDialog .instructor-picker-control,
#editDialog .appointment-slot-control{
  min-width:0;
  max-width:100%;
}
#editDialog input,
#editDialog select,
#editDialog textarea,
#editDialog button.appointment-slot-trigger{
  box-sizing:border-box;
  width:100%;
  min-width:0;
  max-width:100%;
  inline-size:100%;
  min-inline-size:0;
  max-inline-size:100%;
}
#editDialog .instructor-capacity-trigger{
  width:44px;
  min-width:44px;
  max-width:44px;
  inline-size:44px;
  flex:0 0 44px;
}
#editDialog .dialog-heading{
  position:sticky;
  top:-1.2rem;
  z-index:4;
  min-width:0;
  max-width:100%;
  margin:-1.2rem -1.2rem 0;
  padding:1.2rem 4rem .8rem 1.2rem;
  border-bottom:1px solid var(--line);
  background:var(--panel);
  overflow:hidden;
}
#editDialog .dialog-heading h2{
  min-width:0;
  max-width:100%;
  margin:0;
  overflow-wrap:anywhere;
}
#editDialog .dialog-heading .icon-button{
  position:absolute;
  top:1rem;
  right:1.1rem;
  width:44px;
  min-width:44px;
  max-width:44px;
  inline-size:44px;
}
@media(max-width:560px){
  #editDialog{
    width:calc(100vw - .5rem)!important;
    max-width:calc(100vw - .5rem)!important;
    max-height:calc(100dvh - .5rem);
    margin:auto!important;
    overflow-x:hidden!important;
  }
  #editDialog .dialog-card{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    max-height:calc(100dvh - .5rem);
    padding:1rem;
    gap:.72rem;
    overflow-x:hidden!important;
  }
  #editDialog .dialog-card>*,
  #editDialog label,
  #editDialog input,
  #editDialog select,
  #editDialog textarea,
  #editDialog .instructor-picker-control,
  #editDialog .appointment-slot-control{
    min-width:0!important;
    max-width:100%!important;
  }
  #editDialog .dialog-heading{
    top:-1rem;
    margin:-1rem -1rem 0;
    padding:1rem 3.7rem .75rem 1rem;
  }
  #editDialog .dialog-heading .icon-button{
    top:.72rem;
    right:.72rem;
  }
  #editDialog .dialog-actions{
    display:grid;
    grid-template-columns:1fr;
    width:100%;
  }
  #editDialog .dialog-actions button{
    width:100%;
    max-width:100%;
  }
}

@media(max-width:900px){.admin-calendar-quick-create-hint{display:none;}}

/* Calendar context preservation + in-place availability overrides */
.admin-calendar-event-detail-dialog,.contextual-override-dialog{width:min(680px,calc(100vw - 2rem));max-width:calc(100vw - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:0;border:0;background:transparent;color:var(--text);}
.admin-calendar-event-detail-dialog::backdrop,.contextual-override-dialog::backdrop{background:rgba(0,0,0,.5);backdrop-filter:blur(2px);}
.admin-calendar-event-detail-card,.contextual-override-card{display:grid;gap:.9rem;max-height:calc(100dvh - 2rem);overflow:auto;padding:1.15rem;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:0 24px 70px rgba(0,0,0,.42);}
.admin-calendar-event-detail-heading,.contextual-override-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.admin-calendar-event-detail-heading h3,.contextual-override-heading h3{margin:.12rem 0 0;}
.admin-calendar-event-detail-list{display:grid;gap:.1rem;margin:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.admin-calendar-event-detail-list>div{display:grid;grid-template-columns:minmax(110px,.35fr) minmax(0,1fr);gap:.8rem;padding:.65rem .75rem;border-bottom:1px solid var(--line);}
.admin-calendar-event-detail-list>div:last-child{border-bottom:0}.admin-calendar-event-detail-list dt{color:var(--muted);font-size:.78rem}.admin-calendar-event-detail-list dd{margin:0;min-width:0;overflow-wrap:anywhere;}
.contextual-override-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(150px,.8fr) minmax(150px,.8fr);gap:.7rem;}
.contextual-override-grid label,.contextual-override-reason{display:grid;gap:.3rem;min-width:0;color:var(--muted);font-size:.78rem;}
.contextual-override-grid select,.contextual-override-grid input,.contextual-override-reason input{width:100%;min-width:0;}
.contextual-override-windows{display:grid;gap:.55rem}.contextual-override-windows-heading{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.contextual-override-windows-body{display:grid;gap:.55rem}.contextual-override-windows .remove-override-modal-window{align-self:end;}
@media(max-width:700px){.admin-calendar-event-detail-dialog,.contextual-override-dialog{width:calc(100vw - 1rem);max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.admin-calendar-event-detail-card,.contextual-override-card{max-height:calc(100dvh - 1rem);padding:1rem}.contextual-override-grid{grid-template-columns:minmax(0,1fr)}.admin-calendar-event-detail-list>div{grid-template-columns:minmax(0,1fr);gap:.18rem}.contextual-override-windows .override-window-row{grid-template-columns:minmax(0,1fr)}.contextual-override-windows .remove-override-modal-window{width:100%}}
.admin-calendar-event-detail-status{display:grid;gap:.35rem;align-items:start}
.admin-calendar-event-detail-status select{width:min(100%,240px)}
.admin-calendar-event-detail-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}
@media(max-width:700px){.admin-calendar-event-detail-actions>button{flex:1 1 100%}.admin-calendar-event-detail-status select{width:100%}}
.admin-calendar-event.is-resource-block,.admin-calendar-month-event.is-resource-block{border-color:var(--muted);background:color-mix(in srgb,var(--muted) 10%,var(--panel));}
.admin-calendar-event.is-resource-block:hover,.admin-calendar-event.is-resource-block:focus-visible{border-color:var(--text);background:color-mix(in srgb,var(--muted) 16%,var(--panel));}

/* Mobile appointment workspace: surface schedules before optional controls.
   The existing appointment cards, inputs, actions and data flows are reused. */
.mobile-appointment-disclosure-row,.mobile-planner-actions-toggle{display:none;}
@media(max-width:620px){
  #appointmentCalendarPanel .admin-calendar-heading{display:none;}
  #appointmentCalendarPanel .admin-calendar-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;margin-bottom:.65rem;}
  #appointmentCalendarPanel .admin-calendar-view-switch{grid-column:1;grid-row:1;justify-self:start;min-width:0;}
  #appointmentCalendarPanel #appointmentCalendarToday{grid-column:2;grid-row:1;justify-self:end;}
  #appointmentCalendarPanel .admin-calendar-nav{grid-column:1 / -1;grid-row:2;min-width:0;}
  .mobile-appointment-disclosure-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-width:0;margin:.3rem 0 .65rem;}
  .mobile-appointment-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex:0 0 auto;min-height:40px;padding:.5rem .8rem;}
  .mobile-appointment-toggle::before{content:'☷';font-size:1.05em;line-height:1;}
  .mobile-appointment-toggle[aria-expanded="true"]{border-color:var(--accent);}
  .mobile-appointment-filter-summary{min-width:0;text-align:right;font-size:.76rem;line-height:1.35;color:var(--muted);overflow-wrap:anywhere;}
  #appointmentCalendarPanel .admin-calendar-filters{display:none;margin-bottom:.65rem;}
  #appointmentCalendarPanel.is-mobile-filters-open .admin-calendar-filters{display:grid;}
  #appointmentRecordsPanel>.records-filter-primary{display:none;}
  #appointmentRecordsPanel .records-more-filters{display:none;}
  #appointmentRecordsPanel.is-mobile-filters-open>.records-filter-primary{display:grid;}
  #appointmentRecordsPanel.is-mobile-filters-open .records-more-filters{display:block;}
  #appointmentRecordsPanel .records-heading-actions{display:flex;justify-content:flex-start;gap:.55rem;margin-bottom:.65rem;}
  #appointmentRecordsPanel .records-more-actions{width:auto;min-width:0;}
  #appointmentRecordsPanel .records-more-actions>summary{width:auto;min-width:0;min-height:40px;}
  #appointmentRecordsPanel .records-more-filters{position:static;}
  #appointmentRecordsPanel .records-more-filters .records-filter-popover{left:0;right:0;width:min(100%,calc(100vw - 2rem));max-height:min(65dvh,540px);overflow-y:auto;}
  #appointmentPlannerPanel .section-heading-row .section-kicker,
  #appointmentRecordsPanel .records-section-heading .section-kicker,
  #appointmentRecurringPanel .recurring-schedule-workspace-heading .section-kicker{display:none;}
  #appointmentPlannerPanel .appointment-planner-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;}
  #appointmentPlannerPanel .appointment-planner-toolbar>#addRowButton,
  #appointmentPlannerPanel .appointment-planner-toolbar>#addGroupSessionButton{grid-column:auto;min-width:0;min-height:42px;padding:.5rem;white-space:normal;}
  #appointmentPlannerPanel .appointment-planner-toolbar>.mobile-planner-actions-toggle{display:block;grid-column:1 / -1;min-height:40px;}
  #appointmentPlannerPanel .appointment-planner-toolbar>#copyPreviousButton,
  #appointmentPlannerPanel .appointment-planner-toolbar>.planner-more-actions{display:none;}
  #appointmentPlannerPanel.is-mobile-actions-open .appointment-planner-toolbar>#copyPreviousButton,
  #appointmentPlannerPanel.is-mobile-actions-open .appointment-planner-toolbar>.planner-more-actions{display:block;grid-column:1 / -1;}
  #appointmentPlannerPanel .panel-actions>p{display:none;}
  #appointmentRecurringPanel .recurring-workspace-intro{display:none;}
  #appointmentRecurringPanel .recurring-schedule-workspace-heading{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:.5rem;margin-bottom:0;}
  #appointmentRecurringPanel .recurring-schedule-workspace-heading>button{justify-self:start;width:auto;min-height:40px;max-width:100%;}
  #appointmentRecurringPanel .recurring-schedule-manager-list{max-height:none;overflow:visible;}
}

/* Keep validation feedback readable inside native modal top layer. */
.contextual-override-error:not([hidden]){display:block;margin:0;padding:.7rem .85rem;border:1px solid var(--danger,#da7180);border-radius:10px;background:var(--panel-soft);color:var(--text);line-height:1.45;overflow-wrap:anywhere}

/* Previous page toasts are background content while the override dialog is open.
   New save errors are shown inside the dialog itself, never under its blurred backdrop. */
body:has(.contextual-override-dialog[open]) .notice-stack{visibility:hidden}

/* Dialogs, login/setup screens and shared responsive shell rules. */
.override-editor{display:grid;gap:0.3rem;min-width:0;max-width:100%;}
.override-editor>*{min-width:0;max-width:100%;}
.override-editor #overrideWindowsArea{min-width:0;max-width:100%;}
.override-editor .table-wrap{width:100%;min-width:0;}
dialog{width:min(460px,calc(100% - 2rem));padding:0;border:1px solid var(--line);border-radius:18px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);}
dialog::backdrop{background:rgba(0,0,0,0.72);}
@media (prefers-reduced-motion:no-preference){.tab-panel.is-active{animation:ledger-panel-enter 180ms ease-out;} dialog[open]{animation:ledger-dialog-enter 180ms ease-out;} dialog[open]::backdrop{animation:ledger-backdrop-enter 180ms ease-out;} dialog[open].is-closing{animation:ledger-dialog-exit 150ms ease-in forwards;} dialog[open].is-closing::backdrop{animation:ledger-backdrop-exit 150ms ease-in forwards;}}
@keyframes ledger-panel-enter{from{opacity:0;transform:translateY(4px);} to{opacity:1;transform:translateY(0);}}
@keyframes ledger-dialog-enter{from{opacity:0;transform:translateY(8px) scale(0.985);} to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes ledger-backdrop-enter{from{opacity:0;} to{opacity:1;}}
@keyframes ledger-dialog-exit{from{opacity:1;transform:translateY(0) scale(1);} to{opacity:0;transform:translateY(6px) scale(0.99);}}
@keyframes ledger-backdrop-exit{from{opacity:1;} to{opacity:0;}}
.dialog-card{padding:1.2rem;display:grid;gap:0.85rem;}
.dialog-heading,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:0.7rem;}
.dialog-actions{justify-content:flex-end;}
.login-body{display:grid;place-items:center;padding:clamp(0.75rem,3vw,1.5rem);}
.login-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:clamp(1.15rem,4vw,1.65rem);box-shadow:var(--shadow);}
.login-logo{display:block;width:min(var(--brand-logo-width-login),72%);height:auto;margin:0 auto 1.8rem;}
.login-home-link{display:block;color:inherit;text-decoration:none;border-radius:8px;line-height:0;}
.login-home-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px;}
.login-card>.eyebrow,.login-card>h1,.login-card>.muted{text-align:center;}
.login-card>.muted{max-width:36rem;margin-left:auto;margin-right:auto;}
.login-form{display:grid;gap:1rem;margin-top:1.35rem;text-align:left;}
.login-product-home{margin:1.1rem 0 0;text-align:center;font-size:.88rem}.login-product-home a{color:var(--muted);text-decoration:none}.login-product-home a:hover,.login-product-home a:focus-visible{color:var(--text);text-decoration:underline;text-underline-offset:3px;}
.setup-body{align-content:center;}
.setup-card{width:min(760px,100%);padding:clamp(1rem,2.4vw,1.5rem);}
.setup-intro{text-align:center;}
.setup-card .setup-logo{width:min(var(--brand-logo-width-login),180px);margin-bottom:0.85rem;}
.setup-intro .eyebrow{margin-bottom:0.25rem;}
.setup-intro h1{margin-bottom:0.25rem;}
.setup-intro .muted{margin:0 auto;}
.setup-form{gap:0.9rem;margin-top:1rem;}
.setup-section{padding-top:0.9rem;border-top:1px solid var(--line);}
.setup-section-heading{display:flex;align-items:baseline;gap:0.55rem;margin-bottom:0.7rem;}
.setup-section-heading .section-kicker{margin:0;}
.setup-section-heading h2{margin:0;font-size:1.05rem;}
.setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.7rem 0.9rem;}
.setup-field-wide{grid-column:1 / -1;}
.setup-help{margin:-0.15rem 0 0;line-height:1.4;}
.setup-email-help{margin-top:-0.25rem;}
.setup-submit{width:100%;margin-top:0.1rem;}
.setup-error{margin:0.9rem 0 0;}
.login-error{padding:0.7rem;background:var(--danger);color:var(--danger-contrast,#2b0c10);border-radius:10px;}
.empty-row{color:var(--muted);text-align:center !important;padding:1.2rem !important;}
@media (max-width:1024px){.topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:0.65rem;} .mobile-nav-toggle{grid-column:1;display:inline-flex;min-width:48px;min-height:48px;align-items:center;justify-content:center;gap:0.45rem;padding:0.55rem 0.7rem;} .mobile-nav-toggle .ui-icon{flex:0 0 32px !important;width:32px !important;height:28px !important;min-width:32px !important;max-width:32px !important;min-height:28px !important;max-height:28px !important;stroke-width:2.6;} .topbar-brand{grid-column:2;display:flex;min-width:0;align-items:center;justify-content:center;gap:0.7rem;} .topbar-logo-link{grid-column:auto;width:min(82px,24vw);flex:0 0 auto;} .topbar-title{grid-column:auto;justify-self:auto;min-width:0;text-align:left;} .topbar-title .eyebrow{display:none;} .topbar h1{max-width:16rem;white-space:normal;font-size:clamp(0.95rem,2.8vw,1.15rem);} .topbar>#logoutButton{grid-column:3;min-height:44px;} .nav-backdrop{position:fixed;inset:0;z-index:54;display:block;background:rgba(0,0,0,0.56);backdrop-filter:blur(2px);} .tabbar{top:0;z-index:55;width:min(320px,86vw);padding:max(0.8rem,env(safe-area-inset-top)) 0.8rem max(1rem,env(safe-area-inset-bottom));border-right:1px solid var(--line);clip-path:inset(0 100% 0 0);visibility:hidden;pointer-events:none;transition:clip-path 180ms ease,visibility 0s linear 180ms;box-shadow:18px 0 40px rgba(0,0,0,0.34);} body.nav-drawer-open{overflow:hidden;} body.nav-drawer-open .tabbar{clip-path:inset(0);visibility:visible;pointer-events:auto;transition-delay:0s;} .nav-drawer-header{display:flex;min-height:56px;align-items:center;justify-content:space-between;gap:0.75rem;padding:0.1rem 0.15rem 0.65rem;margin-bottom:0.15rem;border-bottom:1px solid var(--line);} .nav-drawer-header p{margin-bottom:0.1rem;} .nav-drawer-header strong{font-size:1rem;} .nav-close-button{display:inline-flex;min-width:46px;width:46px;min-height:46px;align-items:center;justify-content:center;padding:0;} .tab-button{min-height:50px;padding:0.72rem 0.8rem;font-size:0.98rem;} .tab-button .ui-icon{flex-basis:19px !important;width:19px !important;height:19px !important;min-width:19px !important;max-width:19px !important;min-height:19px !important;max-height:19px !important;} .shell{width:min(100% - 1.5rem,1180px);margin:0.8rem auto 4rem;}}
@media (hover:none),(pointer:coarse){.tab-button{min-height:50px;} .mobile-nav-toggle,.nav-close-button{min-width:48px;min-height:48px;}}
@media (max-width:760px){.setup-card{width:min(100%,520px);} .setup-grid{grid-template-columns:1fr;} .setup-field-wide{grid-column:1;} .setup-section-heading{align-items:flex-start;flex-direction:column;gap:0.15rem;} .client-add-form,.client-add-form-contact{grid-template-columns:1fr;} .service-types-toolbar{align-items:stretch;} .service-filter-menu,.service-filter-button{width:100%;} .service-filter-button{justify-content:flex-start;} .service-filter-chevron{margin-left:auto;} .service-filter-popover{width:100%;min-width:0;} .service-types-actions{width:100%;display:grid;grid-template-columns:1fr;margin-left:0;} .service-search input{width:100%;} .service-types-actions>button{width:100%;} .service-editor-header{align-items:stretch;flex-direction:column;} .service-editor-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));} .service-editor-actions button{width:100%;} .service-editor-grid{grid-template-columns:1fr;} .service-editor-field,.service-editor-field-wide,.service-editor-field-full{grid-column:1;} .service-segmented-control{width:100%;} .client-toolbar{align-items:stretch;} .client-search{grid-template-columns:1fr;} .client-search input{width:100%;} .client-filter-tabs{width:100%;} .client-filter-tab{flex:1;} .client-list{grid-template-columns:1fr;}     .messages-summary{grid-template-columns:repeat(2,minmax(0,1fr));} .message-reminder-card{grid-template-columns:1fr;gap:0.7rem;} .message-reminder-time{display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem;padding-right:0;padding-bottom:0.6rem;border-right:0;border-bottom:1px solid var(--line);} .message-reminder-heading{display:grid;gap:0.55rem;} .message-reminder-heading .status-badge{justify-self:start;} .message-reminder-meta{display:grid;gap:0.35rem;} .message-reminder-actions{display:grid;grid-template-columns:1fr;} .message-reminder-actions button{width:100%;min-height:48px;}     button{min-height:44px;padding-block:0.55rem;} button.compact,.row-actions button,.client-row button{min-height:40px;}:root{--brand-logo-width-topbar:76px;--brand-logo-width-login:190px;--topbar-side-width-mobile:88px;} .topbar{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:0.45rem;min-height:82px;padding-left:max(0.65rem,env(safe-area-inset-left));padding-right:max(0.65rem,env(safe-area-inset-right));} .mobile-nav-toggle{min-width:48px;width:48px;padding-inline:0;} .mobile-nav-toggle-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;} .topbar-brand{gap:0.5rem;justify-content:flex-start;} .topbar-logo-link{width:min(var(--brand-logo-width-topbar),22vw);} .topbar-title .eyebrow{display:none;} .topbar h1{font-size:clamp(0.86rem,3.6vw,1rem);max-width:10.5rem;white-space:normal;} .topbar>#logoutButton{min-width:0;padding-inline:0.55rem;font-size:0.82rem;} .shell{width:min(100% - 1rem,1180px);margin-top:0.5rem;} .panel{border-radius:14px;} .section-heading-row,.panel-actions{align-items:stretch;flex-direction:column;} .field-inline{min-width:0;} .range-grid,.override-grid,.two-column-panel,.audit-filter-grid{grid-template-columns:1fr;} .audit-day-heading{flex-wrap:wrap;padding-inline:0.8rem;} .audit-day-events{padding-inline:0.75rem;} .audit-event{grid-template-columns:46px 34px minmax(0,1fr);gap:0.55rem;} .audit-event-time{font-size:0.76rem;} .audit-event-primary .status-badge{margin-left:0;} .audit-event-context{display:grid;gap:0.35rem;} .danger-zone{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:1.25rem;} .toolbar button{flex:1 1 145px;} .panel-actions button{width:100%;} .notice-stack{left:max(0.5rem,env(safe-area-inset-left));right:max(0.5rem,env(safe-area-inset-right));bottom:max(0.65rem,env(safe-area-inset-bottom));width:auto;} .notice-toast{grid-template-columns:26px minmax(0,1fr) 28px;justify-self:stretch;width:100%;min-width:0;max-width:none;border-radius:12px;} .planner-wrap,.records-wrap{overflow:visible;border:0;border-radius:0;} .planner-table,.records-table{display:block;width:100%;min-width:0;} .planner-table thead,.records-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;} .planner-table tbody,.records-table tbody{display:grid;gap:0.75rem;} .planner-table tbody tr,.records-table tbody tr{display:grid;min-width:0;gap:0.65rem;padding:0.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);} .planner-table tbody td,.records-table tbody td{display:grid;min-width:0;gap:0.3rem;padding:0;border:0;} .planner-table tbody td[data-label]::before,.records-table tbody td[data-label]::before{content:attr(data-label);color:var(--muted);font-size:0.76rem;font-weight:var(--font-weight-medium);letter-spacing:0.07em;text-transform:uppercase;} .planner-table td input,.planner-table td select,.records-table td input,.records-table td select{width:100%;min-width:0;} .planner-table .row-end,.records-table td[data-label="Date"],.records-table td[data-label="Start"],.records-table td[data-label="End"],.records-table td[data-label="Participant"],.records-table td[data-label="Service"],.records-table td[data-label="Format"],.records-table td[data-label="Status"]{padding:0.65rem 0.72rem;border:1px solid var(--line);border-radius:10px;background:var(--input-bg,#100a0c);} .planner-table .row-end::before,.records-table td[data-label="Date"]::before,.records-table td[data-label="Start"]::before,.records-table td[data-label="End"]::before,.records-table td[data-label="Participant"]::before,.records-table td[data-label="Service"]::before,.records-table td[data-label="Format"]::before,.records-table td[data-label="Status"]::before{margin-bottom:0.1rem;} .records-table tbody tr.records-date-group{display:block;padding:0.25rem 0 0.1rem;border:0;border-radius:0;background:transparent;} .records-table tbody tr.records-date-group th{display:block;padding:0.6rem 0.2rem 0.35rem;border:0;background:transparent;font-size:0.9rem;} .records-table tbody tr.records-date-group th span{min-height:0;} .records-table tbody tr.records-empty{display:block;} .records-table tbody tr.is-complete{border-color:color-mix(in srgb,var(--line) 80%,transparent);background:color-mix(in srgb,var(--panel-soft) 78%,transparent);} .records-table tr.is-complete td[data-label="Date"],.records-table tr.is-complete td[data-label="Start"],.records-table tr.is-complete td[data-label="End"],.records-table tr.is-complete td[data-label="Participant"],.records-table tr.is-complete td[data-label="Staff"],.records-table tr.is-complete td[data-label="Service"],.records-table tr.is-complete td[data-label="Format"]{background:color-mix(in srgb,var(--bg) 78%,var(--panel));border-color:color-mix(in srgb,var(--line) 80%,transparent);} .planner-table .row-actions,.records-table .row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;} .planner-table .row-actions{grid-template-columns:1fr;} .planner-table .row-actions button,.records-table .row-actions button{width:100%;} .planner-table .empty-row,.records-table .empty-row{display:block !important;padding:1rem !important;}}
@media (max-width:430px){:root{--brand-logo-width-topbar:66px;--brand-logo-width-login:170px;--topbar-side-width-mobile:74px;}   .messages-summary{grid-template-columns:1fr;} .topbar{gap:0.3rem;} .topbar-brand{gap:0.35rem;} .topbar h1{font-size:0.82rem;line-height:1.08;max-width:8.6rem;} .topbar>#logoutButton{padding-inline:0.4rem;font-size:0.76rem;} .login-card{border-radius:16px;} .inline-form{grid-template-columns:1fr;} .inline-form button{width:100%;}}

/* Settings/account panels and branding controls. */
.client-panel{display:grid;gap:1rem;}
.standalone-danger-zone{border-left:0;padding-left:clamp(1rem,3vw,1.5rem);max-width:680px;}
.account-panel{display:grid;gap:1.2rem;width:100%;max-width:none;}
.account-panel>div:first-child,.account-panel>p{max-width:760px;}
.account-form{display:grid;gap:0.85rem;width:100%;max-width:620px;}
.account-form-field{display:grid;gap:0.42rem;min-width:0;}
.account-form-field>label{margin:0;}
.field-label-line{display:block;min-width:0;}
.field-label-line>.muted{white-space:nowrap;}
.account-form button{justify-self:start;}
@media (max-width:760px){.account-form button{width:100%;}}
.settings-section{display:grid;gap:1rem;padding:1.15rem;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft);}
.settings-section-heading{max-width:760px;}
.settings-section-heading>*:last-child{margin-bottom:0;}
.settings-note{max-width:760px;margin-bottom:0;}
.branding-asset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:1080px;}
.branding-asset-card{display:grid;align-content:start;gap:1rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);}
.branding-asset-heading h4{margin-bottom:0.25rem;font-size:1rem;}
.branding-logo-preview-shell,.branding-favicon-preview-shell{display:grid;gap:0.7rem;justify-items:center;padding:0.9rem;border:1px dashed var(--line);border-radius:14px;background:var(--bg);}
.branding-preview-label{justify-self:start;color:var(--muted);font-size:0.72rem;font-weight:var(--font-weight-medium);letter-spacing:0.08em;text-transform:uppercase;}
.branding-preview-size{color:var(--muted);font-size:0.72rem;}
.branding-logo-slot{display:grid;place-items:center;width:142px;height:70px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--chrome-bg);}
.branding-logo-slot img{display:block;max-width:142px;max-height:70px;width:auto;height:auto;object-fit:contain;}
#brandingLogoPreview.is-local-preview{filter:none !important;}
.branding-upload-controls{display:grid;gap:0.75rem;min-width:0;}
.branding-preview-note{margin:-0.25rem 0 0;}
.branding-browser-tab-preview{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:0.55rem;align-items:center;width:min(100%,320px);padding:0.55rem 0.7rem;border:1px solid var(--line);border-radius:10px;background:var(--chrome-bg);color:var(--text);font-size:0.82rem;}
.branding-browser-tab-preview img{width:24px;height:24px;object-fit:contain;}
.branding-browser-tab-preview span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.branding-favicon-sizes{display:flex;align-items:end;justify-content:center;gap:1.35rem;min-height:92px;}
.branding-favicon-sizes>span{display:grid;justify-items:center;gap:0.35rem;color:var(--muted);}
.branding-favicon-sizes img{display:block;object-fit:contain;}
.branding-favicon-sizes small{font-size:0.68rem;white-space:nowrap;}
.settings-toolbar{margin-top:0;}
.accent-control{display:flex;align-items:center;gap:0.75rem;width:fit-content;max-width:100%;}
.accent-control input[type="color"]{width:64px;min-width:64px;height:44px;padding:0.2rem;cursor:pointer;}
.accent-control output{min-width:7ch;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.88rem;text-transform:uppercase;}
@media (max-width:760px){.settings-section{padding:0.9rem;} .branding-asset-grid{grid-template-columns:1fr;} .branding-asset-card{padding:0.85rem;} .settings-toolbar{display:grid;grid-template-columns:1fr;width:100%;} .settings-toolbar button{width:100%;}}
[hidden]{display:none !important;}
textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:0.75rem;resize:vertical;background:var(--input-bg,#100a0c);color:var(--text);font:inherit;line-height:1.5;}

.location-management-section{max-width:none;}
.location-management-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;max-width:1080px;}
.location-management-heading>.settings-section-heading{min-width:0;}
.location-management-actions{display:flex;gap:.55rem;align-items:center;justify-content:flex-end;flex-wrap:wrap;flex:0 0 auto;}
.location-management-actions>button{white-space:nowrap;}
.location-management-actions>button:disabled{cursor:not-allowed;opacity:.58;}
.location-management-heading>button{flex:0 0 auto;}
.session-location-summary{margin:0;}
.session-location-list{max-width:1080px;}
.session-location-card{grid-template-rows:auto;}
.session-location-avatar{border-radius:12px;}
.session-location-card-main{display:grid;gap:.28rem;}
.session-location-card-meta{color:var(--muted);font-size:.82rem;line-height:1.35;overflow-wrap:anywhere;}
.session-location-card-meta strong{color:var(--text);font-weight:var(--font-weight-medium);}
.session-location-card-details{display:-webkit-box;min-width:0;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--muted);font-size:.84rem;line-height:1.35;overflow-wrap:anywhere;}
.session-location-card-details.is-missing{font-style:italic;}
.session-location-card .status-badge{margin-top:.2rem;}
.session-location-menu .client-menu-item:disabled{opacity:.45;cursor:not-allowed;background:transparent;}
.session-location-dialog{width:min(700px,calc(100vw - 2rem));max-width:700px;}
.session-location-dialog-card{width:100%;}
.session-location-editor-grid{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(240px,1.3fr);gap:.85rem 1rem;align-items:start;}
.session-location-editor-grid>label{display:grid;gap:.35rem;min-width:0;}
.session-location-editor-grid>#sessionLocationTimeZoneField,.session-location-editor-grid>.session-location-details-field{grid-column:1/-1;}
@media(max-width:760px){
  .location-management-heading{display:grid;grid-template-columns:1fr;}
  .location-management-actions{display:grid;grid-template-columns:1fr;justify-content:stretch;}
  .location-management-actions>button{width:100%;}
  .location-management-heading>button{width:100%;}
  .session-location-dialog{width:calc(100vw - 1rem);max-width:none;}
  .session-location-editor-grid{grid-template-columns:1fr;}
  .session-location-editor-grid>#sessionLocationTimeZoneField,.session-location-editor-grid>.session-location-details-field{grid-column:1;}
}


.calendar-integrations-section{display:grid;gap:1rem;}
.calendar-integration-principle{display:grid;gap:.25rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 90%,var(--accent) 10%);}
.calendar-integration-principle span{color:var(--muted);font-size:.9rem;line-height:1.5;}
.calendar-integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:1120px;}
.calendar-integration-card{display:grid;align-content:start;gap:.85rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--panel);}
.calendar-provider-main{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:.85rem;align-items:center;min-width:0;}
.calendar-provider-mark{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);color:var(--text);}
.calendar-provider-mark svg{display:block;width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
.calendar-provider-mark svg rect{fill:none;}
.calendar-provider-copy{min-width:0;}
.calendar-provider-copy h4{margin:0 0 .25rem;font-size:1rem;}
.calendar-provider-copy p{margin:0;line-height:1.4;}
.calendar-provider-primary-action{display:grid;gap:.45rem;justify-items:end;align-items:center;}
.calendar-provider-primary-action button{min-width:94px;}
.calendar-integration-card .status-badge{white-space:nowrap;}
.calendar-integration-card .status-badge.is-connected{border-color:color-mix(in srgb,#2f9e62 48%,var(--line));background:color-mix(in srgb,#2f9e62 12%,transparent);}
.calendar-integration-card .status-badge.is-attention{border-color:color-mix(in srgb,#d18b2c 55%,var(--line));background:color-mix(in srgb,#d18b2c 12%,transparent);}
.calendar-integration-account{display:grid;gap:.18rem;padding:.72rem .8rem;border-radius:10px;background:var(--panel-soft);}
.calendar-integration-account strong,.calendar-integration-account span{overflow-wrap:anywhere;}
.calendar-integration-secondary-actions{display:flex;flex-wrap:wrap;gap:.55rem;}
.calendar-integration-secondary-actions button{min-height:40px;}
.calendar-integration-scope{margin:0;}
.calendar-integration-technical{border-top:1px solid var(--line);padding-top:.65rem;}
.calendar-integration-technical summary{cursor:pointer;font-size:.85rem;color:var(--muted);}
.calendar-integration-technical code{display:block;margin-top:.45rem;padding:.55rem .65rem;border-radius:8px;overflow-wrap:anywhere;white-space:normal;background:var(--input-bg);font-size:.78rem;}
.calendar-integration-card.is-unconfigured .calendar-integration-technical{display:none;}
@media(max-width:760px){
  .calendar-integration-grid{grid-template-columns:1fr;}
  .calendar-provider-main{grid-template-columns:48px minmax(0,1fr);align-items:start;}
  .calendar-provider-primary-action{grid-column:1/-1;grid-template-columns:auto 1fr;justify-items:start;align-items:center;}
  .calendar-provider-primary-action button{justify-self:end;width:auto;}
  .calendar-integration-secondary-actions{display:grid;grid-template-columns:1fr;}
  .calendar-integration-secondary-actions button{width:100%;}
}

.organization-default-duration-form .organization-default-duration-control{width:min(100%,190px);}
.organization-default-duration-form .organization-default-duration-control input{min-width:0;}
.organization-default-duration-form .organization-month-visible-appointments-field{justify-items:start;}
.organization-default-duration-form .organization-month-visible-appointments-field select{width:110px;max-width:100%;}
@media(max-width:520px){.organization-default-duration-form .organization-default-duration-control{width:100%;}}

.environment-status-section{max-width:none;}
.environment-status-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.environment-status-heading>div{min-width:0;}
.environment-readiness-banner{display:grid;gap:.22rem;margin-top:.9rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.environment-readiness-banner.is-ready{border-color:color-mix(in srgb,#2f9e62 48%,var(--line));background:color-mix(in srgb,#2f9e62 10%,var(--panel));}
.environment-readiness-banner.is-attention{border-color:color-mix(in srgb,#d18b2c 55%,var(--line));background:color-mix(in srgb,#d18b2c 10%,var(--panel));}
.environment-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin-top:.85rem;}
.environment-summary-card{display:grid;gap:.25rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.environment-summary-card span{color:var(--muted);font-size:.78rem;}
.environment-summary-card strong{font-size:1.05rem;overflow-wrap:anywhere;}
.environment-filter-bar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,.25fr) minmax(180px,.35fr);gap:.75rem;align-items:end;margin-top:.9rem;}
.environment-filter-bar label{display:grid;gap:.35rem;}
.environment-table-wrap{width:100%;overflow:auto;margin-top:.85rem;border:1px solid var(--line);border-radius:12px;}
.environment-status-table{width:100%;min-width:980px;border-collapse:collapse;}
.environment-status-table th,.environment-status-table td{padding:.7rem .75rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.environment-status-table th{position:sticky;top:0;background:var(--panel);z-index:1;font-size:.78rem;color:var(--muted);}
.environment-status-table tr:last-child td{border-bottom:0;}
.environment-status-table td:first-child{min-width:230px;}
.environment-status-table td:nth-child(2){min-width:300px;}
.environment-status-table td:nth-child(5){min-width:250px;}
.environment-status-table td>span,.environment-status-table td>small{display:block;margin-top:.25rem;line-height:1.4;}
.environment-status-table code,.environment-unrecognized-list code{font-size:.78rem;overflow-wrap:anywhere;white-space:normal;}
.environment-secret-label{display:inline-block!important;margin:.3rem 0 0 .4rem!important;padding:.1rem .4rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.68rem!important;vertical-align:middle;}
.environment-status-badge{display:inline-flex!important;width:fit-content;padding:.2rem .5rem;border:1px solid var(--line);border-radius:999px;font-size:.72rem!important;line-height:1.25!important;}
.environment-status-badge.is-ok{border-color:color-mix(in srgb,#2f9e62 52%,var(--line));background:color-mix(in srgb,#2f9e62 12%,transparent);}
.environment-status-badge.is-error{border-color:color-mix(in srgb,#d74a4a 55%,var(--line));background:color-mix(in srgb,#d74a4a 12%,transparent);}
.environment-status-badge.is-warning{border-color:color-mix(in srgb,#d18b2c 55%,var(--line));background:color-mix(in srgb,#d18b2c 12%,transparent);}
.environment-status-badge.is-default{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 9%,transparent);}
.environment-status-badge.is-muted{color:var(--muted);background:var(--panel-soft);}
.environment-unrecognized-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;}
.environment-unrecognized-list code{padding:.35rem .5rem;border:1px solid color-mix(in srgb,#d18b2c 55%,var(--line));border-radius:8px;background:color-mix(in srgb,#d18b2c 8%,var(--panel));}
@media(max-width:760px){
  .environment-status-heading{display:grid;grid-template-columns:1fr;}
  .environment-status-heading button{width:100%;}
  .environment-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .environment-filter-bar{grid-template-columns:1fr;}
}
.notification-demo-settings-lock{min-width:0;margin:0;padding:0;border:0;}

.access-role-settings{display:grid;gap:1rem;max-width:none}
.access-role-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.access-role-heading>div{min-width:0}
.access-role-principle,.access-role-demo-note{display:grid;gap:.25rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);line-height:1.45}
.access-role-demo-note{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
.access-role-policy-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;align-items:center;padding:.95rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}
.access-role-policy-card h4{margin:.1rem 0 .25rem;font-size:1rem}
.access-role-policy-toggle{display:flex;align-items:center;gap:.55rem;font-weight:700;white-space:nowrap}
.access-role-policy-toggle input{width:auto;min-width:0;margin:0;accent-color:var(--accent)}
.access-role-policy-actions{grid-column:1/-1;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.access-role-policy-card>p{grid-column:1/-1;margin:0}
.access-authentication-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.access-authentication-card{display:grid;gap:.25rem;padding:.85rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);min-width:0}
.access-authentication-card>span{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.access-authentication-card>strong{font-size:1rem;overflow-wrap:anywhere}
.access-authentication-card>small{line-height:1.4}
.access-auth-status-ready{color:color-mix(in srgb,#2f9e62 80%,var(--text))}
.access-auth-status-off{color:var(--muted)}
.access-role-matrix-section{display:grid;gap:.75rem}
.access-role-matrix-section h4{margin:.12rem 0 .25rem;font-size:1rem}
.access-role-matrix-scroll{width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px}
.access-role-matrix{width:100%;min-width:1060px;border-collapse:collapse;background:var(--panel)}
.access-role-matrix th,.access-role-matrix td{padding:.72rem .75rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.access-role-matrix tr:last-child th,.access-role-matrix tr:last-child td{border-bottom:0}
.access-role-matrix thead th{background:var(--panel-soft);font-size:.78rem;color:var(--muted)}
.access-role-matrix thead th:first-child{min-width:245px}
.access-role-column-title{display:block;color:var(--text);font-size:.85rem}
.access-role-matrix thead small{display:block;margin-top:.24rem;max-width:220px;font-weight:400;line-height:1.35;text-transform:none;letter-spacing:0}
.access-role-value{display:inline-flex;max-width:210px;line-height:1.35}
.access-role-value-none{color:var(--muted)}
.access-role-notes{display:grid;gap:.25rem;padding-top:.1rem}
.access-role-notes p{margin:0;line-height:1.45}
@media(max-width:760px){.access-role-heading{display:grid;grid-template-columns:1fr}.access-authentication-grid{grid-template-columns:1fr}.access-role-policy-card{grid-template-columns:1fr}.access-role-policy-toggle,.access-role-policy-actions,.access-role-policy-card>p{grid-column:1}}

/* Optional bookable Resource configuration under physical Locations. */
.location-resources-dialog{width:min(860px,calc(100vw - 2rem));max-width:860px;max-height:calc(100dvh - 2rem);overflow:hidden;}
.location-resources-dialog-card{width:100%;max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;}
.location-resource-form{display:grid;gap:.85rem;padding:.9rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.location-resource-editor-grid{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,.55fr) minmax(150px,.55fr);gap:.8rem;align-items:start;}
.location-resource-editor-grid>label{display:grid;gap:.35rem;min-width:0;}
.location-resource-form-actions{justify-content:flex-end;margin:0;}
.location-resource-list-heading{display:flex;align-items:end;justify-content:space-between;gap:.75rem;margin-top:.2rem;}
.location-resource-list-heading h3{margin:0 0 .18rem;}
.location-resource-toolbar{align-items:center;margin:.35rem 0 .15rem;}
.location-resource-toolbar .client-search{margin-left:auto;}
.location-resource-list{display:grid;gap:.65rem;}
.location-resource-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;}
.location-resource-card-main{display:grid;gap:.18rem;min-width:0;}
.location-resource-card-main .client-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.location-resource-meta{color:var(--muted);font-size:.84rem;line-height:1.35;overflow-wrap:break-word;}
.location-resource-card.inactive .location-resource-avatar,.location-resource-card.inactive .location-resource-card-main{opacity:.64;}
@media(max-width:760px){
  .location-resources-dialog{width:calc(100vw - 1rem);max-width:none;max-height:calc(100dvh - 1rem);}
  .location-resources-dialog-card{max-height:calc(100dvh - 1rem);padding:1rem;}
  .location-resource-editor-grid{grid-template-columns:1fr;}
  .location-resource-toolbar{align-items:stretch;}
  .location-resource-toolbar .client-search{margin-left:0;}
}

/* Reports, charts, print layout and report summaries. */
.report-controls-panel{display:grid;gap:1rem;}
.report-control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.75rem;}
.report-date-range-fields{grid-column:span 2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;min-width:0;}
.report-date-range-fields>label{min-width:0;}

/* Keep the Reports filter bar compact on pointer/desktop layouts without reducing touch targets. */
.report-control-grid>label,.report-date-range-fields>label{gap:0.3rem;}
.report-control-grid select,.report-control-grid input[type="date"]{height:38px;min-height:38px;padding:0.42rem 0.58rem;font-size:0.88rem;}
@media (max-width:760px),(hover:none),(pointer:coarse){
  .report-control-grid select,.report-control-grid input[type="date"]{height:44px;min-height:44px;padding:0.55rem 0.65rem;font-size:1rem;}
}
.report-sheet{--report-ink:#24191d;--report-muted:#6e6065;--report-line:#d9cfd2;--report-paper:#fffdfd;--chart-fill:#7f5d67;width:min(100%,900px);margin-left:clamp(0px,calc((100% - 900px) * 0.4),280px);margin-right:0;font-size:16px;padding:clamp(1.2rem,3vw,2rem);border-radius:18px;background:var(--report-paper);color:var(--report-ink);box-shadow:var(--shadow);}
.report-header{display:grid;grid-template-columns:125px minmax(0,1fr);gap:1.2rem;align-items:center;padding-bottom:1rem;border-bottom:1px solid var(--report-line);}
.report-header img{width:118px;height:auto;opacity:1;filter:brightness(0)!important;}
.report-header h2{margin:0.1rem 0 0.2rem;font-size:1.7rem;line-height:1.15;color:var(--report-ink);}
.report-period{margin:0;color:var(--report-muted);}
.report-overline{margin:0 0 0.2rem;color:#76545e;font-size:0.7rem;font-weight:var(--font-weight-bold);letter-spacing:0.11em;text-transform:uppercase;}
.report-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.65rem;margin:1rem 0;}
.metric-card{display:grid;align-content:start;gap:0.15rem;min-height:88px;padding:0.75rem;border:1px solid var(--report-line);border-radius:12px;background:rgba(127,93,103,0.045);}
.metric-card span{color:var(--report-muted);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;}
.metric-card strong{color:var(--report-ink);font-size:1.25rem;line-height:1.2;}
.metric-card small{color:var(--report-muted);line-height:1.25;}
.report-chart-section{border:1px solid var(--report-line);border-radius:14px;padding:0.9rem;background:#fff;}
.report-chart-section h3{color:var(--report-ink);font-size:1rem;}
.report-section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:0.45rem;}
#reportSheet .data-table th{background:#2a1f22;color:#f6ebee;font-size:0.76rem;font-weight:var(--font-weight-bold);line-height:1.25;letter-spacing:0.065em;}
.svg-chart{width:100%;min-height:280px;}
.svg-chart svg{display:block;width:100%;height:auto;overflow:visible;}
.chart-grid{stroke:#ddd4d7;stroke-width:1;}
.chart-axis-label,.chart-category{fill:#76686d;font:12px var(--font-family-ui);}
.chart-value{fill:#3b2a30;font:600 12px var(--font-family-ui);}
.chart-bar{fill:var(--chart-fill);}
.chart-empty{display:grid;place-items:center;min-height:250px;color:var(--report-muted);}
.report-lower-grid{display:grid;grid-template-columns:1.08fr 0.92fr;gap:0.8rem;margin-top:0.8rem;}
.report-lower-grid.client-notes-only{grid-template-columns:1fr;}
.service-performance-grid{display:grid;grid-template-columns:1fr;gap:0.9rem;align-items:start;}
.report-breakdown-table{min-width:620px;}
.report-breakdown-table th,.report-breakdown-table td{white-space:nowrap;}
.report-breakdown-table th:first-child,.report-breakdown-table td:first-child{white-space:normal;min-width:180px;}
.instructor-breakdown-print{display:none;}
.instructor-print-block{display:grid;gap:0.28rem;min-width:0;}
.instructor-print-block+.instructor-print-block{margin-top:0.5rem;}
.instructor-print-range{margin:0;color:var(--report-muted);font-size:0.67rem;font-weight:var(--font-weight-bold);letter-spacing:0.045em;text-transform:uppercase;}
.instructor-print-table{width:100%;min-width:0;table-layout:fixed;}
.instructor-print-table th:first-child,.instructor-print-table td:first-child{width:28%;}
.instructor-print-table th:not(:first-child),.instructor-print-table td:not(:first-child){width:12%;text-align:center;}
.service-performance-section .composition-chart{margin:0.55rem 0 0.15rem;}
.service-performance-section .doughnut-wrap{grid-template-columns:1fr;justify-items:center;gap:0.65rem;}
.service-performance-section .doughnut-svg-wrap{width:150px;}
.service-performance-section .composition-legend{width:min(100%,760px);grid-template-columns:repeat(2,minmax(0,1fr));gap:0.5rem 1.1rem;}
.service-performance-section .composition-legend-row{display:flex;align-items:center;justify-content:flex-start;gap:0.45rem;min-width:0;}
.service-performance-section .composition-legend-row:only-child{grid-column:1 / -1;}
.service-performance-section .composition-legend-row>span:nth-child(2){min-width:0;overflow-wrap:anywhere;}
.service-performance-section .composition-legend-row strong{flex:0 0 auto;margin-left:0.15rem;white-space:nowrap;}
.service-performance-grid>.table-wrap{min-width:0;overflow-x:visible;}
.service-performance-table{width:100%;min-width:0;table-layout:auto;}
.service-performance-table th,.service-performance-table td{min-width:0;white-space:normal;overflow-wrap:normal;word-break:normal;vertical-align:top;}
.service-performance-table th:nth-child(1),.service-performance-table td:nth-child(1){width:14%;min-width:0;}
.service-performance-table th:nth-child(2),.service-performance-table td:nth-child(2){width:38%;min-width:0;}
.service-performance-table th:nth-child(3),.service-performance-table td:nth-child(3){width:12%;white-space:nowrap;}
.service-performance-table th:nth-child(4),.service-performance-table td:nth-child(4){width:24%;white-space:normal;}
.service-performance-table th:nth-child(5),.service-performance-table td:nth-child(5){width:12%;white-space:nowrap;}
.contribution-section{min-height:225px;}
.composition-chart{margin-top:0.65rem;}
.doughnut-wrap{display:grid;grid-template-columns:145px minmax(0,1fr);gap:1rem;align-items:center;}
.doughnut-svg-wrap{width:140px;aspect-ratio:1;display:grid;place-items:center;position:relative;}
.doughnut-svg{grid-area:1 / 1;width:100%;height:100%;}
.doughnut-track{fill:none;stroke:#eee7e9;stroke-width:18;}
.doughnut-slice{fill:none;stroke-width:18;stroke-linecap:butt;}
.doughnut-svg-wrap>span{grid-area:1 / 1;z-index:1;display:grid;text-align:center;color:var(--report-ink);font-size:1.25rem;font-weight:var(--font-weight-bold);line-height:1.05;}
.doughnut-svg-wrap small{color:var(--report-muted);font-size:0.65rem;font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:0.06em;}
.composition-legend{display:grid;gap:0.4rem;min-width:0;}
.composition-legend-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:0.45rem;align-items:center;color:var(--report-muted);font-size:0.75rem;line-height:1.2;}
.composition-legend-row strong{color:var(--report-ink);font-size:0.72rem;white-space:nowrap;}
.legend-swatch{width:9px;height:9px;border-radius:50%;}
.palette-stroke-0{stroke:#7f5d67;}
.palette-fill-0{background:#7f5d67;}
.palette-stroke-1{stroke:#c3a8b0;}
.palette-fill-1{background:#c3a8b0;}
.palette-stroke-2{stroke:#5c7580;}
.palette-fill-2{background:#5c7580;}
.palette-stroke-3{stroke:#9b8465;}
.palette-fill-3{background:#9b8465;}
.palette-stroke-4{stroke:#6f7d65;}
.palette-fill-4{background:#6f7d65;}
.palette-stroke-5{stroke:#8a6c90;}
.palette-fill-5{background:#8a6c90;}
.palette-stroke-6{stroke:#a97873;}
.palette-fill-6{background:#a97873;}
.palette-stroke-7{stroke:#7f8188;}
.palette-fill-7{background:#7f8188;}
.palette-stroke-8{stroke:#d0c0a3;}
.palette-fill-8{background:#d0c0a3;}
.report-notes{min-height:225px;padding:0.9rem;border:1px solid var(--report-line);border-radius:14px;background:#fff;}
#reportNotesText{white-space:pre-wrap;color:var(--report-ink);font-size:0.86rem;line-height:1.55;}
.year-matrix-section{margin-top:0.8rem;padding:0.8rem;border:1px solid var(--report-line);border-radius:14px;background:#fff;}
.year-matrix{width:100%;min-width:690px;border-collapse:collapse;color:var(--report-ink);font-size:0.68rem;}
.year-matrix th,.year-matrix td{padding:0.25rem 0.3rem;text-align:center;border-bottom:1px solid #eee7e9;}
.year-matrix th{color:var(--report-muted);}
.report-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:0.9rem;padding-top:0.65rem;border-top:1px solid var(--report-line);color:var(--report-muted);font-size:0.67rem;}
.lesson-package-report-section{margin-top:0.8rem;}
.lesson-package-report-table{min-width:860px;}
.lesson-package-report-table th,.lesson-package-report-table td,.lesson-package-history-table th,.lesson-package-history-table td{vertical-align:top;}
.lesson-package-history-table{min-width:900px;}
.report-table-subtext{display:block;margin-top:0.2rem;line-height:1.3;}
.report-sheet.report-package .report-metrics{grid-template-columns:repeat(3,minmax(0,1fr));}
.summary-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.7rem;margin-top:1rem;}
.data-summary-panel .metric-card{background:var(--panel-soft);border-color:var(--line);}
.data-summary-panel .metric-card span,.data-summary-panel .metric-card small{color:var(--muted);}
.data-summary-panel .metric-card strong{color:var(--text);}
.file-field{margin-top:1rem;}
.import-preview{padding:0.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.import-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.55rem;margin-bottom:0.8rem;}
.import-stat-grid>div{display:grid;gap:0.1rem;padding:0.6rem;border:1px solid var(--line);border-radius:9px;}
.import-stat-grid span{font-size:0.78rem;color:var(--muted);}
.import-stat-grid strong{font-size:1.15rem;color:var(--text);}
.import-warning{color:var(--danger);}
@media (max-width:900px){.report-control-grid,.report-metrics,.report-sheet.report-package .report-metrics,.summary-cards{grid-template-columns:repeat(2,minmax(0,1fr));} .report-lower-grid{grid-template-columns:1fr;} .service-performance-grid{grid-template-columns:1fr;} .service-performance-grid>.table-wrap{overflow-x:visible;}}
@media (max-width:600px){.report-control-grid,.report-metrics,.report-sheet.report-package .report-metrics,.summary-cards,.import-stat-grid{grid-template-columns:1fr;} .report-sheet{padding:1rem;border-radius:12px;} .report-header{grid-template-columns:84px minmax(0,1fr);gap:0.7rem;} .report-header img{width:78px;} .report-header h2{font-size:1.25rem;} .doughnut-wrap{grid-template-columns:110px minmax(0,1fr);} .doughnut-svg-wrap{width:105px;} .service-performance-section .composition-legend{grid-template-columns:1fr;} .service-performance-section .composition-legend-row:only-child{grid-column:auto;}}
@page{size:A4 portrait;margin:8mm;background:#fff;}

@media (max-width:900px){.report-date-range-fields{grid-column:1/-1;}}
@media (max-width:520px){.report-date-range-fields{grid-template-columns:1fr;}}
@media print{:root{color-scheme:light!important;background:#fff!important;} html,body{width:210mm;min-height:297mm;background:#fff !important;color:#24191d !important;} body>.topbar,body>.tabbar,body>.nav-backdrop{display:none !important;} .shell{width:auto;margin:0;} .shell>*{display:none !important;} #tab-reports{display:block !important;} #tab-reports>*{display:none !important;} #reportSheet{display:block !important;width:100%;margin:0;padding:0;border-radius:0;box-shadow:none;} .no-print,.notice-stack{display:none !important;} .report-header img{opacity:1;filter:brightness(0)!important;} .report-chart-section,.report-notes,.year-matrix-section,.metric-card{break-inside:avoid;} .report-sheet.report-package{font-size:12px;} .report-sheet.report-package .report-header{grid-template-columns:88px minmax(0,1fr);gap:0.65rem;padding-bottom:0.45rem;} .report-sheet.report-package .report-header img{width:82px;} .report-sheet.report-package .report-header h2{font-size:1.25rem;} .report-sheet.report-package .report-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:0.35rem;margin:0.45rem 0;} .report-sheet.report-package .metric-card{min-height:50px;padding:0.35rem 0.42rem;} .report-sheet.report-package .lesson-package-report-section{padding:0.5rem;margin-top:0.45rem;} .report-sheet.report-package .lesson-package-report-table,.report-sheet.report-package .lesson-package-history-table{min-width:0;font-size:0.62rem;} .svg-chart{min-height:0;} .report-footer{margin-top:0.55rem;} .report-sheet.report-client{font-size:13px;} .report-sheet.report-client .report-header{grid-template-columns:88px minmax(0,1fr);gap:0.65rem;padding-bottom:0.45rem;} .report-sheet.report-client .report-header img{width:82px;} .report-sheet.report-client .report-header h2{font-size:1.25rem;} .report-sheet.report-client .report-period{font-size:0.78rem;} .report-sheet.report-client .report-metrics{gap:0.35rem;margin:0.45rem 0;} .report-sheet.report-client .metric-card{min-height:54px;padding:0.38rem 0.45rem;border-radius:8px;} .report-sheet.report-client .metric-card span{font-size:0.58rem;} .report-sheet.report-client .metric-card strong{font-size:0.95rem;} .report-sheet.report-client .metric-card small{font-size:0.62rem;} .report-sheet.report-client .report-chart-section{padding:0.5rem;border-radius:9px;} .report-sheet.report-client .report-section-heading{margin-bottom:0.2rem;} .report-sheet.report-client .report-section-heading h3{margin-bottom:0;} .report-sheet.report-client .svg-chart{min-height:0;} .report-sheet.report-client .report-lower-grid{margin-top:0.45rem;} .report-sheet.report-client .report-notes{min-height:78px;padding:0.5rem;border-radius:9px;} .report-sheet.report-client #reportNotesText{font-size:0.72rem;line-height:1.35;} .report-sheet.report-client .report-footer{margin-top:0.35rem;padding-top:0.35rem;font-size:0.58rem;} *{print-color-adjust:exact;-webkit-print-color-adjust:exact;}}
.report-sheet.report-no-notes .report-lower-grid{grid-template-columns:1fr;}
.report-sheet.report-no-notes .doughnut-wrap{grid-template-columns:180px minmax(0,1fr);}
.report-sheet.report-no-notes .doughnut-svg-wrap{width:165px;}

/* Phase 3: report readability, responsive package tables and print/PDF correction. */
.lesson-package-report-section .table-wrap{overflow-x:visible;}
.lesson-package-report-table,.lesson-package-history-table{width:100%;min-width:0;table-layout:fixed;}
.lesson-package-report-table th,.lesson-package-report-table td,.lesson-package-history-table th,.lesson-package-history-table td{min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:normal;}
#lessonPackageSummarySection .lesson-package-report-table th:nth-child(1),#lessonPackageSummarySection .lesson-package-report-table td:nth-child(1){width:22%;}
#lessonPackageSummarySection .lesson-package-report-table th:nth-child(2),#lessonPackageSummarySection .lesson-package-report-table td:nth-child(2){width:15%;}
#lessonPackageSummarySection .lesson-package-report-table th:nth-child(3),#lessonPackageSummarySection .lesson-package-report-table td:nth-child(3){width:10%;}
#lessonPackageSummarySection .lesson-package-report-table th:nth-child(4),#lessonPackageSummarySection .lesson-package-report-table td:nth-child(4){width:15%;}
#lessonPackageSummarySection .lesson-package-report-table th:nth-child(n+5),#lessonPackageSummarySection .lesson-package-report-table td:nth-child(n+5){width:9.5%;}
#lessonPackageParticipantSection .lesson-package-report-table th:nth-child(1),#lessonPackageParticipantSection .lesson-package-report-table td:nth-child(1){width:24%;}
#lessonPackageParticipantSection .lesson-package-report-table th:nth-child(2),#lessonPackageParticipantSection .lesson-package-report-table td:nth-child(2){width:15%;}
#lessonPackageParticipantSection .lesson-package-report-table th:nth-child(3),#lessonPackageParticipantSection .lesson-package-report-table td:nth-child(3){width:25%;}
#lessonPackageParticipantSection .lesson-package-report-table th:nth-child(n+4),#lessonPackageParticipantSection .lesson-package-report-table td:nth-child(n+4){width:12%;}

#lessonPackageHistorySection .lesson-package-history-table th:nth-child(1),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(1){width:15%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(2),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(2){width:11%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(3),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(3){width:12%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(4),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(4){width:9%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(5),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(5){width:17%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(6),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(6){width:18%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(7),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(7){width:9%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(8),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(8){width:9%;white-space:nowrap;overflow-wrap:normal;word-break:normal;}

@media (max-width:700px){
  .report-sheet.report-package{font-size:15px;}
  .report-sheet.report-package .lesson-package-report-section{padding:0.8rem;}
  .report-sheet.report-package .report-section-heading{align-items:start;}
  .lesson-package-report-section .table-wrap{overflow:visible;border:0;border-radius:0;}
  .lesson-package-report-table,.lesson-package-history-table{display:block;width:100%;table-layout:auto;}
  .lesson-package-report-table thead,.lesson-package-history-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  .lesson-package-report-table tbody,.lesson-package-history-table tbody{display:grid;gap:0.7rem;}
  .lesson-package-report-table tbody tr,.lesson-package-history-table tbody tr{display:block;padding:0.25rem 0.75rem;border:1px solid var(--report-line);border-radius:10px;background:#fff;}
  .lesson-package-report-table tbody td,.lesson-package-history-table tbody td{display:block;width:auto!important;padding:0.55rem 0;border:0;border-bottom:1px solid #eee7e9;}
  .lesson-package-report-table tbody td:last-child,.lesson-package-history-table tbody td:last-child{border-bottom:0;}
  .lesson-package-report-table tbody .package-report-group-row,.lesson-package-history-table tbody .package-report-group-row{padding:0;border:0;border-radius:0;background:transparent;}
  .lesson-package-report-table tbody .package-report-group-row td,.lesson-package-history-table tbody .package-report-group-row td{padding:0.5rem 0.65rem!important;border:1px solid var(--report-line)!important;border-radius:8px;}
  .lesson-package-report-table tbody .package-report-cycle-group td,.lesson-package-history-table tbody .package-report-cycle-group td{margin-top:-0.35rem;padding:0.42rem 0.65rem!important;}
  .lesson-package-report-table tbody td::before,.lesson-package-history-table tbody td::before{display:block;margin-bottom:0.15rem;color:var(--report-muted);font-size:0.68rem;font-weight:var(--font-weight-bold);letter-spacing:0.06em;text-transform:uppercase;}
  #lessonPackageSummarySection tbody td:nth-child(1)::before{content:"Package";}
  #lessonPackageSummarySection tbody td:nth-child(2)::before{content:"Basis";}
  #lessonPackageSummarySection tbody td:nth-child(3)::before{content:"Status";}
  #lessonPackageSummarySection tbody td:nth-child(4)::before{content:"Progress";}
  #lessonPackageSummarySection tbody td:nth-child(5)::before{content:"Completed";}
  #lessonPackageSummarySection tbody td:nth-child(6)::before{content:"No-show";}
  #lessonPackageSummarySection tbody td:nth-child(7)::before{content:"Cancelled";}
  #lessonPackageSummarySection tbody td:nth-child(8)::before{content:"Scheduled";}
  #lessonPackageParticipantSection tbody td:nth-child(1)::before{content:"Participant";}
  #lessonPackageParticipantSection tbody td:nth-child(2)::before{content:"Completed";}
  #lessonPackageParticipantSection tbody td:nth-child(3)::before{content:"Completed duration";}
  #lessonPackageParticipantSection tbody td:nth-child(4)::before{content:"No-show";}
  #lessonPackageParticipantSection tbody td:nth-child(5)::before{content:"Cancelled";}
  #lessonPackageParticipantSection tbody td:nth-child(6)::before{content:"Scheduled";}
  #lessonPackageHistorySection tbody td:nth-child(1)::before{content:"Date & time";}
  #lessonPackageHistorySection tbody td:nth-child(2)::before{content:"Holder";}
  #lessonPackageHistorySection tbody td:nth-child(3)::before{content:"Participant";}
  #lessonPackageHistorySection tbody td:nth-child(4)::before{content:"Format";}
  #lessonPackageHistorySection tbody td:nth-child(5)::before{content:"Service";}
  #lessonPackageHistorySection tbody td:nth-child(6)::before{content:"Location / Meeting";}
  #lessonPackageHistorySection tbody td:nth-child(7)::before{content:"Instructor";}
  #lessonPackageHistorySection tbody td:nth-child(8)::before{content:"Status";}
}

@media print{
  :root{color-scheme:light!important;background:#fff!important;}
  html,body{width:auto!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important;}
  body>.mobile-context-bar,body>.topbar,body>.tabbar,body>.nav-backdrop,body>.app-footer{display:none!important;}
  .shell{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;}
  #tab-reports{width:100%!important;min-width:0!important;margin:0!important;padding:0!important;}
  #reportSheet{box-sizing:border-box!important;width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;overflow:visible!important;break-after:auto!important;page-break-after:auto!important;}
  #reportSheet .table-wrap{max-width:none!important;overflow:visible!important;-webkit-overflow-scrolling:auto!important;}
  #reportSheet table{width:100%!important;min-width:0!important;}
  #reportSheet table thead{display:table-header-group;}
  #reportSheet table tbody{break-inside:auto;page-break-inside:auto;}
  #reportSheet table tr{break-inside:avoid;page-break-inside:avoid;}
  #reportSheet table thead tr{break-after:avoid-page;page-break-after:avoid;}
  #reportSheet .data-table th,#reportSheet .data-table td{min-width:0!important;white-space:normal!important;overflow-wrap:break-word!important;word-break:normal!important;hyphens:none!important;}
  .instructor-breakdown-screen{display:none!important;}
  .instructor-breakdown-print{display:grid!important;gap:0.5rem;}
  .instructor-print-block{break-inside:auto;page-break-inside:auto;}
  .instructor-print-range{break-after:avoid-page;page-break-after:avoid;margin-bottom:0.12rem;font-size:0.58rem;}
  .instructor-print-table{table-layout:fixed!important;font-size:0.62rem;}
  .instructor-print-table th,.instructor-print-table td{padding:0.3rem 0.25rem!important;line-height:1.25;}
  .instructor-print-table th:first-child,.instructor-print-table td:first-child{width:28%!important;}
  .instructor-print-table th:not(:first-child),.instructor-print-table td:not(:first-child){width:12%!important;text-align:center;}
  #instructorBreakdownSection,#servicePerformanceSection,#clientBreakdownSection,#lessonPackageSummarySection,#lessonPackageParticipantSection,#lessonPackageHistorySection{break-inside:auto!important;page-break-inside:auto!important;}
  .report-sheet.report-package .lesson-package-report-table,.report-sheet.report-package .lesson-package-history-table{table-layout:fixed!important;}
  .report-sheet.report-package .lesson-package-report-table th,.report-sheet.report-package .lesson-package-report-table td{padding:0.32rem 0.28rem;font-size:0.57rem;line-height:1.25;}
  .report-sheet.report-package .lesson-package-history-table th,.report-sheet.report-package .lesson-package-history-table td{padding:0.34rem 0.3rem;font-size:0.56rem;line-height:1.28;}
  #lessonPackageHistorySection .table-wrap{break-inside:auto;page-break-inside:auto;}
  .report-footer{break-inside:avoid;page-break-inside:avoid;break-before:avoid-page;page-break-before:avoid;}
}


/* Manual client-report delivery: the administrator chooses the reviewed PDF; AppointFrame never re-renders it. */
.report-delivery-panel{display:grid;gap:0.8rem;margin-top:0.9rem;padding:0.9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.report-delivery-panel[hidden]{display:none!important;}
.report-delivery-panel h3{margin:0 0 0.25rem;}
.report-delivery-panel p{margin-bottom:0;}
.report-delivery-panel input[type="file"]{min-height:44px;padding:0.55rem;background:var(--input-bg);}
.report-delivery-actions{margin:0.1rem 0 0;}

/* Cycle-aware lesson-package reporting. */
.package-report-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.8rem;}
.package-report-chart-card{min-width:0;padding:0.75rem;border:1px solid #eee7e9;border-radius:11px;background:rgba(127,93,103,0.025);}
.package-report-chart-card h4{margin:0 0 0.65rem;color:var(--report-ink);font-size:0.88rem;}
.report-horizontal-bars{display:grid;gap:0.6rem;}
.report-horizontal-bar-row{display:grid;gap:0.18rem;break-inside:avoid;}
.report-horizontal-bar-label{display:flex;align-items:baseline;justify-content:space-between;gap:0.7rem;color:var(--report-muted);font-size:0.72rem;line-height:1.2;}
.report-horizontal-bar-label span{min-width:0;overflow-wrap:anywhere;}
.report-horizontal-bar-label strong{flex:0 0 auto;color:var(--report-ink);font-size:0.73rem;}
.report-horizontal-bar-detail{margin-top:-0.08rem;}
.report-horizontal-bar-track{height:8px;overflow:hidden;border-radius:999px;background:#eee7e9;}
.report-horizontal-bar-track>span{display:block;height:100%;border-radius:inherit;background:var(--chart-fill);}
.compact-button{min-height:30px;padding:0.32rem 0.5rem;font-size:0.72rem;white-space:nowrap;}
.package-holder-summary-table th:nth-child(1),.package-holder-summary-table td:nth-child(1){width:14%;}
.package-holder-summary-table th:nth-child(2),.package-holder-summary-table td:nth-child(2){width:7%;}
.package-holder-summary-table th:nth-child(3),.package-holder-summary-table td:nth-child(3){width:9%;}
.package-holder-summary-table th:nth-child(4),.package-holder-summary-table td:nth-child(4){width:18%;}
.package-holder-summary-table th:nth-child(5),.package-holder-summary-table td:nth-child(5){width:11%;}
.package-holder-summary-table th:nth-child(6),.package-holder-summary-table td:nth-child(6){width:13%;}
.package-holder-summary-table th:nth-child(7),.package-holder-summary-table td:nth-child(7){width:17%;}
.package-holder-summary-table th:nth-child(8),.package-holder-summary-table td:nth-child(8){width:11%;}
.package-series-summary-table th:nth-child(1),.package-series-summary-table td:nth-child(1){width:17%;}
.package-series-summary-table th:nth-child(2),.package-series-summary-table td:nth-child(2){width:12%;}
.package-series-summary-table th:nth-child(3),.package-series-summary-table td:nth-child(3){width:16%;}
.package-series-summary-table th:nth-child(4),.package-series-summary-table td:nth-child(4){width:10%;white-space:nowrap;overflow-wrap:normal;word-break:normal;}
.package-series-summary-table th:nth-child(5),.package-series-summary-table td:nth-child(5){width:11%;}
.package-series-summary-table th:nth-child(6),.package-series-summary-table td:nth-child(6){width:12%;}
.package-series-summary-table th:nth-child(7),.package-series-summary-table td:nth-child(7){width:12%;}
.package-series-summary-table th:nth-child(8),.package-series-summary-table td:nth-child(8){width:10%;}
.package-cycle-summary-table th:nth-child(1),.package-cycle-summary-table td:nth-child(1){width:15%;}
.package-cycle-summary-table th:nth-child(2),.package-cycle-summary-table td:nth-child(2){width:11%;white-space:nowrap;overflow-wrap:normal;word-break:normal;}
.package-cycle-summary-table th:nth-child(3),.package-cycle-summary-table td:nth-child(3){width:17%;}
.package-cycle-summary-table th:nth-child(4),.package-cycle-summary-table td:nth-child(4){width:17%;}
.package-cycle-summary-table th:nth-child(5),.package-cycle-summary-table td:nth-child(5){width:10%;white-space:nowrap;overflow-wrap:normal;word-break:normal;}
.package-cycle-summary-table th:nth-child(6),.package-cycle-summary-table td:nth-child(6){width:12%;}
.package-cycle-summary-table th:nth-child(7),.package-cycle-summary-table td:nth-child(7){width:9%;}
.package-cycle-summary-table th:nth-child(8),.package-cycle-summary-table td:nth-child(8){width:9%;}
.package-participant-summary-table th:nth-child(1),.package-participant-summary-table td:nth-child(1){width:18%;}
.package-participant-summary-table th:nth-child(2),.package-participant-summary-table td:nth-child(2){width:18%;}
.package-participant-summary-table th:nth-child(3),.package-participant-summary-table td:nth-child(3){width:11%;}
.package-participant-summary-table th:nth-child(4),.package-participant-summary-table td:nth-child(4){width:20%;}
.package-participant-summary-table th:nth-child(n+5),.package-participant-summary-table td:nth-child(n+5){width:11%;}
.package-service-summary-table th:nth-child(1),.package-service-summary-table td:nth-child(1){width:16%;}
.package-service-summary-table th:nth-child(2),.package-service-summary-table td:nth-child(2){width:44%;}
.package-service-summary-table th:nth-child(3),.package-service-summary-table td:nth-child(3){width:14%;}
.package-service-summary-table th:nth-child(4),.package-service-summary-table td:nth-child(4){width:26%;}

.report-drill-column{white-space:nowrap;text-align:center;}
button.secondary.report-drill-button,.report-drill-button{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:112px;min-width:0;white-space:nowrap;padding:0.34rem 0.5rem;border:1px solid var(--report-line);background:#fff;color:var(--report-ink);font-size:0.72rem;font-weight:var(--font-weight-semibold);line-height:1.1;box-shadow:none;}
button.secondary.report-drill-button:hover,button.secondary.report-drill-button:focus-visible,.report-drill-button:hover,.report-drill-button:focus-visible{transform:none;filter:none;background:#f7f3f4;color:var(--report-ink);}
.package-report-group-row td{padding:0!important;border-bottom:0!important;}
.package-report-group-row td::before{display:none!important;content:none!important;}
.package-report-series-group td{padding:0.52rem 0.58rem!important;background:#f4eff1!important;color:var(--report-ink)!important;border-top:1px solid var(--report-line)!important;border-bottom:1px solid var(--report-line)!important;}
.package-report-series-group strong{display:block;font-size:0.74rem;letter-spacing:0.01em;}
.package-report-series-group span{display:block;margin-top:0.12rem;color:var(--report-muted);font-size:0.65rem;}
.package-report-cycle-group td{padding:0.5rem 0.62rem!important;background:#f8f4f5!important;border-top:1px solid #e4dadd!important;border-bottom:1px solid #e4dadd!important;}
.package-cycle-heading{display:block;}
.package-cycle-heading>strong{display:block;margin:0;font-size:0.74rem;line-height:1.2;color:var(--report-ink);}
.package-cycle-period{display:block;margin-top:0.3rem;color:var(--report-muted);font-size:0.63rem;line-height:1.3;}
.package-cycle-entitlements{display:flex!important;flex-wrap:wrap;gap:0.18rem 0.55rem;margin:0.08rem 0 0!important;color:var(--report-muted);font-size:0.6rem!important;}
.package-cycle-entitlements>span{display:inline-flex!important;gap:0.18rem;margin:0!important;white-space:normal;}
.package-cycle-entitlements strong{color:var(--report-ink);font-size:inherit;}
.report-last-payment{margin-top:0.26rem;}

#lessonPackageHistorySection .lesson-package-history-table th:nth-child(1),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(1){width:15%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(2),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(2){width:11%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(3),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(3){width:12%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(4),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(4){width:9%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(5),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(5){width:17%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(6),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(6){width:18%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(7),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(7){width:9%;}
#lessonPackageHistorySection .lesson-package-history-table th:nth-child(8),#lessonPackageHistorySection .lesson-package-history-table td:nth-child(8){width:9%;white-space:nowrap;overflow-wrap:normal;word-break:normal;}

@media (max-width:700px){
  .package-report-chart-grid{grid-template-columns:1fr;}
  #lessonPackageHolderSection tbody td:nth-child(1)::before{content:"Holder";}
  #lessonPackageHolderSection tbody td:nth-child(2)::before{content:"Package series";}
  #lessonPackageHolderSection tbody td:nth-child(3)::before{content:"Cycles";}
  #lessonPackageHolderSection tbody td:nth-child(4)::before{content:"Participants";}
  #lessonPackageHolderSection tbody td:nth-child(5)::before{content:"Completed";}
  #lessonPackageHolderSection tbody td:nth-child(6)::before{content:"Payments in range";}
  #lessonPackageHolderSection tbody td:nth-child(7)::before{content:"Financial position";}
  #lessonPackageHolderSection tbody td:nth-child(8)::before{content:"Open";}
  #lessonPackageSeriesSection tbody td:nth-child(1)::before{content:"Package series";}
  #lessonPackageSeriesSection tbody td:nth-child(2)::before{content:"Cycles";}
  #lessonPackageSeriesSection tbody td:nth-child(3)::before{content:"Participants";}
  #lessonPackageSeriesSection tbody td:nth-child(4)::before{content:"Completed";}
  #lessonPackageSeriesSection tbody td:nth-child(5)::before{content:"Package value";}
  #lessonPackageSeriesSection tbody td:nth-child(6)::before{content:"Payments in range";}
  #lessonPackageSeriesSection tbody td:nth-child(7)::before{content:"Financial position";}
  #lessonPackageSeriesSection tbody td:nth-child(8)::before{content:"Open";}
  #lessonPackageSummarySection tbody td:nth-child(1)::before{content:"Cycle";}
  #lessonPackageSummarySection tbody td:nth-child(2)::before{content:"Status";}
  #lessonPackageSummarySection tbody td:nth-child(3)::before{content:"Period";}
  #lessonPackageSummarySection tbody td:nth-child(4)::before{content:"Participants";}
  #lessonPackageSummarySection tbody td:nth-child(5)::before{content:"Completed";}
  #lessonPackageSummarySection tbody td:nth-child(6)::before{content:"Package value";}
  #lessonPackageSummarySection tbody td:nth-child(7)::before{content:"Payments in range";}
  #lessonPackageSummarySection tbody td:nth-child(8)::before{content:"Financial position";}
  #lessonPackageParticipantSection tbody td:nth-child(1)::before{content:"Participant";}
  #lessonPackageParticipantSection tbody td:nth-child(2)::before{content:"Package holder(s)";}
  #lessonPackageParticipantSection tbody td:nth-child(3)::before{content:"Completed";}
  #lessonPackageParticipantSection tbody td:nth-child(4)::before{content:"Completed duration";}
  #lessonPackageParticipantSection tbody td:nth-child(5)::before{content:"No-show";}
  #lessonPackageParticipantSection tbody td:nth-child(6)::before{content:"Cancelled";}
  #lessonPackageParticipantSection tbody td:nth-child(7)::before{content:"Scheduled";}
  #lessonPackageServiceSection tbody td:nth-child(1)::before{content:"Format";}
  #lessonPackageServiceSection tbody td:nth-child(2)::before{content:"Service Type";}
  #lessonPackageServiceSection tbody td:nth-child(3)::before{content:"Completed";}
  #lessonPackageServiceSection tbody td:nth-child(4)::before{content:"Completed duration";}
  #lessonPackageHistorySection tbody td:nth-child(1)::before{content:"Date & time";}
  #lessonPackageHistorySection tbody td:nth-child(2)::before{content:"Holder";}
  #lessonPackageHistorySection tbody td:nth-child(3)::before{content:"Participant";}
  #lessonPackageHistorySection tbody td:nth-child(4)::before{content:"Format";}
  #lessonPackageHistorySection tbody td:nth-child(5)::before{content:"Service";}
  #lessonPackageHistorySection tbody td:nth-child(6)::before{content:"Location / Meeting";}
  #lessonPackageHistorySection tbody td:nth-child(7)::before{content:"Instructor";}
  #lessonPackageHistorySection tbody td:nth-child(8)::before{content:"Status";}
}

@media print{
  #lessonPackageFinancialChartsSection,#lessonPackageHolderSection,#lessonPackageSeriesSection,#lessonPackageSummarySection,#lessonPackageParticipantSection,#lessonPackageServiceSection,#lessonPackageHistorySection{break-inside:auto!important;page-break-inside:auto!important;}
  .package-report-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0.45rem;}
  .package-report-chart-card{padding:0.45rem;}
  .report-horizontal-bars{gap:0.35rem;}
  .report-horizontal-bar-row{gap:0.1rem;}
  .report-horizontal-bar-track{height:5px;}
  .report-horizontal-bar-label{font-size:0.58rem;}
  .report-horizontal-bar-label strong{font-size:0.58rem;}
  .report-sheet.report-package .package-report-group-row{break-after:avoid;page-break-after:avoid;}
  .report-sheet.report-package .package-report-series-group td{padding:0.34rem 0.38rem!important;font-size:0.56rem;}
  .report-sheet.report-package .package-report-cycle-group td{padding:0.26rem 0.38rem!important;font-size:0.52rem;}
  .report-sheet.report-package .package-cycle-period{margin-top:0.16rem!important;line-height:1.35;}
  .report-sheet.report-package .lesson-package-report-table th,.report-sheet.report-package .lesson-package-report-table td{padding:0.28rem 0.24rem;font-size:0.52rem;line-height:1.22;}
  .report-sheet.report-package .lesson-package-history-table th,.report-sheet.report-package .lesson-package-history-table td{padding:0.28rem 0.24rem;font-size:0.51rem;line-height:1.22;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(2),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(2){display:none!important;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(1),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(1){width:16%;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(3),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(3){width:14%;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(4),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(4){width:10%;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(5),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(5){width:20%;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(6),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(6){width:21%;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(7),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(7){width:9%;}
  .report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table th:nth-child(8),.report-sheet.report-package.report-package-holder #lessonPackageHistorySection .lesson-package-history-table td:nth-child(8){width:10%;white-space:nowrap;overflow-wrap:normal;word-break:normal;}
}

/* Instructor activity reports use the same report sheet and print pipeline as other reports. */
.meeting-mode-summary-section,.instructor-workload-section,.instructor-activity-section,.instructor-mode-activity-section,.instructor-service-activity-section,.instructor-participant-section,.instructor-detail-section,.client-instructor-section,.client-year-activity-section{margin-top:0.8rem;}
.meeting-mode-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;}
.instructor-workload-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;}
.instructor-activity-table{width:100%;min-width:640px;}
.instructor-participant-table{width:100%;min-width:620px;}
.instructor-mode-activity-table{width:100%;min-width:620px;}
.client-instructor-table{width:100%;min-width:660px;}
.client-year-activity-table{width:100%;min-width:720px;}
.instructor-service-activity-table,.instructor-detail-table{width:100%;min-width:760px;}
.instructor-activity-table th,.instructor-activity-table td,.instructor-participant-table th,.instructor-participant-table td,.instructor-mode-activity-table th,.instructor-mode-activity-table td,.instructor-service-activity-table th,.instructor-service-activity-table td,.instructor-detail-table th,.instructor-detail-table td,.client-instructor-table th,.client-instructor-table td,.client-year-activity-table th,.client-year-activity-table td{vertical-align:top;}
.instructor-detail-table th:nth-child(1),.instructor-detail-table td:nth-child(1){min-width:135px;}
.instructor-detail-table th:nth-child(2),.instructor-detail-table td:nth-child(2){min-width:180px;white-space:normal;}
.instructor-client-group td{padding:0.5rem 0.62rem!important;background:#f4eff1!important;border-top:1px solid var(--report-line)!important;border-bottom:1px solid var(--report-line)!important;color:var(--report-ink)!important;}
.instructor-client-group strong{display:block;font-size:0.76rem;}
.instructor-client-group span{display:block;margin-top:0.12rem;color:var(--report-muted);font-size:0.63rem;}
.instructor-group-session-group td{background:#f8f4f5!important;}
.report-sheet.report-instructor .report-section-heading p.muted{max-width:720px;}
@media (max-width:700px){
  .meeting-mode-summary-metrics,.instructor-workload-metrics{grid-template-columns:1fr;}
  .instructor-activity-section .table-wrap,.instructor-participant-section .table-wrap,.instructor-mode-activity-section .table-wrap,.instructor-service-activity-section .table-wrap,.instructor-detail-section .table-wrap,.client-instructor-section .table-wrap,.client-year-activity-section .table-wrap{overflow-x:auto;}
}
@media print{
  .report-sheet.report-instructor{font-size:12px;}
  .report-sheet.report-instructor .report-header{grid-template-columns:88px minmax(0,1fr);gap:0.65rem;padding-bottom:0.45rem;}
  .report-sheet.report-instructor .report-header img{width:82px;}
  .report-sheet.report-instructor .report-header h2{font-size:1.25rem;}
  .report-sheet.report-instructor .report-metrics{gap:0.35rem;margin:0.45rem 0;}
  .report-sheet.report-instructor .metric-card{min-height:50px;padding:0.35rem 0.42rem;}
  .report-sheet.report-instructor .report-chart-section{padding:0.5rem;margin-top:0.45rem;}
  .instructor-workload-metrics{grid-template-columns:repeat(4,minmax(0,1fr));}
  .instructor-activity-table,.instructor-participant-table,.instructor-mode-activity-table,.instructor-service-activity-table,.instructor-detail-table,.client-instructor-table,.client-year-activity-table{min-width:0!important;table-layout:fixed!important;font-size:0.62rem;}
  .instructor-activity-table th,.instructor-activity-table td,.instructor-participant-table th,.instructor-participant-table td,.instructor-mode-activity-table th,.instructor-mode-activity-table td,.instructor-service-activity-table th,.instructor-service-activity-table td,.instructor-detail-table th,.instructor-detail-table td,.client-instructor-table th,.client-instructor-table td,.client-year-activity-table th,.client-year-activity-table td{padding:0.28rem 0.22rem!important;line-height:1.22;white-space:normal!important;overflow-wrap:break-word!important;}
  .instructor-activity-section,.instructor-participant-section,.instructor-mode-activity-section,.instructor-service-activity-section,.instructor-detail-section,.client-instructor-section,.client-year-activity-section{break-inside:auto!important;page-break-inside:auto!important;}
  .instructor-client-group{break-after:avoid;page-break-after:avoid;}
  .instructor-client-group td{padding:0.32rem 0.38rem!important;}
  .instructor-activity-table th:nth-child(1),.instructor-activity-table td:nth-child(1){width:30%;}
  .instructor-activity-table th:nth-child(2),.instructor-activity-table td:nth-child(2){width:14%;}
  .instructor-activity-table th:nth-child(3),.instructor-activity-table td:nth-child(3){width:24%;}
  .instructor-activity-table th:nth-child(4),.instructor-activity-table td:nth-child(4){width:17%;}
  .instructor-activity-table th:nth-child(5),.instructor-activity-table td:nth-child(5){width:15%;}
  .instructor-participant-table th:nth-child(1),.instructor-participant-table td:nth-child(1){width:34%;}
  .instructor-participant-table th:nth-child(2),.instructor-participant-table td:nth-child(2){width:14%;}
  .instructor-participant-table th:nth-child(3),.instructor-participant-table td:nth-child(3){width:24%;}
  .instructor-participant-table th:nth-child(4),.instructor-participant-table td:nth-child(4),.instructor-participant-table th:nth-child(5),.instructor-participant-table td:nth-child(5){width:14%;}
  .instructor-mode-activity-table th:first-child,.instructor-mode-activity-table td:first-child{width:32%;}
  .instructor-service-activity-table th:nth-child(1),.instructor-service-activity-table td:nth-child(1){width:18%;}
  .instructor-service-activity-table th:nth-child(2),.instructor-service-activity-table td:nth-child(2){width:10%;}
  .instructor-service-activity-table th:nth-child(3),.instructor-service-activity-table td:nth-child(3){width:24%;}
  .instructor-service-activity-table th:nth-child(4),.instructor-service-activity-table td:nth-child(4){width:11%;}
  .instructor-service-activity-table th:nth-child(5),.instructor-service-activity-table td:nth-child(5){width:17%;}
  .instructor-service-activity-table th:nth-child(6),.instructor-service-activity-table td:nth-child(6),.instructor-service-activity-table th:nth-child(7),.instructor-service-activity-table td:nth-child(7){width:10%;}
}

/* Package reconciliation: compact organization status, detailed holder/cycle proof. */
.package-reconciliation-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.6rem;}
.package-reconciliation-summary-item{display:flex;align-items:center;justify-content:space-between;gap:0.65rem;padding:0.62rem 0.72rem;border:1px solid var(--report-line);border-radius:10px;background:#fff;}
.package-reconciliation-summary-item span{color:var(--report-muted);font-size:0.72rem;font-weight:var(--font-weight-bold);}
.package-reconciliation-summary-item strong{color:var(--report-ink);font-size:1rem;}
.package-reconciliation-cycles{display:grid;gap:0.75rem;margin-top:0.75rem;}
.package-reconciliation-card{padding:0.78rem;border:1px solid var(--report-line);border-radius:11px;background:#fff;}
.package-reconciliation-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;margin-bottom:0.65rem;}
.package-reconciliation-card-head>div:first-child{min-width:0;}
.package-reconciliation-card-head strong{display:block;color:var(--report-ink);font-size:0.86rem;}
.package-reconciliation-card-head span{display:block;margin-top:0.12rem;color:var(--report-muted);font-size:0.68rem;}
.package-reconciliation-badge{display:inline-block;margin:0;padding:0.26rem 0.45rem;border:1px solid var(--report-line);border-radius:999px;background:#f7f4f5;color:var(--report-ink)!important;font-size:0.62rem!important;font-weight:var(--font-weight-bold);line-height:1.15;white-space:normal;}
.package-reconciliation-badge.is-opening_balance{background:#faf7ef;}
.package-reconciliation-badge.is-incomplete{background:#fff3f3;border-color:#e8c8c8;}
.package-reconciliation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.7rem;}
.package-reconciliation-grid>div{padding:0.62rem;border:1px solid #eee7e9;border-radius:9px;background:#fbf9fa;}
.package-reconciliation-grid h4{margin:0 0 0.45rem;color:var(--report-ink);font-size:0.72rem;text-transform:uppercase;letter-spacing:0.055em;}
.package-reconciliation-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0.12rem 0.5rem;padding:0.28rem 0;border-bottom:1px solid #eee7e9;font-size:0.7rem;}
.package-reconciliation-line:last-child{border-bottom:0;}
.package-reconciliation-line>span{color:var(--report-muted);}
.package-reconciliation-line>strong{color:var(--report-ink);text-align:right;}
.package-reconciliation-line>small{grid-column:1/-1;color:var(--report-muted);font-size:0.62rem;line-height:1.25;}
.package-reconciliation-note{display:grid;gap:0.18rem;margin-top:0.58rem;padding:0.5rem 0.6rem;border-left:3px solid var(--report-line);background:#fbf9fa;color:var(--report-muted);font-size:0.68rem;line-height:1.35;}
.package-reconciliation-note.is-incomplete{border-left-color:#c47b7b;background:#fff7f7;color:var(--report-ink);}
.package-reconciliation-calculation{margin-top:0.55rem;border-top:1px solid #eee7e9;padding-top:0.45rem;}
.package-reconciliation-calculation summary{cursor:pointer;color:var(--report-ink);font-size:0.68rem;font-weight:var(--font-weight-bold);}
.package-reconciliation-breakdown{display:grid;gap:0.22rem;margin-top:0.42rem;}
.package-reconciliation-calc-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:0.45rem;padding:0.3rem 0;border-bottom:1px solid #eee7e9;font-size:0.66rem;align-items:start;}
.package-reconciliation-calc-row span:nth-child(2){color:var(--report-muted);white-space:nowrap;}
.package-reconciliation-calc-row strong{white-space:nowrap;text-align:right;}
.package-reconciliation-calc-total{display:flex;justify-content:flex-end;gap:0.8rem;padding-top:0.22rem;font-size:0.68rem;}
.package-reconciliation-calc-total span{color:var(--report-muted);}
#lessonPackageHolderSection tbody td:nth-child(8)::before{content:"Reconciliation";}
#lessonPackageHolderSection tbody td:nth-child(9)::before{content:"Open";}

@media (max-width:700px){
  .package-reconciliation-summary{gap:0.4rem;}
  .package-reconciliation-summary-item{display:grid;gap:0.1rem;padding:0.5rem;}
  .package-reconciliation-summary-item span{font-size:0.62rem;line-height:1.15;}
  .package-reconciliation-summary-item strong{font-size:0.88rem;}
  .package-reconciliation-grid{grid-template-columns:1fr;}
  .package-reconciliation-card-head{display:grid;}
  .package-reconciliation-card-head .package-reconciliation-badge{justify-self:start;}
  .package-reconciliation-calc-row{grid-template-columns:minmax(0,1fr) auto;}
  .package-reconciliation-calc-row strong{grid-column:2;}
}

@media print{
  .package-reconciliation-section{break-inside:auto!important;page-break-inside:auto!important;}
  .package-reconciliation-summary{gap:0.3rem;}
  .package-reconciliation-summary-item{padding:0.34rem 0.42rem;border-radius:7px;}
  .package-reconciliation-summary-item span{font-size:0.56rem;}
  .package-reconciliation-summary-item strong{font-size:0.78rem;}
  .package-reconciliation-card{padding:0.45rem;border-radius:8px;break-inside:avoid;page-break-inside:avoid;}
  .package-reconciliation-card-head{margin-bottom:0.35rem;}
  .package-reconciliation-grid{gap:0.35rem;}
  .package-reconciliation-grid>div{padding:0.38rem;}
  .package-reconciliation-grid h4{font-size:0.55rem;margin-bottom:0.2rem;}
  .package-reconciliation-line{padding:0.17rem 0;font-size:0.55rem;}
  .package-reconciliation-line>small,.package-reconciliation-note{font-size:0.5rem;}
  .package-reconciliation-note{margin-top:0.3rem;padding:0.3rem 0.4rem;}
  .package-reconciliation-calculation summary{display:none!important;}
  .package-reconciliation-calculation>.package-reconciliation-breakdown{display:grid!important;}
  .package-reconciliation-calc-row,.package-reconciliation-calc-total{font-size:0.52rem;}
}

/* Data management and administrative data panels. */
.client-data-deletion-panel{display:grid;gap:1.15rem;border-color:rgba(243,161,170,0.45);}
.client-data-deletion-form{display:grid;gap:0.85rem;max-width:620px;}
.client-data-deletion-form button{justify-self:start;}
.acknowledgement-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:0.6rem;font-weight:var(--font-weight-medium);line-height:1.4;}
.acknowledgement-row input{width:1rem;height:1rem;margin-top:0.16rem;}
@media (max-width:760px){.client-data-deletion-form button{width:100%;}}
.missed-attendance-panel{display:grid;gap:1.15rem;}
.missed-attendance-form{display:grid;gap:0.85rem;max-width:760px;}
.missed-attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.85rem;align-items:start;}
.missed-attendance-time-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.missed-attendance-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.missed-attendance-package-field{max-width:760px;}
.missed-attendance-form button{justify-self:start;}
@media (max-width:900px){.missed-attendance-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){.missed-attendance-grid,.missed-attendance-time-grid,.missed-attendance-detail-grid{grid-template-columns:1fr;} .missed-attendance-form button{width:100%;}}
.data-backup-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin-top:1rem;}
.data-backup-option-card{display:grid;grid-template-rows:auto auto 1fr auto;gap:.65rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.data-backup-option-heading{display:grid;gap:.2rem;}
.data-backup-option-heading strong{font-size:1.08rem;}
.data-backup-option-card p{margin:0;line-height:1.5;}
.data-backup-option-card code{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.92em;}
.data-backup-option-actions{display:flex;align-items:center;justify-content:flex-start;padding-top:.2rem;}
.data-backup-last-status{margin:.75rem 0 0;}
.notification-settings-grid{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;}
.notification-setting-card{display:grid;gap:0.25rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);min-width:min(100%,360px);}
.notification-setting-card strong{font-size:1.15rem;}
.notification-setting-actions{display:flex;justify-content:flex-end;}
.service-mix-section{margin-top:1rem;}
.service-mix-metrics{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:760px){.data-backup-options{grid-template-columns:1fr;}.data-backup-option-actions button{width:100%;}.notification-settings-grid{align-items:stretch;flex-direction:column;} .notification-setting-actions{justify-content:flex-start;} .service-mix-metrics{grid-template-columns:1fr;}}
.service-form-actions{display:flex;gap:0.6rem;align-items:center;flex-wrap:wrap;}
.migration-dialog{border:0;padding:0;background:transparent;max-width:min(620px,calc(100vw - 32px));width:100%;}
.migration-dialog::backdrop{background:rgba(0,0,0,.72);}
.migration-dialog .dialog-card{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.55);}
.migration-dialog label{display:block;margin:14px 0;}
.migration-dialog input{width:100%;box-sizing:border-box;margin-top:7px;}
.migration-count{padding:12px 14px;border-radius:10px;background:var(--panel-soft);}
.migration-result{display:grid;gap:10px;margin:16px 0;}
.migration-result>div{display:flex;justify-content:space-between;gap:20px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.migration-result span{color:var(--muted);}
.migration-result strong{text-align:right;overflow-wrap:anywhere;}
.historical-import-settings{margin-top:14px;}
.historical-package-repair-panel,.historical-import-panel,.historical-appointment-correction-panel,.historical-appointment-deletion-panel{display:grid;gap:1.15rem;min-width:0;max-width:100%;}
.historical-package-repair-panel>*,.historical-import-panel>*,.historical-appointment-correction-panel>*,.historical-appointment-deletion-panel>*{min-width:0;max-width:100%;}
.historical-import-panel h2,.historical-import-panel p,.historical-import-panel strong,.historical-import-panel small{max-width:100%;overflow-wrap:anywhere;}
.historical-correction-form,.historical-import-form{display:grid;gap:.85rem;max-width:760px;}
.historical-correction-form button,.historical-import-form button{justify-self:start;}
.historical-import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;}
.historical-record-correction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;}
.historical-record-correction-summary{padding:.8rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);line-height:1.45;}
#correctHistoricalPackageHint{display:block;line-height:1.4;}
.historical-import-result,.deletion-impact{padding:.8rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);line-height:1.45;}
.deletion-impact.is-blocked{border-color:var(--danger);}
#missedAttendancePackageHint,#historicalRepairPackageHint{display:block;margin-top:.35rem;line-height:1.4;}
@media (max-width:760px){.historical-import-grid,.historical-record-correction-grid{grid-template-columns:1fr;}.historical-correction-form,.historical-import-form{width:100%;max-width:100%;min-width:0;}.historical-correction-form button,.historical-import-form button{width:100%;max-width:100%;min-width:0;white-space:normal;line-height:1.2;overflow-wrap:anywhere;}}

.data-integrity-review{display:grid;gap:.85rem;margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.data-integrity-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.data-integrity-review-heading>div{display:grid;gap:.25rem;min-width:0;}
.data-integrity-review-heading strong{font-size:1.08rem;}
.data-integrity-review-heading p{margin:0;max-width:880px;line-height:1.5;}
.data-integrity-review-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;}
.data-integrity-review-summary>div{display:grid;gap:.15rem;padding:.7rem .75rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);min-width:0;}
.data-integrity-review-summary span{font-size:.78rem;color:var(--muted);}
.data-integrity-review-summary strong{font-size:1.05rem;}
.data-integrity-review-status{margin:0;line-height:1.5;}
.data-integrity-review-status.is-review{font-weight:var(--font-weight-semibold);}
.data-integrity-review-groups{display:grid;gap:.65rem;}
.data-integrity-review-group{border:1px solid var(--line);border-radius:9px;background:var(--panel);overflow:hidden;}
.data-integrity-review-group summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem;cursor:pointer;font-weight:var(--font-weight-semibold);}
.data-integrity-review-group summary::-webkit-details-marker{display:none;}
.data-integrity-review-group-count{color:var(--muted);font-size:.82rem;font-weight:var(--font-weight-medium);white-space:nowrap;}
.data-integrity-review-items{display:grid;gap:.55rem;padding:0 .85rem .85rem;}
.data-integrity-review-item{display:grid;gap:.3rem;padding:.7rem .75rem;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);}
.data-integrity-review-item.is-review{border-color:color-mix(in srgb,var(--danger) 42%,var(--line));}
.data-integrity-review-item-title{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;}
.data-integrity-review-item-title strong{line-height:1.35;}
.data-integrity-review-badge{flex:0 0 auto;padding:.16rem .42rem;border:1px solid var(--line);border-radius:999px;font-size:.72rem;line-height:1.2;color:var(--muted);}
.data-integrity-review-item.is-review .data-integrity-review-badge{color:var(--text);}
.data-integrity-review-item p{margin:0;line-height:1.45;}
.data-integrity-review-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.15rem;}
@media (max-width:980px){.data-integrity-review-summary{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:760px){.data-integrity-review-heading{flex-direction:column;}.data-integrity-review-heading button{width:100%;}.data-integrity-review-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.data-integrity-review-item-title{display:grid;}.data-integrity-review-group summary{align-items:flex-start;}}

/* HM1 historical migration/reconstruction preview. */
.historical-migration-preview-panel{gap:1.35rem;}
.historical-migration-setup{display:grid;gap:1.1rem;padding-top:.25rem;}
.historical-migration-mapping-group{display:grid;gap:.55rem;margin-top:.85rem;}
.historical-migration-mapping-group h4,.historical-migration-package-heading h3,.historical-package-period-card h4,.historical-package-service-terms h5{margin:0;}
.historical-migration-package-heading,.historical-package-period-title{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.historical-package-periods{display:grid;gap:1rem;}
.historical-package-period-card{display:grid;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.historical-package-service-terms{display:grid;gap:.7rem;}
.historical-package-period-card .historical-import-grid>label{align-self:start;align-content:start;}
.historical-package-period-card select:not([multiple]){height:44px;min-height:44px;}
.historical-package-service-term .checkbox-line{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.55rem;align-self:center;}
.historical-package-service-term .checkbox-line input[type="checkbox"]{appearance:auto;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;accent-color:var(--accent);cursor:pointer;}
.historical-package-service-term{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(150px,.8fr) minmax(150px,.8fr);gap:.75rem;align-items:end;padding:.75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);}
.historical-migration-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-bottom:.8rem;}
.historical-migration-summary-grid>div{display:grid;gap:.2rem;padding:.7rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);}
.historical-migration-summary-grid span{font-size:.78rem;color:var(--muted);}
.historical-migration-summary-grid strong{font-size:.96rem;overflow-wrap:anywhere;}
.historical-migration-preview-banner{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;padding:.75rem .85rem;border:1px solid var(--line);border-radius:10px;margin-bottom:.85rem;}
.historical-migration-preview-banner strong{letter-spacing:.04em;}
.historical-migration-commit-panel{margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);}
.historical-migration-commit-panel p{margin:.2rem 0 .65rem;}

.historical-migration-advanced{display:grid;gap:.65rem;}
.historical-migration-advanced textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
.historical-legacy-import{border-top:1px solid var(--line);padding-top:.9rem;}
.historical-legacy-import summary{cursor:pointer;font-weight:650;}
.historical-legacy-import-form{margin-top:.85rem;}
.notice-warning{padding:.65rem .75rem;border:1px solid var(--line);border-radius:9px;}
.compact-list{margin:.55rem 0 0;padding-left:1.2rem;display:grid;gap:.35rem;}
.tiny{font-size:.74rem;}
@media (max-width:900px){.historical-migration-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.historical-package-service-term{grid-template-columns:1fr 1fr;}.historical-package-service-term .checkbox-line{grid-column:1/-1;}}
@media (max-width:620px){.historical-migration-summary-grid{grid-template-columns:1fr;}.historical-migration-package-heading,.historical-package-period-title{align-items:stretch;flex-direction:column;}.historical-migration-package-heading button,.historical-package-period-title button{width:100%;}.historical-package-service-term{grid-template-columns:1fr;}.historical-package-service-term .checkbox-line{grid-column:auto;}}
/* HM2 cycle-level historical reconstruction review. */
.historical-cycle-review-section{display:grid;gap:.85rem;margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.historical-cycle-review-section h4{margin:0 0 .25rem;}
.historical-cycle-review-list{display:grid;gap:.85rem;}
.historical-cycle-review-card{display:grid;gap:.75rem;padding:.85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);}
.historical-cycle-review-card.is-reviewed{border-style:solid;}
.historical-cycle-review-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;}
.historical-cycle-review-heading p{margin:.2rem 0 0;}
.historical-cycle-term-grid{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(150px,.8fr) minmax(120px,.55fr);gap:.75rem;align-items:end;}
.historical-cycle-chargeable-summary{display:grid;gap:.2rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);min-height:44px;align-content:center;}
.historical-cycle-chargeable-summary span{font-size:.74rem;color:var(--muted);}
.historical-cycle-service-list{display:grid;gap:.55rem;}
.historical-cycle-service-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(160px,.7fr);gap:.75rem;align-items:end;padding:.65rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);}
.historical-cycle-service-row>div{display:grid;gap:.15rem;}
@media (max-width:760px){.historical-cycle-review-heading{flex-direction:column;}.historical-cycle-term-grid,.historical-cycle-service-row{grid-template-columns:1fr;}}


/* HM2 appointment-level historical correction. */
.historical-cycle-derived-services,.historical-cycle-appointments{display:grid;gap:.45rem;}
.historical-cycle-derived-services .table-scroll,.historical-cycle-appointments .table-scroll{margin-top:.15rem;}
.historical-cycle-appointment-table{min-width:920px;}
.historical-cycle-appointment-table th:nth-child(1){width:20%;}
.historical-cycle-appointment-table th:nth-child(2){width:16%;}
.historical-cycle-appointment-table th:nth-child(3){width:17%;}
.historical-cycle-appointment-table th:nth-child(4),.historical-cycle-appointment-table th:nth-child(5){width:23.5%;}
.historical-cycle-appointment-table select{width:100%;min-width:160px;height:38px;min-height:38px;padding:.45rem .55rem;}
.historical-cycle-appointment-table td{vertical-align:top;}
.historical-cycle-appointment-table .muted.tiny{margin-top:.2rem;}

/* Portable appointment export field selection. */
.data-export-panel{display:grid;gap:1rem;}
.data-export-panel>.range-grid{max-width:720px;}
.data-export-fields{border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);overflow:hidden;}
.data-export-fields>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;font-weight:var(--font-weight-semibold);}
.data-export-fields>summary::-webkit-details-marker{display:none;}
.data-export-field-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding:0 1rem .8rem;}
.data-export-field-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:0 1rem 1rem;}
.data-export-field-group{display:grid;align-content:start;gap:.5rem;min-width:0;margin:0;padding:.8rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);}
.data-export-field-group legend{padding:0 .25rem;color:var(--text);font-weight:var(--font-weight-semibold);}
.data-export-field-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.55rem;color:var(--text);font-size:.88rem;font-weight:var(--font-weight-regular);cursor:pointer;}
.data-export-field-option input[type="checkbox"]{appearance:auto;width:18px!important;min-width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;padding:0!important;accent-color:var(--accent);cursor:pointer;}
.data-export-package-fields p{margin:.2rem 0 0;line-height:1.4;}
@media(max-width:980px){.data-export-field-groups{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:620px){.data-export-fields>summary{align-items:flex-start;flex-direction:column;gap:.25rem;}.data-export-field-groups{grid-template-columns:1fr;}.data-export-field-actions button{flex:1 1 auto;}}

/* Onboarding and migration workspace. */
.migration-shell{display:grid;gap:1rem;}
.migration-page-heading,.migration-project-header,.migration-section-heading,.migration-path-title-row,.migration-row-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.migration-page-heading>div:first-child,.migration-project-header>div:first-child,.migration-section-heading>div:first-child,.migration-path-title-row>div:first-child,.migration-row-toolbar>div:first-child{min-width:0;}
.migration-page-heading p:last-child{max-width:900px;margin-bottom:0;}
.migration-foundation-badge{flex:0 0 auto;padding:.35rem .65rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:.78rem;font-weight:var(--font-weight-medium);white-space:nowrap;}
.migration-landing,.migration-workspace{display:grid;gap:1rem;}
.migration-path-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;}
.migration-path-card{display:grid;grid-template-rows:auto 1fr auto;gap:.85rem;min-width:0;}
.migration-path-card.is-recommended{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));}
.migration-path-card p{margin:0;line-height:1.5;}
.migration-path-card>button{justify-self:start;}
.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:.18rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:.74rem;font-weight:var(--font-weight-medium);white-space:nowrap;}
.status-pill.success{border-color:color-mix(in srgb,var(--success) 42%,var(--line));color:var(--success);}
.status-pill.warning{border-color:color-mix(in srgb,var(--accent) 52%,var(--line));color:var(--text);}
.migration-projects-panel,.migration-source-panel,.migration-analysis-panel{display:grid;gap:1rem;}
.migration-section-heading h3,.migration-project-header h3,.migration-row-toolbar h4,.migration-configuration-panel h4,.migration-row-inspection h4{margin:0;}
.migration-section-heading p,.migration-project-header p,.migration-row-toolbar p{margin:.25rem 0 0;}
.migration-project-list{display:grid;gap:.65rem;}
.migration-project-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem .9rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.migration-project-row-main{display:grid;gap:.16rem;min-width:0;}
.migration-project-row-main strong,.migration-project-row-main span{overflow-wrap:anywhere;}
.migration-project-row-actions{display:flex;align-items:center;gap:.55rem;flex:0 0 auto;}
.empty-state.compact{padding:.9rem;border:1px dashed var(--line);border-radius:10px;display:grid;gap:.25rem;}
.migration-back-button{margin-bottom:.65rem;}
.migration-progress{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;}
.migration-progress li{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:.55rem;align-items:center;padding:.7rem .75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);color:var(--muted);min-width:0;}
.migration-progress li>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);font-size:.78rem;}
.migration-progress li strong{font-size:.86rem;color:inherit;min-width:0;white-space:normal;line-height:1.15;overflow-wrap:anywhere;}
.migration-progress li small{font-size:.72rem;min-width:0;white-space:normal;line-height:1.15;overflow-wrap:anywhere;}
.migration-progress li.is-active{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--text);}
.migration-progress li.is-active>span{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);}
.migration-source-form{display:grid;gap:1rem;}
.migration-project-settings-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) minmax(200px,.8fr);gap:.85rem;align-items:start;}
.migration-file-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.85rem;align-items:end;}
.migration-file-label{min-width:0;}
.migration-file-row button{min-height:44px;}
.migration-safety-note{margin:0;padding:.75rem .85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);line-height:1.45;}
.migration-analysis-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;}
.migration-analysis-summary article{display:grid;gap:.2rem;padding:.75rem .8rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.migration-analysis-summary span{font-size:.78rem;color:var(--muted);}
.migration-analysis-summary strong{font-size:1.1rem;overflow-wrap:anywhere;}
.migration-configuration-panel{display:grid;gap:.9rem;padding:1rem;border:1px solid color-mix(in srgb,var(--accent) 48%,var(--line));border-radius:12px;background:var(--panel-soft);}
.migration-configuration-panel p{margin:.25rem 0 0;}
.migration-configuration-form{display:grid;gap:.85rem;}
.migration-column-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;}
.migration-date-config-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;}
.migration-configuration-form button{justify-self:start;}
.migration-recognised-columns{display:grid;gap:.55rem;}
.migration-chip-list{display:flex;gap:.45rem;flex-wrap:wrap;}
.migration-chip{display:inline-flex;padding:.25rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);font-size:.76rem;color:var(--muted);}
.migration-row-inspection{display:grid;gap:.75rem;padding-top:.2rem;}
.migration-row-toolbar{align-items:end;}
.migration-row-toolbar label{min-width:190px;}
.migration-table-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;}
.migration-row-table{width:100%;min-width:1080px;border-collapse:collapse;}
.migration-row-table th,.migration-row-table td{padding:.62rem .68rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.migration-row-table th{position:sticky;top:0;background:var(--panel-soft);color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;z-index:1;}
.migration-row-table tr:last-child td{border-bottom:0;}
.migration-row-table td{font-size:.84rem;max-width:260px;overflow-wrap:anywhere;}
.migration-row-state{display:inline-block;max-width:230px;padding:.2rem .45rem;border:1px solid var(--line);border-radius:999px;font-size:.72rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:top;}
.migration-row-state.success{color:var(--success);border-color:color-mix(in srgb,var(--success) 42%,var(--line));}
.migration-row-state.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 48%,var(--line));}
.migration-row-state.warning{color:var(--text);}
.migration-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:34px;}
.migration-pagination>div{display:flex;align-items:center;gap:.55rem;}
.pagination-page-label{font-size:.82rem;color:var(--muted);white-space:nowrap;}
.error-text{color:var(--danger);}
@media(max-width:1050px){.migration-path-grid{grid-template-columns:1fr 1fr;}.migration-path-card:last-child{grid-column:1/-1;}.migration-project-settings-grid{grid-template-columns:1fr 1fr;}.migration-project-settings-grid label:first-child{grid-column:1/-1;}.migration-analysis-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.migration-column-grid{grid-template-columns:1fr 1fr;}.migration-column-grid label:last-child{grid-column:1/-1;}.migration-progress{grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;padding-bottom:0;}}
@media(max-width:760px){.migration-page-heading,.migration-project-header,.migration-section-heading,.migration-path-title-row,.migration-row-toolbar,.migration-project-row{flex-direction:column;align-items:stretch;}.migration-foundation-badge,.migration-project-row-actions{align-self:flex-start;}.migration-path-grid,.migration-project-settings-grid,.migration-column-grid,.migration-date-config-grid,.migration-analysis-summary{grid-template-columns:1fr;}.migration-path-card:last-child,.migration-project-settings-grid label:first-child,.migration-column-grid label:last-child{grid-column:auto;}.migration-path-card>button,.migration-source-form button,.migration-configuration-form button,.migration-project-header>button{width:100%;}.migration-file-row{grid-template-columns:1fr;}.migration-project-row-actions{width:100%;justify-content:space-between;}.migration-pagination{align-items:stretch;flex-direction:column;}.migration-pagination>div{justify-content:space-between;}.migration-row-toolbar label{min-width:0;}.migration-progress{grid-template-columns:repeat(2,minmax(0,1fr));}.migration-progress li:last-child{grid-column:1/-1;}}

/* Business-data resolution workspace. */
.migration-progress li{padding:0;overflow:hidden;}
.migration-progress li>button{appearance:none;border:0;background:transparent;color:inherit;width:100%;min-height:52px;padding:.7rem .75rem;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:.55rem;align-items:center;text-align:left;cursor:pointer;}
.migration-progress li>button:disabled{cursor:default;opacity:.62;}
.migration-progress li>button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);font-size:.78rem;}
.migration-progress li>button strong{font-size:.86rem;color:inherit;min-width:0;white-space:normal;line-height:1.15;overflow-wrap:anywhere;}
.migration-progress li>button small{font-size:.72rem;min-width:0;white-space:normal;line-height:1.15;overflow-wrap:anywhere;}
.migration-progress li.is-active>button>span{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);}
.migration-stage-footer{display:flex;align-items:center;gap:.85rem;justify-content:flex-start;padding-top:.15rem;}
.migration-resolve-panel{display:grid;gap:1rem;}
.migration-resolution-notice{display:grid;gap:.2rem;padding:.75rem .85rem;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-radius:10px;background:var(--panel-soft);}
.migration-resolution-notice span{font-size:.82rem;color:var(--muted);}
.migration-resolution-defaults{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.migration-resolution-defaults h4{margin:0;}
.migration-resolution-defaults p{margin:.25rem 0 0;}
.migration-resolution-default-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.75rem;align-items:end;}
.migration-resolution-default-grid>button{min-height:44px;}
.migration-resolution-list{display:grid;gap:.75rem;}
.migration-resolution-toolbar{display:flex;align-items:end;justify-content:space-between;gap:.85rem;}
.migration-resolution-kind-tabs{display:flex;gap:.45rem;flex-wrap:wrap;}
.migration-resolution-kind-tabs button.is-active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent);}
.migration-resolution-toolbar>label{min-width:180px;}
.migration-resolution-table-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;}
.migration-resolution-table{width:100%;min-width:920px;border-collapse:collapse;}
.migration-resolution-table th,.migration-resolution-table td{padding:.62rem .68rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.migration-resolution-table th{background:var(--panel-soft);color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;}
.migration-resolution-table tr:last-child td{border-bottom:0;}
.migration-resolution-table td{font-size:.84rem;max-width:300px;overflow-wrap:anywhere;}
.migration-resolution-result{display:grid;gap:.1rem;}
.migration-resolution-result>span,.migration-resolution-result>small{color:var(--muted);}
.migration-resolution-result>small{font-size:.72rem;line-height:1.35;margin-top:.18rem;}
.migration-resolution-editor{display:grid;gap:.85rem;padding:1rem;border:1px solid color-mix(in srgb,var(--accent) 46%,var(--line));border-radius:12px;background:var(--panel-soft);}
.migration-resolution-editor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.migration-resolution-editor-heading h4{margin:0;}
.migration-resolution-editor-heading p{margin:.2rem 0 0;}
.migration-resolution-editor-form{display:grid;gap:.85rem;}
.migration-existing-target-area,.migration-create-target-area,#migrationStatusTargetArea{display:grid;gap:.7rem;}
.migration-target-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:end;}
.migration-target-search button{min-height:44px;}
#migrationResolutionTargetSelect{min-height:132px;}
.migration-proposal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;align-items:end;}
.migration-proposal-grid .checkbox-line{align-self:center;margin-top:1.2rem;}
.migration-resolution-editor-actions{display:flex;gap:.6rem;flex-wrap:wrap;}
@media(max-width:1050px){.migration-resolution-default-grid{grid-template-columns:1fr 1fr;}.migration-resolution-default-grid>button{justify-self:start;}.migration-proposal-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.migration-stage-footer,.migration-resolution-toolbar,.migration-resolution-editor-heading{align-items:stretch;flex-direction:column;}.migration-resolution-default-grid,.migration-proposal-grid{grid-template-columns:1fr;}.migration-resolution-default-grid>button,.migration-stage-footer>button,.migration-resolution-editor-actions>button{width:100%;}.migration-resolution-toolbar>label{min-width:0;}.migration-target-search{grid-template-columns:1fr;}.migration-resolution-editor-actions{display:grid;grid-template-columns:1fr;}}

/* Opening package configuration. */
.migration-packages-panel{display:grid;gap:1rem;}
.migration-package-source-drafts{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.migration-package-source-drafts h4,.migration-package-list-section h4,.migration-package-assignment-section h4{margin:0;}
.migration-package-source-drafts p,.migration-package-list-section p,.migration-package-assignment-section p{margin:.25rem 0 0;}
.migration-package-list-section,.migration-package-assignment-section{display:grid;gap:.75rem;}
.migration-package-list{display:grid;gap:.65rem;}
.migration-package-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem .9rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.migration-package-card-main{display:grid;gap:.24rem;min-width:0;}
.migration-package-card-title{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;}
.migration-package-card-issues{display:grid;gap:.14rem;margin-top:.28rem;color:var(--muted);font-size:.76rem;}
.migration-package-card-issues span::before{content:'• ';}
.migration-package-editor{display:grid;gap:.9rem;padding:1rem;border:1px solid color-mix(in srgb,var(--accent) 46%,var(--line));border-radius:12px;background:var(--panel-soft);}
.migration-package-editor-form{display:grid;gap:.9rem;}
.migration-package-core-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;align-items:start;}
#migrationPackageMembers{min-height:146px;}
.migration-package-services-fieldset,.migration-opening-payment-fieldset{display:grid;gap:.7rem;padding:.9rem;border:1px solid var(--line);border-radius:10px;}
.migration-package-service-rows{display:grid;gap:.55rem;}
.migration-package-service-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(130px,.7fr) minmax(130px,.7fr) auto;gap:.65rem;align-items:end;padding:.65rem;border:1px solid var(--line);border-radius:9px;background:var(--panel);}
.migration-package-service-row>button{min-height:44px;}
.migration-package-payment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;}
.migration-package-assignment-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;}
.migration-package-assignment-table{width:100%;min-width:1120px;border-collapse:collapse;}
.migration-package-assignment-table th,.migration-package-assignment-table td{padding:.62rem .68rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.migration-package-assignment-table th{background:var(--panel-soft);color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;}
.migration-package-assignment-table tr:last-child td{border-bottom:0;}
.migration-package-assignment-table td{font-size:.84rem;max-width:300px;overflow-wrap:anywhere;}
.migration-package-assignment-select{min-width:220px;}
.migration-stage-footer>div{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;}
@media(max-width:1050px){.migration-package-core-grid{grid-template-columns:1fr 1fr;}.migration-package-service-row{grid-template-columns:1fr 1fr;}.migration-package-payment-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.migration-package-source-drafts,.migration-package-card{align-items:stretch;flex-direction:column;}.migration-package-source-drafts>button,.migration-package-card>button{width:100%;}.migration-package-core-grid,.migration-package-service-row,.migration-package-payment-grid{grid-template-columns:1fr;}.migration-stage-footer>div{display:grid;width:100%;}.migration-stage-footer>div>button{width:100%;}}

/* Consolidated migration review / preflight. */
.migration-review-panel{display:grid;gap:1rem;}
.migration-review-summary{grid-template-columns:repeat(4,minmax(0,1fr));}
.migration-review-safety{display:grid;gap:.25rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:11px;background:var(--panel-soft);}
.migration-review-details{display:grid;gap:.75rem;}
.migration-review-details h4{margin:0;}
.migration-review-details p{margin:.25rem 0 0;}
.migration-review-table-scroll{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;}
.migration-review-table{width:100%;min-width:1120px;border-collapse:collapse;}
.migration-review-table th,.migration-review-table td{padding:.62rem .68rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;}
.migration-review-table th{background:var(--panel-soft);color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;}
.migration-review-table tr:last-child td{border-bottom:0;}
.migration-review-table td{font-size:.84rem;max-width:310px;overflow-wrap:anywhere;}
.migration-review-reason{margin-top:.25rem;line-height:1.35;}
.migration-review-actions{display:flex;gap:.4rem;flex-wrap:wrap;}
.migration-review-fingerprint{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;padding-top:.2rem;}
.migration-review-fingerprint code{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:.72rem;color:var(--muted);}
@media(max-width:1050px){.migration-review-summary{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:760px){.migration-review-summary{grid-template-columns:1fr 1fr;}.migration-review-actions{display:grid;grid-template-columns:1fr;}.migration-review-actions button{width:100%;}}
@media(max-width:520px){.migration-review-summary{grid-template-columns:1fr;}}

/* Instructor editor, availability and service scope. */
.instructor-editor{padding:0;overflow:hidden;}
.instructor-editor-header{margin:0;}
.instructor-editor-tabs,.instructor-availability-tabs{display:flex;align-items:center;gap:0.25rem;overflow-x:auto;padding:0 1.1rem;border-bottom:1px solid var(--line);}
.instructor-editor-tab,.instructor-availability-tab{border:0;border-radius:0;padding:0.85rem 0.65rem 0.72rem;background:transparent;color:var(--muted);box-shadow:none;white-space:nowrap;}
.instructor-editor-tab:hover,.instructor-availability-tab:hover{background:transparent;color:var(--text);}
.instructor-editor-tab.is-active,.instructor-availability-tab.is-active{color:var(--accent-emphasis,var(--accent));border-bottom:2px solid var(--accent);}
.instructor-editor-panel{padding:1.1rem;}
.instructor-profile-form{display:grid;gap:0;}
.instructor-editor-section-actions{display:flex;justify-content:flex-end;padding:1rem 0 0;}
.instructor-editor-section-actions button{min-width:150px;}
.read-only-value{min-height:42px;display:flex;align-items:center;padding:0.65rem 0.75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);color:var(--text);}
.info-banner{display:grid;gap:0.2rem;margin-bottom:1rem;padding:0.8rem 0.9rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.info-banner span{color:var(--muted);font-size:0.84rem;}
.availability-summary-list{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.availability-summary-row{display:grid;grid-template-columns:minmax(110px,.35fr) 1fr;gap:1rem;padding:0.85rem 1rem;border-bottom:1px solid var(--line);}
.availability-summary-row:last-child{border-bottom:0;}
.availability-summary-row>div{display:flex;gap:0.7rem 1rem;flex-wrap:wrap;}
.instructor-override-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:1.25rem;align-items:start;}
.compact-heading{margin-top:1rem;}
.instructor-overrides-list{display:grid;gap:0.65rem;}
.instructor-override-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:0.85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.instructor-override-card>div:first-child{display:grid;gap:0.25rem;min-width:0;}
.instructor-service-scope{display:grid;gap:0.65rem;margin-bottom:1rem;}
.instructor-service-scope>label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0.65rem;align-items:start;padding:0.85rem;border:1px solid var(--line);border-radius:10px;cursor:pointer;}
.instructor-service-scope>label>input{width:1rem;height:1rem;margin-top:0.15rem;}
.instructor-service-scope span{display:grid;gap:0.18rem;}
.instructor-service-scope small{color:var(--muted);}
.instructor-service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.65rem;}
.instructor-service-list.is-disabled{opacity:0.55;}
.instructor-service-option{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0.6rem;align-items:start;padding:0.8rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.instructor-service-option>input{width:1rem;height:1rem;margin-top:0.16rem;}
.instructor-service-option>span{display:grid;gap:0.18rem;min-width:0;}
.instructor-service-option small{color:var(--muted);}
.instructor-service-option.inactive{opacity:0.55;}
.service-card-footer{grid-column:1 / -1;}
.instructor-notification-heading{align-items:flex-end;gap:1rem;margin-bottom:.85rem}
.instructor-notification-heading>div:first-child{display:grid;gap:.18rem;min-width:0}
.instructor-notification-matrix{display:grid;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--panel)}
.instructor-notification-row{display:grid;grid-template-columns:minmax(190px,1.35fr) minmax(135px,.75fr) minmax(150px,.8fr);gap:.75rem;align-items:center;padding:.72rem .8rem;border-bottom:1px solid var(--line)}
.instructor-notification-row:last-child{border-bottom:0}
.instructor-notification-header{background:var(--panel-soft);color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}
.instructor-notification-row>strong{font-size:.9rem}
.instructor-notification-check{display:flex;align-items:center;gap:.48rem;margin:0;color:var(--text);font-size:.86rem}
.instructor-notification-check input{width:1rem;height:1rem;min-height:0;margin:0;flex:0 0 auto}
.instructor-notification-unavailable{display:block;color:var(--muted);font-size:.8rem;line-height:1.3}
.instructor-notification-note{margin:.8rem 0 0}
@media (max-width:760px){.instructor-editor-panel{padding:0.9rem;} .instructor-editor-section-actions button{width:100%;} .instructor-override-layout,.instructor-service-list{grid-template-columns:1fr;} .instructor-override-card{align-items:stretch;flex-direction:column;} .availability-summary-row{grid-template-columns:1fr;gap:0.35rem;}}
@media (min-width:761px) and (max-width:1080px){.client-add-form-contact{grid-template-columns:repeat(2,minmax(0,1fr));} .client-add-form-contact button{justify-self:start;}}
@media (max-width:760px){.instructor-notification-heading{align-items:stretch;flex-direction:column}.instructor-notification-heading .row-actions{width:100%}.instructor-notification-heading .row-actions button{flex:1}.instructor-notification-row{grid-template-columns:1fr;gap:.42rem}.instructor-notification-header{display:none}}

.instructor-custom-hours-by-day{margin-top:.75rem;}
.instructor-override-window-list{margin-top:.65rem;}
.instructor-override-quick-add{margin-top:.65rem;}
.instructor-override-week-group{background:var(--panel);}
.instructor-override-card .override-record-actions{gap:.45rem;}
@media (max-width:520px){.instructor-override-card .override-record-heading{grid-template-columns:1fr}.instructor-override-card .override-record-heading>.status-badge{justify-self:start}.instructor-override-card .override-record-actions{display:grid;grid-template-columns:1fr}.instructor-override-card .override-record-actions button{width:100%}}

.instructor-session-notes-time{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-top:.9rem;padding:.8rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.instructor-session-notes-time label{display:grid;gap:.35rem;font-weight:600}.instructor-session-notes-time input{min-width:150px}

.instructor-service-option{grid-template-columns:minmax(0,1fr) auto;align-items:center}.instructor-service-option>label:first-child{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start;min-width:0}.instructor-service-limit{display:grid;gap:.2rem;font-size:.78rem;color:var(--muted);min-width:7rem}.instructor-service-limit input{width:7rem}.instructor-load-note{display:block;margin-top:.2rem;line-height:1.25}@media(max-width:720px){.instructor-service-option{grid-template-columns:1fr}.instructor-service-limit,.instructor-service-limit input{width:100%}}
.instructor-location-scope-field{display:grid;gap:.7rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.instructor-location-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;}
.instructor-location-scope>label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;}
.instructor-location-scope>label>input{width:1rem;height:1rem;min-height:0;margin-top:.18rem;}
.instructor-location-scope span{display:grid;gap:.15rem;}.instructor-location-scope small{color:var(--muted);}
@media(max-width:720px){.instructor-location-scope{grid-template-columns:1fr;}}
/* Assigned Services: keep checkbox, service identity and metadata visually distinct. */
.instructor-service-option>label:first-child{grid-template-columns:1.1rem minmax(0,1fr);column-gap:.72rem;align-items:start;cursor:pointer;}
.instructor-service-option>label:first-child>input{width:1.05rem;height:1.05rem;min-height:0;margin:.16rem 0 0;align-self:start;}
.instructor-service-option>label:first-child>span{display:grid;gap:.18rem;min-width:0;line-height:1.25;}
.instructor-service-option>label:first-child strong,.instructor-service-option>label:first-child small{display:block;}
.instructor-service-option>label:first-child small{color:var(--muted);font-size:.8rem;}



/* Responsive stabilization: Staff editor tabs stay recognizably navigational. */
@media(max-width:760px){
  .instructor-editor-tabs,.instructor-availability-tabs{display:flex;gap:.35rem;padding:.38rem .55rem;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;background:var(--panel-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .instructor-editor-tabs .instructor-editor-tab,.instructor-availability-tabs .instructor-availability-tab{flex:0 0 auto;min-width:max-content;min-height:40px;padding:.55rem .72rem;border:1px solid transparent;border-radius:8px;white-space:nowrap;overflow-wrap:normal;line-height:1.15;text-align:center}
  .instructor-editor-tabs .instructor-editor-tab.is-active,.instructor-availability-tabs .instructor-availability-tab.is-active{background:var(--panel);border-color:color-mix(in srgb,var(--accent) 62%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text)}
}

/* Contextual scheduling choice: keep all actions legible in narrow hamburger/mobile layouts. */
.instructor-schedule-choice-options{display:grid;grid-template-columns:minmax(0,1fr);gap:.65rem;min-width:0;}
.instructor-schedule-choice-options>button{width:100%;min-width:0;min-height:48px;line-height:1.3;white-space:normal;overflow-wrap:break-word;}
.instructor-schedule-choice-footer{justify-content:flex-end;margin-top:.15rem;padding-top:.8rem;border-top:1px solid var(--line);}
.instructor-schedule-choice-footer>button{min-width:104px;min-height:44px;}
@media(max-width:430px){.instructor-schedule-choice-footer>button{width:100%;}}

/* Retired historical-import presentation retained only to preserve the pre-refactor cascade. */
.import-info,.import-success{color:var(--text);}
.import-success{font-weight:var(--font-weight-bold);}
.import-resolution-heading{margin:1rem 0 0.55rem;font-size:1rem;}
.import-resolution-card{display:grid;gap:0.55rem;margin-top:0.65rem;padding:0.85rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);}
.import-resolution-card>span{display:block;}
.import-resolution-card p{margin:0;}
.import-resolution-card label{margin:0;}
.import-resolution-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(150px,.8fr) minmax(90px,.45fr) minmax(90px,.45fr);gap:0.65rem;}
.import-service-map-fields,.import-service-create-fields{display:grid;gap:0.65rem;}
.import-service-map-fields.hidden,.import-service-create-fields.hidden{display:none;}
.import-check-row{display:flex;flex-wrap:wrap;gap:0.65rem 1.25rem;}
.import-check-row label{display:inline-flex;align-items:center;gap:0.45rem;}
.import-check-row input[type="checkbox"]{width:1rem;height:1rem;}
.import-error-list{display:grid;gap:0.35rem;padding:0.75rem;border:1px solid color-mix(in srgb,var(--danger) 55%,var(--line));border-radius:10px;}
.import-error-list p{margin:0;color:var(--danger);}
@media (max-width:760px){.import-resolution-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.import-resolution-grid{grid-template-columns:1fr;}}
@media (max-width:640px){}

/* Timezone picker component. */
.timezone-picker{position:relative;width:100%;}
.timezone-picker-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto 38px;align-items:center;}
.timezone-picker-control>input{grid-column:1 / -1;grid-row:1;padding-right:9.4rem;}
.timezone-picker-offset{grid-column:2;grid-row:1;z-index:1;align-self:center;justify-self:end;max-width:7.1rem;padding:0.22rem 0.48rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:0.76rem;font-weight:var(--font-weight-medium);line-height:1.2;white-space:nowrap;pointer-events:none;}
.timezone-picker-toggle{grid-column:3;grid-row:1;z-index:2;justify-self:stretch;align-self:stretch;min-width:38px;min-height:0;padding:0;border:0;border-left:1px solid var(--line);border-radius:0 10px 10px 0;background:transparent;color:var(--muted);box-shadow:none;}
.timezone-picker-toggle:hover{background:var(--panel-soft);color:var(--text);filter:none;transform:none;}
.timezone-picker-toggle:active{transform:none;}
.timezone-picker-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.timezone-picker-menu{position:absolute;z-index:80;top:calc(100% + 0.35rem);left:0;right:0;max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding:0.35rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);}
.timezone-picker-menu[hidden]{display:none;}
.timezone-picker-options{display:grid;gap:0.12rem;}
button.timezone-picker-option{width:100%;min-height:38px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0.8rem;padding:0.48rem 0.58rem;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;font-weight:var(--font-weight-regular);line-height:1.25;box-shadow:none;}
button.timezone-picker-option:hover,button.timezone-picker-option:focus-visible,button.timezone-picker-option.is-active{background:var(--panel-soft);color:var(--text);filter:none;transform:none;}
.timezone-picker-zone{min-width:0;overflow-wrap:anywhere;}
.timezone-picker-option-offset{color:var(--muted);font-size:0.8rem;white-space:nowrap;}
.timezone-picker-empty{padding:0.72rem;color:var(--muted);font-size:0.86rem;line-height:1.4;}
@media (max-width:520px){.timezone-picker-control>input{padding-right:7.8rem;} .timezone-picker-offset{max-width:5.8rem;font-size:0.7rem;padding-inline:0.35rem;} .timezone-picker-menu{max-height:240px;} button.timezone-picker-option{gap:0.5rem;font-size:0.88rem;} .timezone-picker-option-offset{font-size:0.74rem;}}

/* Terminology settings and business-concept icon picker. */
.terminology-form{max-width:900px}
.terminology-grid{display:grid;gap:12px}
.terminology-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) minmax(160px,1fr) minmax(92px,.55fr);gap:12px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel-soft)}
.terminology-row>span{align-self:center;font-weight:600}
.terminology-row label{margin:0}
.terminology-icon-field{display:grid;gap:.35rem}
.terminology-icon-trigger{width:76px;min-width:76px;height:44px;min-height:44px;padding:.45rem .55rem;display:inline-flex;align-items:center;justify-content:space-between;gap:.35rem;background:var(--input-bg);border-color:var(--line);color:var(--text)}
.terminology-icon-trigger:hover{background:var(--hover-bg);filter:none}
.terminology-icon-preview{display:inline-grid;place-items:center;width:24px;height:24px}
.terminology-concept-icon{width:20px;height:20px;flex:0 0 20px}
.terminology-icon-chevron{font-size:.88rem;color:var(--muted);line-height:1}
.terminology-icon-picker{position:fixed;z-index:2400;max-height:min(430px,calc(100dvh - 24px));overflow:hidden;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}
.terminology-icon-picker[hidden]{display:none!important}
.terminology-icon-search-label{display:block;margin:0 0 10px}
.terminology-icon-search-label input{min-height:42px;height:42px;font-size:1rem}
.terminology-icon-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;max-height:340px;overflow:auto;padding-right:3px;overscroll-behavior:contain}
.terminology-icon-option{min-width:0;min-height:62px;padding:6px 4px;display:grid;place-items:center;align-content:center;gap:3px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text);font-weight:500;white-space:normal}
.terminology-icon-option:hover{border-color:var(--line);background:var(--hover-bg);filter:none;transform:none}
.terminology-icon-option.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.terminology-icon-option .ui-icon{width:20px;height:20px}
.terminology-icon-option small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.68rem;font-weight:500;text-align:center}
.terminology-icon-option.is-selected small{color:var(--text)}
.terminology-icon-empty{grid-column:1/-1;margin:.7rem;text-align:center}
@media (max-width:820px){.terminology-row{grid-template-columns:1fr 1fr}.terminology-row>span{grid-column:1/-1;margin-bottom:-2px}.terminology-icon-field{align-content:end}.terminology-icon-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.terminology-row{grid-template-columns:1fr}.terminology-row>span{grid-column:auto}.terminology-icon-trigger{width:84px}.terminology-icon-picker{max-height:calc(100dvh - 24px)}.terminology-icon-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:300px}}

/* Legacy footer/help rules retained in original cascade position. */
.app-footer{width:min(1440px,calc(100% - 32px));margin:0 auto 22px;padding:14px 4px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:.8rem}
.app-footer-link{border:0;background:transparent;color:var(--muted);padding:4px 0;box-shadow:none;font-weight:600;text-decoration:none}
.app-footer-link:hover,.app-footer-link:focus-visible{background:transparent;color:var(--text);text-decoration:underline;text-underline-offset:3px;transform:none;filter:none;outline:none}
.help-dialog-card{width:min(560px,calc(100vw - 32px))}
.help-copy{display:grid;gap:12px;color:var(--muted);line-height:1.6}
.help-copy p{margin:0}
@media(max-width:640px){.app-footer{width:calc(100% - 24px);margin-bottom:14px}.app-footer{font-size:.76rem}}

/* Bulk planner conflict feedback. */
#plannerBody tr.planner-conflict td{background:color-mix(in srgb,var(--danger) 7%,transparent)}
#plannerBody tr.planner-conflict .row-time{border-color:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 18%,transparent)}
#plannerBody tr.planner-conflict .schedule-note.is-conflict{color:var(--danger);font-weight:var(--font-weight-medium)}

/* Phase 2 package validation states for single, multiple, and copied appointments. */
#plannerBody tr.planner-package-blocked td{background:color-mix(in srgb,var(--danger) 6%,transparent)}
#plannerBody tr.planner-package-attention td{background:color-mix(in srgb,var(--warning,#d69e2e) 7%,transparent)}
.row-package-note.is-error{color:var(--danger);font-weight:var(--font-weight-medium)}
.row-package-note.is-attention{color:var(--warning-text,var(--text));font-weight:var(--font-weight-medium)}
.row-package{min-width:180px}

/* Configurable organization typography. */
.font-settings{gap:1rem}
.font-mode-fieldset{display:grid;gap:.65rem;margin:0;padding:0;border:0;min-width:0}
.font-mode-fieldset legend{margin-bottom:.2rem;color:var(--muted);font-size:.92rem;font-weight:var(--font-weight-medium)}
.font-mode-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.85rem .9rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);cursor:pointer}
.font-mode-option:has(input:checked){border-color:var(--accent-emphasis,var(--accent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 36%,transparent)}
.font-mode-option input{width:1rem;height:1rem;min-height:0;margin:.17rem 0 0;accent-color:var(--accent)}
.font-mode-option span{display:grid;gap:.18rem;min-width:0}
.font-mode-option strong{color:var(--text);font-weight:var(--font-weight-medium)}
.font-mode-option small{color:var(--muted);font-weight:var(--font-weight-regular);line-height:1.4}
.font-upload-fields{display:grid;gap:.75rem}
.font-upload-fields[hidden]{display:none}
.font-upload-fields input[type=file]{padding:.48rem .55rem}
@media(max-width:640px){.font-mode-option{padding:.78rem}.font-settings .settings-toolbar button{width:100%}}

/* Fixed application footer chrome. Product-site contact is exposed only when the optional public homepage is enabled. */
.app-footer{position:fixed;left:var(--app-primary-nav-width);right:0;bottom:0;z-index:18;min-height:46px;margin:0;padding:0 max(18px,env(safe-area-inset-right)) max(0px,env(safe-area-inset-bottom)) 18px;border-top:1px solid var(--line);background:var(--chrome-bg);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--muted);font-size:.78rem;box-shadow:0 -10px 30px rgba(0,0,0,.08)}
.app-footer-identity,.app-footer-actions{display:flex;align-items:center;gap:9px;min-width:0}
.app-footer-identity{font-weight:var(--font-weight-medium);color:var(--muted)}
.app-footer-identity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-footer-actions{gap:4px}
.app-footer-link{display:inline-flex;align-items:center;gap:7px;min-height:32px;border:0;border-radius:6px;background:transparent;color:var(--muted);padding:5px 8px;box-shadow:none;font-size:inherit;font-weight:var(--font-weight-medium);line-height:1;text-decoration:none}
.app-footer-link:hover,.app-footer-link:focus-visible{background:var(--hover-bg);color:var(--text);text-decoration:none;transform:none;filter:none;outline:1px solid color-mix(in srgb,var(--line) 78%,transparent);outline-offset:0}
.app-footer-link[hidden]{display:none}
.app-footer-icon{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.shell{margin-bottom:5.25rem}
@media(max-width:1024px){.app-footer{left:0;z-index:18}.shell{margin-bottom:5.25rem}}
@media(max-width:520px){.app-footer{min-height:44px;padding-left:12px;padding-right:12px;font-size:.74rem}.app-footer-identity{gap:6px;max-width:48vw}.app-footer-actions{gap:0}.app-footer-link{padding-inline:6px}.app-footer-icon{width:15px;height:15px;flex-basis:15px}}
@media print{.app-footer{display:none!important}}

/* Reminder timing and communication template settings. */
.message-configuration-panel,.message-template-panel{display:grid;gap:18px}
.reminder-lead-form{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.reminder-lead-form>label{display:grid;gap:7px;min-width:min(100%,420px);margin:0}
.reminder-lead-input-row{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:10px}
.reminder-lead-input-row input{width:110px}
.reminder-lead-input-row>span{color:var(--muted);font-size:.9rem}
.message-template-panel>.section-heading-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;justify-items:start;gap:.75rem;min-width:0}
.message-template-panel .section-heading-row>div:first-child{min-width:0;max-width:860px;overflow-wrap:anywhere}
.template-type-picker{display:grid;gap:7px;width:min(100%,420px);min-width:min(100%,300px);max-width:100%;margin:.08rem 0 0}
.template-menu-control{position:relative;min-width:0}
.template-type-native-select{display:none!important}
.template-menu-trigger{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-width:0;min-height:48px;padding:.65rem .72rem;border:1px solid var(--line);border-radius:10px;background:var(--input-bg);color:var(--text);text-align:left;box-shadow:none}
.template-menu-trigger:hover,.template-menu-trigger:focus-visible{border-color:color-mix(in srgb,var(--accent) 72%,var(--line));background:color-mix(in srgb,var(--accent) 5%,var(--input-bg));color:var(--text);transform:none;filter:none}
.template-menu-trigger[aria-expanded="true"]{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}
.template-menu-trigger-icon,.template-menu-item-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--muted);flex:0 0 auto}
.template-menu-trigger-icon .ui-icon,.template-menu-item-icon .ui-icon{width:19px;height:19px;stroke-width:1.8}
.template-menu-trigger-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-medium)}
.template-menu-chevron{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;transition:transform 160ms ease}
.template-menu-trigger[aria-expanded="true"] .template-menu-chevron{transform:rotate(180deg)}
.template-type-menu{position:absolute;top:calc(100% + .45rem);left:0;right:auto;z-index:80;display:grid;width:min(420px,calc(100vw - 2rem));min-width:100%;max-height:min(480px,calc(100dvh - 32px));overflow-y:auto;padding:.45rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);overscroll-behavior:contain}
.template-type-menu[hidden]{display:none!important}
.template-type-menu.is-above{top:auto;bottom:calc(100% + .45rem)}
.template-menu-group{display:grid;gap:2px}
.template-menu-group+.template-menu-group{margin-top:.38rem;padding-top:.42rem;border-top:1px solid var(--line)}
.template-menu-group-label{padding:.36rem .55rem .28rem;color:var(--muted);font-size:.72rem;font-weight:var(--font-weight-bold);letter-spacing:.055em;text-transform:uppercase}
.template-menu-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-width:0;min-height:43px;padding:.55rem .58rem;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;box-shadow:none}
.template-menu-item:hover,.template-menu-item:focus-visible{background:var(--hover-bg);color:var(--text);transform:none;filter:none}
.template-menu-item[aria-checked="true"]{background:color-mix(in srgb,var(--accent) 12%,var(--panel-soft));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,var(--line))}
.template-menu-item[aria-checked="true"] .template-menu-item-icon{color:var(--accent)}
.template-menu-item-label{min-width:0;overflow-wrap:anywhere;font-weight:var(--font-weight-medium);line-height:1.3}
.template-menu-selected-mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--accent);opacity:0}
.template-menu-item[aria-checked="true"] .template-menu-selected-mark{opacity:1}
.template-menu-selected-mark .ui-icon{width:17px;height:17px;stroke-width:2.2}
.template-help-disclosure{margin-top:.45rem;max-width:760px}
.template-help-disclosure summary{width:max-content;max-width:100%;cursor:pointer;color:var(--accent);font-size:.84rem;font-weight:var(--font-weight-medium);list-style-position:inside}
.template-help-disclosure summary:hover{text-decoration:underline}
.template-help-disclosure>p{margin:.55rem 0 0;padding:.65rem .72rem;border-left:2px solid color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--panel-soft) 72%,transparent);border-radius:0 8px 8px 0;line-height:1.5}
.template-status-row{display:grid;gap:5px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}
.template-status-row strong{font-size:.95rem}
.template-variable-list{display:flex;gap:7px;flex-wrap:wrap}
.template-variable-list code{padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);color:var(--text);font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.78rem}
.message-template-form{display:grid;gap:14px}
.message-template-form label{margin:0}
.message-template-form textarea{width:100%;box-sizing:border-box;resize:vertical}
.template-format-picker{max-width:320px}.message-template-form[data-email-body-format="html"] #emailTemplateHtml,.message-template-form[data-email-body-format="html"] #instructorEmailTemplateHtml{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:.86rem;line-height:1.55;tab-size:2}.message-template-form[data-email-body-format="text"] #emailTemplateHtml,.message-template-form[data-email-body-format="text"] #instructorEmailTemplateHtml{font-family:inherit;font-size:.95rem;line-height:1.6}
.template-preview-panel{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}
.template-preview-panel[hidden]{display:none}
.email-template-preview-frame{display:block;width:100%;min-height:360px;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;background:#fff}.email-template-preview-note{margin:0;line-height:1.45}
.whatsapp-template-preview-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;line-height:1.55}
.message-reminder-time span{line-height:1.35}
@media(max-width:1400px){.message-template-panel>.section-heading-row{align-items:stretch}.message-template-panel .template-type-picker{min-width:0;width:100%;max-width:100%;margin:0}.message-template-panel .template-type-menu{width:100%;max-width:100%}}
@media(max-width:680px){.reminder-lead-form{align-items:stretch}.reminder-lead-form>label,.reminder-lead-form>button{width:100%}.reminder-lead-input-row{grid-template-columns:96px minmax(0,1fr)}.reminder-lead-input-row input{width:96px}.email-template-preview-frame{min-height:300px}}
/* Phase 4: configurable email action contracts. */
.email-action-editor{display:grid;gap:12px;padding:14px;border:1px solid var(--border,#3a2a30);border-radius:10px;background:rgba(255,255,255,.02)}
.email-action-editor[hidden]{display:none!important}.email-action-editor-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.email-action-editor-heading>div:first-child{display:grid;gap:5px}.compact-toolbar{margin:0;flex-wrap:wrap}.email-action-list{display:grid;gap:9px}.email-action-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(170px,1.4fr) minmax(120px,.8fr) auto;gap:8px;align-items:end}.email-action-row label{display:grid;gap:4px}.email-action-row .email-action-index{align-self:center;min-width:26px;text-align:center}.email-action-row-actions{display:flex;gap:5px;align-items:center;padding-bottom:1px}@media(max-width:760px){.email-action-editor-heading{display:grid}.email-action-row{grid-template-columns:1fr}.email-action-row-actions{padding-bottom:0}}
/* Email template format variants, action inclusion, and responsive preview widths. */
.email-action-enabled-toggle{display:flex!important;align-items:center;gap:9px;margin:0;font-weight:var(--font-weight-medium)}
.email-action-enabled-toggle input{width:auto;min-width:18px;min-height:18px;margin:0}
.email-action-editor[data-email-action-format="text"] .email-action-style-field{display:none}
.template-preview-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.template-preview-heading>div:first-child{display:grid;gap:4px;min-width:0}
.template-preview-width-control{display:grid;gap:6px;justify-items:end}
.template-preview-width-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.template-preview-width-buttons button.is-selected{background:var(--button-selected-bg,var(--panel));border-color:var(--button-selected-border,var(--line-strong,var(--line)))}
.email-template-preview-stage{display:flex;justify-content:center;width:100%;min-width:0;overflow:auto;padding:8px 0;box-sizing:border-box}
.template-preview-panel[data-preview-size="desktop"] .email-template-preview-frame{width:min(100%,760px)}
.template-preview-panel[data-preview-size="tablet"] .email-template-preview-frame{width:min(100%,600px)}
.template-preview-panel[data-preview-size="mobile"] .email-template-preview-frame{width:min(100%,390px)}
@media(max-width:1400px){.message-template-panel .template-type-picker{flex:none}}
@media(max-width:680px){.template-preview-heading{display:grid}.template-preview-width-control{justify-items:start}.template-preview-width-buttons{justify-content:flex-start;width:100%}.template-preview-width-buttons button{flex:1 1 auto}}
.email-action-editor[data-email-action-format="text"] .email-action-row{grid-template-columns:minmax(150px,1.2fr) minmax(170px,1.4fr) auto}

/* Mobile header and context bar. */
.mobile-context-bar{display:none}
.nav-drawer-identity{display:flex;align-items:center;gap:.7rem;min-width:0}
.nav-drawer-organization-icon{flex:0 0 20px!important;width:20px!important;height:20px!important;color:var(--muted)}
.nav-drawer-content,.nav-drawer-footer{display:contents}
.nav-drawer-logout{display:none}
@media (max-width:1024px){
  .topbar-actions>#logoutButton{display:none}
  .nav-drawer-logout{display:flex;width:100%;min-height:48px;justify-content:flex-start;gap:.72rem;margin-top:auto;padding:.72rem .8rem;color:var(--text);background:transparent;border-color:var(--line)}
  .nav-drawer-logout .ui-icon{flex:0 0 19px!important;width:19px!important;height:19px!important;min-width:19px!important;max-width:19px!important;min-height:19px!important;max-height:19px!important}
}
@media (max-width:760px){
  :root{--brand-logo-width-topbar:176px}
  .topbar{
    grid-template-columns:52px minmax(0,1fr) auto;
    gap:.55rem;
    min-height:82px;
    padding-left:max(.7rem,env(safe-area-inset-left));
    padding-right:max(.7rem,env(safe-area-inset-right));
  }
  .topbar-brand{display:contents}
  .topbar-logo-link{grid-column:2;justify-self:center;width:min(var(--brand-logo-width-topbar),45vw);max-width:none}
  .topbar-logo{max-height:58px;object-position:center}
  .topbar-title{display:none}
  .mobile-nav-toggle{grid-column:1;justify-self:start}
  .topbar-actions{grid-column:3;justify-self:end}
  .mobile-context-bar{
    position:sticky;top:82px;z-index:18;display:flex;align-items:center;gap:.42rem;min-height:38px;
    padding:.5rem max(.9rem,env(safe-area-inset-right)) .5rem max(.9rem,env(safe-area-inset-left));
    border-bottom:1px solid var(--line);background:var(--chrome-bg);backdrop-filter:blur(16px);
    color:var(--muted);font-size:.8rem;line-height:1.2;overflow:hidden;
  }
  .mobile-context-primary{flex:0 0 auto;color:var(--text);font-weight:var(--font-weight-medium)}
  .mobile-context-separator{flex:0 0 auto;color:var(--muted)}
  .mobile-context-detail{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .shell{margin-top:.65rem}
  .nav-drawer-header{align-items:center;margin-bottom:.72rem}
  .nav-drawer-identity strong{display:block;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:var(--font-weight-medium)}
}
@media (max-width:370px){
  :root{--brand-logo-width-topbar:148px}
  .topbar{grid-template-columns:48px minmax(0,1fr) auto;gap:.32rem}
  .topbar-actions{gap:.22rem}
  .mobile-context-bar{font-size:.76rem}
}

/* Phone drawer: compact destinations, scrollable navigation, persistent sign-out. */
@media (max-width:620px){
  .tabbar{
    width:min(308px,86vw);
    gap:0;
    overflow:hidden;
    padding:max(.65rem,env(safe-area-inset-top)) .7rem max(.65rem,env(safe-area-inset-bottom));
  }
  .nav-drawer-header{
    flex:0 0 auto;
    min-height:54px;
    gap:.45rem;
    margin-bottom:.2rem;
    padding:.1rem .15rem .55rem;
  }
  .nav-drawer-identity{gap:.55rem;min-width:0}
  .nav-drawer-identity strong{max-width:190px;font-size:.94rem}
  .nav-close-button{min-width:44px;width:44px;min-height:44px}
  .nav-drawer-content{
    display:flex;
    flex:1 1 auto;
    min-height:0;
    flex-direction:column;
    gap:.12rem;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:.35rem .05rem .6rem;
  }
  .nav-drawer-content>.tab-button{
    min-height:48px;
    padding:.56rem .7rem;
    font-size:.95rem;
  }
  .nav-drawer-content>.nav-secondary-group{
    margin-top:.3rem;
    padding-top:.38rem;
  }
  .nav-drawer-content .nav-secondary-summary{
    min-height:44px;
    padding:.56rem .65rem;
  }
  .nav-drawer-footer{
    display:block;
    flex:0 0 auto;
    min-width:0;
    padding-top:.65rem;
    border-top:1px solid var(--line);
  }
  .nav-drawer-footer .nav-drawer-logout{
    margin:0;
    min-height:48px;
    padding:.62rem .75rem;
    border-radius:10px;
    font-size:.95rem;
  }
}

/* Client confirmation and status actions. */
.client-confirmation-badge{display:inline-flex;align-items:center;white-space:nowrap;font-size:11px;line-height:1;padding:5px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-weight:500}
.client-confirmation-badge.is-confirmed{border-color:color-mix(in srgb,var(--success) 55%,var(--line));color:var(--success)}
.planner-status-actions,.record-status-stack{gap:6px;align-items:center;flex-wrap:wrap}
.record-status-stack{display:flex}

/* Service-type availability editor. */
.service-editor-tabs{display:flex;align-items:center;gap:.25rem;overflow-x:auto;padding:0 1.1rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.service-editor-tab{border:0;border-radius:0;padding:.85rem .65rem .72rem;background:transparent;color:var(--muted);box-shadow:none;white-space:nowrap}
.service-editor-tab:hover{background:transparent;color:var(--text)}
.service-editor-tab.is-active{color:var(--accent-emphasis,var(--accent));border-bottom:2px solid var(--accent)}
.service-editor-panel{padding:1.1rem}
.service-editor-panel>.service-editor-grid{padding:0}
.service-hours-mode{display:grid;gap:.65rem;margin:0 0 1rem;padding:0;border:0}
.service-hours-mode legend{margin-bottom:.55rem;color:var(--text);font-weight:var(--font-weight-bold)}
.service-hours-mode>label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:start;padding:.85rem;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.service-hours-mode input{width:1rem;height:1rem;margin-top:.15rem}
.service-hours-mode span{display:grid;gap:.16rem}
.service-hours-mode small{color:var(--muted)}
.service-custom-hours-editor{display:grid;gap:.75rem}
.service-custom-hours-rows{display:grid;gap:.65rem}
.service-custom-hour-row{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(130px,.7fr) minmax(130px,.7fr) auto;gap:.65rem;align-items:end;padding:.75rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
@media(max-width:760px){.service-editor-panel{padding:.9rem}.service-custom-hour-row{grid-template-columns:1fr 1fr}.service-custom-hour-row .service-hour-remove{grid-column:1/-1}}

.service-hours-scan-note{margin:0 0 .75rem;}
.service-custom-hours-rows.hours-day-list{gap:.75rem;}
.service-custom-hour-row{display:none;}

/* Offering availability stays discoverable without turning the Offering list into a form. */
.service-offering-card-actions{display:flex;align-items:flex-start;gap:.45rem;margin-left:auto}
.service-offering-edit-button{white-space:nowrap}
.service-offering-special-dates-section{margin-top:.9rem}
.service-offering-special-dates-details{border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);overflow:hidden}
.service-offering-special-dates-summary{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem .9rem;cursor:pointer;list-style:none}
.service-offering-special-dates-summary::-webkit-details-marker{display:none}
.service-offering-special-dates-summary>span:first-child{display:grid;gap:.12rem}
.service-offering-special-dates-details[open]>.service-offering-special-dates-summary{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,var(--panel-soft))}
.service-offering-special-dates-body{display:grid;gap:.85rem;padding:.9rem}
.service-offering-special-date-grid{margin:0}
.service-offering-special-date-actions{justify-content:flex-end}
.service-offering-special-date-actions>:first-child{flex:0 0 auto}
.service-offering-special-date-list-heading{margin-top:.25rem}
.service-offering-special-date-row>span:first-child{display:grid;gap:.25rem;min-width:0}
.service-offering-special-date-row .override-record-windows{display:flex;gap:.3rem;flex-wrap:wrap}
@media(max-width:760px){
  .service-offering-card-actions{align-self:flex-start}
  .service-offering-special-dates-summary{align-items:flex-start}
  .service-offering-special-date-actions>button{width:100%}
}

/* Phase 1 service configuration: surface legacy service-wide rules within Location Offerings. */
.service-legacy-hours-note{margin:1rem 0;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;background:var(--panel-soft);overflow:hidden}
.service-legacy-hours-note>summary{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.35rem 1rem;padding:1rem;cursor:pointer;list-style:none}
.service-legacy-hours-note>summary::-webkit-details-marker{display:none}
.service-legacy-hours-note[open]>summary{border-bottom:1px solid var(--line)}
.service-legacy-hours-note>.info-banner,.service-legacy-hours-note>.service-hours-mode,.service-legacy-hours-note>.service-custom-hours-editor,.service-legacy-hours-actions,.service-legacy-hours-content{margin:.85rem 1rem}
.service-legacy-hours-actions{display:flex;justify-content:flex-end}
.service-legacy-hours-windows{display:grid;gap:.4rem}
.service-legacy-hours-windows>div{display:flex;gap:1rem;flex-wrap:wrap;align-items:baseline}
.service-legacy-hours-windows strong{min-width:7rem}
@media(max-width:600px){.service-legacy-hours-note>summary{display:grid}.service-legacy-hours-actions>button{width:100%}}

/* Group-session editor and service/group policies. */
.group-session-dialog { width: min(760px, calc(100vw - 32px)); }
.group-session-card { width: 100%; max-width: none; }
.group-session-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.group-session-grid label { display: grid; gap: 6px; }
.group-participant-section { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 16px; }
.compact-heading-row { align-items: end; margin-bottom: 10px; }
#groupParticipantSearch { max-width: 280px; }
.group-participant-list { max-height: 300px; overflow: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 4px; }
.group-participant-option { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; cursor: pointer; }
.group-participant-option input { margin-top: 3px; }
.group-participant-option span { display: grid; gap: 2px; min-width: 0; }
.group-participant-option small { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-participant-summary { font-weight: 650; white-space: nowrap; }
.dialog-action-spacer { flex: 1; }
@media (max-width: 720px) {
  .group-session-grid, .group-participant-list { grid-template-columns: 1fr; }
  #groupParticipantSearch { max-width: none; width: 100%; }
  .group-session-actions { flex-wrap: wrap; }
}
.service-session-mode-control{grid-template-columns:repeat(2,minmax(0,1fr));}
.group-service-settings{display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);}
.group-service-settings>.service-segment-field{grid-column:1/-1;}
.group-service-settings[hidden]{display:none!important;}
.group-minimum-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;grid-column:1/-1;}
.input-with-suffix{display:flex;align-items:stretch;gap:0;}
.input-with-suffix input{border-top-right-radius:0;border-bottom-right-radius:0;min-width:0;}
.input-with-suffix span{display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-left:0;border-radius:0 8px 8px 0;background:var(--panel);color:var(--muted);white-space:nowrap;font-size:.86rem;}
.client-action-policy{margin:8px 0 14px;padding:16px;border:1px solid var(--line);border-radius:12px;}
.client-action-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:10px;}
.client-action-policy-card{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft);}
.client-action-policy-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
@media (max-width:720px){.group-service-settings,.group-minimum-grid,.client-action-policy-grid{grid-template-columns:1fr;}.service-session-mode-control{grid-template-columns:repeat(2,minmax(0,1fr));}}
.group-participant-option input[type="checkbox"] {
  width: 18px;
  min-width: 18px;
  max-width: 18px;
  height: 18px;
  min-height: 18px;
  max-height: 18px;
  flex: 0 0 18px;
  margin: 3px 0 0;
  padding: 0;
  border-radius: 4px;
  accent-color: var(--accent);
}
.row-client-message{min-width:180px;max-width:260px;resize:vertical;}
.group-participant-option{display:grid;gap:9px;cursor:default;}
.group-participant-option.is-selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel));}
.group-participant-choice{display:flex;gap:10px;align-items:flex-start;cursor:pointer;min-width:0;}
.group-participant-choice>span{display:grid;gap:2px;min-width:0;}
.group-participant-package-note,.group-participant-package-field{margin-left:28px;padding-top:7px;border-top:1px solid var(--line);}
.group-participant-package-note.is-ready{color:var(--muted);}
.group-participant-package-note.is-error{color:var(--danger);}
.group-participant-package-field{display:grid;gap:5px;}
.group-participant-package-field>span{font-size:.78rem;font-weight:700;color:var(--muted);}
.group-participant-package-field select{width:100%;min-width:0;}
.group-participant-package-field small{white-space:normal;overflow:visible;text-overflow:clip;}

/* Compact Group composer aligned with Individual scheduling. */
body.appointment-composer-open .group-session-dialog{overscroll-behavior:contain;}
.group-session-dialog{width:min(1040px,calc(100vw - 1rem));max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);margin:auto;overflow:hidden;}
.group-session-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;max-width:100%;max-height:calc(100dvh - 1rem);padding:0;gap:0;overflow:hidden;}
.group-session-composer-body{overflow-x:hidden;}
.group-session-composer-layout{align-items:start;}
.group-session-composer-layout .appointment-composer-context{align-content:start;}
.group-participant-section{margin-top:.8rem;padding-top:.75rem;border-top:1px solid var(--line);}
.group-participant-help{margin:.15rem 0 .55rem;line-height:1.35;}
.group-participant-list{max-height:230px;overflow:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.15rem;}
.group-participant-option{padding:.55rem .65rem;border-radius:9px;}
.group-session-actions{margin-top:0;}
#groupSessionRecurringExisting button{margin-top:.2rem;}
@media(max-width:760px){
  .group-session-dialog{width:calc(100vw - .4rem);max-width:calc(100vw - .4rem);max-height:calc(100dvh - .4rem);}
  .group-session-card{max-height:calc(100dvh - .4rem);}
  .group-participant-list{grid-template-columns:1fr;max-height:280px;}
  .group-session-actions{display:grid;grid-template-columns:1fr;}
  .group-session-actions .dialog-action-spacer{display:none;}
  .group-session-actions button{width:100%;}
}


/* Group Session creation mirrors Add Appointment: one shared context, one or many explicit dates/times. */
.group-session-selected-panel{grid-column:1 / -1;}
.group-session-selection-help{margin:0;line-height:1.35;}
.group-session-dialog .appointment-composer-times{max-height:min(280px,36vh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;align-content:start;padding-right:.16rem;}
.group-session-selection .appointment-composer-selection-detail strong{font-variant-numeric:tabular-nums;}
@media(max-width:620px){
  .group-session-dialog .appointment-composer-times{max-height:min(220px,30vh);}
  .group-session-selected-panel{grid-column:1;}
}

/* Website booking link settings. */
.booking-widget-settings { margin: 4px 0 18px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--panel) 92%, transparent); }
.booking-widget-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.booking-widget-heading p { margin: 5px 0 0; }
.booking-widget-code { width: 100%; min-height: 132px; resize: vertical; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; font-size: 12px; line-height: 1.55; white-space: pre; overflow: auto; }
@media (max-width: 680px) { .booking-widget-heading { flex-direction: column; } .booking-widget-heading .compact { width: 100%; } }

/* Secure client booking-page appearance settings. */
.booking-instructor-policy-card { margin: 0 0 22px; border-color: color-mix(in srgb, var(--accent) 46%, var(--line)); background: color-mix(in srgb, var(--accent) 7%, var(--panel-soft)); box-shadow: inset 3px 0 0 var(--accent); }
.booking-instructor-policy-card .access-role-policy-toggle { align-self: center; padding: .55rem .7rem; border: 1px solid color-mix(in srgb, var(--accent) 32%, var(--line)); border-radius: 10px; background: var(--panel); }
.booking-page-presentation-settings { margin: 0 0 22px; padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: color-mix(in srgb, var(--panel) 92%, transparent); }
.booking-page-presentation-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.booking-page-presentation-heading p { margin: 5px 0 0; max-width: 720px; }
.booking-page-presentation-form { max-width: 720px; }
.booking-page-presentation-form textarea { width: 100%; min-height: 104px; resize: vertical; }
.booking-page-presentation-fieldset,.booking-page-density-fieldset { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.booking-page-presentation-fieldset legend,.booking-page-density-fieldset legend { margin-bottom: 4px; font-weight: var(--font-weight-medium); }
.booking-page-preset-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; max-width: 680px; }
.booking-page-preset-option { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--panel); cursor: pointer; }
.booking-page-preset-option:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 1px color-mix(in srgb,var(--accent) 44%,transparent); }
.booking-page-preset-option:focus-within { outline: 2px solid var(--accent); outline-offset: 2px; }
.booking-page-preset-option input { width: auto; min-height: 0; margin: 3px 0 0; }
.booking-page-preset-option span { display: grid; gap: 3px; min-width: 0; }
.booking-page-preset-option small { color: var(--muted); line-height: 1.4; }
.booking-page-density-control { width: min(100%, 360px); }
.booking-page-branding-note { max-width: 680px; }
@media (max-width: 680px) { .booking-page-presentation-settings { padding: 14px; } .booking-page-presentation-form { max-width: none; } .booking-page-preset-grid { grid-template-columns: 1fr; } }

/* Client notification preferences and organization routing. */
.client-card-notification{display:block;margin-top:.18rem;min-width:0;color:var(--muted);font-size:.9rem;line-height:1.35;overflow-wrap:anywhere}
.client-notification-editor{display:grid;gap:.75rem;margin-top:.35rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft)}
.client-notification-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem}
.client-notification-heading>div{display:grid;gap:.12rem;min-width:0}
.client-notification-heading>label{min-width:210px;margin:0}
.client-notification-matrix,.notification-routing-matrix{display:grid;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--panel)}
.client-notification-row,.notification-routing-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,.8fr) minmax(170px,.9fr);gap:.75rem;align-items:center;padding:.68rem .75rem;border-bottom:1px solid var(--line)}
.client-notification-row:last-child,.notification-routing-row:last-child{border-bottom:0}
.client-notification-row>strong,.notification-routing-row>strong{font-size:.9rem}
.client-notification-check,.notification-route-option{display:flex;grid-template-columns:none;align-items:center;gap:.48rem;margin:0;color:var(--text);font-size:.86rem}
.client-notification-check input,.notification-route-option input{width:1rem;height:1rem;min-height:0;margin:0;flex:0 0 auto}
.client-notification-unavailable,.notification-route-unavailable{display:block;color:var(--muted);font-size:.8rem;line-height:1.3}
.client-notification-note{margin:0}
.notification-routing-panel{display:grid;gap:14px}
.notification-routing-form{display:grid;gap:12px}
.notification-routing-form .toolbar{margin:0}
.notification-routing-row>div{min-width:0}
@media(max-width:760px){.client-notification-heading{align-items:stretch;flex-direction:column}.client-notification-heading>label{width:100%;min-width:0}.client-notification-row,.notification-routing-row{grid-template-columns:1fr;gap:.42rem}.client-notification-row>strong,.notification-routing-row>strong{padding-bottom:.12rem}.client-card-edit-actions{flex-direction:column-reverse}.client-card-edit-actions button{width:100%}}

/* Registry-driven WhatsApp Utility body-parameter editor. */
.whatsapp-utility-row{align-items:start}
.whatsapp-utility-parameter-editor{grid-column:1/-1;display:grid;gap:.62rem;padding:.72rem;border:1px solid var(--line);border-radius:10px;background:var(--panel-soft)}
.whatsapp-utility-parameter-heading{display:flex;justify-content:space-between;align-items:end;gap:.8rem}
.whatsapp-utility-parameter-heading>div:first-child{display:grid;gap:.15rem;min-width:0}
.whatsapp-utility-parameter-heading>div:first-child>strong{font-size:.88rem}
.whatsapp-utility-parameter-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}
.whatsapp-utility-parameter-list{display:grid;gap:.45rem}
.whatsapp-utility-parameter-row{display:grid;grid-template-columns:2.2rem minmax(180px,.9fr) minmax(180px,1fr) auto;align-items:center;gap:.48rem}
.whatsapp-utility-parameter-number{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.8rem;font-weight:var(--font-weight-bold)}
.whatsapp-utility-parameter-row select,.whatsapp-utility-parameter-row input{min-height:38px;padding:.48rem .58rem;font-size:.86rem}
.whatsapp-utility-parameter-row input[hidden]{display:block;visibility:hidden;pointer-events:none}
.whatsapp-utility-parameter-actions{display:flex;align-items:center;gap:.3rem}
.whatsapp-utility-parameter-actions button{min-width:2.25rem;padding:.28rem .5rem}
.whatsapp-utility-parameter-list:empty::after{content:"No body parameters configured. Use + Add parameter if the Meta template body contains variables.";display:block;padding:.55rem;color:var(--muted);font-size:.82rem;border:1px dashed var(--line);border-radius:8px}
@media(max-width:900px){.whatsapp-utility-parameter-row{grid-template-columns:2.2rem minmax(0,1fr) minmax(0,1fr)}.whatsapp-utility-parameter-actions{grid-column:2/-1;justify-content:flex-end}}
@media(max-width:620px){.whatsapp-utility-parameter-heading{align-items:stretch;flex-direction:column}.whatsapp-utility-parameter-toolbar{justify-content:stretch}.whatsapp-utility-parameter-toolbar button{flex:1 1 auto}.whatsapp-utility-parameter-row{grid-template-columns:2.2rem minmax(0,1fr)}.whatsapp-utility-parameter-row select,.whatsapp-utility-parameter-row input,.whatsapp-utility-parameter-actions{grid-column:2}.whatsapp-utility-parameter-actions{justify-content:stretch;flex-wrap:wrap}.whatsapp-utility-parameter-actions button{flex:1 1 auto}.whatsapp-utility-parameter-row input[hidden]{display:none}}

/* Curated appointment lifecycle notification rules. */
.notification-rules-list{display:grid;gap:.7rem}
.notification-rule-card{display:grid;gap:.65rem;padding:.8rem;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
.notification-rule-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.notification-rule-heading>div:first-child{display:grid;gap:.12rem;min-width:0}
.notification-rule-grid{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(155px,.8fr) minmax(110px,.55fr) minmax(220px,1fr) auto;gap:.65rem;align-items:end}
.notification-rule-grid label{margin:0;min-width:0}
.notification-rule-grid input[type="text"],.notification-rule-grid input[type="number"],.notification-rule-grid select{width:100%;min-height:40px}
.notification-rule-hours.is-hidden{display:none}
.notification-rule-channels{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;min-height:40px}
.notification-rule-channels>span{width:100%}
.notification-rule-remove{display:flex;align-items:end;justify-content:flex-end;padding-bottom:.05rem}
.notification-rule-note{margin:0}
.notification-rule-add-actions{display:flex;flex-wrap:wrap;gap:.55rem}
@media(max-width:1100px){.notification-rule-grid{grid-template-columns:minmax(180px,1fr) minmax(150px,.8fr) minmax(100px,.5fr)}.notification-rule-channels{grid-column:1/3}.notification-rule-remove{grid-column:3}}
@media(max-width:700px){.notification-rule-heading{align-items:flex-start;flex-direction:column}.notification-rule-grid{grid-template-columns:1fr}.notification-rule-channels,.notification-rule-remove{grid-column:1}.notification-rule-remove{justify-content:stretch}.notification-rule-remove button,.notification-rule-add-actions button{width:100%}.notification-rule-add-actions{display:grid}}

/* Settings/Data secondary navigation. */
.secondary-workspace{display:grid;grid-template-columns:minmax(168px,195px) minmax(0,1fr);gap:1rem;align-items:start;min-width:0}
.secondary-workspace.secondary-workspace--content-only{grid-template-columns:minmax(0,1fr);gap:0}
.secondary-workspace-sidebar{display:grid;gap:.45rem;position:sticky;top:104px;min-width:0;padding:.72rem}
.secondary-workspace-heading-compact{display:flex;align-items:center;min-height:20px;padding:0 .38rem}
.secondary-workspace-heading-compact .section-kicker{margin:0}
.secondary-section-navigator{display:grid;min-width:0}
.secondary-navigation{display:grid;gap:.24rem;min-width:0}
.secondary-navigation-group{min-width:0;border:0}
.secondary-navigation-group>summary{display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-height:40px;padding:.52rem .6rem;border:1px solid transparent;border-radius:8px;color:var(--muted);cursor:pointer;font-size:.9rem;font-weight:var(--font-weight-medium);list-style:none;user-select:none}
.secondary-navigation-group>summary::-webkit-details-marker{display:none}
.secondary-navigation-group>summary:hover,.secondary-navigation-group>summary:focus-visible,.secondary-navigation-group.contains-active>summary{border-color:var(--line);background:var(--hover-bg);color:var(--text)}
.secondary-navigation-group-chevron{flex:0 0 auto;width:.48rem;height:.48rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-.1rem) rotate(45deg);transition:transform 160ms ease}
.secondary-navigation-group[open] .secondary-navigation-group-chevron{transform:translateY(.12rem) rotate(225deg)}
.secondary-navigation-group-items{display:grid;gap:.14rem;margin:.08rem 0 .3rem .52rem;padding-left:.46rem;border-left:1px solid var(--line)}
.secondary-navigation-button{width:100%;justify-content:flex-start;min-height:40px;padding:.55rem .6rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-weight:var(--font-weight-medium);box-shadow:none;text-align:left;line-height:1.25}
.secondary-navigation-button-root{min-height:42px}
.secondary-navigation-button:hover{transform:none;filter:none;background:var(--hover-bg);color:var(--text)}
.secondary-navigation-button.is-active{border-color:var(--line);background:var(--panel-soft);color:var(--accent-emphasis,var(--accent))}
.secondary-navigation-button-danger:not(.is-active){color:var(--danger)}
.secondary-workspace-content{min-width:0}
.secondary-subview{display:grid;gap:1rem;min-width:0}
.secondary-subview[hidden]{display:none!important}
.data-secondary-content,.data-secondary-subview{display:grid;gap:1rem;min-width:0}
.data-secondary-subview[hidden]{display:none!important}

@media(max-width:1400px){
  .secondary-workspace{grid-template-columns:minmax(0,1fr)}
  .secondary-workspace-sidebar{position:static;gap:.35rem;padding:.68rem}
  .secondary-workspace-heading-compact{display:none}
  .secondary-navigation-structured{grid-template-columns:minmax(0,1fr)}
  .secondary-navigation-group>summary{min-height:44px;padding:.62rem .68rem}
  .secondary-navigation-button{min-height:44px;padding:.62rem .68rem}
}

@media(max-width:760px){.secondary-workspace-content{min-width:0}}

/* Hosted Platform tab: the embedded operations workspace must fill the available app shell. */
.platform-app-workspace{min-width:0;overflow:hidden;width:100%;}
.platform-app-frame{display:block;width:100%;max-width:100%;min-height:520px;border:0;background:transparent;}

/* Shared compact pagination for bounded administrative lists. */
.collection-pagination{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--line)}
.collection-pagination>div{display:flex;gap:.45rem}.collection-pagination button{min-width:92px}
@media(max-width:620px){.collection-pagination{align-items:stretch;flex-direction:column}.collection-pagination>div{display:grid;grid-template-columns:1fr 1fr}.collection-pagination button{width:100%}}

.weekly-hours-editor{display:grid;gap:.75rem;min-width:0}
.weekly-hours-editor-hint{margin:0}
.weekly-hours-week{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:.7rem;align-items:start;min-width:0}
.weekly-hours-day{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);overflow:hidden}
.weekly-hours-day[open]{grid-column:1/-1}
.weekly-hours-day-summary{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.82rem .9rem;cursor:pointer;list-style:none;min-width:0}
.weekly-hours-day-summary::-webkit-details-marker{display:none}
.weekly-hours-day-label{display:flex;align-items:baseline;gap:.45rem;flex-wrap:wrap;min-width:0}
.weekly-hours-day-label strong{font-size:.96rem}
.weekly-hours-day-summary-hint{flex:0 0 auto;white-space:nowrap}
.weekly-hours-day[open]>.weekly-hours-day-summary{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,var(--panel-soft))}
.weekly-hours-day-content{display:grid;gap:.65rem;padding:.72rem;min-width:0}
.weekly-hours-day-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.65rem;min-width:0}
.weekly-hours-day-actions{display:flex;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}
.weekly-hours-windows{display:grid;gap:.45rem;min-width:0}
.weekly-hours-window{display:grid;grid-template-columns:minmax(120px,1fr) auto;align-items:center;gap:.7rem;padding:.52rem .6rem;border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:9px;background:var(--panel);min-width:0}
.weekly-hours-time{font-variant-numeric:tabular-nums;white-space:nowrap}
.weekly-hours-window-actions{display:flex;justify-content:flex-end;gap:.35rem;flex-wrap:wrap}
.weekly-hours-day-empty{margin:.15rem 0}

/* The dialog owns its width. The card must never be wider than its dialog, otherwise
   the left/right edges and the close control are clipped by the dialog viewport. */
.weekly-hours-action-dialog{width:min(680px,calc(100vw - 2rem));max-width:min(680px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);margin:auto;overflow:hidden}
.weekly-hours-action-card{width:100%;max-width:100%;max-height:calc(100dvh - 2rem);overflow:auto;overscroll-behavior:contain}
.weekly-hours-action-card>.weekly-hours-dialog-heading{position:sticky;top:-1.2rem;z-index:4;margin:-1.2rem -1.2rem 0;padding:1.2rem 4rem .75rem 1.2rem;border-bottom:1px solid var(--line);background:var(--panel)}
.weekly-hours-action-card>.weekly-hours-dialog-heading .icon-button{position:absolute;top:.92rem;right:1rem;z-index:5;margin:0}
.weekly-hours-dialog-body{display:grid;gap:1rem;min-width:0}
.weekly-hours-day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;margin-top:.5rem}
.weekly-hours-day-choice{display:grid;place-items:center;gap:.25rem;min-width:0;padding:.48rem .2rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft);cursor:pointer}
.weekly-hours-day-choice:has(input:checked){border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--panel-soft))}
.weekly-hours-day-choice:has(input:disabled){opacity:.55;cursor:default}
.weekly-hours-day-choice input[type="checkbox"]{width:1rem;height:1rem;min-height:0;margin:0;padding:0;flex:0 0 1rem}
.weekly-hours-day-shortcuts{margin-top:.5rem;justify-content:flex-start;flex-wrap:wrap}
.weekly-hours-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.weekly-hours-time-grid label{display:grid;gap:.3rem}
.weekly-hours-dialog-actions{position:sticky;bottom:-1.2rem;z-index:4;margin:0 -1.2rem -1.2rem;padding:.75rem 1.2rem 1.2rem;border-top:1px solid var(--line);background:var(--panel)}
.inline-validation{padding:.65rem .75rem;border:1px solid var(--danger,#b84a5a);border-radius:9px;background:color-mix(in srgb,var(--danger,#b84a5a) 10%,transparent);font-size:.86rem}

.hours-subview-tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--line);margin:-.2rem 0 1rem}
.hours-subview-tab{border:0;border-radius:0;background:transparent;color:var(--muted);padding:.75rem .2rem;margin-right:1rem;min-height:0;border-bottom:2px solid transparent}
.hours-subview-tab.is-active{color:var(--text);border-bottom-color:var(--accent);background:transparent}
.hours-subview[hidden]{display:none!important}
.hours-save-actions{justify-content:flex-end}
.hours-save-actions>:first-child{flex:0 0 auto}
.hours-summary-grid{display:grid;gap:.5rem;margin:.8rem 0 0}
.hours-summary-row{display:grid;grid-template-columns:minmax(160px,240px) minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.55rem .65rem;border:1px solid var(--line);border-radius:9px;background:var(--panel-soft)}

.location-hours-section{grid-column:1/-1;padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);display:grid;gap:.8rem}
.location-hours-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.location-hours-choice label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:start;padding:.72rem .78rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;min-width:0}
.location-hours-choice label:has(input:checked){border-color:color-mix(in srgb,var(--accent) 55%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.location-hours-choice input[type="radio"]{width:1rem;height:1rem;min-height:0;margin:.14rem 0 0;padding:0;flex:0 0 1rem}
.location-hours-choice label>span{display:grid;gap:.12rem;min-width:0}
.location-hours-choice label strong{line-height:1.25}
.location-hours-choice label small{color:var(--muted);font-size:.78rem;line-height:1.35}
.location-hours-editor[hidden]{display:none}

.special-date-target-note{margin:.15rem 0 0}
.special-date-date-mode{display:flex;gap:.8rem;flex-wrap:wrap;margin:.45rem 0}
.special-date-selected-dates{display:flex;gap:.45rem;align-items:end;flex-wrap:wrap}
.special-date-selected-list{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.45rem}
.special-date-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .5rem;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft)}

@media(max-width:760px){
  .weekly-hours-day-toolbar{align-items:flex-start;flex-direction:column}
  .weekly-hours-day-actions{width:100%;justify-content:flex-start}
  .weekly-hours-window{grid-template-columns:1fr}
  .weekly-hours-window-actions{justify-content:flex-start}
  .weekly-hours-day-picker{grid-template-columns:repeat(4,minmax(0,1fr))}
  .weekly-hours-time-grid{grid-template-columns:1fr}
  .hours-summary-row{grid-template-columns:1fr}
  .location-hours-choice{grid-template-columns:1fr}
  .hours-subview-tabs{overflow-x:auto;white-space:nowrap}
}
@media(max-width:620px){
  .weekly-hours-action-dialog{width:calc(100vw - 1rem);max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}
  .weekly-hours-action-card{max-height:calc(100dvh - 1rem);padding:1rem}
  .weekly-hours-action-card>.weekly-hours-dialog-heading{top:-1rem;margin:-1rem -1rem 0;padding:1rem 3.6rem .7rem 1rem}
  .weekly-hours-action-card>.weekly-hours-dialog-heading .icon-button{top:.72rem;right:.75rem}
  .weekly-hours-dialog-actions{bottom:-1rem;margin:0 -1rem -1rem;padding:.7rem 1rem 1rem}
  .hours-save-actions>button{width:100%}
}
@media(max-width:430px){
  .weekly-hours-day-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
  .weekly-hours-day-actions,.weekly-hours-window-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .weekly-hours-window-actions button:last-child{grid-column:1/-1}
  .weekly-hours-day-actions button,.weekly-hours-window-actions button{width:100%}
}

/* UI stabilization phase 3: narrow-width, zoom and localization hardening.
   These rules intentionally change presentation only. They do not change workflows. */

/* Localized labels can be materially longer than their English equivalents. */
button:not(.icon-button){
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.18;
}
/* Alignment belongs to the component. Navigation, menus and record actions are
   intentionally left-aligned even when localization makes a label wrap. */
button.icon-button{white-space:nowrap;overflow-wrap:normal;}
input,select,textarea{min-width:0;max-width:100%;}
textarea{overflow-wrap:anywhere;}

/* Flex/grid children should be allowed to shrink instead of widening the viewport. */
.panel>*,.dialog-card>*,.section-heading-row>*,.panel-actions>*,.toolbar>*,
.topbar>*,.topbar-brand>*,.topbar-actions>*,.tab-panel>*,.inline-form>*,
.form-grid>*,.settings-grid>*,.service-editor-grid>*,.client-editor-grid>*{min-width:0;}
.section-heading-row h1,.section-heading-row h2,.section-heading-row h3,
.dialog-heading h1,.dialog-heading h2,.dialog-heading h3,
.panel h1,.panel h2,.panel h3{overflow-wrap:anywhere;}
.status-badge,.client-confirmation-badge{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center;}

/* Horizontal appointment tabs remain bounded under localization. Settings/Data now use
   a vertical grouped navigator, whose labels are allowed to wrap naturally. */
.appointment-workspace-tab{white-space:normal;overflow-wrap:anywhere;line-height:1.2;}
@media(max-width:760px){
  .appointment-workspace-tab{max-width:min(72vw,24rem);}
}

/* Keep all dialogs inside the visual viewport at browser zoom and on short phones. */
dialog{
  max-width:calc(100vw - 1rem);
  max-height:calc(100vh - 1rem);
  max-height:calc(100dvh - 1rem);
  overflow:hidden;
  margin:auto;
}
dialog>.dialog-card{
  max-height:calc(100vh - 1rem);
  max-height:calc(100dvh - 1rem);
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-bottom:max(1.2rem,env(safe-area-inset-bottom));
}
.dialog-heading{min-width:0;align-items:flex-start;}
.dialog-heading>*:not(.icon-button){min-width:0;overflow-wrap:anywhere;}
.dialog-actions{min-width:0;flex-wrap:wrap;}
.dialog-actions>button{min-width:0;}

/* At phone/200%-zoom effective widths, actions reflow rather than overflow. */
@media(max-width:620px){
  .section-heading-row{align-items:stretch;flex-wrap:wrap;}
  .section-heading-row>div{flex:1 1 100%;}
  .section-heading-row>button,.section-heading-row>.toolbar{max-width:100%;}
  .panel-actions{align-items:stretch;flex-wrap:wrap;}
  .panel-actions>button{flex:1 1 min(100%,12rem);min-width:0;}
  .toolbar>button{flex:1 1 min(100%,10rem);min-width:0;}
  .dialog-actions>button{flex:1 1 min(100%,10rem);}
}
@media(max-width:430px){
  .dialog-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%;}
  .dialog-actions>button{width:100%;}
  .section-heading-row>button{width:100%;}
}

/* Coarse pointers should never require precision taps for interactive controls. */
@media(hover:none),(pointer:coarse){
  button,.tab-button,.secondary-navigation-button,[role="tab"],.client-menu-item,.service-menu-item,
  .lesson-package-menu-item,.nav-secondary-summary{min-height:44px;}
  button.icon-button{min-width:44px;min-height:44px;}
}

/* The localization runtime already sets document.dir. Keep the primary shell usable
   when an RTL catalog is registered, without affecting the current LTR locales. */
html[dir="rtl"] .topbar-logo{object-position:right center;}
html[dir="rtl"] .tab-button{text-align:right;}
@media(min-width:1025px){
  html[dir="rtl"] .tabbar{left:auto;right:0;border-right:0;border-left:1px solid var(--line);}
  html[dir="rtl"] .shell{margin-left:1.25rem;margin-right:calc(var(--app-primary-nav-width) + 1.25rem);}
}
@media(max-width:1024px){
  html[dir="rtl"] .tabbar{
    left:auto;right:0;border-right:0;border-left:1px solid var(--line);
    clip-path:inset(0 0 0 100%);
    box-shadow:-18px 0 40px rgba(0,0,0,.34);
  }
  html[dir="rtl"] body.nav-drawer-open .tabbar{clip-path:inset(0);}
}

/* Tablet / compact-desktop stabilization.
   At these widths the permanent primary navigation leaves less working space than
   the viewport number suggests. Reflow secondary workspaces and controls before
   they are forced into clipped or multi-line fragments. */
@media (min-width:761px) and (max-width:1400px){
  /* Dialogs should begin near the top of the visual viewport rather than being
     vertically centred below the user's current scroll position. */
  dialog[open]{
    inset-block-start:0;
    inset-block-end:auto;
    margin:max(.65rem,env(safe-area-inset-top)) auto 0;
    max-height:calc(100dvh - 1.3rem);
  }
  dialog[open]>.dialog-card{max-height:calc(100dvh - 1.3rem);}

  /* Settings/Data: use the full content width. The same grouped section navigator
     remains inline at compact widths rather than switching to a separate dropdown. */
  .secondary-workspace{grid-template-columns:minmax(0,1fr);}

  /* Session Packages: give search its own bounded row instead of squeezing it
     against the explanatory copy. */
  .lesson-package-list-section>.section-heading-row{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:start;
    gap:.65rem;
    margin-bottom:0;
  }
  .lesson-package-list-tools,.lesson-package-search{
    width:100%;
    min-width:0;
    max-width:100%;
  }
  .lesson-package-search{display:grid;gap:.3rem;}
  .lesson-package-search input{width:100%;min-width:0;max-width:100%;}
  #attentionRefreshButton,
  #refreshLessonPackagesButton,#refreshMigrationProjects{
    width:auto;
    min-width:max-content;
    white-space:nowrap;
    overflow-wrap:normal;
  }
  .dashboard-attention-heading,.migration-section-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:.75rem;
  }

  /* Staff notifications: keep the two bulk actions compact and readable. */
  .instructor-notification-heading{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    gap:.75rem;
  }
  .instructor-notification-heading .row-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:.45rem;
    flex-wrap:nowrap;
  }
  .instructor-notification-heading .row-actions button{
    width:auto;
    min-width:max-content;
    white-space:nowrap;
    overflow-wrap:normal;
  }

  /* Icon+label utility actions should not split into fragments at tablet width. */
  .button-with-icon{white-space:nowrap;overflow-wrap:normal;}
}
