.schedule-topline{display:flex;gap:12px;align-items:center;margin:-8px 0 24px;font-size:12px;color:var(--muted);line-height:1.6}.schedule-test-label{padding:4px 8px;background:#f1e4ba;color:#71571d;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:1px;white-space:nowrap}.schedule-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:22px}.schedule-toolbar .field{max-width:170px}.schedule-toolbar .field label{font-size:10px}.schedule-toggle{display:flex;gap:8px;align-items:center;font-size:12px}.schedule-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.schedule-stats>div{display:flex;flex-direction:column;padding:18px;background:white;border:1px solid var(--line);border-radius:10px;gap:5px}.schedule-stats strong{font-size:28px;color:var(--ink);font-weight:500}.schedule-stats span{font-size:12px;color:var(--muted)}.schedule-job-filter{max-width:500px;margin-bottom:24px}.schedule-board{display:grid;gap:16px}.schedule-day{background:#f1f2eb;border:1px solid #dce0d2;border-radius:12px;overflow:hidden}.schedule-day>header{padding:14px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dce0d2}.schedule-day h2{font-size:15px;margin:0}.schedule-day>header>span{font-size:11px;color:var(--muted)}.schedule-day-cards{padding:16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}.schedule-empty{font-size:12px;margin:0;padding:2px;color:var(--muted)}.schedule-card{padding:20px;background:white;border:1px solid var(--line);border-left:4px solid #568469;border-radius:9px;min-width:0}.schedule-card.draft{border-left-color:#c3a050}.schedule-card.canceled{border-left-color:#89958c;background:#f9faf6}.schedule-card h3{font-size:17px;margin:16px 0 9px;line-height:1.4}.schedule-card p{font-size:12px;line-height:1.65;overflow-wrap:anywhere}.schedule-card .schedule-time{font-size:22px;color:var(--ink);margin:8px 0 4px;font-weight:500}.schedule-meta{color:var(--muted);margin-top:0}.schedule-status{padding:4px 8px;border-radius:4px;background:#e9f1e8;color:#355d41;font-size:10px;text-transform:uppercase;letter-spacing:1px}.schedule-status.draft{background:#f5ebcf;color:#88691f}.schedule-status.canceled{background:#eceee9;color:#667264}.schedule-airport{margin-left:auto;font-weight:600;font-size:12px;color:var(--muted)}.schedule-staffing{display:flex;gap:10px;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px;font-size:12px}.schedule-warning{color:#975527!important}.schedule-crew{list-style:none;margin:10px 0;padding:0}.schedule-crew li{padding:8px 0;border-bottom:1px solid #f0f0e8;font-size:12px;display:flex;flex-direction:column;gap:4px}.schedule-crew small{color:var(--muted);font-size:10px}.schedule-crew p{margin:0}.schedule-card-actions{margin-top:16px}.schedule-conflicts{background:#fff5e4;padding:10px;font-size:12px;border-radius:6px;margin-top:12px}.schedule-conflicts p{margin-bottom:0}.schedule-instructions{white-space:pre-line}.schedule-plans{margin:32px 0 20px}.schedule-plan{display:flex;justify-content:space-between;gap:16px;padding:18px 20px;background:white;border:1px solid var(--line);border-radius:9px;margin-top:10px;align-items:center;flex-wrap:wrap}.schedule-plan strong{font-size:14px}.schedule-plan p{font-size:12px;color:var(--muted);margin:7px 0 0}.schedule-sync{font-size:11px;color:var(--muted);line-height:1.7;margin:20px 0}.schedule-form-body{display:grid;gap:20px}.schedule-form-body p{margin:0;line-height:1.7}.schedule-people{border:1px solid var(--line);border-radius:8px;padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.schedule-people legend{font-size:12px;padding:0 6px}.schedule-people label{display:flex;gap:9px;align-items:flex-start;font-size:13px}.schedule-people input{margin-top:3px}.schedule-people small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.schedule-workbook{margin-top:22px}.schedule-table-wrap{overflow:auto}.schedule-workbook table{border-collapse:collapse;width:100%;font-size:12px;line-height:1.6}.schedule-workbook th,.schedule-workbook td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.schedule-workbook th{font-size:11px;background:#f4f5ef}.schedule-workbook summary{cursor:pointer;font-weight:600}.schedule-history{padding-left:22px}.schedule-history li{padding:12px 0;border-bottom:1px solid var(--line)}.schedule-history p{font-size:12px;color:var(--muted)}.schedule-history pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px;background:#f4f5ef;padding:12px}.schedule-home-link{display:flex;justify-content:space-between;gap:14px;padding:18px 22px;background:#e9eee1;border:1px solid #d3ddc7;border-radius:9px;margin-bottom:25px;font-size:13px}.schedule-home-link span{color:#577041}
@media(max-width:700px){.schedule-topline{align-items:flex-start;font-size:11px}.schedule-stats{gap:8px;grid-template-columns:repeat(2,1fr)}.schedule-stats>div{padding:14px}.schedule-toolbar{gap:12px}.schedule-toolbar .row{gap:6px}.schedule-toolbar .field{max-width:145px}.schedule-toolbar .button{padding:10px;font-size:11px}.schedule-day-cards{padding:10px;grid-template-columns:1fr}.schedule-card{padding:16px}.schedule-people{grid-template-columns:1fr}.schedule-form-body .field-grid{grid-template-columns:1fr}.schedule-home-link{flex-direction:column;font-size:12px}.schedule-plan{padding:16px}.schedule-workbook.panel-pad{padding:16px}.schedule-table-wrap{margin:0 -8px}}

/* Spreadsheet-style weekly staffing and the personal month calendar. */
.staffing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.staffing-toolbar .field{max-width:175px}.staffing-help{font-size:13px;line-height:1.7;color:var(--muted);margin-bottom:24px}.staffing-job{background:white;border:1px solid #d5ddcf;border-radius:12px;overflow:hidden;margin:0 0 30px}.staffing-job-head{padding:22px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}.staffing-job-head h2{font-size:21px;margin:8px 0}.staffing-job-head p{font-size:12px;color:var(--muted);margin:7px 0}.staffing-caption{display:flex;justify-content:space-between;gap:12px;padding:11px 20px;background:#f7f8f1;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.staffing-scroll{overflow-x:auto;max-width:100%;overscroll-behavior-x:contain}.staffing-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:1340px;width:100%;font-size:12px}.staffing-grid th,.staffing-grid td{border-bottom:1px solid #dce1d5;border-right:1px solid #dce1d5;padding:8px;vertical-align:top}.staffing-grid thead th{background:#24382c;color:#f0f3e9;text-align:center;font-size:11px;letter-spacing:.5px;padding:14px 8px}.staffing-grid thead strong{display:block;font-size:15px;letter-spacing:0;margin-top:5px}.staffing-grid .slot-column{width:122px;position:sticky;left:0;z-index:2;background:#f2f4eb;text-align:left;color:#53624f;font-weight:500}.staffing-grid thead .slot-column{background:#24382c;color:white}.staffing-grid .shift-band th{position:sticky;left:0;z-index:2;background:#dce8d2;color:#304e27;text-align:left;font-size:14px;vertical-align:middle}.staffing-grid .shift-band td{background:#eef4e9;font-size:10px;text-align:center}.staffing-grid .shift-band.swing th{background:#ede0bd;color:#705419}.staffing-grid .shift-band.swing td{background:#fbf4e0}.staffing-grid .shift-band.grave th{background:#dce0ee;color:#434c75}.staffing-grid .shift-band.grave td{background:#f0f1f8}.shift-heading{padding:0;border:0;background:none;color:inherit;cursor:pointer;width:100%;font:inherit;line-height:1.6}.shift-heading strong{font-size:13px}.shift-heading small{display:block;font-size:10px}.staffing-grid .filled-slot{background:#fff}.staffing-grid .open-slot{background:#fcfcf8}.staffing-grid .not-scheduled{background:#f1f2ed;color:#a0a798;text-align:center}.slot-choice{display:block;width:100%;min-height:54px;padding:7px;text-align:left;background:transparent;border:1px solid transparent;border-radius:5px;cursor:pointer;color:#2e442d;font:inherit}.slot-choice:hover,.slot-choice:focus-visible{background:#f0f5e8;border-color:#a5b595}.slot-choice span{display:block;overflow-wrap:anywhere}.slot-choice small{display:block;font-size:10px;color:#8c805b;margin-top:5px}.open-slot .slot-choice{border:1px dashed #d8decb;color:#8b967d}.no-shift{display:block;padding:10px;color:#a1aa98}.daily-crew-slots{display:grid;grid-template-columns:1fr 1fr;gap:16px}.shift-pattern{border:1px solid #d8e1cd;background:#f7faf3;border-radius:8px;margin:20px 0;padding:16px}.shift-pattern.swing{background:#fffbef;border-color:#e7d9b4}.shift-pattern.grave{background:#f6f6fc;border-color:#d7d9eb}.shift-pattern legend{font-size:14px;font-weight:600;padding:0 7px}.shift-pattern legend label{display:flex;gap:8px;align-items:center}.shift-pattern-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.job-date-setup{padding-top:10px;border-top:1px solid var(--line)}.schedule-form-body section>p{font-size:12px;color:var(--muted);line-height:1.7}.personal-calendar{border:1px solid #d5ddcf;border-radius:12px;overflow:hidden;background:white}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#24382c;color:white;text-align:center;padding:14px 0;font-size:12px}.calendar-day{border:0;border-right:1px solid #e2e6da;border-bottom:1px solid #e2e6da;background:white;min-height:125px;padding:8px;text-align:left;vertical-align:top;cursor:pointer;display:flex;flex-direction:column;gap:5px;color:var(--ink);font:inherit}.calendar-day>strong{font-size:14px;padding:4px;align-self:flex-start}.calendar-day.other-month{background:#f5f6f0;color:#939d88}.calendar-day.is-today>strong{background:#314c35;color:white;border-radius:50%;min-width:26px;text-align:center}.calendar-day.selected{box-shadow:inset 0 0 0 2px #a48a46;background:#fcfaf0}.calendar-event{font-size:11px;padding:5px;border-radius:4px;background:#e6efdd;color:#37512e;width:100%;overflow:hidden;line-height:1.5;overflow-wrap:anywhere}.calendar-event.swing{background:#f4e9c6;color:#725620}.calendar-event.grave{background:#e6e6f5;color:#555679}.calendar-event small{display:block;font-size:10px}.calendar-event.canceled{text-decoration:line-through;background:#ededeb;color:#7c8277}.calendar-agenda{margin-top:26px}.calendar-agenda h2{font-size:20px}.calendar-agenda .schedule-card{margin:12px 0;max-width:700px}.calendar-day>small{font-size:10px}.staffing-grid .is-today{background:#41623f}
@media(max-width:700px){.staffing-toolbar .row{gap:6px}.staffing-toolbar .button{font-size:11px;padding:10px}.staffing-toolbar .field{max-width:145px}.staffing-job-head{padding:18px}.staffing-job-head h2{font-size:19px}.staffing-caption{flex-direction:column;padding:12px 18px}.staffing-grid{min-width:1190px}.staffing-grid .slot-column{width:95px}.shift-pattern-fields{grid-template-columns:1fr 1fr}.shift-pattern-fields>.field:last-child{grid-column:1/-1}.daily-crew-slots{grid-template-columns:1fr}.calendar-day{min-height:92px;padding:4px;gap:3px}.calendar-day>strong{font-size:12px}.calendar-event{font-size:9px;padding:3px}.calendar-event small{display:none}.calendar-weekdays{font-size:10px}.calendar-agenda h2{font-size:18px}}


.disabled-pattern .shift-pattern-fields{opacity:.45}.calendar-agenda{scroll-margin-top:105px}.schedule-form-body .optional-details .field{margin-top:14px}

.schedule-accepted{display:flex;flex-direction:column;gap:5px;margin:14px 0;padding:13px 15px;border:1px solid #a8c9ad;border-radius:8px;background:#eaf5ec;color:#245d35;font-size:13px}.schedule-accepted strong{font-size:16px}.schedule-card[data-shift-card]{scroll-margin-top:110px}

.trade-list{display:grid;gap:18px;margin-top:22px}.trade-card{background:white;border:1px solid var(--line);border-radius:10px;padding:20px;font-size:13px;line-height:1.6}.trade-shift{display:flex;flex-direction:column;gap:5px;padding:12px 14px;margin:12px 0;background:#f4f6ef;border-radius:7px}.trade-shift small{color:var(--muted)}.trade-shift span{font-size:12px}.trade-note{white-space:pre-wrap}.trade-notice{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 18px;border:1px solid #d3ddc7;background:#e9eee1;border-radius:8px;margin:16px 0;font-size:13px}

/* Print exactly the visible week and job selection, without account or roster details. */
.schedule-print-heading{display:none}
@page manpower{size:landscape;margin:10mm}
@media print{
  body:has(.schedule-print-view){background:white!important;padding:0!important;color:#111}
  body:has(.schedule-print-view) :is(.sidebar,.topbar,.mobile-nav,#local-testing-banner,.skip-link,dialog,#toast){display:none!important}
  body:has(.schedule-print-view) :is(.workspace,main,.shell){display:block!important;margin:0!important;padding:0!important;max-width:none!important;width:auto!important;min-height:0!important;animation:none!important}
  .schedule-print-view{page:manpower;font-family:Arial,sans-serif}
  .schedule-print-view :is(.page-heading,.staffing-toolbar,.staffing-help,.schedule-job-filter,.schedule-sync,.button,.footer-note,.quiet-banner,.schedule-roster,.schedule-account-links){display:none!important}
  .schedule-print-heading{display:block;margin:0 0 12px;font-size:15px}
  .schedule-print-heading p{font-size:11px;margin:5px 0}
  .staffing-job{break-before:auto;break-inside:auto;border:1px solid #888;border-radius:0;margin:0 0 14px;overflow:visible}
  .staffing-job+.staffing-job{break-before:page}
  .staffing-job-head{padding:8px;display:block;break-after:avoid}
  .staffing-job-head h2{font-size:15px;margin:4px 0}
  .staffing-job-head p{font-size:9px;margin:3px 0;color:#222}
  .staffing-job-head>.row{display:none!important}
  .staffing-caption{display:flex;flex-direction:row;padding:6px 8px;font-size:8px;color:#222}
  .staffing-scroll,.schedule-table-wrap{overflow:visible!important;max-width:none;margin:0}
  .staffing-grid{min-width:0!important;width:100%;table-layout:fixed;font-size:9px;border-collapse:collapse}
  .staffing-grid th,.staffing-grid td{padding:5px;border:1px solid #aaa;overflow-wrap:anywhere}
  .staffing-grid thead{display:table-header-group}
  .staffing-grid tr{break-inside:avoid}
  .staffing-grid thead th{background:#eee!important;color:#111!important;font-size:9px;padding:7px 4px;letter-spacing:0}
  .staffing-grid thead strong{font-size:11px;margin-top:3px}
  .staffing-grid .slot-column{position:static;width:10%;font-size:9px;color:#222!important}
  .staffing-grid .shift-band th{position:static;font-size:10px}
  .staffing-grid .shift-band td{font-size:8px}
  .shift-heading{cursor:default;line-height:1.4}
  .shift-heading strong{font-size:10px}
  .shift-heading small{font-size:7px}
  .slot-choice{min-height:0;padding:3px 0;font-size:10px;border:0!important;border-radius:0;cursor:default;color:#111}
  .slot-choice small{font-size:8px;margin-top:3px;color:#444}
  .staffing-grid .not-scheduled{color:#555}
  .schedule-workbook{margin-top:12px;padding:10px!important;break-inside:auto}
  .schedule-workbook h2{font-size:15px}
  .schedule-workbook table{font-size:10px}
  .schedule-workbook tr{break-inside:avoid}
  .schedule-workbook th,.schedule-workbook td{padding:7px}
}

/* Schedule workspace: compact navigation, readable coverage and clear crew states. */
@media screen {
  .schedule-workspace { --schedule-forest:#294337; --schedule-soft:#eef3ed; }
  .schedule-workspace .page-heading { margin-bottom:24px; align-items:center; }
  .schedule-workspace .page-heading h1 { font-size:32px; letter-spacing:-1px; }
  .schedule-workspace .page-heading p { margin-bottom:0; }
  .schedule-workspace .page-heading>.button { white-space:nowrap; }
  .schedule-navigation { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; border-bottom:1px solid #dfe4da; margin-bottom:22px; }
  .schedule-views { display:flex; gap:24px; }
  .schedule-view { display:flex; gap:7px; align-items:center; padding:13px 0 15px; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; color:#5e6c56; font:inherit; font-size:12px; font-weight:600; cursor:pointer; white-space:nowrap; }
  .schedule-view.active { color:var(--schedule-forest); border-bottom-color:var(--schedule-forest); }
  .schedule-view:hover { color:var(--schedule-forest); }
  .schedule-view:focus-visible,.schedule-job-menu summary:focus-visible,.shift-heading:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
  .schedule-count { display:inline-grid; place-items:center; min-width:19px; height:19px; border-radius:10px; background:#e7eddf; color:#354c35; font-size:10px; }
  .schedule-utilities { display:flex; align-items:center; gap:6px; padding:0 0 5px; flex-wrap:wrap; }
  .schedule-utilities .button { background:transparent; border-color:transparent; box-shadow:none; font-size:11px; padding:8px 10px; min-height:36px; color:#65715e; }
  .schedule-utilities .button:hover { background:#eaf0e5; color:#304a36; }
  .schedule-controls { display:flex; gap:20px; align-items:end; padding:18px 20px; background:white; border:1px solid #e1e5dc; border-radius:10px; margin-bottom:18px; }
  .schedule-period { min-width:0; }
  .schedule-control-label,.schedule-controls .field label { display:block; color:#5f6d56; font-size:10px; font-weight:600; margin-bottom:8px; }
  .schedule-date-controls { display:flex; gap:6px; align-items:center; }
  .schedule-date-controls .button { min-height:40px; padding:9px 12px; font-size:11px; }
  .schedule-date-controls .schedule-arrow { width:34px; padding:8px; min-height:40px; border-color:#e2e6dc; box-shadow:none; }
  .schedule-date-controls input { min-width:0; width:148px; height:40px; border:1px solid #e0e5d9; border-radius:6px; padding:8px 10px; color:#314736; background:#fafbf8; font:inherit; font-size:13px; }
  .schedule-date-controls input:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
  .schedule-controls .schedule-job-filter { flex:1; max-width:360px; margin:0; gap:0; }
  .schedule-controls .schedule-job-filter select { font-size:12px; min-height:40px; height:40px; padding:8px 12px; background:#fafbf8; }
  .schedule-overview { display:grid; grid-template-columns:1.25fr 1fr 1fr; border:1px solid #dfe5da; border-radius:10px; background:#f0f4ed; margin:0 0 28px; padding:18px 0; }
  .schedule-overview>div { display:flex; flex-direction:column; gap:7px; padding:0 22px; }
  .schedule-overview>div+div { border-left:1px solid #d9e0d2; }
  .schedule-overview span { color:#64705d; font-size:11px; line-height:1.5; }
  .schedule-overview strong { color:#304a35; font-size:27px; font-weight:600; letter-spacing:-.7px; line-height:1.15; }
  .schedule-overview strong small { font-size:13px; font-weight:400; letter-spacing:0; color:#58694e; }
  .schedule-overview .needs-attention strong { color:#99651e; }
  .schedule-board-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 13px; }
  .schedule-board-heading h2 { margin:0; font-size:15px; font-weight:600; }
  .schedule-board-heading>span { font-size:11px; color:#5f6d55; }
  .schedule-empty-state { text-align:center; padding:40px 24px; border:1px dashed #ced9c6; background:linear-gradient(150deg,#fff,#f6f8f1); border-radius:12px; }
  .schedule-empty-icon { display:grid; place-items:center; width:56px; height:56px; margin:0 auto 18px; border:1px solid #dce5d4; border-radius:14px; color:#56704a; background:#edf3e8; }
  .schedule-empty-state h2 { font-size:21px; margin:0 0 10px; }
  .schedule-empty-state p { max-width:400px; margin:0 auto 22px; color:#5c6e51; font-size:13px; line-height:1.8; }
  .staffing-job { border-color:#dce3d6; border-radius:12px; overflow:visible; margin-bottom:24px; box-shadow:0 3px 10px #253a2810; }
  .staffing-job-head { padding:22px 24px; gap:16px; }
  .staffing-job-head>div:first-child { flex:1; min-width:220px; }
  .staffing-job-head .schedule-airport { display:inline-block; padding:4px 7px; border:1px solid #e7dfc9; border-radius:4px; font-size:10px; letter-spacing:.7px; background:#f7f3e7; color:#8c743b; }
  .staffing-job-head h2 { font-size:20px; margin:9px 0; letter-spacing:-.3px; overflow-wrap:anywhere; }
  .staffing-job-head p { font-size:11px; line-height:1.6; }
  .staffing-job-head p strong { font-weight:500; color:#53634b; }
  .staffing-job-actions { gap:10px; align-self:flex-start; padding-top:2px; }
  .staffing-health { font-size:10px; font-weight:600; padding:7px 9px; border-radius:5px; color:#416343; background:#edf4e9; white-space:nowrap; }
  .staffing-health.needs-attention { color:#96641e; background:#fbf0dc; }
  .schedule-job-menu { position:relative; }
  .schedule-job-menu summary { cursor:pointer; list-style:none; font-size:11px; font-weight:500; padding:9px 11px; border:1px solid #dce2d5; border-radius:6px; color:#56674b; background:#fff; }
  .schedule-job-menu summary::-webkit-details-marker { display:none; }
  .schedule-job-menu summary span { margin-left:12px; }
  .schedule-job-menu[open] summary { background:#f0f5ea; }
  .schedule-job-menu>div { position:absolute; top:calc(100% + 6px); right:0; z-index:8; width:194px; display:grid; gap:3px; padding:6px; border:1px solid #dbe2d4; border-radius:8px; background:white; box-shadow:0 12px 32px #1d30232b; }
  .schedule-job-menu .button { justify-content:flex-start; border:0; box-shadow:none; padding:10px; border-radius:4px; font-size:11px; }
  .schedule-job-menu [data-schedule="cancel-plan"] { color:#a05240; border-top:1px solid #f0e7e1; border-radius:0; }
  .staffing-caption { padding:10px 24px; background:#fafbf8; font-size:10px; }
  .staffing-legend { display:flex; gap:15px; }
  .staffing-legend>span:before { content:""; display:inline-block; width:5px; height:5px; border-radius:50%; background:#b79c59; margin-right:5px; vertical-align:middle; }
  .staffing-legend>span+span:before { background:#638269; }
  .staffing-scroll { border-radius:0 0 12px 12px; scrollbar-width:thin; scrollbar-color:#b4c1a8 #f4f6ef; }
  .staffing-scroll:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
  .staffing-grid { min-width:1050px; }
  .staffing-grid .slot-column { width:112px; background:#f7f9f3; color:#5e6e51; font-size:10px; }
  .staffing-grid th,.staffing-grid td { border-color:#e7ebdf; padding:6px; }
  .staffing-grid thead th { background:#2c4437; padding:13px 6px; color:#d9e3d6; font-size:10px; font-weight:400; }
  .staffing-grid thead strong { font-size:15px; font-weight:500; color:#fff; }
  .staffing-grid thead .slot-column { background:#2c4437; color:#d9e3d6; font-size:9px; letter-spacing:.7px; }
  .staffing-grid thead .is-today { background:#526c45; }
  .staffing-grid .shift-band th { font-size:12px; padding:12px 10px; border-left:3px solid #739768; }
  .staffing-grid .shift-band.swing th { border-left-color:#c8a352; }
  .staffing-grid .shift-band.grave th { border-left-color:#8991ba; }
  .shift-heading { padding:4px 0; color:#53654a; }
  .shift-heading strong { font-size:12px; font-weight:600; }
  .shift-heading small { font-size:9px; }
  .shift-heading small:last-child { font-size:8px; opacity:.8; }
  .slot-choice { padding:10px 6px; min-height:69px; border-radius:6px; }
  .slot-choice>span { font-size:12px; font-weight:500; line-height:1.5; }
  .slot-choice .slot-status { display:inline-block; font-size:9px; line-height:1.4; padding:3px 5px; border-radius:4px; margin-top:6px; color:#5e6e51; background:#f4f6ef; }
  .slot-choice .slot-status.accepted { color:#4b7449; background:#edf5e8; }
  .slot-choice .slot-status.pending { color:#927335; background:#fbf3e0; }
  .slot-choice .slot-status.issue { color:#9b523c; background:#fbece6; }
  .open-slot .slot-choice { min-height:69px; color:#61714f; background:#fcfdf9; border-color:#dce4d1; }
  .slot-choice .slot-vacancy { font-size:11px; font-weight:400; }
  .schedule-shift-key { display:flex; align-items:center; gap:18px; padding-bottom:12px; font-size:11px; color:#6a7761; }
  .schedule-shift-key>span:before { content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:#829c6c; margin-right:6px; }
  .schedule-shift-key>.swing:before { background:#c6a258; }
  .schedule-shift-key>.grave:before { background:#9193b5; }
  .personal-calendar { border-color:#dce3d5; box-shadow:0 3px 10px #253a2810; }
  .calendar-weekdays { background:#2c4437; font-size:11px; letter-spacing:.4px; }
  .calendar-day { min-height:128px; border-color:#e7ebdf; padding:9px; }
  .calendar-day>strong { font-size:12px; color:#65735c; }
  .calendar-day.is-today>strong { color:#fff; }
  .calendar-day.selected { background:#f5f8ef; box-shadow:inset 0 0 0 2px #96ab80; }
  .calendar-event { border-left:2px solid #769b62; border-radius:3px; padding:5px 6px; background:#eff5e9; }
  .calendar-event.swing { border-left-color:#c3a153; background:#fbf4e1; }
  .calendar-event.grave { border-left-color:#9192b5; background:#f0eff8; }
  .calendar-agenda h2 { font-size:18px; }
  .calendar-empty { border:1px solid #e0e6d8; border-radius:10px; background:white; padding:23px; }
  .calendar-empty strong { font-size:13px; color:#576c4c; }
  .calendar-empty p { font-size:12px; margin:8px 0 0; color:#60704f; }
  .trade-explainer { background:#f0f4eb; border-left:3px solid #a9bc92; padding:14px 17px; font-size:12px; line-height:1.7; color:#637458; margin:0 0 22px; }
  .schedule-workspace .trade-list { grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); align-items:start; }
  .schedule-workspace .trade-card { border-color:#dce4d5; padding:23px; box-shadow:0 3px 10px #253a2810; }
  .schedule-workspace .trade-shift { background:#f6f8f1; border:1px solid #e9eddf; border-radius:7px; }
  #schedule-form .schedule-form-body { gap:24px; }
  #schedule-form .job-date-setup { background:#f8faf5; border:1px solid #e2e8da; padding:20px; border-radius:9px; }
  #schedule-form .job-date-setup h3 { margin-top:0; font-size:14px; }
  #schedule-form .shift-pattern { border-radius:9px; }
  #schedule-form .disabled-pattern { background:#fafbf8; border-color:#e4e8dd; }
  #schedule-form>.row { padding-top:20px; margin-top:24px; border-top:1px solid #e6ebdf; justify-content:flex-end; }
}
@media screen and (max-width:1100px) {
  .schedule-navigation { gap:8px; }
  .schedule-views { gap:20px; }
  .schedule-utilities .button { font-size:10px; padding:8px; }
  .staffing-job-actions { align-self:auto; }
}
@media screen and (max-width:700px) {
  .schedule-workspace .page-heading { display:block; margin-bottom:17px; }
  .schedule-workspace .page-heading h1 { font-size:28px; }
  .schedule-workspace .page-heading>.button { margin-top:17px; min-height:42px; font-size:12px; padding:11px 15px; }
  .schedule-navigation { display:block; margin-bottom:16px; }
  .schedule-views { gap:24px; width:100%; }
  .schedule-view { font-size:12px; min-height:46px; }
  .schedule-utilities { padding:7px 0; gap:2px; }
  .schedule-utilities .button { padding:7px 8px; min-height:36px; font-size:10px; }
  .schedule-controls { padding:14px; gap:16px; align-items:stretch; }
  .schedule-controls .schedule-period,.schedule-controls .schedule-job-filter { width:100%; max-width:none; flex:auto; }
  .schedule-date-controls { gap:5px; }
  .schedule-date-controls input { flex:1; width:130px; font-size:16px; height:42px; padding:8px 4px; }
  .schedule-date-controls .button { font-size:10px; min-height:42px; padding:9px 8px; }
  .schedule-date-controls .schedule-arrow { width:30px; padding:7px; }
  .schedule-controls .schedule-job-filter select { font-size:16px; height:44px; }
  .schedule-overview { padding:15px 0; grid-template-columns:1.2fr 1fr 1fr; margin-bottom:22px; }
  .schedule-overview>div { padding:0 12px; gap:7px; }
  .schedule-overview strong { font-size:23px; }
  .schedule-overview strong small { display:block; font-size:10px; margin-top:3px; }
  .schedule-overview span { font-size:10px; }
  .schedule-overview>div>span:last-child { display:none; }
  .schedule-board-heading { display:block; }
  .schedule-board-heading>span { display:block; margin-top:7px; font-size:10px; }
  .staffing-job-head { padding:18px; }
  .staffing-job-head h2 { font-size:19px; }
  .staffing-job-head>div:first-child { min-width:0; flex-basis:100%; }
  .staffing-job-actions { width:100%; justify-content:space-between; gap:8px; }
  .staffing-caption { padding:11px 18px; gap:7px; }
  .staffing-legend { flex-wrap:wrap; gap:12px; font-size:9px; }
  .staffing-grid { min-width:1050px; }
  .staffing-grid .slot-column { width:96px; }
  .schedule-empty-state { padding:29px 20px; }
  .schedule-empty-state h2 { font-size:19px; }
  .schedule-shift-key { padding:0; }
  .calendar-day { padding:5px 3px; min-height:98px; }
  .calendar-day>strong { font-size:12px; padding:3px; }
  .calendar-event { font-size:9px; padding:4px 3px; }
  .calendar-event small { display:none; }
  #schedule-form .job-date-setup { padding:16px; }
}
@media print {
  .schedule-print-view :is(.schedule-navigation,.schedule-overview,.schedule-board-heading,.schedule-job-menu,.staffing-health){display:none!important}
}

@media print { .staffing-legend { display:flex; gap:12px; } }
