/* Shared presentation layer. Business layouts stay in their existing modules. */
html { scroll-padding-top: calc(var(--header-height) + var(--space-4)); }
body { background: var(--color-canvas); color: var(--color-ink); font: var(--text-body)/1.6 var(--font-ui); font-variant-numeric: tabular-nums; }
[hidden] { display: none !important; }
button, input, select, textarea { font-family: var(--font-ui); }
a { color: var(--color-accent); }
a:hover { color: var(--color-accent-hover); }
button, input, select, textarea, summary { max-width: 100%; }
button, input, select, textarea, a, summary { -webkit-tap-highlight-color: transparent; }
:is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; }
button:disabled, .button.disabled { opacity: .55; cursor: not-allowed; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]), select, textarea {
  min-width: 0; min-height: var(--control-height); border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-control); background: var(--color-surface); color: var(--color-ink);
  padding: .5rem .75rem; font-size: var(--text-control); box-shadow: none;
}
input::placeholder, textarea::placeholder { color: var(--color-faint); opacity: 1; }
input[type=checkbox], input[type=radio] { accent-color: var(--color-accent); }
label { min-width: 0; }
textarea { width: 100%; resize: vertical; }
h1 { font-size: var(--text-title); font-weight: var(--weight-medium); line-height: 1.4; letter-spacing: -.02em; margin-bottom: var(--space-2); }
h2 { font-size: var(--text-section); line-height: 1.5; font-weight: var(--weight-medium); }
h3 { font-size: 1rem; }
small, .fine, .muted { color: var(--color-muted); }
small, .fine { font-size: var(--text-caption); line-height: 1.65; }
.eyebrow { font-size: var(--text-caption); letter-spacing: 0; color: var(--color-muted); margin-bottom: var(--space-1); }
.button, button.button, .link-button { min-height: var(--control-height); border-radius: var(--radius-control); font-size: var(--text-control); font-weight: var(--weight-medium); box-shadow: none; }
.button { padding: .5rem 1rem; border: 1px solid var(--color-border-strong); color: var(--color-ink-secondary); background: var(--color-surface); }
.button:hover { background: var(--color-surface-subtle); border-color: var(--color-border-strong); color: var(--color-ink); box-shadow: none; transform: none; }
.button.primary { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-on-dark); }
.button.primary:hover { background: var(--color-accent-hover); border-color: var(--color-accent-hover); }
.button.small { min-height: var(--control-height); font-size: var(--text-small); padding: .375rem .75rem; }
.button.danger-outline { color: var(--color-danger); background: var(--color-surface); border-color: var(--color-border); }
.button.danger-outline:hover { background: var(--color-danger-soft); border-color: var(--color-danger); }
.button-group { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.badge { border-radius: var(--radius-control); padding: .125rem .5rem; font-size: var(--text-caption); line-height: 1.7; font-weight: var(--weight-medium); background: var(--color-surface-subtle); color: var(--color-ink-secondary); border: 0; white-space: normal; }
.badge.scheduled, .badge.lifecycle-selecting { background: var(--color-info-soft); color: var(--color-info); }
.badge.amber, .badge.queued { background: var(--color-warning-soft); color: var(--color-warning); }
.badge.cancelled { background: var(--color-surface-subtle); color: var(--color-muted); }
.notice { border-radius: var(--radius-control); box-shadow: none; padding: var(--space-3) var(--space-4); }
.notice.warning { background: var(--color-warning-soft); color: var(--color-warning); border-color: var(--color-warning); }
.notice.error { background: var(--color-danger-soft); color: var(--color-danger); border-color: var(--color-danger); }
.notice.success { background: var(--color-success-soft); color: var(--color-success); }
.notice.info { background: var(--color-info-soft); color: var(--color-info); }
.panel { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-panel); box-shadow: none; min-width: 0; }
.container { width: 100%; max-width: 1680px; margin: 0 auto; padding: var(--space-6) var(--page-gutter); min-width: 0; }
.business-content, .management-content, .production-workspace { min-width: 0; max-width: 100%; }
.search-panel, .walkin-order-list, .form-panel, .detail-main, .timeline, .production-workspace .panel, .assignment-workspace>.panel, .factory-workspace .panel { padding: var(--space-5); }
.page-heading, .section-heading, .selection-page-heading, .segmentation-topbar { gap: var(--space-4); margin-bottom: var(--space-5); text-align: left; }
.page-heading h1, .section-heading h1 { margin: 0; }
.page-heading p, .section-heading p, .segmentation-topbar p { font-size: var(--text-small); color: var(--color-muted); }
.page-heading .button { align-self: auto; }
.empty-state { padding: var(--space-10) var(--space-5); color: var(--color-muted); }
.empty-state h2, .empty-state h3 { color: var(--color-ink); }
.pagination { flex-wrap: wrap; gap: var(--space-3); padding-top: var(--space-3); font-size: var(--text-small); }
body > footer { color: var(--color-muted); padding: var(--space-4) var(--page-gutter) var(--space-6); font-size: .75rem; }
body > footer span { display: none; }

