/* LTM schedule — shared facelift (Oct 2026).
   Loaded AFTER each page's own <style>, so these rules win at equal specificity.
   Goals: calmer background, one typeface, no animated/glowing chrome, consistent
   buttons/cards/inputs, line icons instead of emoji. Layout and behaviour unchanged. */

:root {
  --bg: #0b0c0e; --bg2: #0f1113; --panel: #141619; --panel2: #1a1d21;
  --border: #25282d; --border-strong: #33373e;
  --text: #ececea; --muted: #8d929b;
  --accent: #f2c230; --accent-dim: #c9a227;
  --font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-display) !important;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "cv11", "ss01";
  background-color: var(--bg) !important;
  background-image: none !important;
}
input, select, textarea, button { font-family: inherit; }
input[type=checkbox] { accent-color: var(--accent); }
select { color-scheme: dark; }
::selection { background: rgba(242,194,48,0.35); }

/* ---- Background: keep the road, but quiet ---- */
.road-bg { opacity: 0.32; filter: grayscale(0.4) contrast(0.95); }
.road-bg::before {
  background: linear-gradient(180deg, rgba(11,12,14,0.94) 0%, rgba(11,12,14,0.80) 35%, rgba(11,12,14,0.92) 100%) !important;
}
.road-bg .horizon-glow { display: none !important; }

/* ---- Top line: one thin solid accent instead of moving stripes ---- */
.road-band { height: 2px !important; background: var(--accent) !important; }
.road-band::after { display: none !important; }

/* ---- Brand ---- */
/* the logo is dark gray: keep a soft, steady light halo so it reads on the dark page (no pulsing) */
.brand img, .logo-wrap img {
  animation: none !important; height: 32px !important;
  filter: drop-shadow(0 0 1px rgba(255,255,255,0.9)) drop-shadow(0 0 7px rgba(255,255,255,0.35)) !important;
}
.brand { gap: 14px !important; }
.brand-text h1, header h1, h1 {
  font-size: 1.05rem !important; font-weight: 700 !important; letter-spacing: 0.04em !important;
}
.brand-text .sub, .top .date, .date-nav .date { color: var(--muted); font-weight: 500; }

/* ---- Icons ---- */
svg.ic { width: 1.05em; height: 1.05em; flex-shrink: 0; vertical-align: -0.16em; }
.btn svg.ic, .toolbar svg.ic { opacity: 0.85; }

