/* Geometry only; visual rules live in interface.css and workspace.css. */
.assignment-filter label:first-child {
min-width: 0;
}
.filter-panel.assignment-filter {
grid-template-columns: minmax(360px, 1fr) max-content max-content;
}
.assignment-detail-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.form-section-grid.assignment-schedule-grid {
grid-template-columns: 1.25fr repeat(3, minmax(0, 1fr));
}
.configuration-record-list article {
display: grid;
gap: 4px;
}
.compact-empty {
min-height: 0;
}
.configuration-warning {
align-items: start;
display: grid;
gap: 3px;
}
.configuration-format {
overflow-wrap: anywhere;
}
.staffing-model-groups {
display: grid;
gap: 5px;
min-width: 260px;
}
.diagnostic-results .section-heading {
align-items: center;
display: flex;
gap: 16px;
justify-content: space-between;
}
.legacy-file-list {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.legacy-file-list span {
overflow-wrap: anywhere;
}
.support-summary.import-result-summary {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
button:disabled {
cursor: not-allowed;
}
.filter-panel.people-filter {
grid-template-columns: repeat(5, minmax(140px, 1fr));
}
.filter-panel.users-filter {
grid-template-columns: minmax(280px, 2fr) minmax(150px, 1fr) minmax(150px, 1fr) max-content max-content;
}
.filter-panel.permissions-filter {
grid-template-columns: repeat(3, minmax(160px, 1fr)) max-content max-content;
}
.permissions-filter .filter-toggle-group {
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 8px 22px;
grid-column: 1 / -1;
}
.permissions-filter .filter-toggle-group .check-row {
min-height: 34px;
}
.people-context-note {
align-items: start;
display: grid;
gap: 4px;
}
.people-table th,
.people-table td {
vertical-align: top;
}
.table-subline {
display: block;
}
.future-assignment-text {
display: block;
max-width: 340px;
overflow-wrap: anywhere;
}
.permission-role-pair,
.permission-yes-no {
display: grid;
gap: 5px;
}
.permission-role-pair span,
.permission-yes-no {
white-space: nowrap;
}
.permissions-table td:nth-child(4),
.permissions-table td:nth-child(5) {
min-width: 130px;
}
.filter-panel.notification-filter,
.filter-panel.audit-filter {
grid-template-columns: repeat(4, minmax(160px, 1fr));
}
.filter-advanced {
grid-column: 1 / -1;
}
.filter-advanced summary {
cursor: pointer;
}
.filter-advanced-grid {
align-items: end;
display: grid;
gap: 12px;
grid-template-columns: repeat(3, minmax(160px, 1fr));
}
.filter-advanced-grid .check-row {
min-height: 42px;
}
.support-summary.backup-summary {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.notification-preview .email-preview {
max-height: 520px;
overflow: auto;
}
@media (max-width: 760px) {
.form-section-grid.assignment-schedule-grid,
  .support-summary.import-result-summary,
  .legacy-file-list {
grid-template-columns: 1fr;
}
.filter-panel.people-filter,
  .filter-panel.users-filter,
  .filter-panel.permissions-filter,
  .filter-panel.notification-filter,
  .filter-panel.audit-filter,
  .filter-advanced-grid,
  .support-summary.backup-summary {
grid-template-columns: 1fr;
}
.diagnostic-results .section-heading {
align-items: flex-start;
display: grid;
}
.staffing-model-groups {
min-width: 0;
}
.assignment-filter label:first-child {
min-width: 0;
}
.filter-panel.assignment-filter {
grid-template-columns: 1fr;
}
.assignment-detail-grid {
grid-template-columns: 1fr 1fr;
}
.permissions-filter .filter-toggle-group {
align-items: start;
display: grid;
gap: 6px;
}
.users-management-toolbar .management-actions a:last-child {
grid-column: 1 / -1;
}
}
* {
box-sizing: border-box;
}
.site-header {
align-items: center;
display: flex;
gap: 18px;
justify-content: space-between;
}
.brand {
display: inline-block;
}
.environment-badge {
display: inline-block;
vertical-align: middle;
}
.nav {
display: flex;
flex-wrap: wrap;
gap: 8px;
justify-content: flex-end;
}
.page {
max-width: 1180px;
}
.row-title {
align-items: center;
display: flex;
gap: 16px;
justify-content: space-between;
}
.messages {
display: grid;
gap: 8px;
}
.login-panel {
max-width: 430px;
}
.form-card {
display: grid;
gap: 14px;
}
.form-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.operational-form {
gap: 0;
}
.form-section-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.state-control-list {
display: flex;
flex-wrap: wrap;
gap: 12px 24px;
}
.state-control-list .check-row {
min-height: 42px;
}
label {
display: grid;
gap: 6px;
}
input,
select,
textarea {
width: 100%;
}
button,
.button-link,
.form-actions a,
.date-nav a,
.action-list a,
.empty-state a {
cursor: pointer;
display: inline-block;
}
.sortable-header {
cursor: pointer;
}
.sortable-header::after {
content: " ↕";
}
.sortable-header[aria-sort="ascending"]::after {
content: " ↑";
}
.sortable-header[aria-sort="descending"]::after {
content: " ↓";
}
.full {
grid-column: 1 / -1;
}
.check-row {
align-items: center;
display: flex;
gap: 10px;
}
.check-row input {
width: auto;
}
.form-actions {
align-items: center;
display: flex;
gap: 12px;
}
.management-toolbar {
align-items: center;
display: flex;
gap: 18px;
justify-content: space-between;
}
.management-toolbar > div:first-child {
display: grid;
gap: 2px;
}
.management-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: flex-end;
}
.admin-tool-group .hub-card {
min-height: 112px;
}
.support-summary {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.support-summary > div {
display: grid;
gap: 7px;
}
.support-status {
display: inline-block;
max-width: 100%;
overflow-wrap: anywhere;
width: fit-content;
}
.support-confirmation-form {
align-items: end;
display: grid;
gap: 12px;
grid-template-columns: minmax(0, 1fr) auto;
}
.support-confirmation-form button {
min-height: 42px;
}
.support-action-grid {
display: grid;
gap: 18px 24px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.support-action-form {
display: grid;
gap: 12px;
}
.support-action-form textarea {
min-height: 80px;
}
.support-section .plain-list code {
overflow-wrap: anywhere;
white-space: normal;
}
.filter-check-row {
align-self: end;
min-height: 42px;
}
.cancellation-options {
display: grid;
gap: 10px;
}
.choice-row {
align-items: flex-start;
cursor: pointer;
display: flex;
gap: 10px;
}
.choice-row input {
flex: 0 0 auto;
width: auto;
}
.choice-row span {
display: grid;
gap: 3px;
}
.choice-disabled {
cursor: not-allowed;
}
.compact-action {
display: inline-block;
}
.card-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.hub-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.hub-grid.two-column {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hub-card {
display: grid;
gap: 10px;
min-height: 130px;
}
.checkbox-grid {
display: grid;
gap: 10px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.report-entry-list {
display: grid;
gap: 12px;
}
.report-entry {
align-items: center;
display: grid;
gap: 8px 18px;
grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.5fr) auto;
}
.roster-option-grid {
display: grid;
gap: 10px 18px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.roster-option-grid .check-row {
min-height: 42px;
}
.roster-report-actions {
flex-wrap: wrap;
}
.report-designer-toolbar .filter-panel {
display: grid;
flex: 1 1 760px;
grid-template-columns: minmax(140px, 1fr) minmax(160px, 1fr) minmax(120px, .8fr) minmax(145px, .9fr) auto auto;
min-width: 0;
width: 100%;
}
.report-designer-toolbar {
align-items: end;
display: grid;
gap: 12px;
grid-template-columns: minmax(0, 1fr) auto;
width: 100%;
}
.designer-reset-action {
align-self: flex-end;
flex: 0 0 auto;
}
.employee-dsn {
display: inline;
white-space: nowrap;
}
.daily-report-column-grid {
display: grid;
gap: 10px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.daily-report-column-control {
align-items: end;
display: grid;
gap: 12px;
grid-template-columns: minmax(0, 1fr) 88px;
}
.daily-report-column-control input[type="number"] {
min-width: 0;
width: 100%;
}
.daily-report-table {
min-width: 900px;
}
@media (max-width: 1100px) {
.report-designer-toolbar {
grid-template-columns: 1fr;
}
.report-designer-toolbar .filter-panel {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 700px) {
.report-designer-toolbar .filter-panel {
grid-template-columns: 1fr;
}
.daily-report-column-grid {
grid-template-columns: 1fr;
}
}
.roster-group-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.roster-group {
break-inside: avoid;
}
.roster-person {
align-items: start;
display: flex;
gap: 12px;
justify-content: space-between;
}
.roster-person small,
.roster-contact span {
display: block;
}
.roster-contact {
overflow-wrap: anywhere;
}
.roster-section-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.roster-compact-print {
display: none;
}
.roster-saved-section {
break-inside: avoid;
}
.designer-toolbar,
.designer-save-bar,
.designer-section-header,
.designer-member {
align-items: center;
display: flex;
gap: 12px;
}
.designer-toolbar,
.designer-save-bar {
flex-wrap: wrap;
justify-content: space-between;
}
.designer-save-bar {
position: sticky;
top: 0;
z-index: 4;
}
.designer-section-list {
display: grid;
gap: 16px;
}
.designer-section-name {
flex: 1;
}
.designer-member-list {
min-height: 58px;
}
.designer-member-details {
flex: 1;
min-width: 0;
}
.designer-member-details small {
display: block;
overflow-wrap: anywhere;
}
.drag-handle {
cursor: grab;
}
.designer-delete-section summary {
cursor: pointer;
}
.designer-add-employee summary {
cursor: pointer;
}
.designer-management .plain-list {
display: flex;
flex-wrap: wrap;
gap: 8px 18px;
}
.designer-move-control {
max-width: 180px;
}
.metric-list {
display: grid;
gap: 7px;
}
.metric-list span {
align-items: center;
display: flex;
gap: 12px;
justify-content: space-between;
}
.workflow-action-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.workflow-action-card {
display: grid;
gap: 6px;
min-height: 92px;
}
.workflow-tabs {
display: flex;
gap: 4px;
overflow-x: auto;
}
.workflow-tabs a {
flex: 0 0 auto;
}
.assistant-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.assistant-card-wide {
grid-column: 1 / -1;
}
.section-heading {
align-items: start;
display: flex;
gap: 16px;
justify-content: space-between;
}
.quick-action-grid {
display: grid;
gap: 10px;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
.quick-action {
display: block;
min-height: 48px;
}
.dashboard-section-heading {
align-items: end;
display: flex;
justify-content: space-between;
}
.dashboard-primary-grid {
display: grid;
gap: 14px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.dashboard-workflow-card {
display: grid;
gap: 12px;
min-height: 152px;
}
.dashboard-workflow-featured {
align-content: start;
}
.attention-action-grid {
display: grid;
gap: 10px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.attention-action {
align-items: center;
display: flex;
gap: 12px;
justify-content: space-between;
min-height: 58px;
}
.dashboard-problem-preview {
display: grid;
gap: 8px;
}
.dashboard-personal-grid {
display: grid;
gap: 14px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dashboard-tool-grid {
display: grid;
gap: 14px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dashboard-tool-card {
display: grid;
gap: 6px;
min-height: 96px;
}
.dashboard-system-status {
display: grid;
gap: 10px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.dashboard-system-status a {
align-items: center;
display: flex;
justify-content: space-between;
}
.problem-list {
display: grid;
gap: 12px;
}
.problem-row {
display: grid;
gap: 4px;
}
.card {
display: grid;
gap: 8px;
min-height: 120px;
}
.action-list,
.date-nav,
.date-picker {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.date-picker,
.filter-panel {
align-items: end;
}
.filter-panel {
display: grid;
gap: 12px;
grid-template-columns: repeat(6, minmax(120px, 1fr));
}
.daily-summary-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.specialty-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.summary-columns {
display: grid;
gap: 14px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.week-grid {
display: grid;
gap: 14px;
grid-template-columns: repeat(7, minmax(220px, 1fr));
overflow-x: auto;
}
.day-card {
min-width: 220px;
}
.compact-list span {
display: block;
}
.ops-record-details > summary {
cursor: pointer;
}
.month-filter {
grid-template-columns: minmax(180px, 240px) minmax(180px, 240px) auto auto;
justify-content: start;
}
.schedule-board-page {
max-width: none;
}
.schedule-board-filter {
align-items: end;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr));
}
.compact-choice-group {
align-items: center;
display: flex;
gap: 10px;
min-width: 0;
}
.compact-choice-group legend {
flex: 0 0 100%;
}
.schedule-board-more-filters,
.schedule-board-legend {
align-self: stretch;
}
.schedule-board-more-filters summary,
.schedule-board-legend summary {
cursor: pointer;
}
.schedule-board-more-filters > div {
display: grid;
gap: 12px;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr));
}
.schedule-board-legend > div {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.schedule-board-shell {
overflow: hidden;
}
.schedule-board-scroll {
max-height: calc(100vh - 245px);
min-height: 420px;
overflow: auto;
}
.schedule-board-table {
border-collapse: separate;
border-spacing: 0;
min-width: max-content;
table-layout: fixed;
width: max-content;
}
.schedule-board-table th,
.schedule-board-table td {
min-width: 82px;
}
.schedule-board-table thead th {
position: sticky;
top: 0;
z-index: 5;
}
.schedule-board-table .employee-sticky {
left: 0;
min-width: 230px;
position: sticky;
z-index: 6;
}
.schedule-board-table thead .employee-sticky {
z-index: 7;
}
.employee-board-label span,
.employee-board-label small {
display: block;
}
.board-cell {
display: grid;
gap: 2px;
min-height: 46px;
position: relative;
width: 100%;
}
.board-cell em {
min-width: 20px;
position: absolute;
right: 4px;
top: 4px;
}
.board-detail-drawer {
bottom: 0;
display: flex;
justify-content: flex-end;
left: 0;
position: fixed;
right: 0;
top: 0;
z-index: 20;
}
.board-detail-drawer[hidden] {
display: none;
}
.board-detail-panel {
display: flex;
flex-direction: column;
gap: 14px;
max-width: 620px;
min-height: 100vh;
overflow-y: auto;
width: min(620px, 100vw);
}
.board-detail-panel > header {
align-items: flex-start;
display: flex;
gap: 12px;
justify-content: space-between;
}
.board-detail-grid {
display: grid;
gap: 10px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.board-detail-section {
display: grid;
gap: 8px;
}
.board-related-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.board-action-list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.board-action-list a {
display: inline-flex;
min-height: 42px;
}
.month-calendar {
display: grid;
gap: 1px;
grid-template-columns: repeat(7, minmax(150px, 1fr));
overflow-x: auto;
}
.staffing-calendar-wide {
left: 50%;
position: relative;
transform: translateX(-50%);
width: min(1680px, calc(100vw - 32px));
}
.calendar-view-tabs {
display: flex;
gap: 4px;
}
.schedule-view-nav {
display: flex;
gap: 4px;
overflow-x: auto;
}
.schedule-view-nav a {
flex: 0 0 auto;
}
.calendar-filter {
align-items: end;
grid-template-columns: minmax(170px, 220px) minmax(320px, 1fr) auto auto;
}
.calendar-division-filter {
display: flex;
flex-wrap: wrap;
gap: 8px 18px;
}
.upgraded-month-calendar {
grid-template-columns: repeat(7, minmax(180px, 1fr));
}
.upgraded-month-calendar .month-day {
align-content: start;
min-height: 210px;
min-width: 180px;
}
.calendar-tile-division {
display: grid;
gap: 5px;
}
.calendar-tile-shift {
display: grid;
gap: 2px;
}
.calendar-shift-heading {
display: flex;
flex-wrap: wrap;
gap: 2px 8px;
justify-content: space-between;
}
.shift-staffing-status {
display: flex;
flex-wrap: wrap;
gap: 4px 16px;
}
.calendar-agenda {
display: grid;
gap: 14px;
}
.calendar-agenda.week-view {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.calendar-agenda-day {
overflow: hidden;
}
.calendar-agenda-heading {
align-items: center;
display: flex;
justify-content: space-between;
width: 100%;
}
.calendar-detail-shift > header {
align-items: flex-start;
display: flex;
flex-wrap: wrap;
gap: 6px;
justify-content: space-between;
}
.calendar-detail-groups {
display: grid;
gap: 8px 14px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.compact-staffing-modal {
gap: 12px;
}
.staffing-day-modal {
display: flex;
flex-direction: column;
max-height: calc(100vh - 32px);
max-height: calc(100dvh - 32px);
overflow: hidden;
}
.staffing-day-modal .modal-header {
flex-shrink: 0;
}
.staffing-day-modal-body {
min-height: 0;
overflow-y: auto;
overscroll-behavior: contain;
}
.staffing-day-modal-actions {
flex-shrink: 0;
}
.month-day {
cursor: pointer;
display: grid;
gap: 6px;
min-height: 190px;
min-width: 150px;
}
.month-date {
align-items: flex-start;
display: flex;
gap: 5px;
}
.month-shift-row,
.month-counts {
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 6px;
justify-content: space-between;
}
.month-division-row {
align-items: center;
display: flex;
gap: 6px;
justify-content: space-between;
}
.month-name-list {
min-height: 56px;
}
.month-name-list li {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.month-counts {
justify-content: start;
}
.modal-open {
overflow: hidden;
}
.modal-backdrop {
align-items: center;
display: flex;
inset: 0;
justify-content: center;
position: fixed;
z-index: 20;
}
.modal-backdrop[hidden] {
display: none;
}
.modal-backdrop.staffing-day-backdrop {
align-items: flex-start;
overflow: hidden;
}
.modal-backdrop.time-off-staffing-backdrop {
align-items: flex-start;
overflow: hidden;
}
.time-off-staffing-modal {
display: flex;
flex-direction: column;
max-height: calc(100vh - 32px);
max-height: calc(100dvh - 32px);
overflow: hidden;
}
.time-off-staffing-modal-body {
min-height: 0;
overflow-y: auto;
}
.time-off-staffing-modal-actions {
flex-shrink: 0;
}
.modal-panel {
max-height: calc(100vh - 48px);
max-width: 1100px;
overflow: auto;
width: min(1100px, 100%);
}
.modal-header {
align-items: start;
display: flex;
gap: 16px;
justify-content: space-between;
}
.modal-close {
min-width: 44px;
}
.staffing-modal-grid {
display: grid;
gap: 16px;
}
.staffing-modal-columns {
display: grid;
gap: 16px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.modal-actions {
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 10px;
justify-content: flex-end;
}
.staffing-warning-metrics {
display: grid;
gap: 8px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.staffing-glance-grid {
display: grid;
gap: 12px;
}
.staffing-glance-day {
display: grid;
gap: 10px;
}
.staffing-glance-counts {
display: grid;
gap: 10px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.staffing-glance-division {
display: grid;
gap: 8px;
}
.staffing-glance-counts span {
display: grid;
gap: 4px;
}
.open-shift-grid {
display: grid;
gap: 16px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.open-shift-card {
display: grid;
gap: 8px;
}
.open-shift-card .form-actions {
align-items: stretch;
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.open-shift-card .form-actions a,
.open-shift-card .form-actions .button-link {
align-items: center;
display: inline-flex;
justify-content: center;
min-height: 44px;
min-width: 132px;
white-space: nowrap;
}
.open-shift-card .status-pill {
align-items: center;
display: inline-flex;
min-height: 44px;
}
.badge-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.source-badge {
display: inline-block;
}
.mini-badge {
display: inline-block !important;
width: fit-content;
}
.notes {
overflow-wrap: anywhere;
white-space: pre-wrap;
}
.review-actions {
display: grid;
gap: 14px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.review-actions.single-action {
grid-template-columns: minmax(0, 1fr);
}
.review-form {
display: grid;
gap: 8px;
}
.claim-group-list {
display: grid;
gap: 14px;
}
.claim-review-card {
display: grid;
gap: 10px;
}
.coverage-review-section {
display: grid;
gap: 14px;
}
.coverage-field-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.coverage-field-full {
grid-column: 1 / -1;
}
.coverage-preview-block {
display: grid;
gap: 8px;
}
.coverage-date-summary {
display: grid;
gap: 8px;
}
.inline-date-list {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.coverage-preview-scroll {
max-width: 100%;
overflow-x: auto;
}
.decision-grid {
align-items: start;
display: grid;
gap: 14px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.decision-grid-single {
grid-template-columns: minmax(280px, 560px);
}
.decision-panel {
align-content: start;
grid-template-rows: auto;
}
.supervisor-intervention {
max-width: 720px;
}
.decision-panel textarea,
.coverage-review-section textarea {
height: 90px;
min-height: 70px;
}
.decision-panel button {
align-self: start;
min-height: 0;
width: auto;
}
.decision-panel .danger-button,
.decision-panel button {
min-height: 44px;
min-width: 120px;
}
.secondary-actions {
align-items: center;
display: flex;
gap: 10px;
justify-content: flex-end;
}
.secondary-actions a {
display: inline-block;
}
.table-wrap {
overflow-x: auto;
}
.admin-table-wrap {
max-width: 100%;
}
.admin-data-table {
table-layout: auto;
width: max-content;
}
.admin-data-table th,
.admin-data-table td {
max-width: 260px;
min-width: 90px;
white-space: nowrap;
}
.admin-data-table .long-text-cell {
max-width: 420px;
min-width: 240px;
}
.admin-data-table .long-text-cell span {
display: block;
max-height: 4.5em;
overflow: hidden;
text-overflow: ellipsis;
white-space: normal;
}
table {
border-collapse: collapse;
min-width: 760px;
width: 100%;
}
th,
td {
vertical-align: top;
}
.health-list {
display: grid;
gap: 0;
}
.health-list div {
display: grid;
grid-template-columns: 220px 1fr;
}
.health-list dd {
overflow-wrap: anywhere;
}
.detail-list {
display: grid;
gap: 8px;
}
.detail-list div {
display: grid;
gap: 4px;
}
.history-list {
display: grid;
gap: 16px;
}
.history-card {
display: grid;
gap: 16px;
}
.history-card-header {
align-items: flex-start;
display: flex;
gap: 16px;
justify-content: space-between;
}
.history-status {
flex: 0 0 auto;
}
.history-detail-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.history-note strong,
.history-note p {
display: block;
}
.history-note p {
overflow-wrap: anywhere;
white-space: pre-wrap;
}
.history-actions {
display: flex;
justify-content: flex-end;
}
.swap-exchange-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.swap-shift-summary {
display: grid;
gap: 4px;
}
.inline-form {
display: inline;
}
.table-actions {
align-items: center;
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.table-action-link {
align-items: center;
display: inline-flex;
min-height: 38px;
}
.record-status,
.role-badge {
display: inline-block;
white-space: nowrap;
}
.permission-preview {
display: grid;
gap: 12px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.employee-link {
display: inline;
}
.employee-profile-modal {
max-width: 760px;
}
.profile-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.profile-grid div {
min-height: 74px;
}
.profile-grid dd {
overflow-wrap: anywhere;
}
@media (max-width: 760px) {
.site-header,
  .row-title {
align-items: flex-start;
flex-direction: column;
}
.nav {
justify-content: flex-start;
}
.staffing-calendar-wide {
left: auto;
transform: none;
width: 100%;
}
.calendar-view-tabs {
overflow-x: auto;
}
.calendar-view-tabs a {
flex: 0 0 auto;
}
.schedule-view-nav,
  .workflow-tabs {
flex-wrap: wrap;
overflow-x: visible;
}
.calendar-filter,
  .schedule-board-filter,
  .calendar-agenda.week-view,
  .calendar-detail-groups {
grid-template-columns: 1fr;
}
.compact-choice-group {
display: grid;
grid-template-columns: 1fr;
}
.schedule-board-more-filters > div {
grid-template-columns: 1fr;
}
.schedule-board-legend > div {
gap: 6px;
}
.calendar-division-filter {
min-width: 0;
}
.upgraded-month-calendar {
display: grid;
gap: 10px;
grid-template-columns: 1fr;
overflow: visible;
}
.upgraded-month-calendar > .month-weekday,
  .upgraded-month-calendar > .outside-month {
display: none;
}
.upgraded-month-calendar .month-day {
min-height: 0;
min-width: 0;
width: 100%;
}
.calendar-agenda-heading {
align-items: flex-start;
flex-direction: column;
gap: 3px;
}
.form-grid,
  .form-section-grid,
  .card-grid,
  .hub-grid,
  .hub-grid.two-column,
  .open-shift-grid,
  .review-actions,
  .coverage-field-grid,
  .decision-grid,
  .daily-summary-grid,
  .specialty-grid,
  .summary-columns,
  .filter-panel,
  .checkbox-grid,
  .roster-group-grid {
grid-template-columns: 1fr;
}
.roster-section-grid {
grid-template-columns: 1fr;
}
.designer-toolbar,
  .designer-save-bar,
  .designer-section-header,
  .designer-member {
align-items: stretch;
flex-direction: column;
}
.designer-move-control {
max-width: none;
}
.roster-person {
display: block;
}
.open-shift-card .form-actions a,
  .open-shift-card .form-actions .button-link,
  .open-shift-card .form-actions .status-pill {
width: 100%;
}
.modal-backdrop {
align-items: stretch;
}
.modal-backdrop.staffing-day-backdrop {
align-items: flex-start;
}
.modal-backdrop.time-off-staffing-backdrop {
align-items: flex-start;
}
.time-off-staffing-modal {
max-height: calc(100vh - 24px);
max-height: calc(100dvh - 24px);
}
.modal-panel {
max-height: calc(100vh - 24px);
}
.staffing-day-modal {
max-height: calc(100vh - 24px);
max-height: calc(100dvh - 24px);
}
.staffing-modal-columns,
  .staffing-glance-counts,
  .staffing-warning-metrics,
  .assistant-grid,
  .dashboard-primary-grid,
  .dashboard-personal-grid,
  .dashboard-system-status,
  .workflow-action-grid,
  .profile-grid {
grid-template-columns: 1fr;
}
.attention-action-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.dashboard-workflow-card {
min-height: 0;
}
.dashboard-tool-grid,
  .roster-option-grid {
grid-template-columns: 1fr;
}
.report-entry {
align-items: start;
grid-template-columns: 1fr;
}
.roster-report-actions {
align-items: stretch;
flex-direction: column;
}
.roster-report-actions button,
  .roster-report-actions a,
  .designer-reset-action,
  .designer-reset-action button {
width: 100%;
}
.quick-action {
min-height: 54px;
}
.section-heading {
align-items: flex-start;
flex-direction: column;
}
.operational-form > .form-actions {
align-items: stretch;
flex-direction: column;
}
.operational-form > .form-actions button,
  .operational-form > .form-actions a {
width: 100%;
}
.management-toolbar {
align-items: stretch;
flex-direction: column;
}
.management-actions {
display: grid;
grid-template-columns: 1fr 1fr;
}
.state-control-list,
  .permission-preview {
display: grid;
grid-template-columns: 1fr;
}
.support-summary,
  .support-action-grid,
  .support-confirmation-form {
grid-template-columns: 1fr;
}
.support-action-form button,
  .support-confirmation-form button {
width: 100%;
}
.history-card-header {
flex-direction: column;
gap: 10px;
}
.history-detail-grid,
  .swap-exchange-grid {
grid-template-columns: 1fr;
}
.history-actions {
justify-content: stretch;
}
.history-actions a {
width: 100%;
}
.decision-panel button {
width: 100%;
}
.secondary-actions {
align-items: stretch;
flex-direction: column;
}
.secondary-actions a {
width: 100%;
}
table {
min-width: 0;
}
.schedule-board-scroll {
max-height: calc(100vh - 235px);
min-height: 360px;
}
.schedule-board-table {
min-width: max-content;
}
.schedule-board-table thead {
display: table-header-group;
}
.schedule-board-table tr {
display: table-row;
}
.schedule-board-table th,
  .schedule-board-table td {
display: table-cell;
min-width: 70px;
}
.schedule-board-table td::before {
content: none;
}
.schedule-board-table .employee-sticky {
max-width: 112px;
min-width: 112px;
overflow: hidden;
width: 112px;
}
.employee-board-label span {
display: -webkit-box;
max-width: 100%;
overflow: hidden;
}
.employee-board-label small {
max-width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.board-cell {
min-height: 42px;
}
.board-detail-panel {
max-width: none;
min-height: 0;
width: 100%;
}
.board-detail-grid,
  .board-related-grid {
grid-template-columns: 1fr;
}
.coverage-preview-scroll table {
min-width: 760px;
}
thead {
display: none;
}
tr {
display: block;
}
td {
display: flex;
gap: 12px;
justify-content: space-between;
}
td::before {
content: attr(data-label);
}
.health-list div {
grid-template-columns: 1fr;
}
.schedule-board-table thead {
display: table-header-group;
}
.schedule-board-table tr {
display: table-row;
}
.schedule-board-table th,
  .schedule-board-table td {
display: table-cell;
gap: 0;
justify-content: normal;
min-width: 70px;
}
.schedule-board-table td::before {
content: none;
}
}
@media (max-width: 430px) {
.schedule-board-table .employee-sticky {
max-width: 96px;
min-width: 96px;
width: 96px;
}
.schedule-board-table th,
  .schedule-board-table td {
min-width: 66px;
}
}
.grant-summary {
display: grid;
gap: 12px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grant-cycle-list {
display: grid;
gap: 10px;
}
.grant-cycle-row {
align-items: center;
display: grid;
gap: 10px 18px;
grid-template-columns: minmax(190px, 1.2fr) minmax(260px, 1.5fr) minmax(100px, .6fr) auto;
}
.grant-cycle-row > div {
display: grid;
gap: 3px;
}
.grant-summary span,
.grant-summary strong {
display: block;
}
.grant-spot-grid {
display: grid;
gap: 12px;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
.grant-spot header,
.grant-signup-card > header,
.grant-review-card > header {
align-items: flex-start;
display: flex;
gap: 12px;
justify-content: space-between;
}
.stack-form {
display: grid;
gap: 12px;
}
.stack-form label,
.inline-edit-form label {
display: grid;
gap: 5px;
}
.inline-edit-form {
align-items: end;
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.action-details summary {
cursor: pointer;
}
.checkbox-grid {
display: grid;
gap: 8px 14px;
grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.grant-reviewer-picker {
display: grid;
gap: 12px;
}
.grant-reviewer-picker > label {
max-width: 560px;
}
.additional-reviewers {
max-width: 680px;
}
.additional-reviewers summary {
cursor: pointer;
}
.reviewer-search-panel {
display: grid;
gap: 10px;
}
.reviewer-search-panel select[multiple] {
min-height: 150px;
}
.grant-review-actions {
align-items: center;
display: flex;
flex-wrap: wrap;
}
.grant-review-action-groups {
display: grid;
gap: 16px;
}
.grant-review-action-groups > div {
display: grid;
gap: 8px;
}
.grant-signup-list,
.grant-review-list {
max-width: 980px;
}
.grant-admin-restriction-form {
align-items: center;
display: flex;
gap: 8px;
}
.grant-admin-restriction-form input {
min-width: 180px;
}
.grant-review-actions button {
width: auto;
}
@media (max-width: 760px) {
.grant-summary {
grid-template-columns: 1fr 1fr;
}
.grant-spot-grid {
grid-template-columns: 1fr;
}
.grant-cycle-row {
align-items: start;
grid-template-columns: 1fr;
}
.grant-review-actions button,
  .inline-edit-form > * {
width: 100%;
}
.grant-admin-restriction-form {
align-items: stretch;
flex-direction: column;
}
.grant-admin-restriction-form input,
  .grant-admin-restriction-form button {
width: 100%;
}
}
@media (max-width: 430px) {
.grant-summary {
grid-template-columns: 1fr;
}
}
@media print {
.site-header,
  .environment-banner,
  .no-print,
  .messages {
display: none !important;
}
.roster-layout-compact .roster-screen-preview {
display: none;
}
.roster-layout-compact .roster-compact-print {
display: grid;
gap: 8px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.roster-layout-compact.roster-has-email .roster-compact-print,
  .roster-has-email .compact-section-grid {
grid-template-columns: minmax(0, 1fr);
}
.roster-layout-cards .roster-compact-print {
display: none;
}
.roster-layout-cards .roster-screen-preview {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.compact-roster-area {
min-width: 0;
}
.compact-area-full,
  .compact-roster-area:only-child {
grid-column: 1 / -1;
}
.compact-area-half {
grid-column: auto;
}
.compact-section-grid {
display: grid;
gap: 5px 8px;
grid-template-columns: repeat(auto-fit, minmax(3.2in, 1fr));
width: 100%;
}
.compact-roster-section {
box-sizing: border-box;
break-inside: avoid;
min-width: 0;
width: 100%;
}
.compact-full-section,
  .compact-section-grid > .compact-roster-section:only-child {
grid-column: 1 / -1;
}
.compact-roster-table {
border-collapse: collapse;
max-width: none;
min-width: 100%;
table-layout: fixed;
width: 100% !important;
}
.compact-roster-section thead {
display: table-header-group;
}
.compact-roster-section tbody {
display: table-row-group;
}
.compact-roster-section tr {
display: table-row;
}
.compact-roster-section th,
  .compact-roster-section td {
display: table-cell;
overflow-wrap: anywhere;
vertical-align: top;
}
.compact-roster-section td::before {
content: none;
}
.compact-dsn {
white-space: nowrap;
}
.compact-call-sign {
white-space: nowrap;
}
.compact-phone {
white-space: nowrap;
}
.compact-email {
overflow-wrap: anywhere;
word-break: break-word;
}
.compact-name {
overflow-wrap: normal;
word-break: normal;
}
.compact-name-column {
width: 1.45in;
}
.compact-dsn-column {
width: 0.5in;
}
.compact-call-sign-column {
width: 0.75in;
}
.compact-phone-column {
width: 1.2in;
}
.compact-email-column {
width: 2.35in;
}
}
.crew-summary-row > summary {
display: grid;
grid-template-columns: 16px minmax(140px, 1fr) minmax(160px, 1.3fr) minmax(160px, 1fr) 100px;
gap: 12px;
align-items: center;
cursor: pointer;
}
.crew-summary-row > summary::-webkit-details-marker {
display: none;
}
.crew-summary-row > summary::before {
content: '+';
}
.crew-summary-row[open] > summary::before {
content: '-';
}
.crew-summary-hours span {
white-space: nowrap;
}
.crew-member-list li {
display: flex;
justify-content: space-between;
gap: 16px;
}
@media (max-width: 760px) {
.crew-summary-row > summary {
grid-template-columns: 16px minmax(0, 1fr) auto;
gap: 6px 8px;
}
.crew-summary-name {
grid-column: 2;
}
.crew-summary-hours {
grid-column: 2;
}
.crew-summary-count {
grid-column: 2;
}
.crew-summary-minimum {
grid-column: 3;
grid-row: 1 / 4;
}
.crew-member-list li {
flex-direction: column;
gap: 2px;
}
}
.staffing-tabs {
display: flex;
gap: 24px;
}
.staffing-page .filter-panel {
display: flex;
flex-wrap: wrap;
gap: 16px;
align-items: end;
}
.staffing-page .filter-panel > label:not(.checkbox) {
flex: 1 1 180px;
min-width: 0;
}
.staffing-page .filter-panel > button, .staffing-page .filter-panel > a {
flex: 0 0 auto;
}
.staffing-page input, .staffing-page select {
min-width: 0;
max-width: 100%;
box-sizing: border-box;
}
.staffing-page .checkbox {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
}
.staffing-page .checkbox input {
width: auto;
flex: 0 0 auto;
}
.staffing-settings > summary, .staffing-pool > summary {
cursor: pointer;
}
.staffing-settings .form-grid {
align-items: start;
}
.staffing-settings [hidden] {
display: none !important;
}
.staffing-settings .form-grid > *, .staffing-employee-picker > * {
min-width: 0;
}
.staffing-settings input, .staffing-settings select, .staffing-employee-picker select {
max-width: 100%;
box-sizing: border-box;
}
.staffing-weekdays {
display: flex;
flex-wrap: wrap;
gap: 12px;
}
.staffing-weekdays label {
display: flex;
flex-direction: row;
align-items: center;
gap: 6px;
}
.staffing-weekdays input {
width: auto;
}
.staffing-employee-picker {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 16px;
align-items: end;
}
.staffing-employee-picker label {
display: flex;
flex-direction: column;
gap: 6px;
}
@media (max-width: 600px) {
.staffing-employee-picker {
grid-template-columns: minmax(0, 1fr);
}
.staffing-tabs {
gap: 16px;
}
.staffing-settings .form-grid {
grid-template-columns: minmax(0, 1fr);
}
}