/* Application shell: full work area on both orientations of a tablet. */
.skip-link { position: fixed; top: -5rem; left: var(--space-4); z-index: 2000; padding: var(--space-3); background: var(--color-surface); }
.skip-link:focus { top: var(--space-2); }
.topbar { position: sticky; top: 0; z-index: 100; display: flex; flex-wrap: nowrap; min-height: var(--header-height); height: var(--header-height); gap: var(--space-4); padding: 0 var(--page-gutter); border: 0; box-shadow: var(--shadow-header); background: var(--color-surface); }
.topbar .brand { font-size: 1rem; letter-spacing: -.02em; gap: var(--space-2); color: var(--color-ink); min-width: 0; }
.brand-mark { width: 1.875rem; height: 1.875rem; font: var(--weight-medium) 1rem/1 var(--font-ui); display: grid; place-items: center; border: 1px solid var(--color-border-strong); color: var(--color-ink); border-radius: var(--radius-control); }
.brand-mark > span, .brand small { display: none; }
.topbar .primary-navigation { display: none; width: auto; order: initial; flex-wrap: nowrap; gap: var(--space-1); height: 100%; margin: 0 auto; align-items: center; }
.primary-navigation a { display: flex; align-items: center; min-height: var(--control-height); padding: .5rem .75rem; color: var(--color-muted); font-size: var(--text-small); white-space: nowrap; border-radius: var(--radius-control); }
.primary-navigation a.active { color: var(--color-accent); background: var(--color-accent-soft); font-weight: var(--weight-medium); }
.topbar nav a.active:after { display: none; }
.nav-toggle, .drawer-close { width: var(--control-height); height: var(--control-height); flex: 0 0 auto; display: grid; place-items: center; color: var(--color-ink); background: transparent; border: 1px solid var(--color-border); border-radius: var(--radius-control); }
.nav-toggle svg { width: 1.25rem; height: 1.25rem; }
.topbar .account { margin-left: auto; min-width: 0; flex-shrink: 1; }
.account-trigger { min-height: var(--control-height); padding: .375rem .5rem; border: 0; border-radius: var(--radius-control); background: transparent; color: var(--color-ink-secondary); font-size: var(--text-small); gap: var(--space-2); max-width: 13rem; }
.account-trigger > span:first-child { overflow: hidden; text-overflow: ellipsis; max-width: 7rem; }
.account-role-label { border: 0; color: var(--color-muted); }
.account-popover { background: var(--color-surface); border: 1px solid var(--color-border); box-shadow: var(--shadow-overlay); border-radius: var(--radius-panel); }
.account-menu-item, .account-logout { min-height: var(--control-height); }
.container.department-layout { display: block; }
.department-sidebar, .management-sidebar { display: none; }
.management-workspace { display: block; min-width: 0; }
.department-heading { padding: 0 .75rem 1rem; }
.department-heading .eyebrow, .department-heading p, .management-sidebar > .eyebrow, .management-sidebar > p { display: none; }
.department-heading h2, .management-sidebar > h2 { font-size: var(--text-small); color: var(--color-muted); font-weight: var(--weight-medium); }
.department-sidebar a, .management-section-nav a { padding: .625rem .75rem; min-height: var(--control-height); border-radius: var(--radius-control); border: 0; color: var(--color-ink-secondary); font-size: var(--text-small); }
.department-sidebar a:hover, .management-section-nav a:hover { background: var(--color-surface-subtle); color: var(--color-ink); }
.department-sidebar a.active, .management-section-nav a.active { color: var(--color-accent); background: var(--color-accent-soft); font-weight: var(--weight-medium); box-shadow: inset 2px 0 var(--color-accent); }
.department-nav, .department-catalog { display: grid; gap: var(--space-1); }
.department-catalog { border-top: 1px solid var(--color-border); margin-top: var(--space-5); padding-top: var(--space-4); }
.department-catalog h3 { font-size: var(--text-caption); color: var(--color-muted); font-weight: var(--weight-medium); }
.management-section-nav a span { display: none; }
.workspace-drawer { position: fixed; inset: 0 auto 0 0; margin: 0; width: min(21rem, calc(100vw - 2.5rem)); height: 100dvh; max-height: 100dvh; padding: var(--space-5); border: 0; border-right: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-ink); overflow-y: auto; box-shadow: var(--shadow-overlay); }
.workspace-drawer::backdrop { background: var(--color-overlay); }
.drawer-heading { display: flex; justify-content: space-between; align-items: center; padding-bottom: var(--space-4); margin-bottom: var(--space-3); border-bottom: 1px solid var(--color-border); }
.drawer-heading strong { font-size: 1.125rem; }
.workspace-drawer .primary-navigation { display: grid; gap: var(--space-1); }
.workspace-drawer .department-sidebar { display: block; position: static; background: none; border: 0; border-top: 1px solid var(--color-border); border-radius: 0; margin-top: var(--space-4); padding: var(--space-5) 0; }
.workspace-drawer .department-heading { padding-left: .75rem; }
.workspace-drawer .management-sidebar { display: block; position: static; padding: 0; border: 0; background: transparent; }
.workspace-drawer .management-section-nav { display: grid; gap: var(--space-1); margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
body:has(.workspace-drawer[open]) { overflow: hidden; }
.screen-heading { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin: 0 0 var(--space-5); }
.screen-heading h1 { margin: 0; }
.screen-heading p { margin: .25rem 0 0; color: var(--color-muted); font-size: var(--text-small); }

/* Flat rows, adaptable fields, one copy of every real form control. */
.management-table-wrap, .roster-table-wrap { border-radius: var(--radius-control); max-width: 100%; }
.management-table { font-size: var(--text-small); }
.management-table th, .roster-table th { background: var(--color-surface-subtle); color: var(--color-muted); font-size: var(--text-caption); font-weight: var(--weight-medium); }
.management-table th, .management-table td { padding: .75rem 1rem; border-color: var(--color-border); }
.management-table td small { display: block; margin-top: .25rem; color: var(--color-muted); }
.management-table tbody tr:hover, .roster-table tbody tr:hover { background: var(--color-surface-hover); }
.management-table td, .roster-table td { overflow-wrap: anywhere; }
.ui-row-table { width: 100%; }
.ui-scroll-region { overflow-x: auto; max-width: 100%; overscroll-behavior-inline: contain; }
.ui-scroll-hint { font-size: var(--text-caption); color: var(--color-muted); margin: .375rem 0; }
.ui-filter-toggle { min-height: var(--control-height); padding: .5rem .75rem; color: var(--color-ink-secondary); background: var(--color-surface); border: 1px solid var(--color-border-strong); border-radius: var(--radius-control); font-size: var(--text-small); }
.search-form, .walkin-order-filters, .production-center-filters, .factory-filters { gap: var(--space-3); }
.search-form input, .search-form select { min-width: 0; }
.form-grid { gap: var(--space-5); }
.field { min-width: 0; }
.field label { font-size: var(--text-small); font-weight: var(--weight-medium); color: var(--color-ink-secondary); }
.field input:not([type=checkbox]):not([type=radio]), .field select, .field textarea { width: 100%; }
.field .checkbox { min-height: var(--control-height); }
.field .checkbox span { min-width: 0; }
.detail-grid { gap: var(--space-5); }
.detail-actions { gap: var(--space-2); margin: var(--space-4) 0; }
dialog { max-width: calc(100vw - 2rem); max-height: calc(100dvh - 2rem); overflow-y: auto; overscroll-behavior: contain; border-radius: var(--radius-dialog); border-color: var(--color-border); box-shadow: var(--shadow-overlay); }
dialog::backdrop { background: var(--color-overlay); }
.account-modal-close, [data-project-lifecycle-close], [data-photo-products-close] { min-width: var(--control-height); min-height: var(--control-height); }
.login-wrap { min-height: calc(100dvh - 10rem); }
.login-card { padding: var(--space-8); border-radius: var(--radius-panel); }

/* Quiet hierarchy: typography and separators do the work, not repeated boxes. */
strong, b { font-weight: var(--weight-medium); }
:is(.business-content, .management-content, .account-modal, .selection-viewer) h1 { font-size: var(--text-title); font-weight: var(--weight-medium); }
:is(.business-content, .management-content, .account-modal, .selection-viewer) h2 { font-size: var(--text-section); font-weight: var(--weight-medium); }
:is(.business-content, .management-content, .account-modal, .selection-viewer) h3 { font-size: var(--text-subheading); font-weight: var(--weight-medium); }
.button, button.button, .link-button, .field label { font-weight: var(--weight-regular); }
.topbar .brand { font-weight: var(--weight-medium); }
.brand-mark { font-weight: var(--weight-medium); border-color: var(--color-border); }
.account-profile-grid > div { border: 0; border-radius: 0; background: transparent; padding: 0; }
.account-profile-grid strong { font-size: var(--text-body); }
.nav-toggle, .drawer-close { border-color: transparent; }
.primary-navigation a.active { background: transparent; color: var(--color-ink); box-shadow: inset 0 -2px var(--color-accent); border-radius: 0; }
.workspace-drawer .primary-navigation a.active { background: var(--color-accent-soft); box-shadow: inset 2px 0 var(--color-accent); border-radius: var(--radius-control); }
.department-sidebar a.active, .management-section-nav a.active { box-shadow: inset 2px 0 var(--color-accent); }
.walkin-order-list, .search-panel, .outdoor-project-list, .roster-panel { border-color: transparent; }
.panel .panel { box-shadow: none; }
.management-table-wrap, .roster-table-wrap { border-inline: 0; border-radius: 0; }
.management-table th, .roster-table th { background: transparent; font-weight: var(--weight-regular); border-bottom-color: var(--color-border-strong); }
.management-table td, .roster-table td { border-bottom-color: var(--color-border); }
.management-table a:not(.button), .roster-table a:not(.button) { text-decoration-color: var(--color-border-strong); text-underline-offset: .25em; }
.management-table a:not(.button):hover, .roster-table a:not(.button):hover { text-decoration-line: underline; }
.action-panel .section-heading, .dashboard-today .section-heading { margin-bottom: var(--space-3); }
.action-card-heading strong, .today-booking-top strong { font-size: var(--text-subheading); font-weight: var(--weight-medium); }
.today-booking .button.primary { background: var(--color-accent-soft); color: var(--color-accent); border-color: transparent; }
.today-booking .button.primary:hover { background: var(--color-surface-pressed); }
.notice { border: 0; border-left: 2px solid var(--color-info); }
.notice.success { border-left-color: var(--color-success); }
.badge { font-weight: var(--weight-regular); border: 0; }
.badge:empty { display: none; }
.production-workspace.production-service-workspace { gap: var(--space-3); }
.production-service-workspace > .section-heading { margin: 0; }
.production-service-workspace > .section-heading h1 { margin: 0; }
.production-state-tabs .button, .factory-tabs .button { background: transparent; border-color: transparent; border-radius: 0; color: var(--color-muted); }
.production-state-tabs .button.primary, .factory-tabs .button.primary { color: var(--color-ink); background: transparent; border-color: transparent; box-shadow: inset 0 -2px var(--color-accent); }
.field label, .search-form label, .walkin-order-filters label { color: var(--color-ink-secondary); }
.empty-state h2, .empty-state h3 { font-weight: var(--weight-medium); }

/* Campus lists and the daily reception desk. */
.outdoor-project-index, .outdoor-project-list, .roster-panel { height: auto; min-height: 0; max-height: none; }
.outdoor-filter-toolbar { align-items: end; gap: var(--space-4); }
.outdoor-project-filters { flex: 1; }
.outdoor-project-list { overflow: visible; margin-top: var(--space-4); }
.outdoor-project-lifecycle-trigger { width: 100%; text-align: left; border: 0; border-top: 1px solid var(--color-border); border-left: 0; background: transparent; border-radius: 0; padding: var(--space-5) var(--space-3); box-shadow: none; }
.outdoor-project-lifecycle-trigger:last-of-type { border-bottom: 1px solid var(--color-border); }
.outdoor-project-row .result-date { width: 4.5rem; min-width: 4.5rem; color: var(--color-muted); }
.outdoor-project-row .result-main strong { font-size: var(--text-body); }
.outdoor-project-row-status { gap: var(--space-2); }
.result-row:hover { background: var(--color-surface-hover); }
.project-title-link { color: var(--color-ink); display: inline-flex; align-items: center; min-height: var(--control-height); }
.project-flow-button { min-height: var(--control-height); padding: .375rem 0 .375rem .5rem; background: transparent; color: var(--color-muted); border: 0; font-size: var(--text-small); }
.roster-panel { overflow: visible; }
.roster-table { min-width: 0; table-layout: auto; }
.roster-table th, .roster-table td { padding: .625rem .75rem; height: auto; }
.roster-row-actions { gap: var(--space-2); flex-wrap: wrap; }
.dashboard-titlebar { display: flex; justify-content: space-between; align-items: center; text-align: left; }
.dashboard-titlebar h1 { margin: 0; }
.dashboard-meta { margin: var(--space-3) 0 var(--space-5); gap: var(--space-3); }
/* Store workbench: one compact desktop toolbar, two clear rows on phones.
   Keep the refresh fragment and its event boundaries intact. */
.container:has(.store-workbench) { padding-top: var(--space-4); }
.store-workbench { display: grid; grid-template-columns: max-content minmax(0, 1fr) auto auto auto; column-gap: var(--space-3); align-items: center; }
.store-workbench .dashboard-titlebar, .store-workbench .dashboard-refresh, .store-workbench > [data-dashboard], .store-workbench .dashboard-meta { display: contents; }
.store-workbench .dashboard-titlebar h1 { grid-area: 1 / 1; white-space: nowrap; margin: 0; }
.store-workbench .dashboard-date { grid-area: 1 / 2; font-size: var(--text-caption); color: var(--color-muted); white-space: nowrap; }
.store-workbench [data-dashboard-updated] { grid-area: 1 / 3; margin: 0; font-size: var(--text-caption); white-space: nowrap; justify-self: end; }
.store-workbench .dashboard-meta > a { grid-area: 1 / 4; display: inline-flex; align-items: center; min-height: var(--control-height); width: auto; font-size: var(--text-small); white-space: nowrap; }
.store-workbench [data-dashboard-refresh] { grid-area: 1 / 5; margin: 0; justify-self: end; white-space: nowrap; }
.store-workbench #dashboard-refresh-status { grid-area: 2 / 1 / auto / -1; min-width: 0; margin: var(--space-1) 0 0; text-align: right; overflow-wrap: anywhere; }
.store-workbench #dashboard-refresh-status:empty { display: none; }
.store-workbench .dashboard-layout { grid-area: 3 / 1 / auto / -1; min-width: 0; margin-top: var(--space-3); }
.store-workbench > noscript { grid-column: 1 / -1; }
@media (max-width: 1023px) {
  .store-workbench { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: var(--space-2); }
  .store-workbench .dashboard-meta > a { grid-area: 1 / 2; }
  .store-workbench [data-dashboard-refresh] { grid-area: 1 / 3; }
  .store-workbench .dashboard-date { grid-area: 2 / 1; }
  .store-workbench [data-dashboard-updated] { grid-area: 2 / 2 / auto / 4; }
  .store-workbench #dashboard-refresh-status { grid-row: 3; }
  .store-workbench .dashboard-layout { grid-row: 4; }
}
@media (max-width: 639px) {
  .store-workbench .dashboard-year { display: none; }
}
@media (max-width: 359px) {
  body:has(.store-workbench) .account-trigger { max-width: 100%; }
  .store-workbench { grid-template-columns: minmax(0, 1fr) auto; }
  .store-workbench [data-dashboard-refresh] { grid-area: 1 / 2; }
  .store-workbench .dashboard-meta > a { grid-area: 2 / 2; justify-self: end; }
  .store-workbench [data-dashboard-updated] { grid-area: 3 / 1 / auto / -1; }
  .store-workbench #dashboard-refresh-status { grid-row: 4; }
  .store-workbench .dashboard-layout { grid-row: 5; }
}
.dashboard-layout { gap: var(--space-5); }
.action-panel, .dashboard-today { padding: var(--space-5); }
.action-card, .today-booking { box-shadow: none; border-radius: 0; background: transparent; border: 0; border-bottom: 1px solid var(--color-border); border-left: 2px solid transparent; padding: var(--space-4) var(--space-3); }
.action-high { border-left-color: var(--color-warning); background: var(--color-warning-soft); }
.action-list { gap: 0; }
.action-card-heading { gap: var(--space-2); }
.action-card h3 { font-size: var(--text-body); }
.action-card p { font-size: var(--text-small); }
/* Store todos: keep the category picker and history outside the scroll area. */
.store-workbench .action-panel { height: auto; min-height: 0; align-self: stretch; }
.store-workbench .action-hint { margin: 0 0 var(--space-2); }
.store-workbench .action-filters { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.store-workbench .action-filters label { margin: 0; font-size: var(--text-small); white-space: nowrap; }
.store-workbench .action-filters select { min-width: 0; width: 100%; min-height: 2.75rem; }
.store-workbench .action-list { flex: 0 1 auto; height: auto; max-height: 22.5rem; max-height: min(22.5rem, 60dvh); overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain; scrollbar-gutter: stable; padding: 0 2px; margin: 0 -2px; }
.store-workbench .action-card { margin: 0; padding: var(--space-2); }
.store-workbench .action-card-heading { flex-wrap: nowrap; align-items: flex-start; }
.store-workbench .action-card-heading .badge { min-width: 0; white-space: normal; overflow-wrap: anywhere; padding: .125rem .375rem; }
.store-workbench .action-card-heading strong { flex-shrink: 0; font-size: var(--text-small); }
.store-workbench .action-card h3 { margin: var(--space-1) 0; }
.store-workbench .action-card p { margin: var(--space-1) 0; line-height: 1.5; }
.store-workbench .action-card .dashboard-actions { gap: var(--space-2); margin-top: var(--space-2); }
.store-workbench .action-card .dashboard-actions .button { min-height: 2.75rem; padding: .375rem .5rem; font-size: var(--text-caption); }
.store-workbench .action-description { font-size: var(--text-small); color: var(--color-ink-secondary); overflow-wrap: anywhere; }
.store-workbench .action-description summary { min-height: 2.75rem; align-content: center; cursor: pointer; line-height: 1.5; }
.store-workbench .action-description summary span { color: var(--color-accent); text-decoration: underline; text-underline-offset: .2em; white-space: nowrap; }
.store-workbench .action-list .empty-state { min-height: 7rem; padding: var(--space-4) var(--space-2); }
.store-workbench .action-filter-empty { justify-items: center; gap: var(--space-2); text-align: center; }
.store-workbench .action-footer { margin-top: var(--space-3); padding-top: var(--space-2); gap: var(--space-1); }
@media (min-width: 1024px) {
  .store-workbench .action-panel { align-self: start; }
  .store-workbench .action-list { max-height: 30rem; max-height: min(30rem, 60dvh); }
  .store-workbench .action-card { padding: var(--space-3); }
}
.today-booking { display: grid; grid-template-columns: 4rem minmax(0,1fr); gap: var(--space-2) var(--space-3); margin: 0; }
.today-booking-top { grid-column: 1; grid-row: 1 / span 2; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: var(--space-2); }
.today-booking-top strong { font-size: 1rem; }
.today-booking-row { grid-column: 2; grid-row: 1; }
.today-booking .schedule-same-time { grid-column: 2; grid-row: 2; margin: 0; }
/* Keep every appointment available in a bounded, keyboard-scrollable list.
   Short lists size to their content; only the list scrolls, not the date picker. */
.store-workbench .today-panel { height: auto; min-height: 0; align-self: start; }
.store-workbench .today-booking-list { flex: 0 1 auto; height: auto; max-height: 30rem; max-height: min(30rem, 60dvh); overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain; scrollbar-gutter: stable; padding: 0 2px; margin: 0 -2px; }
.store-workbench .today-booking-list .empty-state { min-height: 7rem; padding: var(--space-4) var(--space-2); }
.store-workbench .today-booking-list .schedule-staff { margin-bottom: var(--space-1); }
.store-workbench .schedule-staff > summary { min-height: var(--control-height); display: list-item; align-content: center; padding-block: var(--space-2); }
.store-workbench .today-booking { grid-template-columns: 4rem minmax(0, 1fr); gap: var(--space-2); padding: var(--space-2); }
.store-workbench .today-booking-top { grid-row: 1; gap: var(--space-1); }
.store-workbench .today-booking-top strong { font-size: var(--text-body); }
.store-workbench .today-booking-row { display: contents; }
.store-workbench .today-booking-info { grid-area: 1 / 2; }
.store-workbench .today-booking h3 { margin: 0 0 var(--space-1); }
.store-workbench .today-booking .dashboard-actions { grid-area: 2 / 1 / auto / -1; min-width: 0; gap: var(--space-1); margin: 0; }
.store-workbench .today-booking .dashboard-actions .button { padding: .375rem .5rem; font-size: var(--text-caption); white-space: nowrap; }
.store-workbench .today-booking .schedule-same-time { margin: 0 0 0 auto; flex-wrap: wrap; gap: 0 var(--space-2); }
.store-workbench .today-booking .same-time-add { display: inline-flex; align-items: center; min-height: var(--control-height); margin: 0; padding: .375rem .25rem; font-size: var(--text-caption); white-space: nowrap; }
@media (max-width: 1023px) {
  .store-workbench .today-panel { align-self: stretch; }
  .store-workbench .today-booking-list { max-height: 22.5rem; max-height: min(22.5rem, 60dvh); }
}
@media (max-width: 359px) {
  .store-workbench .today-booking .dashboard-actions .button { padding-inline: var(--space-1); }
  .store-workbench .today-booking .same-time-add { padding-inline: 0; }
}
.icon-button { min-width: var(--control-height); min-height: var(--control-height); }
.schedule-date-toolbar { grid-template-columns: var(--control-height) minmax(0,1fr) var(--control-height) auto; }
.schedule-date-toolbar > .icon-button { min-height: var(--control-height); }
.section-count { font-size: var(--text-small); border-radius: var(--radius-control); background: var(--color-surface-subtle); color: var(--color-muted); }

/* Photo production tools: neutral surfaces, dense contact sheets. */
.photo-upload-control, .photo-batch-list-panel, .photo-marker-panel, .selection-student-panel, .selection-result-panel { padding: var(--space-5); }
.photo-upload-summary, .segmentation-summary-grid { gap: 0; border-block: 1px solid var(--color-border); }
.photo-upload-summary>div, .segmentation-summary-grid>div { background: transparent; border: 0; border-right: 1px solid var(--color-border); border-radius: 0; padding: var(--space-3) var(--space-4); }
.segmentation-summary-grid>div:last-child, .photo-upload-summary>div:last-child { border-right: 0; }
.segmentation-summary-grid strong { font-size: 1.25rem; }
.segmentation-toolbar { padding: var(--space-5); }
.segmentation-step-tabs { gap: var(--space-5); padding: 0 0 var(--space-3); }
.segmentation-step-tabs :is(a,span) { display: inline-flex; align-items: center; min-height: var(--control-height); padding: .5rem 0; border-radius: 0; background: transparent; border-bottom: 2px solid transparent; color: var(--color-muted); }
.segmentation-step-tabs>.active { color: var(--color-accent); background: transparent; border-bottom-color: var(--color-accent); }
.photo-drop-zone { border: 1px dashed var(--color-border-strong); border-radius: var(--radius-control); background: var(--color-surface-hover); padding: var(--space-5); }
.photo-upload-heading { margin-bottom: var(--space-3); }
.photo-upload-heading p { margin-bottom: 0; }
.upload-stage-note { color: var(--color-muted); font-size: var(--text-small); margin: 0 0 var(--space-4); }
.photo-drop-zone strong { font-size: var(--text-body); }
.photo-drop-zone p { margin: var(--space-2) 0 var(--space-3); font-size: var(--text-small); }
.photo-drop-zone .button-group { justify-content: center; }
.photo-drop-zone .button { font-size: var(--text-small); padding-inline: var(--space-3); }
.photo-drop-zone small { margin-top: var(--space-3); }
.photo-drop-zone { min-height: 0; }
.photo-select-grid { margin-block: var(--space-4); gap: var(--space-4); }
.photo-upload-persistent-warning { border: 0; border-left: 2px solid var(--color-warning); padding: 0 0 0 var(--space-3); font-size: var(--text-caption); color: var(--color-muted); margin: var(--space-3) 0; background: transparent; }
.photo-upload-persistent-warning strong { color: var(--color-ink-secondary); }
.photo-upload-actions [data-create-feedback]:empty { display: none; }
.photo-select-grid { gap: var(--space-5); }
.photo-batch-fields .fine { font-size: var(--text-caption); }
.photo-upload-workspace { padding: var(--space-5); }
.photo-batch-fields { background: transparent; border: 0; border-radius: 0; padding: 0; }
.photo-upload-heading p { font-size: var(--text-small); }
.photo-upload-workspace > .notice { font-size: var(--text-small); margin-block: var(--space-3); }
.photo-upload-workspace > .notice p { margin: .25rem 0 0; }
.photo-upload-runtime { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; margin-block: var(--space-3); border-top: 1px solid var(--color-border); }
.photo-upload-runtime > div { background: transparent; border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0; padding: var(--space-3); min-width: 0; }
.photo-upload-runtime select { min-height: var(--control-height); }
.upload-mode-help-trigger { width: var(--control-height); height: var(--control-height); }
.upload-status-details { margin-top: var(--space-4); border-top: 1px solid var(--color-border); }
.upload-status-details > summary, .inline-help > summary { min-height: var(--control-height); padding-block: var(--space-3); color: var(--color-muted); font-size: var(--text-small); cursor: pointer; }
.inline-help p { margin-top: var(--space-2); }
.project-segmentation-facts > span { border: 0; background: transparent; padding: .125rem 0; border-radius: 0; margin-right: var(--space-4); }
.project-segmentation-entry, .segmentation-finish-card { background: var(--color-surface); border: 1px solid var(--color-border); border-left: 3px solid var(--color-accent); border-radius: var(--radius-panel); padding: var(--space-5); gap: var(--space-5); }
.project-segmentation-entry h2, .segmentation-finish-card h2 { font-size: var(--text-section); }
.project-segmentation-entry p, .segmentation-finish-card p { font-size: var(--text-small); }
.photo-marker-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-3); }
.photo-marker-card { border: 1px solid var(--color-border); border-radius: var(--radius-control); box-shadow: none; overflow: hidden; min-width: 0; }
.photo-marker-card.is-marker { border: 2px solid var(--color-accent); }
.photo-marker-preview { background: var(--color-photo); border: 0; width: 100%; }
.photo-marker-meta { padding: var(--space-2); min-width: 0; }
.photo-marker-meta small { white-space: normal; overflow-wrap: anywhere; font-size: .75rem; }
.photo-marker-meta .button { width: 100%; padding-inline: .375rem; }
.photo-order, .marker-ribbon { background: var(--color-photo-toolbar); color: var(--color-on-dark); border-radius: var(--radius-control); }
.photo-segment-list { gap: var(--space-3); }
.photo-segment-card { grid-template-columns: 8rem minmax(0,1fr); padding: var(--space-4); gap: var(--space-4); min-height: 0; }
.segment-marker-column { padding: 0 var(--space-4) 0 0; border-right: 1px solid var(--color-border); min-width: 0; }
.segment-marker-preview { border-radius: var(--radius-control); background: var(--color-surface-subtle); }
.segment-marker-preview img { height: 8rem; object-fit: contain; }
.segment-heading { margin-bottom: var(--space-2); }
.segment-heading h2 { margin-bottom: var(--space-1); }
.segment-heading p { margin: 0; font-size: var(--text-caption); }
.segment-current-student { background: var(--color-surface-subtle); padding: var(--space-2) var(--space-3); border-radius: var(--radius-control); margin: var(--space-3) 0; }
.segment-binding-control label { font-size: var(--text-small); }
.student-search-results { box-shadow: var(--shadow-overlay); border-radius: var(--radius-panel); max-height: 18rem; overflow-y: auto; }
.student-search-results button { min-height: var(--control-height); }
.selection-result-grid { gap: var(--space-4); }
.selection-result-card { box-shadow: none; border-radius: var(--radius-control); }
.selection-result-card img { background: var(--color-photo); }

