.schedule-day__add { grid-column: 2; grid-row: 1 / 3; width: 30px; height: 30px; border: 0; border-radius: 8px; color: #604bd3; background: #eeebff; font: inherit; font-size: 1.25rem; cursor: pointer; }
.scheduled-shift-form { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; padding: 1.35rem; }
.scheduled-shift-form select, .scheduled-shift-form input { width: 100%; min-height: 42px; padding: .5rem .55rem; border: 1px solid #d8e1ec; border-radius: 8px; color: #334a68; background: #fff; font: inherit; }
.scheduled-shift-form p { margin: 0; }
.scheduled-shift-form label { display: block; margin-bottom: .35rem; color: #697b94; font-size: .75rem; font-weight: 850; }
.scheduled-shift-form .shift-dialog__actions { grid-column: 1 / -1; }
.staff-summary-grid { grid-template-columns: 1fr; }
.staff-summary-card { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
.staff-summary-card__open { grid-column: auto; padding-top: 0; border-top: 0; white-space: nowrap; }
.dashboard-sample-data { margin: 0; }
.dashboard-sample-data .dashboard-help { cursor: pointer; }
.schedule-day__date-link, .schedule-day__number-link { color: inherit; text-decoration: none; }.schedule-day__date-link:hover, .schedule-day__number-link:hover { color: #604bd3; text-decoration: underline; }
.schedule-filters { display: flex; align-items: end; flex-wrap: wrap; gap: .6rem; margin: -1.25rem 0 1.5rem; }.schedule-filters label { display: grid; gap: .25rem; color: #71819a; font-size: .68rem; font-weight: 800; }.schedule-filters input:not([type="submit"]) { min-height: 38px; padding: .35rem .5rem; border: 1px solid #dce4ed; border-radius: 8px; color: #344966; background: #fff; font: inherit; }.schedule-filters input[type="submit"], .schedule-filters__clear { min-height: 38px; padding: .5rem .75rem; border: 0; border-radius: 8px; color: #fff; background: #5d48d5; font: inherit; font-size: .74rem; font-weight: 850; text-decoration: none; cursor: pointer; }.schedule-filters__clear { color: #5d48d5; border: 1px solid #dce4ed; background: #fff; }
@media (max-width: 650px) { .schedule-filters { align-items: stretch; margin-top: 0; }.schedule-filters label { flex: 1 1 42%; }.schedule-filters input[type="submit"], .schedule-filters__clear { flex: 1; text-align: center; } }
.schedule-day-list { max-width: 1100px; }.schedule-day-list__rows { display: grid; gap: .65rem; }.schedule-day-list__row { padding: .95rem 1rem; border: 1px solid #e1e7ef; border-radius: 10px; background: #fafbfe; }.schedule-day-list__row summary { display: grid; grid-template-columns: minmax(160px, .75fr) minmax(180px, 1fr) minmax(140px, .7fr) auto; align-items: center; gap: 1rem; cursor: pointer; list-style: none; }.schedule-day-list__row summary::-webkit-details-marker { display: none; }.schedule-day-list__row b { color: #334b68; }.schedule-day-list__row small { color: #7b899d; }.schedule-day-list__time { color: #604bd3; font-size: .8rem; font-weight: 850; }
@media (max-width: 650px) { .schedule-day-list__row summary { grid-template-columns: 1fr auto; gap: .4rem .7rem; }.schedule-day-list__row small { grid-column: 1; }.schedule-day-list__row .shift-status { grid-column: 2; grid-row: 1 / span 2; } }
@media (max-width: 650px) { .scheduled-shift-form { grid-template-columns: 1fr; }.staff-summary-card { grid-template-columns: auto minmax(0, 1fr); }.staff-summary-card__open { grid-column: 1 / -1; padding-top: .65rem; border-top: 1px solid #edf0f5; } }

.schedule-day-list__row { display: grid; grid-template-columns: minmax(160px, .75fr) minmax(180px, 1fr) minmax(140px, .7fr) auto; align-items: center; gap: 1rem; }.schedule-day-list__actions { display: flex; align-items: center; gap: .35rem; }.schedule-row-action { display: grid; width: 32px; height: 32px; place-items: center; padding: 0; border: 1px solid #dce4ed; border-radius: 7px; color: #5c49d2; background: #f2efff; font: inherit; font-size: .95rem; font-weight: 800; cursor: pointer; }.schedule-row-action:hover, .schedule-row-action:focus-visible { border-color: #7864e7; background: #e8e3ff; outline: none; }.schedule-row-delete { margin: 0; }.schedule-row-action--delete { color: #b3485c; background: #fff0f2; }.schedule-row-action--delete:hover, .schedule-row-action--delete:focus-visible { border-color: #e9aeb8; background: #ffe4e8; } @media (max-width: 650px) { .schedule-day-list__row { grid-template-columns: 1fr auto; gap: .4rem .7rem; }.schedule-day-list__row small { grid-column: 1; }.schedule-day-list__actions { grid-column: 2; grid-row: 1 / span 2; } }

.schedule-day-navigation { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; } @media (max-width: 650px) { .schedule-day-navigation { justify-content: flex-start; } }

/* Keep a busy day from stretching the weekly schedule beyond the viewport. */
.schedule-board .schedule-day { isolation: isolate; max-height: min(34rem, calc(100vh - 15rem)); overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.schedule-board .schedule-day > header {
  position: sticky;
  z-index: 3;
  top: 0;
  isolation: isolate;
}

/* The header's background must extend through the card padding.  Otherwise a
   * scrolling shift can show through beside or beneath the date. */
.schedule-board .schedule-day > header::before {
  position: absolute;
  z-index: -1;
  content: "";
  inset: -.85rem -.85rem -.5rem;
  background: #fff;
  border-bottom: 1px solid #e3e9f1;
  box-shadow: 0 2px 4px rgba(23, 39, 70, .06);
}

.schedule-board .schedule-day > .schedule-shift,
.schedule-board .schedule-day > .schedule-empty {
  position: relative;
  z-index: 0;
}

.team-form--modal label {
  display: grid;
  gap: .3rem;
  color: #657893;
  font-size: .7rem;
  font-weight: 800;
}

.team-form--modal label input { width: 100%; box-sizing: border-box; }
.team-form--modal label small { color: #b14d5d; font-size: .64rem; font-weight: 700; line-height: 1.3; }
@media (max-width: 720px) { .schedule-board .schedule-day { max-height: 26rem; } }

.kiosk-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; max-width: 1100px; margin-bottom: 1.4rem; }.kiosk-summary article { position: relative; padding: 1rem; border: 1px solid #e0e7ef; border-radius: 13px; background: #fff; }.kiosk-summary span { color: #26be8e; }.kiosk-summary article:nth-child(2) span { color: #d59331; }.kiosk-summary article:nth-child(3) span { color: #c45c6d; }.kiosk-summary p { margin: .35rem 0 .15rem; color: #77879d; font-size: .72rem; font-weight: 800; }.kiosk-summary strong { display: block; color: #243955; font-size: 1.5rem; letter-spacing: -.02em; }.kiosk-summary small { color: #8b98aa; font-size: .65rem; }.kiosk-management { max-width: 1100px; }.kiosk-management .dashboard-section__heading > div > p { max-width: 650px; margin: .35rem 0 0; color: #7d8ca0; font-size: .7rem; line-height: 1.45; }.kiosk-device-list { display: grid; gap: .6rem; }.kiosk-device { display: grid; grid-template-columns: auto minmax(170px, 1fr) minmax(175px, 1fr) minmax(110px, .55fr) auto; align-items: center; gap: 1rem; padding: .9rem; border: 1px solid #e2e8f0; border-radius: 10px; background: #fafbfe; }.kiosk-device--disabled { opacity: .72; }.kiosk-device__indicator { width: 10px; height: 10px; border-radius: 50%; background: #d69b3d; box-shadow: 0 0 0 4px #fff1dc; }.kiosk-device__indicator.is-online { background: #25bd8e; box-shadow: 0 0 0 4px #e4faf2; }.kiosk-device__indicator.is-stale, .kiosk-device__indicator.is-disabled { background: #c85d6c; box-shadow: 0 0 0 4px #ffeaee; }.kiosk-device b, .kiosk-device small { display: block; }.kiosk-device__identity b { color: #344b68; font-size: .8rem; }.kiosk-device small { margin-top: .18rem; color: #8492a5; font-size: .65rem; }.kiosk-device code { color: #62748e; font-family: inherit; }.kiosk-device__sync b { color: #435a77; font-size: .73rem; }.kiosk-device__meta b { color: #536982; font-size: .7rem; }.kiosk-device form { margin: 0; }.kiosk-device__logout, .kiosk-device__reactivate { min-height: 34px; padding: .45rem .6rem; border: 0; border-radius: 7px; font: inherit; font-size: .67rem; font-weight: 850; cursor: pointer; white-space: nowrap; }.kiosk-device__logout { color: #a34356; background: #fff0f3; }.kiosk-device__reactivate { color: #fff; background: #5c49d2; } @media (max-width: 760px) { .kiosk-summary { grid-template-columns: 1fr; }.kiosk-device { grid-template-columns: auto minmax(0, 1fr) auto; gap: .6rem; }.kiosk-device__sync, .kiosk-device__meta { grid-column: 2 / -1; }.kiosk-device form { grid-column: 2 / -1; }.kiosk-device__logout, .kiosk-device__reactivate { width: 100%; } }

.kiosk-users { max-width: 1100px; }.kiosk-users .dashboard-section__heading p { margin: .3rem 0 0; color: #7c8ba0; font-size: .7rem; }.kiosk-user-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: .55rem; }.kiosk-user-form input, .kiosk-user-form select { min-height: 39px; padding: .45rem .55rem; border: 1px solid #dce4ed; border-radius: 7px; font: inherit; }.kiosk-user-form input[type="submit"], .kiosk-user-pair { border: 0; border-radius: 7px; color: #fff; background: #5d48d5; font: inherit; font-size: .7rem; font-weight: 850; cursor: pointer; }.kiosk-user-form input[type="submit"] { padding: .5rem .7rem; }.kiosk-user-list { display: grid; gap: .45rem; margin-top: .8rem; }.kiosk-user-list article { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .75rem; border: 1px solid #e4eaf2; border-radius: 8px; }.kiosk-user-list b, .kiosk-user-list small { display: block; }.kiosk-user-list b { color: #405671; font-size: .74rem; }.kiosk-user-list small { margin-top: .1rem; color: #8795a7; font-size: .64rem; }.kiosk-user-pair { padding: .4rem .55rem; } @media (max-width: 650px) { .kiosk-user-form { grid-template-columns: 1fr; }.kiosk-user-form input[type="submit"] { min-height: 40px; }.kiosk-user-list article { align-items: stretch; flex-direction: column; }.kiosk-user-pair { width: 100%; } }

.kiosk-user-row { display: grid !important; grid-template-columns: auto minmax(180px, 1fr) minmax(170px, .7fr) auto; align-items: center; }.kiosk-user-row__status { width: 10px; height: 10px; border-radius: 50%; background: #d59534; box-shadow: 0 0 0 4px #fff2dc; }.kiosk-user-row__status.is-logged-in { background: #25bd8e; box-shadow: 0 0 0 4px #e4faf2; }.kiosk-user-row__state b { color: #405671; font-size: .72rem; }.kiosk-user-row__state small { margin-top: .1rem; } @media (max-width: 650px) { .kiosk-user-row { grid-template-columns: auto 1fr !important; }.kiosk-user-row__state { grid-column: 2; }.kiosk-user-row form { grid-column: 1 / -1; }.kiosk-user-row .kiosk-device__logout, .kiosk-user-row .kiosk-user-pair { width: 100%; } }
.team-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; max-width: 1400px; margin: 0 auto 1rem; }.team-overview article { position: relative; padding: 1.1rem 1.2rem 1.1rem 4rem; border: 1px solid #e0e7ef; border-radius: 14px; background: #fff; box-shadow: 0 2px 5px rgba(31,49,81,.035); }.team-overview span { position: absolute; top: 1.1rem; left: 1.15rem; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: #604bd3; background: #eeebff; font-weight: 900; }.team-overview p { margin: 0; color: #8190a5; font-size: .72rem; font-weight: 800; }.team-overview strong { display: block; margin-top: .15rem; color: #273e5a; font-size: 1.45rem; letter-spacing: -.02em; }.team-overview strong small { color: #7d8da3; font-size: .7rem; letter-spacing: 0; }.team-member-list { max-width: 1400px; margin: 0 auto; overflow: hidden; border: 1px solid #e0e7ef; border-radius: 16px; background: #fff; box-shadow: 0 2px 5px rgba(31,49,81,.035); }.team-member-list__heading, .team-member-row { display: grid; grid-template-columns: 42px minmax(220px, 1.4fr) minmax(150px, .75fr) minmax(170px, .85fr) auto; align-items: center; gap: 1rem; }.team-member-list__heading { padding: .7rem 1rem; border-bottom: 1px solid #e8edf3; color: #8795a8; font-size: .63rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }.team-member-list__heading span:first-child { grid-column: 1 / span 2; }.team-member-row { padding: .9rem 1rem; color: #344b68; text-decoration: none; }.team-member-row + .team-member-row { border-top: 1px solid #edf0f5; }.team-member-row:hover { background: #faf9ff; }.team-member-row__avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: #fff; background: linear-gradient(145deg, #7761ef, #5040bd); font-size: .85rem; font-weight: 900; }.team-member-row__person b, .team-member-row__person small, .team-member-row__stat b, .team-member-row__stat small { display: block; }.team-member-row__person b { font-size: .88rem; }.team-member-row__person small, .team-member-row__stat small { margin-top: .12rem; color: #8290a4; font-size: .67rem; }.team-member-row__stat b { color: #324968; font-size: .9rem; }.team-member-row__open { color: #604bd3; font-size: .73rem; font-weight: 850; white-space: nowrap; }
@media (max-width: 760px) { .team-overview { grid-template-columns: 1fr; }.team-member-list__heading { display: none; }.team-member-row { grid-template-columns: 40px minmax(0, 1fr) auto; gap: .75rem; }.team-member-row__stat { grid-column: 2; display: flex; align-items: baseline; gap: .4rem; }.team-member-row__stat small { margin: 0; }.team-member-row__open { grid-column: 3; grid-row: 1 / span 3; }.team-member-row__person { min-width: 0; } }
.location-staff { grid-template-columns: 38px minmax(0, 1fr) minmax(0, .9fr) auto; gap: .8rem; }.location-staff > div, .location-staff__shift { min-width: 0; }.location-staff__shift { flex-wrap: wrap; }.location-staff__shift span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.location-staff__remove { white-space: nowrap; }
@media (max-width: 760px) { .location-staff { grid-template-columns: 34px minmax(0, 1fr) auto; gap: .65rem; padding: .75rem; }.location-staff > span { width: 34px; height: 34px; }.location-staff__shift { grid-column: 2 / -1; margin-top: 0; }.location-staff__shift span { flex: 1; }.location-staff__remove { align-self: center; } }
@media (max-width: 420px) { .location-staff { grid-template-columns: 32px minmax(0, 1fr); }.location-staff > span { width: 32px; height: 32px; }.location-staff__remove { grid-column: 2; justify-self: start; }.location-staff__shift { grid-column: 2; } }
.location-staff__shift { display: block; min-width: 125px; line-height: 1.25; }.location-staff__shift b, .location-staff__shift span { display: block; overflow: visible; text-overflow: clip; white-space: normal; }.location-staff__shift b { margin-bottom: .2rem; }.location-staff__shift span { color: #667995; font-weight: 750; }.location-staff > div b, .location-staff > div small { overflow: visible; text-overflow: clip; white-space: normal; }
@media (max-width: 760px) { .location-staff__shift { min-width: 0; }.location-staff__shift b, .location-staff__shift span { display: inline; }.location-staff__shift b { margin-right: .45rem; }.location-staff__shift span { white-space: normal; } }
.location-staff { grid-template-columns: 32px minmax(0, 1fr) minmax(0, .72fr) auto; gap: .55rem; padding: .6rem .65rem; }.location-staff > span { width: 32px; height: 32px; font-size: .65rem; }.location-staff > div b { font-size: .75rem; line-height: 1.2; }.location-staff > div small { font-size: .6rem; }.location-staff__shift { min-width: 0; font-size: .65rem; }.location-staff__shift b { font-size: .6rem; }.location-staff__shift span { font-size: .65rem; overflow-wrap: anywhere; }.location-staff__remove { padding: .3rem .45rem; font-size: .63rem; }
@media (max-width: 760px) { .location-staff { grid-template-columns: 30px minmax(0, 1fr) auto; padding: .6rem; }.location-staff > span { width: 30px; height: 30px; }.location-staff__shift { grid-column: 2 / -1; }.location-staff__shift b, .location-staff__shift span { font-size: .63rem; } }
.location-staff .location-staff__shift span { display: block; width: auto; height: auto; border-radius: 0; color: #667995; background: transparent; font-weight: 750; overflow: visible; text-overflow: clip; white-space: normal; }
@media (max-width: 760px) { .location-staff .location-staff__shift span { display: inline; } }

/* Keep large location rosters usable without letting one card consume the page. */
.location-card .location-staff-list { display: block !important; max-height: min(34rem, 60vh); overflow-y: auto; overscroll-behavior: contain; padding-right: .25rem; scrollbar-gutter: stable; }
.location-card .location-staff-list > .location-staff { display: grid !important; grid-template-columns: 38px minmax(0, 1fr) minmax(12rem, .8fr) max-content; box-sizing: border-box; width: 100%; margin: 0 0 .5rem !important; }
.location-card .location-staff-list > .location-staff:last-child { margin-bottom: 0 !important; }
.location-staff-list:focus-within { outline: 2px solid #c9c1fb; outline-offset: 3px; border-radius: 10px; }
@media (max-width: 760px) { .location-card .location-staff-list { max-height: 50vh; }.location-card .location-staff-list > .location-staff { grid-template-columns: 30px minmax(0, 1fr) max-content; }.location-card .location-staff-list > .location-staff .location-staff__shift { grid-column: 2 / -1; } }
.location-assign-dialog__empty { margin: 0; padding: .8rem .9rem; border: 1px dashed #cbd4e1; border-radius: 9px; color: #6f8097; background: #fafbfe; font-size: .75rem; font-weight: 700; line-height: 1.45; }.location-assign-dialog__form input[type="submit"]:disabled, .location-assign-dialog__form button[type="submit"]:disabled { opacity: .5; cursor: not-allowed; }

/* Readability baseline: native system fonts render clearly on desktop and mobile. */
:root { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 18px; }
body { font-size: 1rem; line-height: 1.55; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea { font-family: inherit; }
.scheduled-shift-form select {
  appearance: none;
  min-height: 52px;
  padding: .7rem 2.8rem .7rem .85rem;
  border: 1px solid #ccd8e7;
  border-radius: 10px;
  color: #294363;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m2 2 6 6 6-6' fill='none' stroke='%23395473' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7'/%3E%3C/svg%3E") no-repeat right .95rem center;
  box-shadow: 0 1px 2px rgba(34, 57, 89, .04);
  font-size: .92rem;
  font-weight: 650;
  letter-spacing: -.01em;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.scheduled-shift-form select:hover { border-color: #aebed2; background-color: #fbfcff; }
.scheduled-shift-form select:focus { border-color: #745de8; outline: 0; box-shadow: 0 0 0 3px rgba(116, 93, 232, .14); }
.scheduled-shift-form select:invalid { color: #78879a; font-weight: 550; }
.shift-dialog__form select {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 52px;
  appearance: none;
  padding: .7rem 2.8rem .7rem .85rem;
  border: 1px solid #ccd8e7;
  border-radius: 10px;
  color: #294363;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='m2 2 6 6 6-6' fill='none' stroke='%23395473' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7'/%3E%3C/svg%3E") no-repeat right .95rem center;
  box-shadow: 0 1px 2px rgba(34, 57, 89, .04);
  font: inherit;
  font-weight: 650;
  letter-spacing: -.01em;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.shift-dialog__form select:hover { border-color: #aebed2; background-color: #fbfcff; }
.shift-dialog__form select:focus { border-color: #745de8; outline: 0; box-shadow: 0 0 0 3px rgba(116, 93, 232, .14); }
.dashboard-sidebar__location--picker { display: flex; align-items: center; gap: .45rem; }
.dashboard-sidebar__location--picker > span { flex: 0 0 auto; font-size: .95rem; }
.dashboard-sidebar__location--picker select {
  min-width: 0;
  flex: 1;
  height: 36px;
  appearance: none;
  padding: 0 2rem 0 .62rem;
  border: 1px solid #dde5ef;
  border-radius: 8px;
  color: #405674;
  background: #fafbfe url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m1.5 1.5 5.5 5.5 5.5-5.5' fill='none' stroke='%23657994' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right .65rem center;
  box-shadow: 0 1px 2px rgba(34, 57, 89, .03);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.dashboard-sidebar__location--picker select:hover { border-color: #c5d1e0; background-color: #fff; }
.dashboard-sidebar__location--picker select:focus { border-color: #745de8; outline: 0; box-shadow: 0 0 0 3px rgba(116, 93, 232, .14); }
.kiosk-user-form select {
  min-height: 44px;
  appearance: none;
  padding: .55rem 2.35rem .55rem .7rem;
  border: 1px solid #ccd8e7;
  border-radius: 8px;
  color: #405674;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m1.5 1.5 5.5 5.5 5.5-5.5' fill='none' stroke='%23657994' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right .7rem center;
  box-shadow: 0 1px 2px rgba(34, 57, 89, .03);
  font-weight: 700;
  cursor: pointer;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.kiosk-user-form select:hover { border-color: #b7c6d9; background-color: #fbfcff; }
.kiosk-user-form select:focus { border-color: #745de8; outline: 0; box-shadow: 0 0 0 3px rgba(116, 93, 232, .14); }
.kiosk-user-form select:invalid { color: #78879a; font-weight: 600; }
.dashboard-shell :is(input, select, textarea, button), .staff-page :is(input, select, textarea, button), .access-alert :is(input, select, textarea, button) { font-size: max(.875rem, 1em); }
.dashboard-shell small, .dashboard-shell .dashboard-kicker, .dashboard-shell .dashboard-help, .dashboard-shell .dashboard-live, .staff-page small, .staff-page .dashboard-kicker { font-size: max(.78rem, 14px); }
.location-assign-dialog__empty { font-size: .875rem; }
.pairing-code-dialog { width: min(420px, calc(100vw - 32px)); }
.pairing-code-dialog__body { display: grid; gap: 1rem; padding: 1.35rem; }
.pairing-code-dialog__body p { margin: 0; color: #718199; font-size: .82rem; line-height: 1.45; }
.pairing-code-dialog__body code { padding: .9rem 1rem; border-radius: 10px; color: #4f3dc0; background: #f1efff; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.35rem; font-weight: 800; letter-spacing: .08em; text-align: center; }
.pairing-code-dialog__close { justify-self: end; min-height: 39px; padding: .5rem .85rem; border: 0; border-radius: 8px; color: #fff; background: #5d48d5; font: inherit; font-size: .75rem; font-weight: 850; cursor: pointer; }
.employee-pin-dialog { width: min(420px, calc(100vw - 32px)); }
.employee-pin-dialog__body { display: grid; gap: 1rem; padding: 1.35rem; }
.employee-pin-dialog__body p { margin: 0; color: #718199; font-size: .82rem; line-height: 1.45; }
.employee-pin-dialog__body code { padding: .9rem 1rem; border-radius: 10px; color: #4f3dc0; background: #f1efff; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 1.55rem; font-weight: 800; letter-spacing: .12em; text-align: center; }
.employee-pin-dialog__close { justify-self: end; min-height: 39px; padding: .5rem .85rem; border: 0; border-radius: 8px; color: #fff; background: #5d48d5; font: inherit; font-size: .75rem; font-weight: 850; cursor: pointer; }
.flash-toast { position: fixed; z-index: 1000; right: 1.25rem; bottom: 1.25rem; display: flex; align-items: flex-start; gap: .85rem; width: min(420px, calc(100vw - 2.5rem)); padding: .9rem 1rem; border: 1px solid; border-radius: 12px; box-shadow: 0 16px 40px rgba(19,25,52,.22); font-size: .82rem; font-weight: 750; line-height: 1.4; }
.flash-toast span { flex: 1; }
.flash-toast button { display: grid; flex: 0 0 auto; place-items: center; width: 24px; height: 24px; margin: -.18rem -.25rem 0 0; padding: 0; border: 0; border-radius: 50%; color: inherit; background: transparent; font: inherit; font-size: 1.15rem; cursor: pointer; }
.flash-toast--notice { border-color: #b9dfd0; color: #1c634e; background: #effbf6; }
.flash-toast--alert { border-color: #f1bec7; color: #9b3549; background: #fff4f6; }

/* Dashboard review fixes */
.count-badge { color: #4f5f78; background: #edf1f7; }
.count-badge--alert { color: #d74460; background: #ffeaee; }
.schedule-shift b, .schedule-shift small { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.schedule-shift__warning { display: block; margin-top: .25rem; color: #a5550f; font-size: .62rem; font-weight: 800; }
.schedule-warnings { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid #f3c58a; border-radius: 12px; color: #6b3d06; background: #fff7ea; font-size: .78rem; }
.schedule-warnings ul { margin: .35rem 0 0; padding-left: 1.1rem; }
.schedule-warnings a { color: inherit; font-weight: 850; }
.settings-warning { display: block; margin: .35rem 0 0; padding: .55rem .7rem; border: 1px solid #f3c58a; border-radius: 8px; color: #6b3d06; background: #fff7ea; font-size: .7rem; font-weight: 700; line-height: 1.45; }
.settings-warning--banner { max-width: 1100px; margin: 0 0 1rem; font-size: .8rem; }
.settings-warning a { color: inherit; font-weight: 850; }
.settings-note { margin: .8rem 0 0; color: #7d8ba1; font-size: .7rem; line-height: 1.5; }
.settings-member-list { display: grid; gap: .45rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.settings-member-list li { display: flex; align-items: center; gap: .7rem; padding: .6rem .7rem; border: 1px solid #e4eaf2; border-radius: 10px; background: #fafbfe; }
.settings-member-list li > div { flex: 1; min-width: 0; }
.settings-member-list b, .settings-member-list small { display: block; overflow-wrap: anywhere; }
.settings-member-list b { font-size: .8rem; }
.settings-member-list small { color: #7d8ba1; font-size: .68rem; }
.settings-member-list em { color: #a5550f; font-style: normal; font-weight: 800; }
.settings-member-list__avatar { display: grid; place-items: center; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; color: #5540ce; background: #e8e5ff; font-size: .78rem; font-weight: 900; }
.settings-member-list form { margin: 0; }
.settings-inline-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: .6rem; }
.settings-inline-form label { display: grid; gap: .3rem; color: #41546e; font-size: .72rem; font-weight: 800; }
.settings-inline-form input, .settings-inline-form select { min-height: 38px; padding: .45rem .6rem; border: 1px solid #dce3ed; border-radius: 8px; font: inherit; font-size: .78rem; }
.settings-inline-form input[type="submit"] { padding: 0 .9rem; border: 0; color: #fff; background: #5d48d5; font-weight: 850; cursor: pointer; }
@media (max-width: 760px) { .settings-inline-form { grid-template-columns: 1fr; } }
.location-warnings { margin: .2rem 0 .9rem; padding: .65rem .8rem .65rem 1.8rem; border: 1px solid #f3c58a; border-radius: 10px; color: #6b3d06; background: #fff7ea; font-size: .72rem; font-weight: 700; line-height: 1.5; }
.location-hours-day--long { border-color: #f3c58a !important; background: #fffaf2 !important; }
.location-attendance-policy__fields--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .location-attendance-policy__fields--four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.location-attendance-policy__heading p a { color: #5641d1; font-weight: 850; }
.live-attendance { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.live-attendance__group { padding: .9rem; border: 1px solid #e4eaf2; border-radius: 12px; background: #fafbfe; }
.live-attendance__group--alert { border-color: #f5b7c3; background: #fff6f8; }
.live-attendance__group--warning { border-color: #f3c58a; background: #fffaf2; }
.live-attendance__group h3 { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin: 0 0 .6rem; color: #2b3d59; font-size: .82rem; }
.live-attendance__group ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.live-attendance__group li b, .live-attendance__group li small { display: block; }
.live-attendance__group li b { font-size: .78rem; }
.live-attendance__group li small { color: #7d8ba1; font-size: .68rem; }
.live-attendance__empty, .live-attendance__hint { margin: 0; color: #8795aa; font-size: .7rem; }
.live-attendance__hint { margin-top: .6rem; }
@media (max-width: 1000px) { .live-attendance { grid-template-columns: 1fr; } }
.timesheet-status--approved { color: #137a57; background: #e3f8ef; }
.timesheet-changed { display: block; margin-top: .25rem; color: #a5550f; font-size: .62rem; font-weight: 800; }
.timesheet-approve-button { min-height: 32px; padding: 0 .8rem; border: 0; border-radius: 7px; color: #fff; background: #5d48d5; font: inherit; font-size: .72rem; font-weight: 850; cursor: pointer; }
.dashboard-section__actions form { margin: 0; }
.dashboard-table tfoot th { padding: .75rem .7rem; border-top: 2px solid #e3e9f1; color: #283b58; font-size: .74rem; letter-spacing: 0; text-align: left; text-transform: none; }
.team-member-list--no-pay .team-member-list__heading, .team-member-list--no-pay .team-member-row { grid-template-columns: 42px minmax(220px, 1.6fr) minmax(150px, .8fr) auto; }
@media (max-width: 760px) { .team-member-list--no-pay .team-member-row { grid-template-columns: 40px minmax(0, 1fr) auto; } }
.team-member-row__warning { color: #a5550f; font-style: normal; font-weight: 800; }
.team-hour-report__alert { border-color: #f3c58a !important; background: #fffaf2 !important; }
.staff-page__rate { display: grid; gap: .25rem; color: #41546e; font-size: .7rem; font-weight: 800; }
.schedule-day-navigation form { margin: 0; }
.schedule-day-navigation .dashboard-outline-button, .dashboard-section__actions button.dashboard-outline-button { display: inline-flex; align-items: center; min-height: 36px; padding: 0 .8rem; border: 1px solid #dfe6ef; border-radius: 9px; color: #48617e; background: #fff; font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; }
.dashboard-section__heading { flex-wrap: wrap; }
.dashboard-section__actions { flex-wrap: wrap; }
.dashboard-section__actions a, .dashboard-section__actions button { white-space: nowrap; }
.dashboard-section__actions .timesheet-approve-button { min-height: 36px; font-size: .76rem; }
.timesheet-status { text-transform: none; white-space: nowrap; }
.staff-page__identity-grid .staff-page__access { align-items: start; }
.unmatched-actions { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.unmatched-actions form { display: flex; gap: .35rem; margin: 0; }
.unmatched-actions select { min-height: 32px; padding: .3rem .45rem; border: 1px solid #dce3ed; border-radius: 7px; font: inherit; font-size: .72rem; }
.dashboard-section__heading > div:first-child { flex: 1 1 320px; min-width: 0; }
.dashboard-table .unmatched-actions input[type="submit"] { padding: .4rem .7rem; border: 0; border-radius: 7px; color: #fff; background: #5d48d5; font: inherit; font-size: .7rem; font-weight: 800; cursor: pointer; }
.dashboard-table .unmatched-actions button.weekly-shift-remove { padding: .4rem .6rem; color: #a35062; background: #fff0f3; font-size: .7rem; }
.dashboard-guide-link { display: block; margin-bottom: .7rem; color: #5641d1; font-size: .77rem; font-weight: 800; text-decoration: none; }
.correction-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.correction-panel summary::-webkit-details-marker { display: none; }
.correction-panel summary b, .correction-panel summary small { display: block; }
.correction-panel summary b { color: #15233d; font-size: 1.05rem; }
.correction-panel summary small { margin-top: .2rem; color: #75839a; font-size: .74rem; }
.correction-panel summary > span:last-child { color: #6049d8; font-size: 1.3rem; font-weight: 800; }
.correction-panel[open] summary > span:last-child { transform: rotate(45deg); }
.correction-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin-top: 1rem; }
.correction-form label { display: grid; gap: .25rem; color: #41546e; font-size: .7rem; font-weight: 800; }
.correction-form__wide { grid-column: 1 / span 3; }
.correction-form select, .correction-form input { min-height: 36px; padding: .4rem .55rem; border: 1px solid #dce3ed; border-radius: 8px; font: inherit; font-size: .76rem; }
.correction-form input[type="submit"] { align-self: end; border: 0; color: #fff; background: #5d48d5; font-weight: 850; cursor: pointer; }
@media (max-width: 900px) { .correction-form { grid-template-columns: 1fr; } .correction-form__wide { grid-column: auto; } }
.live-attendance__fix { margin-top: .35rem; padding: .3rem .55rem; border: 1px solid #f5b7c3; border-radius: 7px; color: #a33a52; background: #fff; font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }

/* System administration */
.admin-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; padding: .85rem clamp(1rem, 4vw, 2.5rem); border-bottom: 1px solid #e3e9f1; background: #fff; }
.admin-nav__brand { display: inline-flex; align-items: center; gap: .55rem; color: #10213d; font-weight: 900; text-decoration: none; }
.admin-nav__brand span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; color: #fff; background: linear-gradient(145deg, #765df2, #4336b9); font-size: .85rem; }
.admin-nav__links { display: flex; flex-wrap: wrap; gap: .3rem; }
.admin-nav__links a { padding: .45rem .75rem; border-radius: 8px; color: #5b6d88; font-size: .82rem; font-weight: 800; text-decoration: none; }
.admin-nav__links a.is-active { color: #fff; background: #18223b; }
.admin-nav__user { display: flex; align-items: center; gap: .9rem; margin-left: auto; color: #7c8ca1; font-size: .76rem; font-weight: 700; }
.admin-nav__user a { color: #5641d1; font-weight: 800; text-decoration: none; }
.admin-nav__user form { margin: 0; }
.admin-nav__signout { padding: 0; border: 0; color: #7c8ca1; background: none; font: inherit; font-weight: 800; cursor: pointer; }
.admin-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.admin-metric { display: block; padding: 1rem; border: 1px solid #e0e7ef; border-radius: 14px; color: inherit; background: #fff; text-decoration: none; }
a.admin-metric:hover { border-color: #b9aef5; }
.admin-metric p { margin: 0 0 .35rem; color: #77869c; font-size: .74rem; font-weight: 800; }
.admin-metric strong { display: block; color: #18223b; font-size: 1.7rem; }
.admin-metric small { display: block; margin-top: .25rem; color: #8b98ab; font-size: .7rem; }
.admin-metric__badge small { display: block; margin-top: .35rem; color: #8b98ab; font-size: .72rem; }
.admin-metric--warn { border-color: #f3c58a; background: #fffaf2; }
.admin-metric--good { border-color: #b6e8cd; }
.admin-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.admin-panel { margin-bottom: 1rem; padding: 1.1rem; border: 1px solid #e0e7ef; border-radius: 14px; background: #fff; }
.admin-columns .admin-panel { margin-bottom: 0; }
.admin-panel__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.admin-panel__heading--spaced { margin-top: 1.2rem; }
.admin-panel__heading h2 { margin: 0; color: #18223b; font-size: 1rem; }
.admin-panel__heading span { color: #8b98ab; font-size: .72rem; font-weight: 700; }
.admin-panel__heading a { color: #5641d1; font-weight: 800; text-decoration: none; }
.admin-list { display: grid; gap: .1rem; margin: 0; padding: 0; list-style: none; }
.admin-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-top: 1px solid #edf0f5; color: #344963; font-size: .8rem; }
.admin-list li:first-child { border-top: 0; }
.admin-list li > :last-child { color: #8190a4; font-size: .74rem; text-align: right; }
.admin-list a { color: #293e5b; font-weight: 800; text-decoration: none; }
.admin-list--log li { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .74rem; }
.admin-empty { margin: 0; color: #8b98ab; font-size: .8rem; }
.admin-empty--padded { padding: 1rem; }
.admin-bars { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); align-items: end; gap: .5rem; height: 170px; }
.admin-bars__day { display: grid; grid-template-rows: auto 1fr auto; align-items: end; height: 100%; text-align: center; }
.admin-bars__value { color: #526681; font-size: .7rem; font-weight: 800; }
.admin-bars__bar { align-self: end; min-height: 3px; margin: .25rem .3rem; border-radius: 6px 6px 2px 2px; background: #c9c0fb; }
.admin-bars__day.is-today .admin-bars__bar { background: #5d48d5; }
.admin-bars__label { color: #8b98ab; font-size: .68rem; font-weight: 800; }
.admin-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.admin-filters input[type="search"] { flex: 1 1 260px; }
.admin-filters input, .admin-filters select { min-height: 38px; padding: .4rem .65rem; border: 1px solid #dce3ed; border-radius: 8px; font: inherit; font-size: .8rem; }
.admin-filters input[type="submit"] { border: 0; color: #fff; background: #5d48d5; font-weight: 800; cursor: pointer; }
.admin-filters a { align-self: center; color: #5641d1; font-size: .8rem; font-weight: 800; }
.admin-actions { display: flex; align-items: center; gap: .4rem; }
.admin-actions--wrap { flex-wrap: wrap; margin-top: 1rem; }
.admin-actions form { margin: 0; }
.admin-button { display: inline-flex; align-items: center; min-height: 32px; padding: 0 .75rem; border: 1px solid #5d48d5; border-radius: 7px; color: #fff; background: #5d48d5; font: inherit; font-size: .74rem; font-weight: 800; text-decoration: none; white-space: nowrap; cursor: pointer; }
.admin-button--ghost { color: #4d3cc3; background: #fff; border-color: #d6cff9; }
.admin-facts { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1rem; margin: 0; font-size: .8rem; }
.admin-facts dt { color: #8190a4; font-weight: 700; }
.admin-facts dd { margin: 0; color: #293e5b; font-weight: 700; }
.admin-issue { display: inline-block; margin: 0 .25rem .25rem 0; padding: .2rem .5rem; border-radius: 999px; color: #8a4b0b; background: #fff1d9; font-size: .68rem; font-weight: 850; }
.admin-issue--offline, .admin-issue--pin_locked { color: #a33a52; background: #ffe7ec; }
.admin-issue--ok { color: #23664a; background: #dff7e9; }
.admin-row--problem td:first-child { box-shadow: inset 3px 0 0 #f0a35a; }
.system-admin__status--trial_ending { color: #8a4b0b; background: #ffe6c2; }
.system-admin__status--trial_expired { color: #a33a52; background: #ffe7ec; }
.system-admin__table td small { white-space: nowrap; }
.system-admin__table a { color: #293e5b; text-decoration: none; }
@media (max-width: 900px) { .admin-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } .admin-columns { grid-template-columns: 1fr; } .admin-nav__user { margin-left: 0; } }
body:has(.admin-nav) { background: #f4f7fb; }
.system-admin .eyebrow, .system-admin .eyebrow a { color: #6d5ae0; text-decoration: none; }
.system-admin__header h1 { color: #18223b; }
html:has(.admin-nav) { min-height: 100%; background: #f4f7fb; }
.system-admin__table-wrap + .admin-columns { margin-top: 1rem; }
.billing-banner { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .7rem; padding: .5rem 1rem; font-size: .76rem; font-weight: 750; text-align: center; }
.billing-banner--info { color: #3d2f9e; background: #eeeaff; }
.billing-banner--warn { color: #7a1f35; background: #ffe7ec; }
.billing-banner__action { padding: .35rem .65rem; border-radius: 7px; color: #fff; background: #5d48d5; font-weight: 800; text-decoration: none; white-space: nowrap; }
.billing-card { display: grid; gap: .9rem; }
.billing-status { padding: .3rem .6rem; border-radius: 999px; color: #885b0f; background: #fff1d3; font-size: .72rem; font-weight: 850; }
.billing-status--purchased { color: #23664a; background: #dff7e9; }
.billing-status--past_due, .billing-status--canceled, .billing-status--trial_expired { color: #a33a52; background: #ffe7ec; }
.billing-price { margin: 0; color: #18223b; font-size: 1.35rem; font-weight: 850; }
.billing-features { display: grid; gap: .35rem; margin: 0; padding-left: 1.1rem; color: #526681; font-size: .82rem; }
.billing-note { margin: 0; padding: .7rem .85rem; border-radius: 10px; color: #48617e; background: #f4f7fb; font-size: .8rem; }
.billing-note--warn { color: #7a1f35; background: #ffe7ec; }
.billing-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
.billing-actions form { margin: 0; }
.billing-actions small, .billing-footnote { color: #728198; font-size: .74rem; }
.billing-footnote { margin: 0; }
.billing-button { min-height: 42px; padding: .55rem 1rem; border: 0; border-radius: 8px; color: #fff; background: #5d48d5; font: inherit; font-size: .78rem; font-weight: 850; cursor: pointer; }
.system-admin__status--past_due, .system-admin__status--canceled { color: #a33a52; background: #ffe7ec; }
.legal-page h3 { margin: 1.5rem 0 .4rem; color: #f1f0f8; font-size: 1.02rem; }
.legal-page ul { padding-left: 1.2rem; color: #b9b8c7; }
.legal-page li { margin-bottom: .45rem; }
.legal-page li ul { margin-top: .45rem; }
.legal-page strong { color: #e6e5ef; }
