:root {
  --bs-body-font-family: 'Roboto', Arial, Helvetica, sans-serif;
  --rsf-font: 'Roboto', Arial, Helvetica, sans-serif;
  --rsf-bg: #050607;
  --rsf-card: #111827;
  --rsf-border: #2f3b4d;
  --rsf-red: #e10600;
  --rsf-blue: #235d95;
  --rsf-green: #00b050;
  --rsf-yellow: #fff200;
  --rsf-purple: #5b168c;
}

html, body { min-height: 100%; }
body {
  background: radial-gradient(circle at top left, #172238, #050607 45%, #000);
  color: #f8fafc;
  font-family: var(--rsf-font);
}

/* Global font */
body, button, input, select, textarea, .btn, .form-control, .form-select, .table, .dropdown-menu, .modal, .navbar, .card {
  font-family: var(--rsf-font) !important;
}

.rsf-navbar { background: linear-gradient(90deg, #0b1220, #101827, #1b0b0b); border-bottom: 1px solid var(--rsf-border); }
.rsf-card, .rsf-modal { background: rgba(15, 23, 42, 0.96); color: #f8fafc; border: 1px solid var(--rsf-border); }
.rsf-card .card-header { border-bottom: 1px solid var(--rsf-border); }
.form-control, .form-select, textarea.form-control {
  background-color: #0b1220;
  border-color: #334155;
  color: #f8fafc;
}
.form-control:focus, .form-select:focus {
  background-color: #111827;
  color: #fff;
  border-color: #ef4444;
  box-shadow: 0 0 0 0.2rem rgba(239, 68, 68, 0.2);
}
.form-control::placeholder { color: #94a3b8; }
.text-secondary { color: #94a3b8 !important; }

.login-bg { background: radial-gradient(circle at center, #1e293b, #0b0f19 55%, #000); }
.rsf-logo {
  width: 74px; height: 74px; margin: 0 auto;
  display: flex; align-items: center; justify-content: center;
  border-radius: 18px;
  background: linear-gradient(135deg, #e10600, #7f1d1d);
  font-size: 28px; font-weight: 900; letter-spacing: 1px;
  box-shadow: 0 0 35px rgba(225, 6, 0, .45);
}

.rsf-admin-table th { background: #020617; color: #cbd5e1; }
.opacity-65 { opacity: .65; }

.schedule-capture { background: #050505; color: #fff; padding: 6px; }
.schedule-title-bar {
  display: flex; justify-content: space-between; align-items: center;
  background: #235d95; color: #fff; padding: 8px 12px;
  text-transform: uppercase; font-style: italic; letter-spacing: .3px;
}
.schedule-table-wrap { max-height: none !important; overflow-y: visible !important; }
.schedule-capture { min-height: calc(100vh - 220px); }
.schedule-table { color: #000; min-width: 1480px; font-size: 12px; }
.schedule-table th {
  position: sticky; top: 0; z-index: 5;
  background: #000; color: #fff; text-transform: uppercase; font-size: 11px;
  text-align: center; border-color: #000 !important;
}
.schedule-table td { border-color: #111 !important; padding: 1px 3px; vertical-align: middle; }
.lead-col { width: 72px; min-width: 72px; }
.lead-name {
  position: relative;
  color: #000;
  text-align: center;
  font-weight: 950;
  text-transform: uppercase;
  min-width: 72px;
  width: 72px;
  padding: 0 !important;
  overflow: hidden;
  vertical-align: middle;
}
.lead-name span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  transform: translate(-50%, -50%) rotate(-90deg);
  transform-origin: center center;
  white-space: nowrap;
  font-size: 20px;
  line-height: 1;
  letter-spacing: .12em;
  text-align: center;
}
.station-code { width: 64px; background: #0ea5e9; color: #fff; font-weight: 900; text-align: center; }
.station-side { width: 42px; font-style: italic; font-weight: 800; text-align: center; color: #000; }
.side-rh { background: #93c5fd; }
.side-lh { background: #86efac; }
.side-na { background: #cbd5e1; }
.qc-cell { background: #16a34a !important; color: #fff !important; }
.qc-row .assignment-cell { box-shadow: inset 0 0 0 2px rgba(22, 163, 74, .55); }
.performance-active-cell { background: #e10600 !important; color: #fff !important; }
.performance-active-row .assignment-cell { box-shadow: inset 0 0 0 2px rgba(225, 6, 0, .45); }

.assignment-cell { background: #fff; min-width: 150px; }
.assignment-select {
  color: #000; background: transparent; border: 0; padding: 1px 18px 1px 4px; min-height: 20px; font-size: 11px;
}
.assignment-select:focus { color: #000; background: #fff; box-shadow: 0 0 0 .1rem rgba(0,0,0,.25); }
.single-assigned { background: #fff; }
.double-assigned { background: #fff200 !important; }
.double-assigned .assignment-select { font-weight: 900; }

.group-knuckles .lead-name, .group-kailer .lead-name { background: #235d95; color: #fff; }
.group-james .lead-name { background: #fff200; color: #000; }
.group-adalia .lead-name { background: #22c55e; color: #000; }
.group-prep .lead-name { background: #64748b; color: #fff; }
.group-rsf .lead-name { background: #334155; color: #fff; }

.alerts-card .card-header { text-align: center; font-style: italic; }
.alert-box { background: #020617; min-height: 118px; border: 1px solid #1f2937; }
.alert-title { background: #000; color: #fff; font-size: 11px; padding: 4px; text-align: center; font-weight: 900; font-style: italic; }
.alert-name { font-size: 11px; padding: 3px 6px; border-top: 1px solid rgba(255,255,255,.08); }
.status-call_out .alert-name { background: var(--rsf-purple); }
.status-pto .alert-name { background: #0284c7; }
.status-late_in .alert-name { background: var(--rsf-red); }
.status-early_out .alert-name { background: var(--rsf-green); color: #001a09; font-weight: 800; }
.headcount-box { background: #000; text-align: center; padding: 14px; border: 1px solid #334155; text-transform: uppercase; }
.headcount-box strong { display: block; background: #fff; color: #000; font-size: 28px; margin: 8px 0; padding: 6px; }
.headcount-box small { color: #94a3b8; }
.validation-header { background: #008000; color: #fff; text-align: center; }
.validation-wrap { max-height: 520px; overflow: auto; }
.validation-table { font-size: 11px; }
.validation-table th { position: sticky; top: 0; background: #000; color: #fff; z-index: 3; text-align: center; }
.validation-table td { padding: 2px 5px; }
.count-zero { background: #000 !important; color: #fff !important; text-align: center; }
.count-one { background: #008000 !important; color: #fff !important; text-align: center; font-weight: 900; }
.count-two { background: #fff200 !important; color: #000 !important; text-align: center; font-weight: 900; }
.count-over { background: #e10600 !important; color: #fff !important; text-align: center; font-weight: 900; }
.inactive-associate-row td:first-child { background: #e10600 !important; color: #fff !important; }

@media print {
  nav, .btn, .toast-container, .card:not(:has(#scheduleCapture)) { display: none !important; }
  body { background: #fff; }
  main { padding: 0 !important; }
  .col-12, .col-xxl-8 { width: 100% !important; max-width: 100% !important; flex: 0 0 100% !important; }
  .rsf-card { border: 0; background: #fff; }
  .schedule-table-wrap { max-height: none; overflow: visible; }
}

/* V2 additions */
.area-preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 130px;
  padding: 7px 12px;
  border-radius: 999px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .4px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.2);
}
.mini-kpi {
  background: rgba(15, 23, 42, 0.96);
  border: 1px solid var(--rsf-border);
  border-radius: 12px;
  padding: 12px;
  min-height: 78px;
}
.mini-kpi span {
  color: #94a3b8;
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .4px;
}
.mini-kpi strong {
  display: block;
  font-size: 30px;
  line-height: 1;
  margin-top: 6px;
}
.status-edit-table select option { color: #000; }
.station-row .station-code {
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.35);
}
.schedule-page .badge { letter-spacing: .4px; }
.assignment-select:disabled {
  opacity: .85;
  background: rgba(255,255,255,.55);
}
@media print {
  .alert, .navbar, .rsf-navbar, a.btn, button.btn, form, .toast-container { display: none !important; }
  #scheduleCapture { display: block !important; }
}


/* V2.8 split-quarter-by-side schedule */
.schedule-table-split .quarter-header {
  background: #020617;
  color: #fff;
  font-size: 11px;
  letter-spacing: .3px;
}
.schedule-table-split .side-head {
  font-size: 18px;
  font-weight: 900;
  text-align: center;
  color: #fff;
  letter-spacing: 1px;
  text-shadow: 0 1px 2px rgba(0,0,0,.45);
  padding: 8px 4px;
}
.schedule-table-split .side-head-rh { background: #dc2626; }
.schedule-table-split .side-head-lh { background: #2563eb; }
.station-main-col { min-width: 74px; }
.schedule-table-split .assignment-cell {
  min-width: 142px;
  position: relative;
  padding-top: 4px;
}
.missing-side-cell {
  background: #111827 !important;
  color: #ffffff !important;
  text-align: center;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  line-height: 1.15;
  padding: 6px 8px;
}
.missing-side-cell span { opacity: 1; color: #ffffff !important; display: inline-block; }
.qc-assignment-cell { box-shadow: inset 0 0 0 2px rgba(225, 6, 0, .7); }
.schedule-table-split .assignment-select { min-height: 22px; }

/* V2.9 active quarter tabs */
.quarter-tabs-wrap {
  background: rgba(2, 6, 23, .84);
  border: 1px solid var(--rsf-border);
  border-radius: 14px;
  padding: 10px;
}
.quarter-tabs-label {
  color: #cbd5e1;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .6px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.quarter-tabs {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 8px;
}
.quarter-tab {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-decoration: none;
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, .25);
  background: rgba(15, 23, 42, .92);
  color: #e5e7eb;
  padding: 10px 12px;
  min-height: 62px;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.quarter-tab:hover {
  color: #fff;
  border-color: rgba(59, 130, 246, .65);
  transform: translateY(-1px);
}
.quarter-tab span {
  font-size: 18px;
  font-weight: 950;
  line-height: 1;
}
.quarter-tab small {
  color: #94a3b8;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .3px;
}
.quarter-tab.active {
  background: linear-gradient(135deg, #1d4ed8, #0f172a);
  border-color: rgba(96, 165, 250, .95);
  box-shadow: 0 0 0 1px rgba(96, 165, 250, .3), 0 0 24px rgba(37, 99, 235, .22);
}
.quarter-tab.active small { color: #dbeafe; }
.quarter-tab-all.active {
  background: linear-gradient(135deg, #334155, #020617);
  border-color: rgba(203, 213, 225, .7);
}
.schedule-table-one-quarter { min-width: 720px; }
.schedule-table-all-quarters { min-width: 1480px; }
.schedule-table-one-quarter .assignment-cell { min-width: 230px; }
.schedule-table-one-quarter .assignment-select { font-size: 12px; min-height: 25px; }
@media (max-width: 992px) {
  .quarter-tabs { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
}
@media print {
  .quarter-tabs-wrap { display: none !important; }
}

/* V2.12 centered alert modal for blocked 3rd assignment */
.rsf-blocked-modal {
  background: linear-gradient(145deg, #260202, #7f0000 58%, #130101);
  color: #fff;
  border: 2px solid rgba(255,255,255,.18);
  border-radius: 22px;
  box-shadow: 0 28px 90px rgba(0,0,0,.72), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.blocked-modal-kicker {
  color: #fecaca;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.rsf-blocked-modal .modal-title {
  font-size: clamp(24px, 3vw, 34px);
  letter-spacing: -.02em;
}
.blocked-modal-icon {
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  border-radius: 50%;
  background: #fff;
  color: #b00000;
  font-size: 48px;
  line-height: 1;
  font-weight: 1000;
  box-shadow: 0 14px 35px rgba(0,0,0,.32);
}
.blocked-modal-message {
  font-size: clamp(18px, 2.2vw, 24px);
  font-weight: 800;
  line-height: 1.25;
}

/* V2.19/V2.20 Full Schedule tab layout: keep the schedule full width and move side panels below */
.full-schedule-below-panels {
  margin-top: 12px;
}
.full-schedule-below-panels .alerts-card,
.full-schedule-below-panels .validation-header,
.full-schedule-below-panels .validation-table {
  width: 100%;
}
.full-schedule-below-panels .validation-wrap {
  max-height: 420px;
}

/* V2.20 modern login + shop selector */
.fw-black { font-weight: 950 !important; }
.login-modern-bg {
  background:
    radial-gradient(circle at 12% 6%, rgba(225, 6, 0, .28), transparent 28%),
    radial-gradient(circle at 92% 18%, rgba(37, 99, 235, .14), transparent 24%),
    linear-gradient(135deg, #09030b 0%, #060915 45%, #190303 100%);
}
.login-shell,
.shop-shell {
  display: grid;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(148, 163, 184, .22);
  background: rgba(2, 6, 23, .88);
  box-shadow: 0 30px 90px rgba(0,0,0,.55);
}
.login-shell,
.shop-shell {
  width: min(980px, 100%);
  max-width: 980px;
  min-height: 560px;
  height: 560px;
  grid-template-columns: 1.05fr 1fr;
  align-items: stretch;
}
.login-hero-panel,
.shop-hero-panel {
  position: relative;
  min-height: 100%;
  height: 100%;
  overflow: hidden;
}
.login-hero-panel {
  background:
    linear-gradient(to top, rgba(2, 6, 23, .24), rgba(2, 6, 23, .06)),
    url('../img/login-left-car.png') center center / cover no-repeat;
}
.shop-hero-panel {
  height: 100%;
  background:
    linear-gradient(to top, rgba(2, 6, 23, .28), rgba(2, 6, 23, .08)),
    url('../img/shop-selector-car.png') center center / cover no-repeat;
}
.login-hero-panel::before,
.shop-hero-panel::before {
  content: none;
}
.login-hero-panel::after,
.shop-hero-panel::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 46%;
  background: linear-gradient(to top, rgba(2,6,23,.72), transparent);
}
.hero-brand-mark {
  position: absolute;
  top: 30px;
  left: 30px;
  z-index: 2;
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-size: 18px;
  font-weight: 950;
  letter-spacing: .08em;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.24), 0 12px 34px rgba(0,0,0,.28);
}
.hero-car-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 56% 58%, rgba(0,0,0,.22), transparent 24%),
    linear-gradient(90deg, transparent 0 52%, rgba(2,6,23,.12) 52% 100%);
}
.login-hero-panel .hero-car-glow {
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), transparent 20%, transparent 68%, rgba(2,6,23,.18)),
    linear-gradient(90deg, rgba(2,6,23,.10), transparent 22%, transparent 78%, rgba(2,6,23,.14));
}
.shop-hero-panel .hero-car-glow {
  background:
    linear-gradient(180deg, rgba(255,255,255,.06), transparent 18%, transparent 62%, rgba(2,6,23,.12)),
    linear-gradient(90deg, rgba(2,6,23,.18), transparent 26%, transparent 74%, rgba(2,6,23,.12));
}
.hero-user-card {
  position: absolute;
  z-index: 3;
  left: 28px;
  bottom: 28px;
  min-width: 285px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(8px);
  box-shadow: 0 18px 50px rgba(0,0,0,.42);
}
.hero-avatar {
  width: 58px;
  height: 58px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #111827, #7f1d1d);
  color: #fff;
  font-weight: 950;
  border: 1px solid rgba(255,255,255,.2);
}
.login-form-panel,
.shop-select-panel {
  padding: 42px;
  background: #0b1220;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow-y: auto;
}
.rsf-logo-small { width: 60px; height: 60px; font-size: 21px; border-radius: 18px; margin: 0; }
.shop-grid-card {
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 22px;
  background: rgba(15, 23, 42, .64);
  padding: 12px;
}
.shop-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(160px, 1fr));
  gap: 10px;
}
.shop-grid form { margin: 0; }
.shop-tile {
  width: 100%;
  min-height: 48px;
  border: 1px solid rgba(248,113,113,.26);
  border-radius: 16px;
  color: #fff;
  text-align: left;
  padding: 9px 14px;
  background:
    linear-gradient(100deg, rgba(69,10,10,.96), rgba(127,0,0,.88)),
    radial-gradient(circle at 80% 35%, rgba(255,255,255,.14), transparent 22%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05), 0 12px 30px rgba(0,0,0,.2);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.shop-tile:hover {
  transform: translateY(-1px);
  border-color: rgba(248,113,113,.78);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 16px 36px rgba(127,0,0,.24);
}
.shop-tile.active {
  border-color: rgba(34,197,94,.95);
  box-shadow: 0 0 0 1px rgba(34,197,94,.35), 0 0 30px rgba(34,197,94,.13);
}
.shop-tile span {
  display: block;
  font-size: 18px;
  line-height: 1.05;
  font-weight: 950;
  letter-spacing: -.02em;
}
.shop-tile small {
  display: none !important;
}
@media (max-width: 992px) {
  .login-shell,
  .shop-shell { grid-template-columns: 1fr; }
  .login-hero-panel,
  .shop-hero-panel { min-height: 300px; }
  .shop-shell,
  .login-shell { width: 96vw; max-width: 96vw; min-height: auto; height: auto; }
  .login-form-panel,
  .shop-select-panel { padding: 28px; }
  .shop-grid { grid-template-columns: 1fr; }
}

.shop-hero-panel .hero-user-card {
  max-width: calc(100% - 56px);
}
.shop-hero-panel .hero-brand-mark {
  background: rgba(225, 6, 0, .86);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.22), 0 14px 34px rgba(127,0,0,.38);
}


/* V2.24 auth layout centering */
.auth-page-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.auth-page-wrap > .login-shell,
.auth-page-wrap > .shop-shell {
  margin-left: auto;
  margin-right: auto;
}

/* V2.30 searchable associate assignment input */
.assignment-typeahead-wrap {
  position: relative;
  width: 100%;
}
.assignment-typeahead {
  min-width: 170px;
  font-weight: 800;
  color: #000 !important;
  background-color: #fff !important;
  border-color: rgba(15, 23, 42, .45) !important;
}
.assignment-typeahead::placeholder {
  color: rgba(15, 23, 42, .58);
}
.assignment-typeahead.typeahead-valid {
  border-color: rgba(34, 197, 94, .95) !important;
  box-shadow: 0 0 0 .12rem rgba(34, 197, 94, .14);
}
.assignment-typeahead.typeahead-partial {
  border-color: rgba(59, 130, 246, .95) !important;
  box-shadow: 0 0 0 .12rem rgba(59, 130, 246, .12);
}
.assignment-typeahead.typeahead-invalid {
  border-color: rgba(239, 68, 68, .95) !important;
  box-shadow: 0 0 0 .12rem rgba(239, 68, 68, .16);
}
.assignment-typeahead:disabled {
  opacity: .75;
}

.assignment-typeahead:focus {
  color: #000 !important;
  background-color: #fff !important;
}

/* V2.32 assignment lookup + QR */
.assignment-qr-img { width: 220px; height: 220px; }
.lookup-page { min-height: 100vh; background: radial-gradient(circle at 15% 10%, rgba(225, 6, 0, .25), transparent 24%), radial-gradient(circle at 88% 20%, rgba(59, 130, 246, .18), transparent 26%), linear-gradient(135deg, #070912 0%, #0b1220 52%, #170304 100%); color: #fff; font-family: Roboto, Arial, sans-serif; }
.lookup-shell { max-width: 860px; }
.lookup-header { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 24px; border-radius: 24px; background: linear-gradient(135deg, rgba(127, 0, 0, .92), rgba(15, 23, 42, .96)); border: 1px solid rgba(255,255,255,.16); box-shadow: 0 22px 60px rgba(0,0,0,.35); }
.lookup-header h1 { margin: 0; font-weight: 950; letter-spacing: -.04em; }
.lookup-kicker { color: #fecaca; font-weight: 900; text-transform: uppercase; letter-spacing: .12em; font-size: 12px; }
.lookup-badge { min-width: 72px; text-align: center; padding: 12px 16px; border-radius: 16px; background: #e10600; color: #fff; font-weight: 950; }
.lookup-search-card, .lookup-card { margin-top: 18px; padding: 22px; border-radius: 22px; background: rgba(15, 23, 42, .88); border: 1px solid rgba(148, 163, 184, .22); box-shadow: 0 18px 50px rgba(0,0,0,.25); }
.rotation-lookup-card { height: 100%; border: 1px solid rgba(148, 163, 184, .22); border-radius: 18px; background: rgba(2, 6, 23, .72); padding: 16px; }
.rotation-lookup-title { font-size: 13px; text-transform: uppercase; color: #94a3b8; font-weight: 900; letter-spacing: .1em; margin-bottom: 10px; }
.lookup-empty { color: #64748b; font-weight: 800; padding: 12px 0; }
.lookup-station { padding: 10px 0; border-top: 1px solid rgba(148, 163, 184, .16); }
.lookup-station:first-of-type { border-top: 0; }
.lookup-station-code { font-size: 28px; font-weight: 950; letter-spacing: -.04em; }
.lookup-side { display: inline-block; min-width: 44px; margin-left: 8px; text-align: center; border-radius: 999px; padding: 4px 9px; font-weight: 950; color: #fff; }
.lookup-rh { background: #dc2626; } .lookup-lh { background: #2563eb; }
@media print { body * { visibility: hidden; } #lookupQrModal, #lookupQrModal * { visibility: visible; } #lookupQrModal { position: absolute; left: 0; top: 0; width: 100%; } .modal-backdrop { display: none !important; } }

/* V2.33 performance batch */
.station-performance-badge {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #fff;
  color: #111827;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
}

/* V2.35 export-safe lead names: avoid CSS writing-mode because html2canvas breaks it */
.schedule-capture .lead-name,
.schedule-capture .lead-name span {
  backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
}

/* V2.37 assignment status colors */
.assignment-cell.assignment-status-late-in {
  background: #dc2626 !important;
}
.assignment-cell.assignment-status-late-in .assignment-typeahead {
  border-color: #7f1d1d !important;
  box-shadow: inset 0 0 0 1px rgba(127, 29, 29, .35);
}
.assignment-cell.assignment-status-early-out {
  background: #16a34a !important;
}
.assignment-cell.assignment-status-early-out .assignment-typeahead {
  border-color: #14532d !important;
  box-shadow: inset 0 0 0 1px rgba(20, 83, 45, .35);
}

/* V2.38 navbar icon polish */
.rsf-navbar .nav-link i {
  opacity: .95;
  font-size: .98rem;
  vertical-align: -0.08em;
}
.rsf-navbar .nav-link:hover i {
  color: #fff;
}

/* V2.39 Daily Status dropdown text color */
.daily-status-select,
.daily-status-select option {
  color: #ffffff !important;
  background-color: #0f172a !important;
}
.daily-status-select:focus {
  color: #ffffff !important;
  background-color: #0f172a !important;
}

/* V2.40 Shop Selector red pill menu button */
.rsf-navbar .nav-link.shop-selector-pill {
  background: #e10600;
  color: #ffffff !important;
  border-radius: 999px;
  padding: 7px 16px !important;
  margin-right: 6px;
  font-weight: 900;
  box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 8px 20px rgba(225, 6, 0, .25);
}
.rsf-navbar .nav-link.shop-selector-pill:hover,
.rsf-navbar .nav-link.shop-selector-pill:focus {
  background: #ff1f1a;
  color: #ffffff !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,.2), 0 10px 26px rgba(225, 6, 0, .38);
}
.rsf-navbar .nav-link.shop-selector-pill i {
  color: #ffffff !important;
}

/* V2.41 repeat-station warning modal */
.rsf-repeat-modal {
  border: 1px solid rgba(250, 204, 21, .35);
  border-radius: 24px;
  background:
    radial-gradient(circle at 20% 10%, rgba(250, 204, 21, .18), transparent 28%),
    linear-gradient(135deg, #1f1300, #111827 70%);
  color: #fff;
  box-shadow: 0 30px 90px rgba(0,0,0,.65);
}
.repeat-modal-kicker {
  color: #fde68a;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.repeat-modal-icon {
  width: 70px;
  height: 70px;
  margin-bottom: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #facc15;
  color: #111827;
  font-size: 42px;
  font-weight: 950;
  box-shadow: 0 14px 35px rgba(0,0,0,.32);
}

/* V2.42 Tesla-style navbar icon */
.tesla-brand-icon {
  width: 58px;
  min-width: 58px;
  height: 42px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(225, 6, 0, .12);
  border: 1px solid rgba(225, 6, 0, .32);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 10px 24px rgba(225,6,0,.16);
}
.tesla-nav-mark {
  position: relative;
  display: inline-block;
  width: 34px;
  height: 30px;
}
.tesla-nav-mark::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 3px;
  width: 28px;
  height: 8px;
  border-top: 5px solid #e10600;
  border-radius: 50% 50% 0 0;
  transform: scaleX(1.18);
}
.tesla-nav-mark::after {
  content: "";
  position: absolute;
  top: 8px;
  left: 50%;
  width: 9px;
  height: 22px;
  background: #e10600;
  transform: translateX(-50%);
  clip-path: polygon(50% 0, 100% 100%, 72% 100%, 50% 46%, 28% 100%, 0 100%);
}
.tesla-brand-icon:hover,
.tesla-brand-icon:focus {
  background: rgba(225, 6, 0, .22);
  border-color: rgba(225, 6, 0, .62);
}

.tesla-nav-mark { display: none !important; }

/* V2.43 uploaded Tesla icon */
.tesla-brand-icon {
  width: 58px;
  min-width: 58px;
  height: 42px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(225, 6, 0, .08);
  border: 1px solid rgba(225, 6, 0, .22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 10px 24px rgba(225,6,0,.14);
}
.tesla-brand-icon:hover,
.tesla-brand-icon:focus {
  background: rgba(225, 6, 0, .16);
  border-color: rgba(225, 6, 0, .44);
}
.tesla-brand-image {
  display: block;
  width: 34px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 2px 8px rgba(225,6,0,.25));
}

/* V2.44 navbar icon only - no red container */
.tesla-brand-icon {
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  padding: 0 10px 0 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.tesla-brand-icon:hover,
.tesla-brand-icon:focus {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.tesla-brand-image {
  width: 34px !important;
  height: auto !important;
  object-fit: contain !important;
  filter: none !important;
}

/* V2.45 second station warning modal */
.rsf-second-station-modal {
  border: 1px solid rgba(250, 204, 21, .35);
  border-radius: 24px;
  background:
    radial-gradient(circle at 20% 10%, rgba(250, 204, 21, .18), transparent 28%),
    linear-gradient(135deg, #1f1300, #111827 70%);
  color: #fff;
  box-shadow: 0 30px 90px rgba(0,0,0,.65);
}
.second-station-modal-kicker {
  color: #fde68a;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.second-station-modal-icon {
  width: 70px;
  height: 70px;
  margin-bottom: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #facc15;
  color: #111827;
  font-size: 42px;
  font-weight: 950;
  box-shadow: 0 14px 35px rgba(0,0,0,.32);
}

/* V2.47 Live Change Feed + export by lead/area */
.export-area-select {
  max-width: 250px;
  min-width: 190px;
  background-color: #0f172a !important;
  color: #ffffff !important;
  border-color: rgba(148, 163, 184, .35) !important;
  font-weight: 800;
}
.export-area-select option {
  background-color: #0f172a;
  color: #ffffff;
}
.schedule-export-filter-label {
  margin-top: 4px;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #facc15;
}
.schedule-table tr.export-row-hidden {
  display: none !important;
}
.live-feed-card .card-header {
  background: linear-gradient(90deg, rgba(225,6,0,.85), rgba(15,23,42,.95));
  color: #fff;
}
.live-change-feed {
  max-height: 280px;
  overflow-y: auto;
  padding-right: 4px;
}
.live-change-item {
  display: flex;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(148, 163, 184, .16);
}
.live-change-item:last-child {
  border-bottom: 0;
}
.live-change-time {
  min-width: 68px;
  color: #fca5a5;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
}
.live-change-body {
  flex: 1;
  font-size: 13px;
  line-height: 1.35;
}

/* V2.48 Weight Heavy station badge */
.station-heavy-badge {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #fb923c;
  color: #111827;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
}

/* V2.49 Weight Restricted associates */
.weight-restricted-badge {
  display: inline-block;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f97316;
  color: #111827;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .06em;
}

/* V2.51 Skill Matrix */
.skill-level-select {
  font-weight: 900;
  color: #fff !important;
  border-width: 2px;
}
.skill-level-restricted {
  background-color: #7f1d1d !important;
  border-color: #ef4444 !important;
}
.skill-level-training {
  background-color: #92400e !important;
  border-color: #f59e0b !important;
}
.skill-level-certified {
  background-color: #14532d !important;
  border-color: #22c55e !important;
}
.skill-badge {
  min-width: 92px;
}
.skill-restricted {
  background: #ef4444 !important;
  color: #fff !important;
}
.skill-training {
  background: #f59e0b !important;
  color: #111827 !important;
}
.skill-certified {
  background: #22c55e !important;
  color: #052e16 !important;
}
.skill-matrix-table td,
.skill-matrix-table th {
  white-space: nowrap;
}

/* V2.52 Auto Generator Trial */
button[name="action"][value="auto_generate"] {
  font-weight: 950;
  box-shadow: 0 10px 24px rgba(225, 6, 0, .22);
}

/* V2.57 Double-up cell highlight spacing */
.schedule-table .assignment-cell {
  padding: 8px 10px !important;
  min-width: 180px;
  vertical-align: middle;
  background-clip: padding-box;
}
.schedule-table .assignment-cell .assignment-typeahead-wrap {
  display: block;
  width: 100%;
}
.schedule-table .assignment-cell .assignment-typeahead {
  min-height: 38px;
  padding: 7px 10px;
  border-width: 2px;
}
.schedule-table .assignment-cell.double-assigned {
  background: #fff200 !important;
  box-shadow:
    inset 0 0 0 3px rgba(17, 24, 39, .55),
    inset 0 0 0 7px rgba(255, 242, 0, .95);
}
.schedule-table .assignment-cell.double-assigned .assignment-typeahead {
  background-color: rgba(255, 255, 255, .92) !important;
  border-color: #111827 !important;
  font-weight: 950;
}
.schedule-table .assignment-cell.single-assigned {
  padding: 7px 9px !important;
}

/* V2.58 Associate Profile */
.associate-profile-hero {
  background:
    radial-gradient(circle at 20% 10%, rgba(225,6,0,.22), transparent 30%),
    linear-gradient(135deg, rgba(15,23,42,.98), rgba(2,6,23,.96));
}
.associate-avatar {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: #e10600;
  color: #fff;
  font-size: 42px;
  margin-bottom: 14px;
  box-shadow: 0 16px 34px rgba(225,6,0,.24);
}
.profile-stat-card {
  min-height: 122px;
}
.profile-stat-value {
  font-size: 42px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -.05em;
}
.profile-stat-label {
  color: #94a3b8;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-top: 8px;
}
.profile-skill-list {
  max-height: 340px;
  overflow-y: auto;
}
.profile-skill-pill {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 9px 0;
  border-bottom: 1px solid rgba(148,163,184,.15);
}
.profile-skill-pill:last-child {
  border-bottom: 0;
}
.profile-skill-pill span {
  color: #94a3b8;
  font-size: 12px;
}
.profile-skill-pill em {
  font-style: normal;
  font-size: 10px;
  font-weight: 950;
  color: #111827;
  background: #facc15;
  border-radius: 999px;
  padding: 2px 6px;
}
.profile-history-table {
  max-height: 520px;
  overflow-y: auto;
}

/* V2.59 Night Shift operational date */
.night-shift-date-banner {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(14, 165, 233, .12);
  border: 1px solid rgba(14, 165, 233, .32);
  color: #bae6fd;
  font-size: 13px;
  font-weight: 800;
  max-width: 100%;
}
.night-shift-date-banner strong {
  color: #ffffff;
}

@media (max-width: 768px) {
  .night-shift-date-banner {
    width: 100%;
    justify-content: flex-start;
    text-align: left !important;
    border-radius: 16px;
    margin-top: 8px;
    margin-left: 0;
  }
}

/* V2.61 Batch selector under Night Shift banner */
.header-actions-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  max-width: 100%;
}
.batch-selector-under-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
}
.batch-selector-under-banner .form-select {
  min-width: 210px;
  background-color: #0f172a !important;
  color: #ffffff !important;
  border-color: rgba(14, 165, 233, .35) !important;
  font-weight: 900;
}
.batch-selector-under-banner .form-select option {
  background-color: #0f172a;
  color: #ffffff;
}
@media (max-width: 768px) {
  .header-actions-stack {
    width: 100%;
    align-items: stretch;
    margin-left: 0 !important;
  }
  .batch-selector-under-banner {
    width: 100%;
    justify-content: flex-start;
  }
  .batch-selector-under-banner .form-select {
    flex: 1;
    min-width: 0;
  }
}


/* V2.62 Futuristic schedule hero redesign */
.schedule-tech-shell {
  position: relative;
  overflow: hidden;
  border-radius: 26px;
  padding: 28px 28px 24px;
  background:
    radial-gradient(circle at top right, rgba(0, 177, 255, 0.14), transparent 22%),
    radial-gradient(circle at top left, rgba(225, 6, 0, 0.18), transparent 18%),
    linear-gradient(135deg, rgba(5, 10, 26, 0.98), rgba(1, 7, 20, 0.98));
  border: 1px solid rgba(38, 117, 203, 0.35);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.42), inset 0 0 0 1px rgba(7, 49, 94, 0.35);
}
.schedule-tech-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(225,6,0,0.0), rgba(225,6,0,0.22), rgba(225,6,0,0.0)) top/100% 1px no-repeat,
    linear-gradient(90deg, rgba(0,166,255,0.0), rgba(0,166,255,0.18), rgba(0,166,255,0.0)) bottom/100% 1px no-repeat;
  opacity: .9;
  pointer-events: none;
}
.schedule-tech-accent {
  position: absolute;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, rgba(225,6,0,.95), rgba(225,6,0,.1) 22%, rgba(0,174,255,.08) 70%, rgba(0,174,255,.9));
  opacity: .95;
}
.schedule-tech-accent-top { top: 0; }
.schedule-tech-accent-bottom { bottom: 0; }
.schedule-tech-top {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .75fr);
  gap: 26px;
  align-items: start;
  margin-bottom: 24px;
}
.schedule-tech-brand-panel {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 22px;
  align-items: stretch;
}
.schedule-tech-logo-panel {
  border-radius: 24px;
  padding: 20px;
  min-height: 170px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background: linear-gradient(180deg, rgba(20, 24, 54, 0.95), rgba(8, 13, 32, 0.9));
  border: 1px solid rgba(225, 6, 0, 0.28);
  box-shadow: inset 0 0 0 1px rgba(31, 86, 145, 0.18), 0 18px 34px rgba(0,0,0,0.25);
}
.schedule-tech-logo-img {
  width: 46px;
  height: auto;
  filter: drop-shadow(0 0 12px rgba(255, 59, 59, 0.45));
}
.schedule-tech-title-panel {
  border-radius: 24px;
  padding: 22px 24px;
  min-height: 170px;
  background: linear-gradient(180deg, rgba(10, 21, 44, 0.92), rgba(5, 14, 33, 0.84));
  border: 1px solid rgba(31, 107, 185, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.schedule-tech-title-row {
  display: flex;
  gap: 18px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.schedule-tech-title {
  font-size: clamp(28px, 2.3vw, 44px);
  line-height: 1.02;
  font-weight: 950;
  letter-spacing: .04em;
  color: #edf4ff;
  text-transform: uppercase;
  text-shadow: 0 0 20px rgba(255,255,255,0.06);
}
.schedule-tech-chip-group {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
}
.schedule-tech-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  border: 1px solid transparent;
}
.schedule-tech-chip-open {
  color: #d1ffe9;
  background: linear-gradient(180deg, rgba(0, 255, 153, 0.18), rgba(0, 122, 73, 0.2));
  border-color: rgba(0,255,153,.35);
  box-shadow: 0 0 20px rgba(0, 255, 153, 0.16);
}
.schedule-tech-chip-closed {
  color: #ffe0e0;
  background: linear-gradient(180deg, rgba(255, 74, 74, 0.18), rgba(120, 15, 15, 0.2));
  border-color: rgba(255,74,74,.35);
  box-shadow: 0 0 20px rgba(255, 74, 74, 0.12);
}
.schedule-tech-chip-batch {
  color: #d9e8ff;
  background: linear-gradient(180deg, rgba(54, 78, 110, 0.65), rgba(23, 37, 61, 0.74));
  border-color: rgba(110, 156, 225, 0.25);
}
.schedule-tech-subtitle {
  color: #a8bacf;
  font-size: 14px;
  line-height: 1.6;
  max-width: 920px;
}
.schedule-tech-status-stack {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 18px;
}
.night-shift-date-banner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  align-self: stretch;
  padding: 18px 22px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(7, 40, 72, 0.85), rgba(3, 22, 42, 0.95));
  border: 1px solid rgba(66, 196, 255, 0.45);
  color: #bfeaff;
  font-size: 14px;
  font-weight: 800;
  box-shadow: 0 0 0 1px rgba(19, 103, 180, 0.22) inset, 0 0 26px rgba(23, 176, 255, 0.14);
}
.night-shift-date-banner i {
  font-size: 20px;
  color: #8fdfff;
}
.night-shift-date-banner strong {
  color: #ffffff;
}
.schedule-tech-batch-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-left: auto;
  width: min(100%, 280px);
  padding: 18px 20px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(6, 26, 49, 0.92), rgba(3, 16, 31, 0.98));
  border: 1px solid rgba(41, 176, 255, 0.4);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.02);
}
.schedule-tech-field-label {
  color: #8fa7c3;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.schedule-tech-select,
.schedule-tech-date-input {
  min-height: 52px;
  border-radius: 14px;
  background-color: rgba(8, 20, 40, 0.96) !important;
  border: 1px solid rgba(40, 120, 201, 0.55) !important;
  color: #ffffff !important;
  font-weight: 900;
  box-shadow: none !important;
}
.schedule-tech-select option {
  background: #081428;
  color: #ffffff;
}
.schedule-tech-control-panel {
  position: relative;
  z-index: 1;
  border-radius: 24px;
  padding: 20px 22px;
  background: linear-gradient(180deg, rgba(5, 17, 34, 0.92), rgba(4, 12, 26, 0.9));
  border: 1px solid rgba(31, 103, 182, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.03);
  display: flex;
  flex-wrap: wrap;
  gap: 18px 22px;
  align-items: end;
}
.schedule-tech-filter-wrap {
  flex: 0 0 320px;
  max-width: 100%;
}
.schedule-tech-filter-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.schedule-tech-filter-head {
  color: #8fa7c3;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.schedule-tech-filter-inputs {
  display: flex;
  gap: 12px;
  align-items: center;
}
.schedule-tech-load-btn {
  min-height: 52px;
  padding: 0 22px;
  border-radius: 14px;
  border: 1px solid rgba(70, 175, 255, .55);
  color: #eff8ff;
  background: linear-gradient(180deg, rgba(34, 116, 210, 0.95), rgba(12, 68, 168, 0.95));
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  box-shadow: 0 0 18px rgba(34, 116, 210, 0.28);
}
.schedule-tech-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: end;
  flex: 1 1 580px;
}
.tech-action-btn {
  min-height: 52px;
  padding: 0 18px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(50, 118, 196, 0.4) !important;
  background: linear-gradient(180deg, rgba(8, 21, 40, 0.98), rgba(4, 12, 25, 0.95)) !important;
  color: #edf5ff !important;
  font-weight: 800;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
}
.tech-action-btn i { font-size: 18px; }
.tech-action-cyan { color: #53ddff !important; border-color: rgba(64, 205, 255, 0.45) !important; }
.tech-action-light { color: #dbe7ff !important; }
.tech-action-gold { color: #ffcd55 !important; border-color: rgba(255, 194, 52, 0.4) !important; }
.tech-action-green { color: #9dfb95 !important; border-color: rgba(77, 227, 106, 0.42) !important; }
.schedule-tech-dropdown-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 220px;
}
.schedule-tech-footer-row {
  position: relative;
  z-index: 1;
  margin-top: 16px;
}
.schedule-tech-export-btn {
  min-height: 60px;
  padding: 0 22px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(73, 196, 255, 0.42);
  color: #e6f6ff;
  background: linear-gradient(180deg, rgba(7, 22, 42, 0.96), rgba(3, 12, 23, 0.96));
  font-weight: 900;
  letter-spacing: .03em;
}
.schedule-tech-export-btn i { font-size: 20px; }
@media (max-width: 1399px) {
  .schedule-tech-top { grid-template-columns: 1fr; }
  .schedule-tech-status-stack { align-items: flex-start; }
  .schedule-tech-batch-card { margin-left: 0; }
}
@media (max-width: 991px) {
  .schedule-tech-shell { padding: 20px 18px 18px; }
  .schedule-tech-brand-panel { grid-template-columns: 78px minmax(0,1fr); gap: 16px; }
  .schedule-tech-logo-panel, .schedule-tech-title-panel { min-height: auto; }
  .schedule-tech-title { font-size: 24px; }
  .schedule-tech-control-panel { padding: 16px; }
  .schedule-tech-filter-wrap, .schedule-tech-actions { flex-basis: 100%; }
}
@media (max-width: 767px) {
  .schedule-tech-title-row { flex-direction: column; align-items: flex-start; }
  .schedule-tech-filter-inputs { flex-wrap: wrap; }
  .schedule-tech-load-btn { width: 100%; }
  .schedule-tech-actions { gap: 10px; }
  .tech-action-btn, .schedule-tech-dropdown-wrap, .schedule-tech-batch-card { width: 100%; }
  .tech-action-btn { justify-content: center; }
  .night-shift-date-banner { justify-content: flex-start; text-align: left !important; }
  .schedule-tech-batch-card { width: 100%; }
}

/* V2.63 removed schedule-tech-logo-panel */
.schedule-tech-brand-panel {
  grid-template-columns: minmax(0, 1fr) !important;
}
.schedule-tech-logo-panel,
.schedule-tech-logo-img {
  display: none !important;
}
.schedule-tech-title-panel {
  min-height: 150px;
}
@media (max-width: 991px) {
  .schedule-tech-brand-panel {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* V2.64 Batch selector inside Night Shift banner */
.night-shift-banner-with-batch {
  display: grid !important;
  grid-template-columns: minmax(0, 1.15fr) minmax(220px, .85fr);
  gap: 18px;
  align-items: center;
  text-align: left !important;
}
.night-shift-banner-main {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  min-width: 0;
}
.night-shift-inline-batch {
  display: grid;
  grid-template-columns: auto minmax(190px, 1fr);
  gap: 10px;
  align-items: center;
  justify-content: end;
  min-width: 0;
}
.night-shift-inline-batch .schedule-tech-field-label {
  margin: 0;
  white-space: nowrap;
  color: #9edcff;
}
.night-shift-inline-batch .schedule-tech-select {
  min-height: 44px;
  border-radius: 14px;
  min-width: 190px;
  background-color: rgba(4, 18, 35, .98) !important;
  border-color: rgba(92, 204, 255, .55) !important;
}
.schedule-tech-status-stack .schedule-tech-batch-card {
  display: none !important;
}
@media (max-width: 1200px) {
  .night-shift-banner-with-batch {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .night-shift-inline-batch {
    justify-content: start;
    grid-template-columns: auto minmax(220px, 320px);
  }
}
@media (max-width: 768px) {
  .night-shift-inline-batch {
    grid-template-columns: 1fr;
    width: 100%;
  }
  .night-shift-inline-batch .schedule-tech-select {
    width: 100%;
    min-width: 0;
  }
}

/* V2.65 Export JPG inside control panel */
.schedule-tech-export-inline {
  min-height: 52px;
  align-self: end;
  margin-top: 0;
  white-space: nowrap;
}
.schedule-tech-control-panel .schedule-tech-export-btn {
  border-color: rgba(73, 196, 255, 0.5);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02), 0 0 18px rgba(73, 196, 255, .08);
}
.schedule-tech-footer-row {
  display: none !important;
}
@media (max-width: 767px) {
  .schedule-tech-export-inline {
    width: 100%;
    justify-content: center;
  }
}

/* V2.66 Schedule navbar moved below schedule-tech-top */
.schedule-tech-nav {
  position: relative;
  z-index: 1;
  margin: 0 0 20px;
  padding: 16px;
  border-radius: 22px;
  background:
    radial-gradient(circle at left, rgba(225, 6, 0, .12), transparent 25%),
    linear-gradient(180deg, rgba(8, 24, 47, .95), rgba(3, 13, 27, .92));
  border: 1px solid rgba(31, 107, 185, .38);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), 0 18px 42px rgba(0,0,0,.2);
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
}
.schedule-tech-nav::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(225,6,0,.8), rgba(70,196,255,.55), transparent);
  opacity: .85;
}
.schedule-tech-nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  min-width: 0;
}
.schedule-tech-nav-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 14px;
  border-radius: 14px;
  text-decoration: none;
  color: #d9ecff;
  font-weight: 850;
  font-size: 13px;
  letter-spacing: .01em;
  background: linear-gradient(180deg, rgba(7, 21, 42, .98), rgba(4, 13, 27, .92));
  border: 1px solid rgba(55, 126, 205, .34);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
  transition: transform .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.schedule-tech-nav-link i {
  color: #6bd7ff;
  font-size: 16px;
}
.schedule-tech-nav-link:hover,
.schedule-tech-nav-link.active {
  color: #ffffff;
  border-color: rgba(75, 205, 255, .62);
  box-shadow: 0 0 22px rgba(47, 183, 255, .14), inset 0 0 0 1px rgba(255,255,255,.04);
  transform: translateY(-1px);
}
.schedule-tech-nav-link.active {
  background: linear-gradient(180deg, rgba(17, 73, 132, .95), rgba(6, 35, 75, .96));
}
.shop-selector-pill-tech {
  color: #fff !important;
  background: linear-gradient(180deg, rgba(225, 6, 0, .95), rgba(137, 14, 14, .92)) !important;
  border-color: rgba(255, 102, 102, .46) !important;
  box-shadow: 0 12px 28px rgba(225, 6, 0, .22), inset 0 0 0 1px rgba(255,255,255,.08);
}
.shop-selector-pill-tech i {
  color: #fff !important;
}
.schedule-tech-nav-user {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  color: #9db5d0;
  font-size: 12px;
  font-weight: 850;
}
.schedule-tech-nav-user span,
.schedule-tech-nav-user a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(2, 10, 23, .64);
  border: 1px solid rgba(91, 158, 230, .2);
  color: #cfe5ff;
  text-decoration: none;
}
.schedule-tech-nav-user a {
  color: #ffffff;
  border-color: rgba(255,255,255,.28);
}
.schedule-tech-nav-user a:hover {
  background: rgba(225, 6, 0, .26);
  border-color: rgba(225, 6, 0, .52);
}
@media (max-width: 1200px) {
  .schedule-tech-nav {
    align-items: stretch;
  }
  .schedule-tech-nav-links,
  .schedule-tech-nav-user {
    width: 100%;
    justify-content: flex-start;
  }
}
@media (max-width: 768px) {
  .schedule-tech-nav-link {
    width: 100%;
    justify-content: center;
  }
  .schedule-tech-nav-user span,
  .schedule-tech-nav-user a {
    flex: 1 1 auto;
    justify-content: center;
  }
}

/* V2.67 separated schedule nav user panel */
.schedule-tech-nav {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  align-items: stretch !important;
}
.schedule-tech-nav-links {
  align-self: stretch;
  padding: 10px;
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(5, 18, 38, .72), rgba(3, 11, 25, .62));
  border: 1px solid rgba(64, 150, 230, .18);
}
.schedule-tech-nav-user {
  align-self: stretch;
  display: flex !important;
  flex-direction: column;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 10px !important;
  min-width: 280px;
  padding: 12px 14px;
  border-radius: 18px;
  background:
    radial-gradient(circle at top right, rgba(225, 6, 0, .16), transparent 36%),
    linear-gradient(180deg, rgba(9, 26, 50, .94), rgba(3, 12, 26, .94));
  border: 1px solid rgba(91, 158, 230, .32);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03), 0 14px 32px rgba(0,0,0,.18);
}
.schedule-tech-nav-user-title {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #8fdfff;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.schedule-tech-nav-user-title i {
  color: #ff5d5d;
  font-size: 14px;
}
.schedule-tech-nav-user-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
}
.schedule-tech-nav-user-pills span,
.schedule-tech-nav-user-pills a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 11px;
  border-radius: 999px;
  background: rgba(2, 10, 23, .72);
  border: 1px solid rgba(91, 158, 230, .24);
  color: #d8ecff;
  font-size: 12px;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}
.schedule-tech-nav-user-pills i {
  color: #77d9ff;
}
.schedule-tech-nav-user-pills a {
  color: #ffffff;
  border-color: rgba(255, 98, 98, .38);
  background: rgba(225, 6, 0, .16);
}
.schedule-tech-nav-user-pills a i {
  color: #ffffff;
}
.schedule-tech-nav-user-pills a:hover {
  background: rgba(225, 6, 0, .32);
  border-color: rgba(255, 98, 98, .68);
}
@media (max-width: 1400px) {
  .schedule-tech-nav {
    grid-template-columns: 1fr !important;
  }
  .schedule-tech-nav-user {
    min-width: 0;
  }
}
@media (max-width: 768px) {
  .schedule-tech-nav-links {
    padding: 8px;
  }
  .schedule-tech-nav-user-pills span,
  .schedule-tech-nav-user-pills a {
    flex: 1 1 100%;
    justify-content: center;
  }
}

/* V2.68 removed duplicated schedule nav links */
.schedule-tech-nav-links {
  gap: 12px;
}
.schedule-tech-nav-link.active {
  min-width: 118px;
  justify-content: center;
}

/* V2.69 removed schedule title subtitle */
.schedule-tech-title-panel {
  justify-content: center;
}
.schedule-tech-title-row {
  margin-bottom: 0;
}

/* V2.70 Global tech navbar consistency */
.global-tech-nav-wrap {
  padding: 14px 14px 0;
  background:
    radial-gradient(circle at top left, rgba(225, 6, 0, .10), transparent 22%),
    radial-gradient(circle at top right, rgba(0, 177, 255, .10), transparent 24%),
    linear-gradient(180deg, rgba(2, 6, 23, .98), rgba(2, 6, 23, .88));
}
.global-tech-nav {
  margin: 0 auto;
}
.global-tech-nav .schedule-tech-nav-links {
  min-height: 68px;
}
.global-tech-nav + * {
  margin-top: 0;
}
body:has(.global-tech-nav-wrap) main.container-fluid {
  padding-top: 1rem !important;
}
@media (max-width: 768px) {
  .global-tech-nav-wrap {
    padding: 10px 10px 0;
  }
}

/* V2.71 Manual Loader support */
.station-manual-loader-badge,
.manual-loader-badge {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #67e8f9;
  color: #082f49;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
}
.assignment-cell[data-manual-loader="1"] {
  box-shadow: inset 0 0 0 2px rgba(103, 232, 249, .35);
}

/* V2.72 Battery Prep support */
.station-battery-prep-badge,
.battery-prep-badge {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #2563eb;
  color: #eff6ff;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
}
.assignment-cell[data-battery-prep="1"] {
  box-shadow: inset 0 0 0 2px rgba(37, 99, 235, .35);
}

/* V2.75 Bigger station numbers for better visual readability */
.schedule-table .station-code {
  width: 78px !important;
  min-width: 78px !important;
  font-size: 18px !important;
  line-height: 1.05 !important;
  font-weight: 950 !important;
  letter-spacing: .02em !important;
  text-align: center !important;
  vertical-align: middle !important;
  padding: 4px 5px !important;
}
.schedule-table .station-code .station-performance-badge,
.schedule-table .station-code .station-heavy-badge,
.schedule-table .station-code .station-manual-loader-badge,
.schedule-table .station-code .station-battery-prep-badge,
.schedule-table .station-code .station-knuckles-badge {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 4px auto 0;
  font-size: 9px;
  line-height: 1;
  padding: 3px 6px;
}
.schedule-capture .station-code {
  font-size: 19px !important;
  font-weight: 950 !important;
}
@media (max-width: 1400px) {
  .schedule-table .station-code {
    width: 72px !important;
    min-width: 72px !important;
    font-size: 17px !important;
  }
}

/* V2.77 Knuckles support */
.station-knuckles-badge,
.knuckles-badge {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #7c3aed;
  color: #ffffff;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .08em;
}
.assignment-cell[data-knuckles="1"] {
  box-shadow: inset 0 0 0 2px rgba(124, 58, 237, .35);
}
.schedule-table .station-code .station-knuckles-badge {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 4px auto 0;
  font-size: 9px;
  line-height: 1;
  padding: 3px 6px;
}

/* V2.79 QC station cells blue */
.schedule-table .station-code.qc-cell,
.qc-cell {
  background: #2563eb !important;
  color: #ffffff !important;
  border-color: #1d4ed8 !important;
  box-shadow:
    inset 0 0 0 2px rgba(147, 197, 253, .5),
    0 0 12px rgba(37, 99, 235, .22);
}
.qc-row .assignment-cell,
.qc-assignment-cell {
  box-shadow: inset 0 0 0 2px rgba(37, 99, 235, .55);
}

/* V2.80 QC associate-name cells blue */
.schedule-table .qc-row .assignment-cell,
.schedule-table .assignment-cell.qc-assignment-cell {
  background: #2563eb !important;
  color: #ffffff !important;
  border-color: #1d4ed8 !important;
  box-shadow:
    inset 0 0 0 2px rgba(147, 197, 253, .58),
    0 0 10px rgba(37, 99, 235, .18);
}
.schedule-table .qc-row .assignment-cell .assignment-typeahead,
.schedule-table .assignment-cell.qc-assignment-cell .assignment-typeahead {
  background-color: rgba(15, 23, 42, .28) !important;
  color: #ffffff !important;
  border-color: #93c5fd !important;
  font-weight: 950;
}
.schedule-table .qc-row .assignment-cell .assignment-typeahead::placeholder,
.schedule-table .assignment-cell.qc-assignment-cell .assignment-typeahead::placeholder {
  color: rgba(255, 255, 255, .76) !important;
}
.schedule-table .qc-row .assignment-cell .assignment-typeahead:focus,
.schedule-table .assignment-cell.qc-assignment-cell .assignment-typeahead:focus {
  background-color: rgba(15, 23, 42, .42) !important;
  color: #ffffff !important;
  border-color: #dbeafe !important;
  box-shadow: 0 0 0 .14rem rgba(147, 197, 253, .24) !important;
}

/* Keep QC blue while preserving special status indicators. */
.schedule-table .qc-row .assignment-cell.double-assigned,
.schedule-table .assignment-cell.qc-assignment-cell.double-assigned {
  background: #2563eb !important;
  box-shadow:
    inset 0 0 0 3px rgba(17, 24, 39, .55),
    inset 0 0 0 7px rgba(255, 242, 0, .95) !important;
}
.schedule-table .qc-row .assignment-cell.assignment-status-late-in,
.schedule-table .assignment-cell.qc-assignment-cell.assignment-status-late-in {
  background: #2563eb !important;
  box-shadow: inset 0 0 0 4px #ef4444 !important;
}
.schedule-table .qc-row .assignment-cell.assignment-status-early-out,
.schedule-table .assignment-cell.qc-assignment-cell.assignment-status-early-out {
  background: #2563eb !important;
  box-shadow: inset 0 0 0 4px #22c55e !important;
}

/* V2.84 Support associates use orange assignment cells */
.schedule-table .assignment-cell.support-assignment-cell,
.schedule-table .qc-row .assignment-cell.support-assignment-cell,
.schedule-table .assignment-cell.qc-assignment-cell.support-assignment-cell {
  background: #f97316 !important;
  color: #ffffff !important;
  border-color: #c2410c !important;
  box-shadow:
    inset 0 0 0 2px rgba(255, 237, 213, .72),
    0 0 12px rgba(249, 115, 22, .24) !important;
}
.schedule-table .assignment-cell.support-assignment-cell .assignment-typeahead,
.schedule-table .qc-row .assignment-cell.support-assignment-cell .assignment-typeahead,
.schedule-table .assignment-cell.qc-assignment-cell.support-assignment-cell .assignment-typeahead {
  background-color: rgba(124, 45, 18, .28) !important;
  color: #ffffff !important;
  border-color: #fed7aa !important;
  font-weight: 950;
}
.schedule-table .assignment-cell.support-assignment-cell .assignment-typeahead::placeholder {
  color: rgba(255, 255, 255, .78) !important;
}
.schedule-table .assignment-cell.support-assignment-cell .assignment-typeahead:focus {
  background-color: rgba(124, 45, 18, .42) !important;
  color: #ffffff !important;
  border-color: #fff7ed !important;
  box-shadow: 0 0 0 .14rem rgba(255, 237, 213, .34) !important;
}

/* Keep Support orange while preserving operational indicators. */
.schedule-table .assignment-cell.support-assignment-cell.double-assigned {
  background: #f97316 !important;
  box-shadow:
    inset 0 0 0 3px rgba(17, 24, 39, .55),
    inset 0 0 0 7px rgba(255, 242, 0, .95) !important;
}
.schedule-table .assignment-cell.support-assignment-cell.assignment-status-late-in {
  background: #f97316 !important;
  box-shadow: inset 0 0 0 4px #dc2626 !important;
}
.schedule-table .assignment-cell.support-assignment-cell.assignment-status-early-out {
  background: #f97316 !important;
  box-shadow: inset 0 0 0 4px #16a34a !important;
}

/* V2.88 Weight Heavy station icon badge */
.station-heavy-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  min-height: 18px;
  padding: 1px 6px;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 950;
  border-radius: 999px;
}
.schedule-table .station-code .station-heavy-badge {
  font-size: 14px !important;
  padding: 1px 6px !important;
  margin-top: 4px;
}

/* V2.89 Clear dumbbell icon for Weight Heavy stations */
.station-heavy-badge {
  min-width: 30px !important;
  min-height: 22px !important;
  padding: 2px 6px !important;
  background: #f97316 !important;
  color: #ffffff !important;
  border: 1px solid #fdba74;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.16),
    0 0 8px rgba(249,115,22,.28);
}
.station-heavy-icon {
  display: block;
  width: 22px;
  height: 22px;
  color: #ffffff;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.45));
}
.schedule-table .station-code .station-heavy-badge {
  width: 32px;
  max-width: none;
  padding: 1px 5px !important;
}
.schedule-capture .station-heavy-icon {
  width: 24px;
  height: 24px;
}