/* Real viewport space is reserved for the selection controls; never cover faces. */
.selection-viewer-fullscreen { display: grid; grid-template-rows: auto minmax(0,1fr) auto; height: 100dvh; min-height: 0; background: var(--color-photo); color: var(--color-on-dark); }
.selection-fullscreen-header { position: relative; inset: auto; display: flex; flex-wrap: wrap; min-height: 4rem; padding: .5rem .75rem; gap: .5rem; background: var(--color-photo-toolbar); border-bottom: 1px solid color-mix(in srgb,var(--color-on-dark) 12%,transparent); pointer-events: auto; }
.selection-floating-cluster { background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; backdrop-filter: none; }
.selection-floating-left { min-width: 0; }
.selection-floating-identity { min-width: 0; }
.selection-floating-identity strong { font-size: var(--text-body); max-width: 9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selection-floating-identity span { color: var(--color-on-dark-muted); }
.selection-fullscreen-header .selection-counter { min-width: 3rem; }
.selection-fullscreen-header .selection-counter strong { font-size: var(--text-body); }
.selection-fullscreen-header .selection-counter span { color: var(--color-on-dark-muted); font-size: .75rem; }
.selection-fullscreen-stage { position: relative; inset: auto; height: 100%; min-height: 0; width: 100%; background: var(--color-photo); }
.selection-fullscreen-stage img { object-fit: contain; }
.selection-fullscreen-exit, .selection-complete-button, .selection-quick-button, .selection-want-button { min-height: var(--control-height); padding: .5rem .75rem; font-size: var(--text-small); border-radius: var(--radius-control); background: var(--color-photo-toolbar); color: var(--color-on-dark); border: 1px solid color-mix(in srgb,var(--color-on-dark) 24%,transparent); }
.selection-complete-button { background: var(--color-surface); color: var(--color-ink); }
.selection-quick-toolbar { position: relative; inset: auto; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-2); padding: .75rem max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)); margin: 0; background: var(--color-photo-toolbar); pointer-events: auto; border-top: 1px solid color-mix(in srgb,var(--color-on-dark) 12%,transparent); }
.selection-quick-nav { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: var(--space-2); margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.selection-quick-button { min-width: 0; white-space: normal; line-height: 1.3; text-align: center; }
.selection-want-button, .selection-want-button.active { min-width: 0; background: var(--color-accent); border-color: var(--color-accent); color: var(--color-on-dark); }
.selection-quick-hint { display: none; }
.selection-note-popover { position: relative; inset: auto; align-self: center; width: auto; }
.selection-note-popover>summary { min-height: var(--control-height); display: flex; align-items: center; padding: .5rem .625rem; border-radius: var(--radius-control); color: var(--color-on-dark); background: transparent; }
.selection-note-popover[open] .selection-quick-note { position: absolute; right: 0; bottom: calc(100% + 1rem); width: min(20rem, calc(100vw - 2rem)); display: grid; grid-template-columns: 1fr; padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-dialog); background: var(--color-surface); color: var(--color-ink); box-shadow: var(--shadow-overlay); }
.selection-quick-note textarea { background: var(--color-surface); color: var(--color-ink); border-color: var(--color-border-strong); }
.selection-quick-note small { grid-column: auto; color: var(--color-muted); }
.selection-viewer-fullscreen .selection-original-link { top: auto; bottom: .5rem; right: .5rem; transform: none; min-height: var(--control-height); display: flex; align-items: center; background: var(--color-photo-toolbar); color: var(--color-on-dark); }

