* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; background: #fff; color: #222; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.5; }
a { color: #164a7a; text-decoration: none; }
.top { border-bottom: 1px solid #d8dde3; padding: 12px 16px; display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; background: #fff; position: sticky; top: 0; z-index: 10; }
.top strong { margin-right: 12px; }
.top nav { display: flex; gap: 10px 26px; flex-wrap: wrap; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 18px 14px 90px; }
.panel { border: 1px solid #d8dde3; padding: 16px; margin: 0 0 16px; background: #fff; }
h1 { font-size: 1.45rem; margin: 0 0 14px; }
h2 { font-size: 1.1rem; margin: 18px 0 8px; }
.form { display: grid; gap: 14px; max-width: 520px; }
label { display: grid; gap: 6px; font-weight: 600; }
input, select, textarea { width: 100%; min-height: 42px; border: 1px solid #aeb7c2; padding: 8px 10px; font: inherit; background: #fff; color: #222; }
textarea { resize: vertical; }
fieldset { border: 1px solid #d8dde3; padding: 10px; }
.check { display: inline-flex; align-items: center; gap: 7px; margin: 6px 12px 6px 0; font-weight: 500; }
.check input, .status-row input { width: auto; min-height: auto; }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 8px 14px; border: 1px solid #6d7782; background: #fff; color: #222; cursor: pointer; font-weight: 700; }
.btn.primary { background: #174c7e; border-color: #174c7e; color: #fff; }
.btn.danger { background: #a32929; border-color: #a32929; color: #fff; }
.btn.small { min-height: 34px; padding: 5px 10px; font-size: .9rem; }
.inline, .bar, .toolbar { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; }
.bar { justify-content: space-between; }
.notice { border-left: 4px solid #247a3f; background: #eef8f0; padding: 10px; margin-bottom: 12px; }
.deadline-banner { border: 2px solid #174c7e; background: #f3f8fc; padding: 18px; margin: 0 0 16px; display: grid; gap: 6px; }
.deadline-banner strong { font-size: 1.4rem; }
.availability-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.availability-fields:disabled { opacity: .7; }
.error { border-left: 4px solid #a32929; background: #fff0f0; padding: 10px; margin-bottom: 12px; }
.muted { color: #5f6872; }
.ok { color: #126133; font-weight: 700; }
.bad, .warn { color: #a32929; font-weight: 700; }
.simple { width: 100%; border-collapse: collapse; margin-top: 12px; }
.simple th, .simple td { border: 1px solid #d8dde3; padding: 8px; vertical-align: top; }
.simple th { background: #f5f6f7; text-align: left; }
.grid-menu { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 16px; }
.menu-card { border: 1px solid #aeb7c2; padding: 18px; color: #222; display: grid; gap: 6px; align-content: start; }
.menu-card strong { font-size: 1.05rem; }
.menu-card span { color: #5f6872; font-size: .88rem; font-weight: 400; line-height: 1.45; }
.menu-card:hover { border-color: #174c7e; background: #f6fafd; }
.days { display: grid; gap: 12px; }
.day-card { border: 1px solid #d8dde3; padding: 12px; }
.day-head, .status-row, .time-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.day-head { justify-content: space-between; margin-bottom: 8px; }
.status-row label { display: inline-flex; flex-direction: row; font-weight: 500; }
.time-row { margin: 10px 0; }
.time-row select { max-width: 150px; }
.sat .sticky-col, .sat th:first-child { color: #155a91; }
.sun .sticky-col, .sun th:first-child, .holiday .sticky-col, .holiday th:first-child { color: #b32020; }
.sat .sticky-col a, .sat th:first-child a { color: #155a91; }
.sun .sticky-col a, .sun th:first-child a, .holiday .sticky-col a, .holiday th:first-child a { color: #b32020; }
.day-card.sun .day-head, .day-card.holiday .day-head, .holiday-name { color: #b32020; }
.holiday-name { margin-left: 8px; font-size: .8em; font-weight: 700; }
.fixed-actions { position: sticky; bottom: 0; display: flex; gap: 10px; justify-content: flex-end; background: #fff; border-top: 1px solid #d8dde3; padding: 10px; }
.shift-scroll { overflow: auto; border: 1px solid #d8dde3; max-height: 75vh; }
.shift-table { border-collapse: separate; border-spacing: 0; min-width: 980px; width: max-content; background: #fff; }
.shift-table th, .shift-table td { border-right: 1px solid #d8dde3; border-bottom: 1px solid #d8dde3; padding: 7px; min-width: 150px; vertical-align: top; }
.shift-table thead th { position: sticky; top: 0; background: #f5f6f7; z-index: 2; }
.shift-table .sticky-col { position: sticky; left: 0; min-width: 90px; background: #f5f6f7; z-index: 3; }
.shift-cell { cursor: pointer; white-space: pre-line; }
.shift-cell:hover { outline: 2px solid #174c7e; outline-offset: -2px; }
.linklike { border: 0; padding: 0; background: transparent; color: #174c7e; font: inherit; cursor: pointer; text-align: left; }
.note-form { display: grid; gap: 6px; min-width: 170px; }
.autosave-status { min-height: 1.5em; font-size: .85rem; }
.shift-page .wrap { max-width: none; padding: 10px 8px 40px; }
.shift-page .panel { padding: 8px; margin-bottom: 8px; }
.shift-page .toolbar label { gap: 2px; font-size: .85rem; }
.shift-page .toolbar input, .shift-page .toolbar select, .shift-page .toolbar .btn { min-height: 34px; padding: 4px 8px; }
.shift-page .shift-scroll { overflow-x: hidden; max-height: calc(100vh - 170px); }
.shift-page .shift-table { table-layout: fixed; width: 100%; min-width: 0; font-size: .78rem; line-height: 1.2; }
.shift-page .shift-table th, .shift-page .shift-table td { min-width: 0; padding: 3px 2px; overflow-wrap: anywhere; }
.shift-page .shift-table .sticky-col { width: 72px; min-width: 72px; white-space: nowrap; }
.shift-page .shift-table .mid-date-col { width: 42px; min-width: 42px; padding-inline: 2px; text-align: center; white-space: nowrap; background: #f5f6f7; font-weight: 700; }
.shift-page .sat .mid-date-col { color: #155a91; }
.shift-page .sun .mid-date-col, .shift-page .holiday .mid-date-col { color: #b32020; }
.monthly-editor-page .shift-table .sticky-col { width: 86px; min-width: 86px; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.monthly-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; padding: 10px 14px !important; }
.monthly-filter-form { display: flex; align-items: center; gap: 22px; min-width: 0; }
.month-quick-picker { display: grid; grid-template-columns: repeat(3, minmax(82px, 1fr)); width: min(100%, 300px); }
.month-quick-link,
.older-month-picker { position: relative; display: flex; align-items: center; justify-content: center; min-height: 46px; margin: 0; border: 1px solid #9aaabb; border-right: 0; background: #fff; color: #104f82; font-weight: 700; text-align: center; text-decoration: none; cursor: pointer; overflow: hidden; }
.month-quick-picker > :last-child { border-right: 1px solid #9aaabb; }
.month-quick-link:hover,
.older-month-picker:hover { background: #eef5fa; }
.month-quick-link.is-active,
.older-month-picker.is-active { background: #e2f0f8; border-color: #1769a5; color: #0b568e; box-shadow: inset 0 0 0 1px #1769a5; }
.older-month-picker input[type="month"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.monthly-area-checks span { min-width: 92px; padding: 11px 20px; font-size: 1rem; }
.monthly-publication-form .btn { min-height: 48px !important; padding: 10px 22px !important; font-size: 1rem; white-space: nowrap; }
.monthly-publication-actions { display: grid; grid-template-columns: repeat(2, minmax(140px, 1fr)); gap: 8px; }
.monthly-publication-actions.staff-only { grid-template-columns: minmax(160px, 1fr); }
.monthly-publication-actions .monthly-publication-form,
.monthly-publication-actions .btn { width: 100%; }
.monthly-publication-form .btn:disabled { opacity: .5; cursor: not-allowed; }
.shift-export-form { display: grid; grid-template-columns: minmax(320px, 1fr) auto auto auto; align-items: end; gap: 12px; }
.shift-export-form label { gap: 3px; font-size: .85rem; }
.shift-export-form input { min-height: 40px; }
.shift-export-form .muted { align-self: center; }
.shift-page .shift-table .note-col { width: 170px; }
.shift-page .shift-table .presence-col { width: 160px; text-align: center; white-space: nowrap; font-weight: 700; }
.staff-hour-overrides { display: grid; gap: 4px; }
.staff-hour-form { display: grid; gap: 5px; }
.staff-hour-form > select { min-width: 0; width: 100%; height: 34px; padding: 3px 5px; font-size: .76rem; }
.staff-hour-form.is-time-mode > select[name="staff_hour_mode"] { display: none; }
.staff-hour-time-range { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) 22px; align-items: center; gap: 3px; }
.staff-hour-time-range[hidden] { display: none !important; }
.staff-hour-time-range select { min-width: 0; width: 100%; height: 32px; padding: 2px; font-size: .76rem; }
.staff-hour-mode-reset { width: 22px; height: 32px; border: 0; background: transparent; padding: 0; color: #777; font-size: 1rem; cursor: pointer; }
.staff-hour-mode-reset:hover, .staff-hour-mode-reset:focus-visible { color: #111; }
.staff-hour-form .autosave-status { grid-column: 1 / -1; }
.staff-hours-page .wrap { max-width: none; padding: 12px 10px 60px; }
.staff-hours-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.staff-hours-month-form { margin: 0; }
.staff-hours-heading { margin-bottom: 8px; }
.staff-hours-heading h1 { margin-bottom: 2px; }
.staff-hours-heading p { margin: 0; }
.staff-hours-scroll { overflow-x: auto; overflow-y: hidden; border: 1px solid #cbd3da; overscroll-behavior-x: contain; }
.staff-hours-table { width: 100%; min-width: 1040px; border-collapse: separate; border-spacing: 0; table-layout: fixed; background: #fff; }
.staff-hours-table th, .staff-hours-table td { min-width: 185px; border-right: 1px solid #d8dde3; border-bottom: 1px solid #d8dde3; padding: 6px; vertical-align: top; }
.staff-hours-table thead th { background: #f5f6f7; height: 42px; text-align: center; }
.staff-hours-table .staff-hours-date { position: sticky; left: 0; z-index: 2; width: 82px; min-width: 82px; background: #f5f6f7; text-align: center; white-space: nowrap; }
.staff-hours-table thead .staff-hours-date { z-index: 3; }
.staff-hours-table .sat .staff-hours-date { color: #155a91; }
.staff-hours-table .sun .staff-hours-date, .staff-hours-table .holiday .staff-hours-date { color: #b32020; }
.staff-hours-table .staff-hour-form { min-width: 0; }
.staff-hours-page .staff-hour-form > select { height: 46px; padding: 7px 10px; font-size: 1rem; font-weight: 700; }
.staff-hours-page .staff-hour-time-range select { height: 42px; padding: 5px 6px; font-size: .92rem; font-weight: 700; }
.shift-page .shift-table thead th:not(.sticky-col) { height: 42px; vertical-align: middle; }
.shift-page .shift-cell { text-align: center; }
.shift-page .shift-cell.has-shift { background: #e5f5e9; color: #125b2b; box-shadow: inset 0 0 0 1px #9bcbaa; }
.shift-page .shift-cell.has-shift .linklike { color: #125b2b; font-weight: 700; }
.shift-page .external-shift-cell { background: #f2faf4 !important; color: #477457; box-shadow: inset 0 0 0 1px #c9dfcf !important; }
.shift-page .external-shift-cell .linklike, .shift-page .external-shift-cell .readonly-shift { color: #477457; }
.shift-page .linklike { line-height: 1.15; white-space: nowrap; }
.shift-page .note-form { min-width: 0; gap: 1px; }
.shift-page .note-form textarea { min-height: 30px; height: 30px; padding: 3px 4px; font-size: .75rem; }
.shift-page .autosave-status { min-height: 0; line-height: 1; font-size: .68rem; }
.staff-shift-page .personal-shifts h2, .staff-shift-page .store-shift-heading h2 { margin-top: 0; }
.staff-shift-page .store-shift-heading { margin-bottom: 8px; }
.staff-shift-page .store-shift-heading p { margin: 4px 0 0; }
.staff-shift-table th.my-column { background: #d7eaf7; color: #123f63; }
.staff-shift-table td.my-column { background: #edf7fd; box-shadow: inset 1px 0 #9fc6df, inset -1px 0 #9fc6df; }
.staff-shift-table .readonly-shift { color: #125b2b; font-weight: 700; line-height: 1.15; white-space: nowrap; text-align: center; }
.staff-shift-table .public-note { white-space: pre-wrap; }
.pin-value { display: inline-block; min-width: 9ch; font-size: .95rem; }
.pin-reset-form { margin-top: 6px; }
.planner-page .wrap { max-width: 1440px; padding: 12px 12px 60px; }
.planner-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 10px; margin-bottom: 10px; }
.planner-toolbar label { gap: 3px; font-size: .85rem; }
.planner-toolbar input, .planner-toolbar select, .planner-toolbar .btn { min-height: 36px; padding: 5px 8px; }
.planner-note { border: 1px solid #d8dde3; padding: 9px 11px; margin-bottom: 8px; background: #fff; }
.planner-matrix { margin-bottom: 12px; }
.planner-matrix-head { display: flex; justify-content: space-between; align-items: end; gap: 12px; padding: 8px 10px; border: 1px solid #aeb7c2; border-bottom: 0; background: #fff; }
.planner-matrix-head h2 { margin: 0; }
.planner-matrix-legend { display: flex; gap: 6px; flex-wrap: wrap; font-size: .76rem; font-weight: 700; }
.planner-matrix-legend span { border: 1px solid #aeb7c2; padding: 2px 6px; }
.planner-matrix-legend .legend-assigned { background: #e5f5e9; color: #125b2b; }
.planner-matrix-legend .legend-available { background: #e8f2fb; color: #174c7e; }
.planner-matrix-scroll { overflow-x: hidden; max-height: calc(100vh - 180px); }
.planner-matrix-table { table-layout: fixed; width: 100%; min-width: 0; font-size: .72rem; line-height: 1.15; }
.planner-matrix-table th, .planner-matrix-table td { min-width: 0; padding: 4px 2px; overflow-wrap: anywhere; text-align: center; }
.planner-matrix-table .sticky-col { width: 86px; min-width: 86px; white-space: nowrap; }
.planner-matrix-table thead th:not(.sticky-col) { height: 40px; vertical-align: middle; }
.planner-matrix-cell { cursor: pointer; height: 34px; }
.planner-matrix-cell:hover { outline: 2px solid #174c7e; outline-offset: -2px; }
.planner-matrix-cell.matrix-assigned { background: #e5f5e9; color: #125b2b; box-shadow: inset 0 0 0 1px #9bcbaa; }
.planner-matrix-cell.matrix-available { background: #e8f2fb; color: #174c7e; }
.planner-matrix-cell.matrix-unavailable { background: #fff; color: inherit; cursor: default; }
.planner-matrix-cell.matrix-unavailable:hover { outline: 0; }
.planner-matrix-cell.matrix-unavailable.matrix-executive-override { cursor: pointer; }
.planner-matrix-cell.matrix-unavailable.matrix-executive-override:hover { outline: 2px solid #174c7e; outline-offset: -2px; }
.planner-matrix-cell.matrix-external { background: #f1f2f4; color: #505862; cursor: default; }
.planner-matrix-cell.matrix-external:hover { outline: 0; }
.planner-matrix-cell strong, .planner-matrix-cell .linklike, .planner-matrix-cell .other-shift { white-space: nowrap; font-size: .9rem; font-weight: 700; }
.planner-matrix-cell .linklike { color: #125b2b; }
.planner-detail-heading { margin: 14px 0 7px; }
.planner-note-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 6px; }
.planner-note-form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 6px; }
.planner-note-form textarea { min-height: 56px; padding: 6px 8px; }
.planner-summary { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; align-items: center; gap: 14px; border: 1px solid #aeb7c2; border-left-width: 6px; padding: 10px 12px; margin-bottom: 8px; }
.planner-summary > div:first-child { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.planner-summary strong { font-size: 1.35rem; }
.planner-summary.shortage { border-left-color: #b42318; background: #fff3f1; }
.planner-summary.enough { border-left-color: #247a3f; background: #eef8f0; }
.planner-summary.excess { border-left-color: #a66500; background: #fff8e8; }
.requirement-form { display: flex; align-items: end; gap: 6px; }
.requirement-form label { gap: 2px; font-size: .8rem; }
.requirement-form input { width: 70px; min-height: 34px; padding: 4px 6px; }
.planner-date-nav { display: grid; grid-template-columns: 90px 1fr 90px; align-items: center; text-align: center; margin: 8px 0; }
.planner-date-nav .btn { width: 90px; }
.candidate-list { display: grid; gap: 5px; }
.candidate-row { display: grid; grid-template-columns: 190px minmax(250px, 1fr) minmax(360px, auto); align-items: center; gap: 12px; min-height: 68px; border: 1px solid #d8dde3; border-left-width: 5px; padding: 7px 9px; background: #fff; }
.candidate-row.status-assigned { border-left-color: #247a3f; background: #eef8f0; }
.candidate-row.status-available { border-left-color: #1769aa; background: #f1f7fc; }
.candidate-row.status-unavailable { border-left-color: #b42318; background: #fff2f0; }
.candidate-row.status-other { border-left-color: #7b8490; background: #f1f2f4; }
.candidate-row.status-none { border-left-color: #c5a54a; }
.candidate-person { display: flex; align-items: center; gap: 8px; min-width: 0; }
.candidate-person strong { overflow-wrap: anywhere; }
.status-badge { display: inline-block; border: 1px solid #aeb7c2; padding: 2px 5px; font-size: .72rem; font-weight: 700; white-space: nowrap; background: #fff; }
.candidate-info { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; min-width: 0; font-size: .9rem; }
.candidate-note { color: #5f3b00; }
.other-shift { color: #505862; font-weight: 700; }
.candidate-actions { display: flex; justify-content: flex-end; align-items: center; gap: 6px; flex-wrap: wrap; }
.candidate-actions form { margin: 0; }
.assigned-time { color: #126133; font-weight: 800; }
.custom-shift-form { display: grid; grid-template-columns: minmax(82px, 1fr) auto minmax(82px, 1fr) auto; align-items: center; gap: 5px; margin-top: 5px; }
.custom-shift-form.with-store { grid-template-columns: minmax(90px, 1.1fr) minmax(82px, 1fr) auto minmax(82px, 1fr) auto; }
.custom-shift-form select { min-height: 34px; padding: 4px; }
dialog { border: 1px solid #6d7782; padding: 18px; width: min(94vw, 460px); }
dialog::backdrop { background: rgba(0,0,0,.25); }
.actions { display: flex; gap: 8px; flex-wrap: wrap; }
.list { margin: 0 0 14px; padding-left: 20px; }
@media (max-width: 720px) {
  .top { align-items: flex-start; padding-right: 16px; }
  .top > div { width: 100%; min-width: 0; padding-right: 76px; }
  .top nav { display: flex; width: 100%; gap: 8px; flex-wrap: nowrap; justify-content: flex-start; }
  .top nav a { padding: 6px 0; font-size: .82rem; white-space: nowrap; }
  .top nav .logout-link { position: absolute; top: 7px; right: 14px; padding: 7px 0; white-space: nowrap; }
  .panel { padding: 12px; }
  .staff-hours-toolbar { align-items: stretch; }
  .staff-hours-toolbar .staff-hours-month-form { flex: 1; min-width: 0; }
  .staff-hours-toolbar .month-quick-picker { width: 100%; }
  .staff-hours-toolbar .btn { width: auto; padding-inline: 9px; font-size: .78rem; }
  .staff-hours-heading { padding: 9px; }
  .staff-hours-table { min-width: 1010px; font-size: .8rem; }
  .staff-hours-table th, .staff-hours-table td { min-width: 178px; padding: 4px; }
  .staff-hours-table .staff-hours-date { width: 72px; min-width: 72px; }
  .staff-hours-page .staff-hour-form > select { height: 44px; font-size: .95rem; }
  .inline { display: grid; align-items: stretch; }
  .btn { width: 100%; }
  .fixed-actions .btn { width: auto; flex: 1; }
  .simple { display: block; overflow-x: auto; }
  .planner-toolbar { display: grid; align-items: stretch; }
  .planner-matrix-head { display: grid; align-items: stretch; }
  .planner-matrix-scroll { max-height: 68vh; }
  .planner-matrix-table { font-size: .6rem; }
  .planner-matrix-cell strong, .planner-matrix-cell .linklike, .planner-matrix-cell .other-shift { font-size: .72rem; }
  .planner-matrix-table .sticky-col { width: 74px; min-width: 74px; }
  .planner-matrix-table th, .planner-matrix-table td { padding: 3px 1px; }
  .planner-summary { grid-template-columns: 1fr; }
  .planner-note-form { grid-template-columns: 1fr; }
  .candidate-row { grid-template-columns: 1fr; gap: 6px; }
  .candidate-actions { justify-content: flex-start; }
  .candidate-actions .btn { width: auto; }
  .custom-shift-form, .custom-shift-form.with-store { width: 100%; grid-template-columns: 1fr auto 1fr auto; }
  .custom-shift-form.with-store select:first-of-type { grid-column: 1 / -1; }
  .monthly-toolbar { grid-template-columns: 1fr; align-items: stretch; }
  .monthly-publication-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .monthly-publication-actions.staff-only { grid-template-columns: 1fr; }
  .monthly-publication-actions .btn { min-height: 44px !important; padding: 8px 6px !important; font-size: .9rem; }
  .monthly-filter-form { display: grid; gap: 10px; }
  .month-quick-picker { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .monthly-area-checks { display: grid; grid-template-columns: repeat(2, 1fr); }
  .monthly-area-checks span { min-width: 0; }
  .shift-export-form { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 8px; }
  .shift-export-form label,
  .shift-export-form .muted { grid-column: 1 / -1; }
  .shift-export-form .btn { width: 100%; min-width: 0; padding: 9px 5px !important; font-size: .82rem; white-space: nowrap; }
  .monthly-editor-page .shift-scroll { max-height: none; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
  .shift-page .shift-table { table-layout: fixed; width: max-content; min-width: max-content; font-size: .8rem; }
  .shift-page .shift-table th:not(.sticky-col),
  .shift-page .shift-table td:not(.sticky-col) { width: 112px; min-width: 112px; }
  .shift-page .shift-table .note-col { width: auto; min-width: 160px; }
  .shift-page .shift-table .presence-col { width: auto; min-width: 150px; }
  .shift-page .shift-table .mid-date-col { width: 42px; min-width: 42px; }
  .shift-page .note-form textarea { min-height: 42px; height: 42px; resize: vertical; font-size: .8rem; }
}
.availability-mode{max-width:190px}
.planner-person-name{display:inline-block;white-space:nowrap;vertical-align:middle}
.bulk-register-form{display:inline-block;margin:0 0 0 5px;vertical-align:middle}
.bulk-register-button{position:relative;width:24px;height:22px;border:1px solid #8aa4bb;background:#fff;color:#174f7e;padding:0;cursor:pointer;vertical-align:middle}
.bulk-register-button:hover{background:#eaf4fb}
.bulk-check{position:absolute;width:13px;height:13px;border:1px solid currentColor;background:#fff;font-size:11px;line-height:11px;font-weight:800;text-align:center}
.bulk-check-back{left:4px;top:3px;opacity:.7}
.bulk-check-front{left:7px;top:6px}
.planner-matrix-table thead th,.planner-matrix-table tbody th{height:auto}
.planner-filter-form{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.planner-area-checks{display:flex;gap:6px;border:0;padding:0;margin:0;min-width:0}
.planner-area-checks legend{font-weight:700;margin-bottom:5px}
.planner-area-checks label{cursor:pointer}
.planner-area-checks input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.planner-area-checks span{display:block;border:1px solid #9aaabb;background:#fff;padding:9px 15px;font-weight:700;min-width:64px;text-align:center}
.planner-area-checks input:checked + span{border-color:#16639a;background:#e4f2fb;color:#0b527f;box-shadow:inset 0 0 0 1px #16639a}
.planner-area-checks input:focus-visible + span{outline:2px solid #16639a;outline-offset:2px}
.day-card .time-row{display:none}
.day-card.is-timed .time-row{display:flex}
.store-closed-message{padding:18px 12px;border:1px solid #d6a6a0;background:#fff4f2;color:#9b241c;font-size:1.05rem;font-weight:800;text-align:center}
.store-closed-note{margin:6px 0;padding:7px 9px;border-left:4px solid #c4473d;background:#fff4f2;color:#7f221c;font-weight:700}
.closure-scroll{max-height:65vh}
.closure-table th,.closure-table td{text-align:center;white-space:nowrap}
.closure-check{display:inline-flex;align-items:center;gap:5px;justify-content:center}
.closure-check input{width:20px;height:20px}
.paid-leave,.paid-leave-button{color:#7a4b00;font-weight:800}
.paid-leave-button{background:#fff3c9;border-color:#b78922}