/* ---- Buttons ---- */
.btn, .toolbar a, .toolbar button, .cal-link, .crews-link, .nav-link {
  border-radius: 8px !important; font-weight: 600 !important; letter-spacing: 0 !important;
}
.btn, .toolbar a, .toolbar button {
  height: 36px; padding: 0 14px !important; font-size: 0.82rem !important; gap: 7px !important;
  background: var(--panel2) !important; border: 1px solid var(--border) !important; color: var(--text) !important;
  box-shadow: none !important; transition: background 0.12s, border-color 0.12s, color 0.12s !important;
}
.btn:hover, .toolbar a:hover, .toolbar button:hover {
  transform: none !important; background: #21252a !important; border-color: var(--border-strong) !important; color: #fff !important;
}
.btn.primary { background: var(--accent) !important; border-color: var(--accent) !important; color: #141414 !important; }
.btn.primary:hover { background: #f6cd4c !important; color: #141414 !important; }
.btn.sync { background: rgba(53,181,132,0.12) !important; border-color: rgba(53,181,132,0.45) !important; color: #7fd8b2 !important; }
.btn.sync:hover { background: rgba(53,181,132,0.2) !important; color: #a5e8cb !important; }
.cal-link:hover, .crews-link:hover, .nav-link:hover { color: var(--text) !important; }

.date-nav-btn, .nav button, .date-nav-today, .today-btn {
  border-radius: 8px !important; background: var(--panel2) !important; border: 1px solid var(--border) !important;
  color: var(--text) !important; font-weight: 600 !important; transform: none !important;
}
.date-nav-btn:hover, .nav button:hover, .date-nav-today:hover, .today-btn:hover {
  background: #21252a !important; border-color: var(--border-strong) !important; color: #fff !important;
}

/* ---- Inputs ---- */
input[type=text], input[type=date], input[type=password], textarea, select,
.note-input, .chip-input, .search, .job-select {
  background: #0f1114 !important; border: 1px solid var(--border) !important; border-radius: 8px !important; color: var(--text) !important;
}
input:focus, textarea:focus, select:focus, .note-input:focus, .chip-input:focus {
  outline: none !important; border-color: rgba(242,194,48,0.6) !important; box-shadow: 0 0 0 3px rgba(242,194,48,0.12) !important;
}
::placeholder { color: #5f646c; }

/* ---- Cards / panels ---- */
.crew-card, .day-cell, .stats-strip, .export-bar, .avail-panel, .intro, .row:not(.head), .crews-list .crew-card {
  background: var(--panel) !important; border: 1px solid var(--border) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.025) inset, 0 6px 20px rgba(0,0,0,0.28) !important;
}
.crew-card { border-radius: 12px !important; padding: 16px !important; transition: border-color 0.12s !important; }
.crew-card::before { display: none !important; }
.crew-card:hover { transform: none !important; border-color: var(--border-strong) !important; }
/* status stripe on the left: thinner, cleaner */
.crew-card.oot, .crew-card.night-shift, .crew-card.oot.night-shift { border-left-width: 3px !important; }
#grid .crew-card { border-left: 3px solid var(--accent2) !important; }
#grid .crew-card.oot { border-left-color: var(--oot) !important; }
#grid .crew-card.off { border-left-color: var(--off) !important; }

.foreman, .foreman-name { font-weight: 650 !important; font-size: 1rem !important; letter-spacing: -0.01em !important; }
.project-line { font-weight: 600 !important; line-height: 1.35; }
.job-block { background: #0f1114 !important; border-color: var(--border) !important; border-radius: 8px !important; padding: 9px 11px !important; }
.work-notes { color: var(--muted) !important; }
.date-range { display: flex; align-items: center; gap: 6px; color: var(--muted) !important; }

.clock-badge, .clockin-badge {
  font-variant-numeric: tabular-nums; font-weight: 600 !important;
  background: #0f1114 !important; border-color: var(--border) !important; color: var(--text) !important;
  display: inline-flex; align-items: center; gap: 6px;
}
.clockin-badge input { background: transparent !important; border: none !important; box-shadow: none !important; padding: 0 !important; }

.shift-tag, .shift-badge, .oot-tag {
  display: inline-flex !important; align-items: center; gap: 5px; font-weight: 700 !important;
  letter-spacing: 0.05em !important; padding: 3px 9px !important; font-size: 0.62rem !important;
}

/* people chips */
.tech-chip, .chip, .equip-tag {
  background: #1d2025 !important; border: 1px solid #2a2e34 !important; font-weight: 500 !important; color: var(--text);
}
.tech-chip:hover { border-color: var(--border-strong) !important; }
.tech-chip.picked { background: var(--accent) !important; color: #141414 !important; border-color: var(--accent) !important; font-weight: 600 !important; }
.tech-chip.not-roster, .chip.warn { border-color: rgba(224,143,31,0.7) !important; color: #ffd2a1 !important; }
.avail-chip { border-style: solid !important; border-color: rgba(242,194,48,0.35) !important; }
.tech-zone { border: 1px dashed #2a2e34 !important; background: rgba(0,0,0,0.12); }

/* stats strip */
.stats-strip { border-radius: 12px !important; padding: 2px !important; }
.stat { border-radius: 10px !important; }
.stat:hover { background: transparent !important; }
.stat + .stat { border-left: 1px solid var(--border); border-radius: 0 !important; }
.stat .num { font-weight: 700 !important; font-variant-numeric: tabular-nums; font-size: 1.45rem !important; }
.stat .lbl { font-weight: 600 !important; letter-spacing: 0.08em !important; }

/* section labels */
.notes-label, .ed-notes-label, .avail-title, .field-row > label, .field-label, .dow {
  font-weight: 600 !important; letter-spacing: 0.08em !important; color: var(--muted) !important;
}
.notes-section, .ed-notes-section { border-top: 1px solid var(--border) !important; }
.note-item, .ed-note-item { background: #0f1114 !important; border-color: var(--border) !important; }

/* primary small actions */
.note-add-btn, button.save, .export-bar button {
  background: var(--accent) !important; color: #141414 !important; font-weight: 600 !important; border-radius: 8px !important;
}
.note-add-btn:hover, button.save:hover, .export-bar button:hover { filter: none !important; background: #f6cd4c !important; }
.note-add-btn:disabled, button.save:disabled { background: var(--panel2) !important; color: #5f646c !important; }

/* + Add Job: quiet ghost button */
.add-job-btn {
  border: 1px solid var(--border) !important; border-style: solid !important; background: transparent !important;
  color: var(--accent) !important; font-weight: 600 !important; border-radius: 8px !important; padding: 7px 12px !important;
  display: inline-flex; align-items: center; gap: 6px;
}
.add-job-btn:hover { border-color: rgba(242,194,48,0.55) !important; background: rgba(242,194,48,0.06) !important; }
.add-job-cancel { border-radius: 8px !important; }
.job-added { font-weight: 600 !important; }

/* editor: "+ Add Another Job" as a quiet ghost button instead of a dashed yellow box */
button[onclick^="addAdditionalJob"] {
  border: 1px solid var(--border) !important; background: transparent !important; color: var(--accent) !important;
  border-radius: 8px !important; padding: 7px 10px !important; font-weight: 600 !important; width: 100%; text-align: left;
}
button[onclick^="addAdditionalJob"]:hover { border-color: rgba(242,194,48,0.55) !important; background: rgba(242,194,48,0.06) !important; }
.crews-link { border-radius: 0 !important; }

/* editor details */
.remove-crew { opacity: 0.45 !important; }
.remove-crew:hover { opacity: 1 !important; }
.picked-banner { font-weight: 600 !important; box-shadow: 0 10px 30px rgba(0,0,0,0.55) !important; }
.perdiem-line, #grandTotalLine { display: flex; align-items: center; gap: 6px; }
.status { font-weight: 500 !important; }
.sc-freshness { color: #6f747c !important; }

/* calendar */
.day-cell { border-radius: 10px !important; transition: border-color 0.12s !important; }
.day-cell:hover { transform: none !important; border-color: var(--border-strong) !important; }
.day-cell.empty { background: transparent !important; border: none !important; box-shadow: none !important; }
.day-cell.today { border-color: var(--accent) !important; border-width: 1px !important; box-shadow: 0 0 0 1px var(--accent) inset !important; }
.day-num { font-weight: 600 !important; font-variant-numeric: tabular-nums; }
.badge { font-weight: 600 !important; }
.badge.crews { background: rgba(61,127,217,0.16) !important; color: #9cc0f2 !important; border: 1px solid rgba(61,127,217,0.35); }
.badge.oot { background: rgba(224,143,31,0.16) !important; color: #f2b46a !important; border: 1px solid rgba(224,143,31,0.4); }
.badge.off { background: rgba(255,255,255,0.06) !important; color: #b3b7be !important; border: 1px solid var(--border); }
.export-bar .lbl { display: inline-flex; align-items: center; gap: 6px; }

/* save bars (rosters / people) */
.save-bar { background: rgba(11,12,14,0.94) !important; }

/* modals built in the editor */
#modalOverlay > div { background: var(--panel) !important; border-color: var(--border) !important; border-radius: 12px !important; }

@media print {
  .road-bg, .road-band, .add-job-btn, .add-job-row, .note-add-row { display: none !important; }
  body { background: #fff !important; }
  *, *::before, *::after { color: #000 !important; background: transparent !important; box-shadow: none !important; }
  .crew-card, .stats-strip, .job-block, .tech-chip, .note-item { border-color: #999 !important; }
}

/* ===== Oct 15 2026: LIGHT neutral theme (Tony: "lighter colors but more neutral"). Look only:
   nothing moves or resizes, no behaviour change. Warm off-white page, white cards, warm grey lines,
   near-black text, LTM yellow as the accent. Night = purple, red only for problems. ===== */
:root {
  --bg: #f3f1ec; --bg2: #eeebe5; --panel: #ffffff; --panel2: #f6f4f0;
  --border: #e2ded6; --border-strong: #cdc7bb;
  --text: #1d1b18; --muted: #6b665d;
  --accent: #f2c230; --accent-dim: #d9a915; --accent-ink: #7a5d00;
  --accent2: #2563c9; --green: #1c8a57; --red: #c23b33; --oot: #b8650a; --off: #8a857c;
  --night: #6b48d6;
  --t-green: #e5f3eb; --t-red: #fbe8e6; --t-amber: #fdf0dc; --t-blue: #e8eff9; --t-purple: #efeafc; --t-yellow: #fdf5d6;
  --shadow: 0 1px 2px rgba(29,27,24,0.06), 0 1px 3px rgba(29,27,24,0.04);
}
html, body { color-scheme: light; }
body { background: var(--bg) !important; background-image: none !important; color: var(--text) !important; }
select, input, textarea { color-scheme: light !important; }
::selection { background: rgba(242,194,48,0.45); }
::placeholder { color: #a39d92 !important; }

/* chrome */
.road-bg { display: none !important; }
.road-band { height: 3px !important; background: var(--accent) !important; }
.brand img, .logo-wrap img { filter: none !important; animation: none !important; }
h1, .brand-text h1, header h1 { color: var(--text) !important; text-transform: none !important; letter-spacing: -0.01em !important; font-weight: 700 !important; }
h1 .hi, .brand-text h1 .hi { color: inherit !important; }
header { border-bottom-color: var(--border) !important; }
.sub, .brand-text .sub, .date, .top .date, .date-nav .date, .month-label { color: var(--text) !important; }
.nav a, .crews-link, .cal-link, .nav-link { color: var(--muted) !important; }
.nav a:hover, .crews-link:hover, .cal-link:hover, .nav-link:hover { color: var(--text) !important; }
a { text-underline-offset: 2px; }

/* buttons */
.btn, .toolbar a, .toolbar button, .tb-btn, .date-nav-btn, .nav button, .date-nav-today, .today-btn,
.layout-bar button, .card-tools button, .freshness button, .pd-btn, .pd-actions button, .wk-nav, .add-job-cancel {
  background: #ffffff !important; border: 1px solid #d9d4ca !important; color: var(--text) !important; box-shadow: var(--shadow) !important;
}
.btn:hover, .toolbar a:hover, .toolbar button:hover, .tb-btn:hover, .date-nav-btn:hover, .nav button:hover, .date-nav-today:hover,
.today-btn:hover, .layout-bar button:hover, .card-tools button:hover, .freshness button:hover, .pd-btn:hover, .pd-actions button:hover, .wk-nav:hover {
  background: var(--panel2) !important; border-color: var(--border-strong) !important; color: var(--text) !important;
}
.btn.primary, .note-add-btn, button.save, .export-bar button, .layout-bar button.on, .tabs button.on {
  background: var(--accent) !important; border-color: var(--accent-dim) !important; color: #1d1b18 !important;
}
.btn.primary:hover, .note-add-btn:hover, button.save:hover { background: #f5cd4f !important; color: #1d1b18 !important; }
.note-add-btn:disabled, button.save:disabled { background: var(--panel2) !important; color: #a39d92 !important; border-color: var(--border) !important; }
.btn.sync { background: var(--t-green) !important; border-color: #b6dcc6 !important; color: var(--green) !important; }
.pd-btn.go { background: var(--green) !important; border-color: var(--green) !important; color: #fff !important; }
.pd-btn:disabled { opacity: 0.45 !important; }
.add-job-btn, button[onclick^="addAdditionalJob"] { background: #fff !important; border-color: #d9d4ca !important; color: var(--accent-ink) !important; }
.add-job-btn:hover, button[onclick^="addAdditionalJob"]:hover { background: var(--t-yellow) !important; border-color: var(--accent-dim) !important; }

/* inputs */
input[type=text], input[type=date], input[type=password], input:not([type]), textarea, select,
.note-input, .chip-input, .search, .job-select, .pd-box select, .pd-box input.code, .ex-dates input, .pd-set input, .pd-edit, .add-job-row select {
  background: #ffffff !important; border: 1px solid #d9d4ca !important; color: var(--text) !important;
}
option, .add-job-row select option { background: #ffffff !important; color: var(--text) !important; }
input:focus, textarea:focus, select:focus { border-color: var(--accent-dim) !important; box-shadow: 0 0 0 3px rgba(242,194,48,0.25) !important; }
input[type=checkbox] { accent-color: #c99a06; }

/* surfaces */
.crew-card, .day-cell:not(.empty), .stats-strip, .export-bar, .avail-panel, .intro, .row:not(.head), .card, .tile, .pd-box,
#modalOverlay > div, .save-bar {
  background: var(--panel) !important; border-color: var(--border) !important; box-shadow: var(--shadow) !important;
}
.save-bar { background: rgba(255,255,255,0.96) !important; border-top: 1px solid var(--border) !important; }
.crew, .job-block, .note-item, .ed-note-item, .clock-badge, .clockin-badge {
  background: var(--panel2) !important; border-color: var(--border) !important; box-shadow: none !important;
}
.crew-card:hover, .day-cell:hover { border-color: var(--border-strong) !important; }
.tech-zone { background: var(--panel2) !important; border-color: var(--border-strong) !important; }
.notes-section, .ed-notes-section, .card-tools { border-color: var(--border) !important; }
.stat + .stat { border-left-color: var(--border) !important; }
.stat .num { color: var(--text) !important; }
.stat .lbl, .dow, .notes-label, .ed-notes-label, .avail-title, .field-row > label, .field-label, .card h2, th { color: var(--muted) !important; }
.foreman, .foreman-name, .project-line, .fm, .crew-head .fm, td.nm, .who, .nm { color: var(--text) !important; }
.work-notes, .date-range, .hint, .muted, td.muted, .crewof, .crew-proj, .equip-line, .sc-freshness, .freshness, .no-sched, .upd { color: var(--muted) !important; }
.equip-line b { color: var(--text) !important; }
td { border-bottom-color: #ece8e1 !important; }
th { border-bottom-color: var(--border) !important; }

/* chips + tags */
.tech-chip, .chip, .equip-tag { background: #f1eee8 !important; border-color: #e0dbd2 !important; color: var(--text) !important; }
.tech-chip.picked { background: var(--accent) !important; border-color: var(--accent-dim) !important; color: #1d1b18 !important; }
.tech-chip.not-roster, .chip.warn { background: var(--t-amber) !important; border-color: #f0c98d !important; color: #8a4b05 !important; }
.shift-tag.day, .shift-badge.day { color: var(--green) !important; border-color: #a9d6bd !important; background: var(--t-green) !important; }
.shift-tag.night, .shift-badge.night { color: var(--night) !important; border-color: #c9b9f3 !important; background: var(--t-purple) !important; }
.oot-tag { color: var(--oot) !important; border-color: #efc58f !important; background: var(--t-amber) !important; }
.clock-badge.oot { background: var(--t-amber) !important; color: var(--oot) !important; border-color: #efc58f !important; }
.clock-badge.off { background: #ece9e3 !important; color: var(--muted) !important; }
.crew-card.night-shift { border-left-color: var(--night) !important; }
#grid .crew-card { border-left-color: var(--accent2) !important; }
#grid .crew-card.oot, .crew-card.oot.night-shift { border-left-color: var(--oot) !important; }
#grid .crew-card.off { border-left-color: var(--off) !important; }
.job-added, .notes-count, .note-ts, .ed-note-ts, .avail-title .n, #grandTotalLine { color: var(--accent-ink) !important; }

/* calendar */
.day-cell.today { border-color: var(--accent-dim) !important; box-shadow: 0 0 0 1px var(--accent-dim) inset, var(--shadow) !important; }
.day-cell.today .day-num { color: var(--accent-ink) !important; }
.day-num { color: var(--muted) !important; }
.badge.crews { background: var(--t-blue) !important; color: var(--accent2) !important; border-color: #c3d4f0 !important; }
.badge.oot { background: var(--t-amber) !important; color: var(--oot) !important; border-color: #efc58f !important; }
.badge.off { background: #ece9e3 !important; color: var(--muted) !important; border-color: var(--border) !important; }

/* per diem (calendar + crew view + pop-up) */
.pd-chip, .tb-btn.pd, .pd-crew-btn { color: var(--night) !important; border-color: #c9b9f3 !important; background: var(--t-purple) !important; }
.pd-chip.zero, .pd-crew-btn.quiet { color: var(--muted) !important; border-color: var(--border) !important; background: #f6f4f0 !important; }
.pd-chip:hover, .tb-btn.pd:hover, .pd-crew-btn:hover { color: #fff !important; background: var(--night) !important; border-color: var(--night) !important; }
.pd-modal { background: rgba(29,27,24,0.45) !important; }
.pd-box h2 svg { color: var(--night) !important; }
.pd-night { background: #fff !important; border-color: #d9d4ca !important; color: var(--text) !important; }
.pd-night.on { background: var(--night) !important; border-color: var(--night) !important; color: #fff !important; }
.pd-night.on .dw { color: #e6defc !important; }
.pd-actions button.go { background: var(--night) !important; border-color: var(--night) !important; color: #fff !important; }
.pd-msg.err { color: var(--red) !important; } .pd-msg.ok { color: var(--green) !important; }
.pd-mine span.approved { color: var(--green) !important; border-color: #a9d6bd !important; }
.pd-mine span.pending { color: var(--oot) !important; border-color: #efc58f !important; }
.pd-mine span.rejected { color: var(--red) !important; border-color: #efb5af !important; }

/* admin dashboard */
.pill { background: #f1eee8 !important; border-color: #e0dbd2 !important; color: var(--muted) !important; }
.pill.red { background: var(--t-red) !important; border-color: #efb5af !important; color: var(--red) !important; }
.pill.amber { background: var(--t-amber) !important; border-color: #efc58f !important; color: var(--oot) !important; }
.pill.green { background: var(--t-green) !important; border-color: #a9d6bd !important; color: var(--green) !important; }
.pill.blue { background: var(--t-blue) !important; border-color: #c3d4f0 !important; color: var(--accent2) !important; }
.tile .num { color: var(--text) !important; }
.tile.red .num { color: var(--red) !important; } .tile.amber .num { color: var(--oot) !important; } .tile.ok .num { color: var(--green) !important; }
.tabs button { background: #fff !important; border-color: #d9d4ca !important; color: var(--muted) !important; }
.errbox { background: var(--t-red) !important; border-color: #efb5af !important; color: #8f2a24 !important; }
.st.in { color: var(--green) !important; } .st.late, .st.missing, .st.no_show { color: var(--red) !important; }
.st.time_off { color: var(--accent2) !important; } .st.not_yet, .st.no_clock { color: var(--muted) !important; }
.crew.has-late { border-color: #efb5af !important; }
.bar { background: #ece9e3 !important; }
.bar span { background: var(--accent2) !important; } .bar span.near { background: #d9861a !important; } .bar span.over { background: var(--red) !important; }
.bar i { background: rgba(29,27,24,0.35) !important; }
.sig { color: var(--muted) !important; } .sig.ok { color: var(--green) !important; } .sig.bad { color: var(--red) !important; }
.upd.stale { color: var(--oot) !important; }
.editing .card { outline-color: rgba(201,154,6,0.6) !important; }

/* PIN screen (server login page) */
form#f { background: #fff !important; border-color: var(--border) !important; box-shadow: 0 8px 30px rgba(29,27,24,0.08) !important; }
form#f h1 { color: var(--text) !important; }
form#f a { color: var(--muted) !important; }
form#f button { background: var(--accent) !important; color: #1d1b18 !important; }

/* existing bug fix: on wide screens (5 crew columns) the notes "+ Add" button was cut off. Let the box shrink instead. */
.note-add-row { display: flex; gap: 6px; }
.note-add-row .note-input, .note-add-row input { flex: 1 1 auto; min-width: 0 !important; width: auto !important; }
.note-add-row .note-add-btn { flex: 0 0 auto; white-space: nowrap; }

@media print { .road-band { display: none !important; } }