/* Management, production and finance use the same work surfaces. */
.production-assignment-reminder { border-radius: var(--radius-control); background: var(--color-accent-soft); border-color: var(--color-border); padding: var(--space-3) var(--space-4); }
.production-assignment-reminder strong { font-size: 1rem; }
.production-assignment-reminder strong span { font-size: 1.25rem; }
.production-script-toolbar, .assignment-toolbar, .factory-selection-bar { flex-wrap: wrap; gap: var(--space-3); background: var(--color-surface-subtle); border-radius: var(--radius-control); padding: var(--space-3); }
.factory-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); border-bottom: 1px solid var(--color-border); padding: 0; }
.factory-tabs a { border-radius: 0; border: 0; border-bottom: 2px solid transparent; background: transparent; min-height: var(--control-height); padding: .5rem .625rem; color: var(--color-muted); }
.factory-tabs a[aria-current] { color: var(--color-accent); background: transparent; border-bottom-color: var(--color-accent); }
.factory-heading>.badge { display: none; }
.factory-metrics { background: var(--color-surface-subtle); border-radius: var(--radius-control); gap: 0; grid-template-columns: repeat(4,minmax(0,1fr)); }
.factory-metrics>div { border: 0; border-right: 1px solid var(--color-border); background: transparent; border-radius: 0; padding: var(--space-3); }
.roster-context { margin-bottom: var(--space-4); }
.analytics { --a-ink: var(--color-ink); --a-muted: var(--color-muted); --a-line: var(--color-border); --a-green: var(--color-accent); --a-lime: var(--color-faint); }
.analytics-eyebrow { display: none; }
.analytics-heading h1 { font-size: var(--text-title); letter-spacing: -.02em; }
.analytics-heading p { display: none; }
.analytics-tools { font-size: var(--text-small); }
.analytics-tools button, .analytics-tools>a, .analytics-apply { min-height: var(--control-height); display: inline-flex; align-items: center; border-radius: var(--radius-control); }
.analytics-tools button { background: var(--color-surface); }
.analytics-filters { border-radius: var(--radius-panel); padding: var(--space-4); gap: var(--space-3); }
.analytics-filters label { font-size: var(--text-small); }
.analytics-filters input, .analytics-filters select { min-height: var(--control-height); font-size: var(--text-small); }
.analytics-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-panel); }
.analytics-card, .analytics-card.primary, .analytics-card.alert { min-height: 0; border: 0; border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); border-radius: 0; background: transparent; padding: var(--space-4); box-shadow: none; color: var(--color-ink); }
.analytics-card:hover { box-shadow: none; transform: none; background: var(--color-surface-hover); }
.analytics-value { font-size: 1.5rem; letter-spacing: -.03em; }
.analytics-card .analytics-card-top, .analytics-card.primary .analytics-card-top, .analytics-card.primary p, .analytics-card.primary .analytics-value small { color: var(--color-muted); font-size: var(--text-caption); }
.analytics-card.primary .analytics-card-top>span:last-child { color: var(--color-muted); }
.analytics-card p { font-size: .75rem; margin-bottom: 0; }
.analytics-card.alert .analytics-value { color: var(--color-danger); }
.analytics-panel { border-radius: var(--radius-panel); box-shadow: none; padding: var(--space-5); }
.analytics-grid { gap: var(--space-5); }
.analytics-stage-grid>a { border-radius: var(--radius-control); background: var(--color-surface-subtle); }
.analytics-panel h2 { font-size: var(--text-section); }
.analytics-empty { min-height: 8rem; }
.analytics-refresh-status, .analytics-panel header p, .analytics-footnote, .analytics-coverage, .analytics-scope, .analytics th, .analytics td { font-size: var(--text-caption); }

@media (min-width: 640px) {
  .photo-marker-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .selection-quick-toolbar { grid-template-columns: minmax(0, 32rem) auto; justify-content: center; gap: var(--space-4); }
  .selection-floating-identity strong { max-width: 24rem; }
}
@media (min-width: 768px) {
  .photo-marker-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .photo-segment-card { grid-template-columns: 10rem minmax(0,1fr); padding: var(--space-5); }
  .segment-marker-preview img { height: 10rem; }
  .analytics-cards { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .analytics-overview-grid, .analytics-operations-grid { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); }
  .ui-filter-toggle { display: none; }
}
@media (min-width: 1024px) {
  .photo-marker-grid { grid-template-columns: repeat(auto-fill,minmax(10rem,1fr)); }
  .dashboard-layout { grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); }
  .selection-fullscreen-header { padding-inline: var(--space-5); }
}
@media (min-width: 1280px) {
  .topbar .primary-navigation { display: flex; }
  .nav-toggle { display: none; }
  .container.department-layout { display: grid; grid-template-columns: var(--sidebar-width) minmax(0,1fr); gap: var(--space-6); }
  .department-sidebar { display: block; position: sticky; top: calc(var(--header-height) + var(--space-6)); background: transparent; border: 0; border-right: 1px solid var(--color-border); border-radius: 0; padding: 0 var(--space-3) 0 0; }
  .management-workspace { display: grid; grid-template-columns: var(--sidebar-width) minmax(0,1fr); gap: var(--space-6); }
  .management-sidebar { display: block; position: sticky; top: calc(var(--header-height) + var(--space-6)); padding: 0 var(--space-3) 0 0; background: transparent; border: 0; border-right: 1px solid var(--color-border); border-radius: 0; }
  .management-sidebar > h2 { padding-left: .75rem; }
}
@media (max-width: 1023px) {
  .page-heading, .section-heading, .segmentation-topbar, .selection-page-heading { flex-wrap: wrap; align-items: flex-start; }
  .dashboard-layout { display: flex; flex-direction: column; }
  .dashboard-layout > :last-child { order: -1; }
  .action-list, .today-booking-list, .today-bookings, .today-list, .dashboard-today-list { max-height: none; height: auto; overflow: visible; flex: auto; padding-right: 0; margin-right: 0; }
  .action-panel, .today-panel, .dashboard-today { height: auto; max-height: none; min-height: 0; }
  .management-table-wrap:has(.ui-row-table) { overflow: visible; border: 0; }
  .ui-row-table, .production-center-list .management-table.ui-row-table, .factory-workspace .management-table.ui-row-table { display: block; min-width: 0; width: 100%; table-layout: auto; }
  .ui-row-table > thead { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); }
  .ui-row-table.ui-has-bulk > thead { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip-path: none; }
  .ui-row-table.ui-has-bulk > thead tr { display: block; }
  .ui-row-table.ui-has-bulk > thead th { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); padding: 0; }
  .ui-row-table.ui-has-bulk > thead th:has(input[type=checkbox]) { position: static; display: flex; align-items: center; width: auto; min-height: var(--control-height); height: auto; clip-path: none; padding: .5rem; }
  .ui-row-table > tbody { display: block; }
  .ui-row-table > tbody > tr { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem 1rem; padding: 1rem .25rem; border-bottom: 1px solid var(--color-border); position: relative; }
  .management-table.ui-row-table > tbody > tr > td, .analytics .ui-row-table > tbody > tr > td { display: block; width: auto; min-width: 0; border: 0; padding: .125rem; height: auto; white-space: normal; }
  .ui-row-table td::before { content: attr(data-field-label); display: block; margin-bottom: .25rem; color: var(--color-muted); font-weight: var(--weight-regular); font-size: var(--text-caption); }
  .ui-row-table > tbody > tr > .ui-cell-primary { grid-column: 1/-1; order: -3; padding-right: 2.5rem; font-size: var(--text-body); }
  .ui-row-table .ui-cell-primary::before, .ui-row-table .ui-cell-action::before, .ui-row-table .ui-cell-select::before, .ui-row-table td[colspan]::before { display: none; }
  .ui-row-table > tbody > tr > .ui-cell-select { position: absolute; right: 0; top: .75rem; min-width: var(--control-height); min-height: var(--control-height); display: grid; place-items: center; }
  .ui-row-table > tbody > tr > .ui-cell-action { grid-column: 1/-1; border-top: 1px solid var(--color-border); padding-top: .5rem; margin-top: .25rem; }
  .ui-cell-action > a { min-height: var(--control-height); display: inline-flex; align-items: center; }
  .ui-row-table > tbody > tr > td[colspan] { grid-column: 1/-1; }
  .ui-row-table .button-group { gap: var(--space-2); }
  .ui-row-table .ui-cell-select input { width: 1.25rem; height: 1.25rem; }
  .dispatch-item-table.ui-row-table td:has(img), .dispatch-item-table.ui-row-table td:has(select) { grid-column: 1/-1; }
  .dispatch-item-table.ui-row-table select { min-width: 0; width: 100%; max-width: 100%; }
  .dispatch-item-table.ui-row-table td .factory-freeform-image-link { max-width: 100%; }
  .ui-row-table > tbody > tr > td:not(.ui-cell-primary):not(.ui-cell-action):not(.ui-cell-select):not([colspan]) { display: flex; flex-wrap: wrap; align-content: start; align-items: baseline; gap: .125rem .375rem; }
  .ui-row-table td::before { margin-bottom: 0; }
  .ui-row-table td small { margin-top: 0; }
  .ui-row-table .ui-cell-action { display: flex; align-items: center; }
  .photo-select-grid, .detail-layout { grid-template-columns: minmax(0,1fr); }
  .project-segmentation-entry { flex-wrap: wrap; }
  .segmentation-finish-card { grid-template-columns: minmax(0,1fr); }
  .photo-upload-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .outdoor-filter-toolbar { flex-wrap: wrap; }
  .roster-panel .management-toolbar { flex-wrap: wrap; gap: var(--space-3); }
  .roster-panel .management-filters { flex-basis: 100%; }
  .roster-panel .management-filters input { flex: 1; }
  .production-workspace { gap: var(--space-4); }
  .production-script-toolbar { align-items: flex-start; }
}
@media (max-width: 767px) {
  :root { --text-control: 1rem; --text-title: 1.375rem; }
  .topbar { gap: var(--space-2); }
  .topbar .brand { font-size: .9375rem; }
  .topbar .brand-mark { display: none; }
  .account-trigger { max-width: 6.5rem; font-size: var(--text-caption); }
  .account-trigger > span:first-child { max-width: 4rem; }
  .account-role-label { display: none; }
  .container { padding-top: var(--space-5); }
  .screen-heading { align-items: flex-start; flex-wrap: wrap; }
  .screen-heading .button { font-size: var(--text-small); }
  .page-heading { flex-direction: row; }
  .page-heading .button { align-self: auto; }
  .section-heading h1 { font-size: var(--text-title); }
  .search-panel, .walkin-order-list, .form-panel, .detail-main, .timeline, .production-workspace .panel, .assignment-workspace>.panel, .factory-workspace .panel, .photo-upload-control, .photo-batch-list-panel, .photo-marker-panel, .selection-student-panel, .selection-result-panel { padding: var(--space-4); }
  .form-grid, .staff-fields, .detail-grid { grid-template-columns: minmax(0,1fr); }
  .ui-row-table > tbody > tr { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .5rem .75rem; }
  .search-form, .walkin-order-filters, .production-center-filters, .factory-filters, .outdoor-project-filters, .assignment-filters { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; width: 100%; }
  .assignment-filters > .button-group { grid-column: 1/-1; }
  .search-form > *, .walkin-order-filters > *, .production-center-filters > *, .factory-filters > *, .outdoor-project-filters > * { min-width: 0; max-width: 100%; margin: 0; }
  .ui-filter-form > .ui-filter-extra { grid-column: 1/-1; }
  .ui-filter-form.ui-filter-collapsed > .ui-filter-extra { display: none; }
  .ui-filter-form > button[type=submit], .ui-filter-form > .button { grid-column: 2; grid-row: 1; }
  .ui-filter-toggle { grid-column: 1/-1; }
  .ui-filter-form label { min-width: 0; }
  .outdoor-project-row { display: grid; grid-template-columns: 3.25rem minmax(0,1fr); gap: .5rem .75rem; padding: var(--space-4) 0; }
  .outdoor-project-row .result-date { min-width: 0; width: auto; grid-row: span 2; }
  .outdoor-project-row-status { grid-column: 2; display: flex; flex-direction: row; justify-content: space-between; align-items: center; }
  .roster-table th:nth-child(n), .roster-table td:nth-child(n) { width: auto; white-space: normal; }
  .roster-row-actions { gap: .25rem; }
  .roster-row-actions .button { padding-inline: .5rem; }
  .roster-table th, .roster-table td { padding-inline: .375rem; }
  .management-toolbar { flex-wrap: wrap; }
  .management-toolbar .button-group { width: 100%; }
  .segmentation-topbar h1 { font-size: var(--text-title); }
  .segmentation-toolbar { padding: var(--space-4); }
  .segmentation-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .segmentation-summary-grid>div { padding: var(--space-2) var(--space-3); }
  .segment-binding-stats { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .segment-binding-stats > div { padding: var(--space-2) var(--space-1); }
  .segment-binding-stats small { font-size: .75rem; }
  .segmentation-topbar .button-group { gap: var(--space-2); }
  .segmentation-topbar .button { padding-inline: var(--space-3); font-size: var(--text-small); }
  .photo-segment-card { grid-template-columns: 5.5rem minmax(0,1fr); gap: var(--space-3); padding: var(--space-3); }
  .segment-marker-column { padding-right: var(--space-3); }
  .segment-marker-preview img { height: 6rem; }
  .segment-marker-preview span { display: none; }
  .segment-heading { flex-wrap: wrap; gap: var(--space-2); }
  .segment-current-student { padding: var(--space-2); }
  .segment-current-student strong { font-size: var(--text-small); }
  .segment-binding-actions { flex-wrap: wrap; }
  .segment-binding-actions .fine { font-size: .75rem; }
  .photo-marker-meta { padding: .375rem; }
  .photo-marker-meta .button { font-size: .8125rem; }
  .photo-upload-actions, .photo-selection-summary { flex-wrap: wrap; gap: var(--space-3); }
  .photo-upload-actions .button { width: 100%; }
  .project-segmentation-entry .button-group { align-items: stretch; }
  .project-segmentation-entry, .segmentation-finish-card { padding: var(--space-4); }
  .project-segmentation-actions { min-width: 0; width: 100%; }
  .project-segmentation-facts { flex-wrap: wrap; gap: var(--space-2); }
  .dashboard-meta { display: flex; flex-wrap: wrap; }
  .dashboard-meta > a { width: 100%; }
  .dashboard-titlebar { flex-wrap: nowrap; }
  .dashboard-titlebar .button { font-size: var(--text-small); }
  .dashboard-day-toolbar { flex-wrap: wrap; }
  .factory-heading, .factory-section-heading { flex-wrap: wrap; }
  .factory-filters label { min-width: 0; }
  .factory-filters { grid-template-columns: minmax(0,1fr); }
  .factory-filters > .button { justify-self: start; min-width: 5rem; }
  .factory-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .assignment-filters { grid-template-columns: minmax(0,1fr); }
  .assignment-filters > label { margin-bottom: 0; }
  .photo-upload-runtime { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .analytics-heading { display: block; }
  .analytics-tools { margin-top: var(--space-3); gap: var(--space-2); }
  .analytics-tools>* { padding: .375rem .5rem; font-size: var(--text-caption); }
  .analytics-card, .analytics-card.primary { padding: var(--space-3); }
  .analytics-value { font-size: 1.375rem; }
  .analytics-filters { align-items: end; }
  .analytics-filter-title { width: 100%; border: 0; }
  .analytics-filters label { display: grid; gap: var(--space-1); flex: 1; min-width: 0; }
  .analytics-custom-dates { width: 100%; }
  .analytics-overview-grid, .analytics-operations-grid { grid-template-columns: minmax(0,1fr); }
  .analytics-panel { padding: var(--space-4); }
  .analytics-panel>header { flex-wrap: wrap; }
  .analytics-coverage { gap: var(--space-2); }
  .selection-fullscreen-header { gap: .375rem; padding: .5rem; }
  .selection-floating-identity strong { max-width: 5rem; font-size: .8125rem; }
  .selection-fullscreen-exit, .selection-complete-button { font-size: .8125rem; padding: .375rem .5rem; }
  .selection-quick-toolbar { gap: .375rem; padding-inline: .5rem; }
  .selection-quick-nav { gap: .375rem; }
  .selection-quick-button, .selection-want-button { padding-inline: .375rem; font-size: .8125rem; }
  .selection-fullscreen-header .selection-floating-right { gap: .375rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
@media (max-width: 1279px) {
  html:not(.ui-enhanced) .nav-toggle { display: none; }
  html:not(.ui-enhanced) .topbar { height: auto; flex-wrap: wrap; padding-block: var(--space-2); }
  html:not(.ui-enhanced) .topbar .primary-navigation { display: flex; order: 2; width: 100%; overflow-x: auto; }
  html:not(.ui-enhanced) main :is(.department-sidebar, .management-sidebar) { display: block; margin-bottom: var(--space-5); }
}
