:root{--bg:#f2f5f9;--card:#fff;--ink:#14202e;--mute:#66758a;--line:#dde4ee;--navy:#0b3d6e;--green:#12905a;--red:#c93636;--amber:#d98a00;--grey:#6b7788;
--c0:#1f6feb;--c1:#12905a;--c2:#d9730d;--c3:#8250df;--c4:#d1306f;--c5:#0a8ea0;--c6:#8a6d00;--c7:#555}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
header{background:var(--navy);color:#fff;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:10px 14px 0;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;align-self:center;margin-bottom:10px}
/* logo removed from header brand */
.logo{display:none;background:#fff;color:var(--navy);font-weight:800;border-radius:8px;width:38px;height:38px;display:grid;place-items:center}
.t1{font-weight:700;font-size:1.05rem;line-height:1.2;max-width:18rem}.t2{font-size:.78rem;opacity:.8}.brand .t2{display:block;opacity:.85;font-weight:600;letter-spacing:.02em}
/* brand title wrap */
nav{display:flex;flex-wrap:wrap;gap:3px;flex:1 1 auto;align-items:flex-end;align-self:flex-end;min-width:0;padding-top:2px;position:relative;z-index:2}
/* File-folder tabs: rounded top, flush bottom on the content shelf */
nav a{flex:0 0 auto;color:#fff;text-decoration:none;padding:9px 12px 10px;border-radius:12px 12px 0 0;font-weight:700;font-size:.9rem;min-height:40px;display:inline-flex;align-items:center;position:relative;z-index:1;border:1px solid rgba(0,0,0,.22);border-bottom:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.28);text-shadow:0 1px 0 rgba(0,0,0,.22);opacity:.78;transform:translateY(3px);white-space:nowrap;transition:transform .12s ease,opacity .12s ease,filter .12s ease,box-shadow .12s ease}
nav a:hover{opacity:.92;filter:brightness(1.06)}
nav a.on{opacity:1;z-index:3;transform:translateY(0);padding-top:11px;padding-bottom:12px;border-color:rgba(255,255,255,.65);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 -2px 10px rgba(0,0,0,.2);filter:brightness(1.14);text-shadow:0 1px 0 rgba(0,0,0,.28)}
/* Earth-tone tabs: each tab its own muted color; active = lighter + accent line */
nav a{opacity:.9;filter:none;text-shadow:none;border-color:rgba(0,0,0,.18);box-shadow:none}
nav a:hover{opacity:1;filter:brightness(1.06)}
nav a.on{opacity:1;filter:brightness(1.12);text-shadow:none;border-color:rgba(255,255,255,.35)}
nav a[data-r="main"]{background:#5a4636;color:#efe6dc}
nav a[data-r="main"].on{box-shadow:inset 0 3px 0 #efe6dc,0 -2px 8px rgba(0,0,0,.18)}
nav a[data-r="callout"]{background:#2f2f33;color:#e8e8ea}
nav a[data-r="callout"].on{box-shadow:inset 0 3px 0 #e8e8ea,0 -2px 8px rgba(0,0,0,.18)}
nav a[data-r="schedule"]{background:#6b5d4f;color:#f3ede6}
nav a[data-r="schedule"].on{box-shadow:inset 0 3px 0 #f3ede6,0 -2px 8px rgba(0,0,0,.18)}
nav a[data-r="worksched"]{background:#5f6152;color:#eef0e6}
nav a[data-r="worksched"].on{box-shadow:inset 0 3px 0 #eef0e6,0 -2px 8px rgba(0,0,0,.18)}
nav a[data-r="timeoff"]{background:#6e2f34;color:#f5e6e7}
nav a[data-r="timeoff"].on{box-shadow:inset 0 3px 0 #f5e6e7,0 -2px 8px rgba(0,0,0,.18)}
nav a[data-r="sitevac"]{background:#b8a68a;color:#2a2118}
nav a[data-r="sitevac"].on{box-shadow:inset 0 3px 0 #2a2118,0 -2px 8px rgba(0,0,0,.18)}
nav a[data-r="log"]{background:#7a6e66;color:#f4f0ec}
nav a[data-r="log"].on{box-shadow:inset 0 3px 0 #f4f0ec,0 -2px 8px rgba(0,0,0,.18)}
nav a[data-r="admin"]{background:#c9b79c;color:#2a2118}
nav a[data-r="admin"].on{box-shadow:inset 0 3px 0 #2a2118,0 -2px 8px rgba(0,0,0,.18)}
.who{display:flex;gap:10px;align-items:center;align-self:center;margin-bottom:10px}
.live{font-size:.8rem}.live.on{color:#6ff0b0}.live.off{color:#ffb4b4}
.chip{background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:20px;padding:8px 14px;font-size:.9rem;min-height:40px;cursor:pointer}
main{max-width:1100px;margin:0 auto;padding:14px}
h2{margin:0 0 10px;font-size:1.15rem}
h3{margin:18px 0 8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:14px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.muted{color:var(--mute)}.small{font-size:.85rem}
button,.btn{font:inherit;cursor:pointer}
.btn{border:0;border-radius:12px;padding:12px 18px;min-height:48px;font-weight:700;background:var(--navy);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn:disabled{opacity:.5}
.btn.sec{background:#e6edf6;color:var(--navy)}
.btn.danger{background:var(--red)}
.btn.sm{min-height:38px;padding:6px 12px;font-size:.9rem;border-radius:9px}
.btn.link{background:none;color:var(--navy);text-decoration:underline;font-weight:600;min-height:40px}
input,select,textarea{font:inherit;padding:11px 12px;border:1px solid #b9c5d6;border-radius:10px;min-height:46px;background:#fff;color:var(--ink);max-width:100%}
textarea{width:100%;min-height:70px}
label{font-weight:600;font-size:.9rem;display:block;margin:10px 0 4px}
.badge{display:inline-block;color:#fff;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;white-space:nowrap}
.c0{background:var(--c0)}.c1{background:var(--c1)}.c2{background:var(--c2)}.c3{background:var(--c3)}.c4{background:var(--c4)}.c5{background:var(--c5)}.c6{background:var(--c6)}.c7,.cx{background:var(--c7)}
.crewL{font-weight:800}.k0{color:var(--c0)}.k1{color:var(--c1)}.k2{color:var(--c2)}.k3{color:var(--c3)}.k4{color:var(--c4)}.k5{color:var(--c5)}.k6{color:var(--c6)}.k7{color:var(--c7)}
.crewTxt{white-space:nowrap;font-weight:700}
.seg.crews button.sel{background:#fff;color:var(--ink);border:2px solid var(--navy)}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg button{border:2px solid #c3cfdf;background:#fff;border-radius:12px;padding:12px 16px;min-height:52px;font-weight:700;font-size:1rem;color:var(--ink);flex:1 1 110px}
.seg button.sel{border-color:var(--navy);background:var(--navy);color:#fff}
.banner{background:#fff4d6;border:1px solid #f0d58a;border-radius:12px;padding:12px 14px;margin-bottom:12px;font-weight:600}
.banner.done{background:#e3f6ec;border-color:#a8dcc0}
.next{background:linear-gradient(135deg,#0b3d6e,#14639f);color:#fff;border-radius:18px;padding:18px;margin-bottom:14px}
.next .lbl{letter-spacing:.2em;font-weight:800;font-size:.85rem;opacity:.85}
.next .nm{font-size:2.6rem;font-weight:800;line-height:1.1;margin:4px 0}
.next .meta{opacity:.92;margin-bottom:12px}
.next .then{margin-top:12px;font-size:.9rem;opacity:.9}
.res{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.res button{border:0;border-radius:14px;min-height:72px;font-size:1.2rem;font-weight:800;color:#fff}
.res .w{background:var(--green)}.res .r{background:var(--red)}.res .n{background:var(--amber)}.res .u{background:var(--grey)}
.res button:disabled{opacity:.5}
.res small{display:block;font-weight:500;font-size:.75rem;opacity:.9}
.tbl{width:100%;border-collapse:collapse}
.tbl th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);text-align:left;padding:6px 8px;border-bottom:2px solid var(--line)}
.tbl td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.tbl th.num{text-align:right}
.tbl tr.inel{opacity:.42;background:#eef1f5}
.tbl tr.inel td.nm{text-decoration:line-through}
.tbl tr.nextrow{background:#e8f2ff;font-weight:700;outline:2px solid #1f6feb;outline-offset:-2px}
.tbl td.nm{font-weight:600}
.wrap{overflow-x:auto}
.pill{display:inline-block;border-radius:6px;padding:1px 8px;font-size:.78rem;font-weight:700;background:#e6edf6}
.p-Worked{background:#d8f3e5;color:#0d6b43}.p-Refused{background:#fbdcdc;color:#9b2222}.p-No{background:#fdebc8;color:#8a5a00}.p-Unavailable{background:#e3e7ee;color:#444}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.row.gap{gap:14px}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.filters input,.filters select{width:100%}
tr.undone td{text-decoration:line-through;color:#8793a5}
tr.t-undo td,tr.t-admin td,tr.t-reset td{background:#fbf7ea}
.modal{position:fixed;inset:0;background:rgba(10,20,35,.55);display:grid;place-items:center;z-index:20;padding:14px}
.modal[hidden]{display:none}
.modal .box{background:#fff;border-radius:16px;padding:18px;max-width:420px;width:100%}
.modal input{width:100%}
#toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:#14202e;color:#fff;padding:12px 18px;border-radius:12px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:30;max-width:92vw;text-align:center}
#toast.show{opacity:1}#toast.err{background:var(--red)}
.admin-tbl input{min-height:40px;padding:6px 8px}
.admin-tbl td{padding:5px 4px}
.warn{background:#fdebeb;border:1px solid #f1b5b5;border-radius:10px;padding:10px 12px;margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
@media(max-width:700px){
  .grid2{grid-template-columns:1fr}
  .next .nm{font-size:2.2rem}
  .tbl td,.tbl th{padding:8px 3px;font-size:.85rem}.tbl th{font-size:.62rem}.btn.sm{padding:6px 8px;font-size:.78rem}
  .hide-m{display:none}
  main{padding:10px}
  .t2{display:none}
  .brand .t2{display:block}
  nav{gap:2px;width:100%}
  nav a{padding:7px 8px 8px;font-size:.72rem;min-height:34px;border-radius:9px 9px 0 0}
  nav a.on{padding-top:9px;padding-bottom:10px}
}

.preview{background:#f3f7fc;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:12px;font-size:.92rem}
.preview div{margin:2px 0}

.lock{background:#e8f0fb;border:1px solid #b9cdea;color:#12325a;border-radius:10px;padding:8px 12px;margin-bottom:10px;font-size:.92rem}
.tbl td.wk{color:#0d6b43;font-weight:700}
tr.t-week td{background:#eaf3ff}

.p-Accepted{background:#d8f3e5;color:#0d6b43}
.cv{border-left:5px solid #b7791f}
.cvline{margin-top:10px;padding:8px 12px;border-radius:10px;font-size:.95rem}
.cvline.ok{background:#e3f6ec}.cvline.bad{background:#fdebc8}
tr.t-cover td,tr.t-covered td{background:#fff5e0}

/* month calendar panel (Call-Out screen). Wide screens: fixed in the blank right margin (does not move anything); otherwise below the page content. */
#rightCol{max-width:520px}
#calPanel{margin-top:14px}
.cal{padding:10px}
.calhd{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.calhd b{flex:1;text-align:center}
.calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
.calgrid .wh{font-size:.62rem;font-weight:700;text-transform:uppercase;color:var(--mute);text-align:center;padding:2px 0}
.cd{border:1px solid var(--line);border-radius:6px;padding:2px 3px 3px;min-height:58px;background:#fff;font-size:.72rem}
.cd.oth{background:#f4f6f9;opacity:.6}
.cd .dn{font-weight:700;font-size:.74rem;margin-bottom:1px}
.cd.today{border:2px solid var(--navy);background:#e8f0fb}.cd.today .dn{color:var(--navy)}
.cd .sh{display:flex;align-items:center;gap:2px;line-height:1.35;border-radius:4px;padding:0 1px}
.cd .ic{font-size:.7rem;color:#444;width:.95em;text-align:center}
.cd .cb{display:inline-block;color:#fff;border-radius:999px;font-weight:800;font-size:.66rem;min-width:1.45em;text-align:center;padding:0 3px}
.cd.seld{border-color:#d98a00}
.cd .sh.sels{outline:2px solid #d98a00;background:#fff3d6}
@media(min-width:1780px){
  #rightCol{position:fixed;top:84px;left:calc(50% + 566px);width:300px;max-width:none;max-height:calc(100vh - 96px);overflow:auto}
  #calPanel{margin-top:0}
}

/* Work Schedule page */
.wsd{border-bottom:1px solid var(--line);padding:10px 0}
.wsl{font-size:1.02rem;line-height:1.7}
.wsSh{font-weight:800;color:#555}
.wsoff{margin:3px 0 0 18px;color:#9b2222;font-weight:600}
.wscv{margin:3px 0 0 18px;color:#0d6b43;font-weight:600}
.wsnt{margin:3px 0 0 18px;font-style:italic}
.wsed{background:#f3f7fc;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-top:8px}
.wsu{padding:8px 0;border-bottom:1px solid var(--line)}
.wsud{font-weight:800}
.wsul{margin:2px 0 0 14px}

/* read-only Work Schedule panels (Call-Out page): fixed in the blank LEFT margin on wide screens (mirrors the calendar), otherwise below the content */
#wsPanel{margin-top:0;max-width:520px}
.wp{padding:10px;margin-bottom:12px}
.wph{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wpe{font-size:.78rem;font-weight:700;color:var(--navy);text-decoration:none;background:#e6edf6;border-radius:8px;padding:3px 9px}
.wpr{border-top:1px solid var(--line);padding:5px 4px;margin-top:5px;font-size:.78rem;line-height:1.35}
.wpr.today{background:#e8f0fb;border:2px solid var(--navy);border-radius:8px}
.wpr.past{opacity:.55}
.wpd{font-weight:800}
.wpt{background:var(--navy);color:#fff;border-radius:6px;font-size:.62rem;padding:0 5px;margin-left:4px;vertical-align:1px}
.wpl .ic{display:inline-block;width:1.1em;color:#444}
.wpl .cb{display:inline-block;color:#fff;border-radius:999px;font-weight:800;font-size:.68rem;min-width:1.5em;text-align:center;padding:0 4px}
.wpl.wpu{margin-top:2px}
.wpoff{color:#9b2222;font-weight:700;margin-left:1.2em}.wpcv{color:#0d6b43;font-weight:700;margin-left:1.2em}.wpnt{font-style:italic;margin-left:1.2em}
@media(min-width:1780px){
  #wsPanel{position:fixed;top:84px;right:calc(50% + 566px);width:clamp(300px,calc(50% - 590px),380px);max-width:none;max-height:calc(100vh - 96px);overflow:auto}
}

/* Upcoming Train Schedule panel (Main page right column, under Messages) */
.trp .trr{border-top:1px solid var(--line);padding:5px 4px;margin-top:5px;font-size:.8rem;line-height:1.35}
.trl{display:inline-block;color:#fff;border-radius:999px;font-weight:800;font-size:.7rem;padding:0 8px;white-space:nowrap}
.trl.k-now{background:#12803f}.trl.k-next{background:#c2570c}.trl.k-then{background:#1f5fd0}.trl.k-other{background:#555}
.trr.k-now{background:#e5f5ea;border-radius:6px;border:1px solid #8fd0a8}
.trt{font-weight:600}

/* header clock (left of the Live indicator) */
.clock{font-size:.85rem;font-weight:600;color:#e3eefa;white-space:nowrap;font-variant-numeric:tabular-nums}
.clock .ck-z{opacity:.75;font-weight:500}
@media(max-width:700px){.clock{position:absolute;top:20px;right:14px;font-size:.8rem}.clock .ck-d,.clock .ck-z{display:none}}

/* operator phone links (signed-in users, active call-out) */
a.tel{font-size:.78rem;font-weight:700;color:var(--navy);white-space:nowrap;margin-left:6px;text-decoration:none;border-bottom:1px dotted currentColor}
a.tel.big{font-size:1.05rem;color:#fff;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:10px;padding:4px 10px;margin-left:8px;vertical-align:middle;display:inline-block}
.tbl tr.inel a.tel{pointer-events:auto}

/* Vacation Request tab badge + notices */
.navBadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:#ffd24d;color:#14202e;font-size:.72rem;font-weight:800;line-height:1;box-shadow:0 0 0 1px rgba(0,0,0,.15);text-shadow:none}
.navBadge[hidden]{display:none!important}
.toSt{display:inline-block;border-radius:6px;padding:2px 8px;font-size:.78rem;font-weight:700}
.to-pending{background:#fff4d6;color:#8a5a00}
.to-approved{background:#d8f3e5;color:#0d6b43}
.to-denied{background:#fbdcdc;color:#9b2222}
.to-cancelled{background:#e3e7ee;color:#555}
.toCard{border-left:4px solid var(--navy);margin-bottom:10px}
.toCard.pending{border-left-color:var(--amber)}
.toCard.approved{border-left-color:var(--green)}
.toCard.denied{border-left-color:var(--red)}
#toNotice .banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap}



/* Vacation Request — compact per-date form */
.toForm .toHead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:10px}
.toCH{font-weight:900;font-size:1.25rem;letter-spacing:.04em}
.toBi{font-weight:800;font-size:1.05rem;color:var(--navy)}
.toMetaSimple{display:grid;grid-template-columns:1fr 120px;gap:10px 12px;margin-bottom:12px}
.toMetaSimple .toPer{grid-column:1/-1}
.toDayTbl{width:100%;border-collapse:collapse;font-size:.92rem}
.toDayTbl th,.toDayTbl td{border-bottom:1px solid var(--line);padding:6px 4px;vertical-align:middle}
.toDayTbl th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);text-align:left}
.toDayTbl td.toDate{font-weight:700;white-space:nowrap;width:7rem}
.toDayTbl select.toCode{width:100%;min-width:0;min-height:42px}
.toDayTbl input.toHrs{width:5.5rem;min-height:42px;text-align:center}
.toRunTotal{margin:10px 0;font-size:.95rem;padding:8px 10px;background:#f0f5fb;border-radius:10px}
@media(max-width:700px){
  .toMetaSimple{grid-template-columns:1fr}
  .toDayTbl td.toDate{width:auto}
  .toDayTbl input.toHrs{width:4.5rem}
}

/* 2026 Lakeside Vacation */
.bvStats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0 8px}
.bvStats div{background:#f0f5fb;border-radius:12px;padding:10px 8px;text-align:center}
.bvStats b{display:block;font-size:1.35rem;font-weight:800;color:var(--navy)}
.bvStats span{font-size:.72rem;color:var(--mute);text-transform:uppercase;letter-spacing:.04em}
.bvProg{height:10px;background:#e6edf6;border-radius:999px;overflow:hidden;margin:8px 0}
.bvProg div{height:100%;border-radius:999px}
.bvChips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.bvChip{display:inline-block;border:1.5px solid;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700}
.bvMonth{margin-bottom:8px}
.bvOverview td.nm{white-space:nowrap}
@media(max-width:700px){.bvStats{grid-template-columns:repeat(2,1fr)}.bvStats div:last-child{grid-column:1/-1}}

/* Jamie-only login notices (non-disruptive strip under header) */
#loginNoticeBar{display:none;background:#0b3d6e;color:#fff;padding:8px 14px;font-size:.92rem;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:2px solid #ffd24d}
#loginNoticeBar.show{display:flex}
#loginNoticeBar b{font-weight:800}
#loginNoticeBar .lnMuted{opacity:.85;font-size:.85rem}
#loginNoticeBar button{background:#ffd24d;color:#0b3d6e;border:0;border-radius:8px;padding:5px 10px;font-weight:700;cursor:pointer}
#loginNoticeBar .lnList{flex:1;min-width:200px}


/* Company values — quiet site footer (does not affect Call-Out layout) */
.siteValues{border-top:1px solid var(--line);background:#e8eef5;color:var(--mute);margin-top:8px;padding:12px 14px 18px}
.siteValues .svInner{max-width:1100px;margin:0 auto}
.siteValues .svTitle{font-weight:800;font-size:.88rem;color:var(--navy);letter-spacing:.02em;margin:0 0 8px}
.siteValues .svList{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 18px;counter-reset:sv}
.siteValues .svList li{font-size:.78rem;line-height:1.35;padding:2px 0;counter-increment:sv}
.siteValues .svList li::before{content:counter(sv) ") ";font-weight:700;color:var(--navy)}
@media(max-width:700px){
  .siteValues{padding:10px 12px 14px}
  .siteValues .svList{grid-template-columns:1fr;gap:3px}
  .siteValues .svTitle{font-size:.84rem}
}


/* Site-only Messages (chip + modal panel) */
#msgBtn{position:relative;display:inline-flex;align-items:center;gap:6px}
#msgBtn .navBadge{margin-left:2px}
.modal .box.msgPanel{max-width:520px}.msgPanel{max-width:520px;width:100%;max-height:min(88vh,720px);overflow:auto}
.msgPanel h2{margin-bottom:6px}
.msgHint{font-size:.82rem;color:var(--mute);margin:0 0 10px}
.msgPeople{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px;max-height:140px;overflow:auto;padding:4px 0}
.msgPeople label{display:inline-flex;align-items:center;gap:5px;background:#e6edf6;border:1px solid var(--line);border-radius:999px;padding:5px 10px;font-size:.82rem;font-weight:600;cursor:pointer;color:var(--navy)}
.msgPeople label.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.msgPeople input{accent-color:var(--navy)}
.msgList{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.msgItem{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;cursor:pointer}
.msgItem.unread{border-left:4px solid var(--navy);background:#f3f7fc}
.msgItem .mh{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:.82rem}
.msgItem .mh b{color:var(--navy)}
.msgItem .mt{margin-top:4px;font-size:.95rem;white-space:pre-wrap;word-break:break-word}
.msgItem .mm{color:var(--mute);font-size:.78rem;margin-top:4px}
.msgSeg{margin-bottom:8px}
#msgText{width:100%;min-height:72px}


/* Main landing: LEFT weather · CENTER welcome/crew · RIGHT messages (mirrors Call-Out sides) */
.mainPage{display:flex;flex-direction:column;gap:14px}
.mainPage .mainSide{max-width:520px;width:100%}
.mainPage #mainCenter{display:flex;flex-direction:column;gap:8px;min-width:0}
/* phones: crew first, then weather, then messages */
@media(max-width:899px){
  .mainPage #mainCenter{order:-1}
}
/* tablet / laptop: 3 columns inside main */
@media(min-width:900px){
  .mainPage{display:grid;grid-template-columns:minmax(200px,0.9fr) minmax(280px,1.4fr) minmax(200px,1fr);gap:14px;align-items:start}
  .mainPage .mainSide{max-width:none}
  .mainPage #mainCenter{order:0}
}
/* wide desktop: fixed side panels in the blank margins (same idea as Call-Out #wsPanel / #rightCol) */
@media(min-width:1780px){
  .mainPage{display:block}
  .mainPage #mainLeft{position:fixed;top:84px;right:calc(50% + 566px);width:clamp(280px,calc(50% - 590px),380px);max-width:none;max-height:calc(100vh - 96px);overflow:auto;z-index:3}
  .mainPage #mainRight{position:fixed;top:84px;left:calc(50% + 566px);width:300px;max-width:none;max-height:calc(100vh - 96px);overflow:auto;z-index:3}
  .mainPage #mainCenter{position:relative}
}
.wxCard .wxNow{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.wxCard .wxTemp{font-size:2.4rem;font-weight:800;color:var(--navy);line-height:1}
.wxCard .wxCond{font-size:1.1rem;font-weight:700}
.wxCard .wxMeta{color:var(--mute);font-size:.85rem;margin-top:4px}
.wxCard .wxTonight{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:.92rem}
.mainMsgList{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.mainMsgList .msgItem{cursor:default}
.mainQuick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* Main welcome + crew status — accent follows signed-in mapped crew (A blue / B green / C orange / D purple) */
.mainWelcome{
  font-size:1.35rem;font-weight:800;margin:2px 0 8px;padding:12px 16px;
  border-radius:12px;border:1px solid #d6dbe1;
  background:#fff;color:#1f2933;box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.mainCrewCard{
  border:1px solid;border-left-width:5px;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
}
.mainCrewCard h2{font-weight:800}
.mainCrewCard > .small.muted:first-of-type{
  margin-bottom:10px!important;padding:9px 12px;border-radius:10px;border:1px solid;font-weight:700;
}
.mainCrewCard > .small.muted:first-of-type b{font-weight:800}
.mainCrewCard .mainCrewBlock{margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid transparent}
.mainCrewCard .mainCrewLbl{font-weight:800;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.mainOp{font-weight:600;font-size:.92rem}
.mainOp.off{font-weight:700}
.mainOp.off i{font-weight:500;font-style:normal;opacity:.9}
.mainCrewCard > .small.muted:last-of-type{
  margin-top:12px!important;padding:9px 12px;border-radius:10px;border:1px solid;font-weight:700;
}

/* Crew card — plain neutral (no crew colors) */
.mainCrewCard{color:#1f2933;background:#fff;border:1px solid #d6dbe1;border-left-width:1px}
.mainCrewCard h2{color:#1f2933}
.mainCrewCard > .small.muted:first-of-type,.mainCrewCard > .small.muted:last-of-type{background:#f7f8fa;border-color:#e2e6ea;color:#1f2933}
.mainCrewCard .mainCrewBlock{background:#f7f8fa;border-color:#e2e6ea}
.mainCrewCard .mainCrewLbl,.mainCrewCard .mainOp.on{color:#1f2933}
.mainCrewCard .mainCrewLbl.off,.mainCrewCard .mainOp.off{color:#b42318}







.mainPage{position:relative}
.mainPage #mainCenter{position:relative}

/* Full-year crew schedule */
.yrTbl{border-collapse:collapse;width:100%;table-layout:fixed;font-size:.72rem}
.yrTbl th,.yrTbl td{border:1px solid #d6dbe1;text-align:center;padding:1px 0;height:17px}
.yrTbl thead th{background:#f2f5f9;font-weight:700;color:#3a4654}
.yrTbl th.yrM{width:62px;text-align:left;padding-left:4px;background:#f7f8fa;color:#14202e;font-weight:800}
.yrTbl .yrS{width:34px;font-weight:700;color:#66758a;white-space:nowrap}
.yrTbl tr.yrN td{border-bottom:2px solid #9aa5b1}.yrTbl tr.yrN th.yrM{border-bottom:2px solid #9aa5b1}
.yrTbl tr.yrN td:not(.yrX){background:#f3f4f7}
.yrTbl td.yrW{background:#fbf7ef}.yrTbl tr.yrN td.yrW{background:#efece4}
.yrTbl td.yrX{background:#e9ecef}
.yrTbl td.yrT{outline:2px solid #0b3d6e;outline-offset:-2px}
.yrL{font-weight:800}
.yrLeg{display:flex;flex-wrap:wrap;gap:6px 16px;margin:8px 0;font-size:.8rem;color:#3a4654;align-items:center}
.yrSw{display:inline-block;width:12px;height:12px;border:1px solid #d6dbe1;vertical-align:-2px}

.swCal{border:1px solid #d8d2c8;border-radius:10px;padding:8px;margin:4px 0 8px;max-width:440px}
.swNav{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:6px}
.swGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.swH{text-align:center;font-size:.75rem;font-weight:700;color:#777}
.swDay{min-height:44px;border:1px solid #eee;border-radius:6px;background:#fff;font:inherit;font-size:.85rem;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px;color:#999}
.swDay.on{cursor:pointer;color:#222;border-color:#cfc6b8;background:#faf7f2}
.swDay.on:hover{border-color:#5a4636}
.swDay.sel{outline:3px solid #5a4636;outline-offset:-1px;background:#efe6d8}
.swDay.past{opacity:.45}
.swDay .cb{display:inline-block;color:#fff;border-radius:999px;font-weight:800;font-size:.7rem;min-width:1.5em;text-align:center;padding:0 5px;margin-top:2px}

.swView{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.swView .swCal{flex:1 1 260px;max-width:340px;margin:0}
.swRO .swDay{min-height:34px;font-size:.8rem}
.swDay.swA{outline:3px solid #5a4636;outline-offset:-2px;background:#efe6d8;color:#222;font-weight:700}
.swDay.swB{outline:3px dashed #6e2f34;outline-offset:-2px;background:#f6e9ea;color:#222;font-weight:700}
.swT{font-size:.65rem;font-weight:800;color:#555}
.swLeg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.85rem;margin-top:6px}
.swLeg i{display:inline-block;width:16px;height:14px;vertical-align:middle;margin-right:4px;border-radius:3px}
.swLeg i.swA{border:3px solid #5a4636;background:#efe6d8}.swLeg i.swB{border:3px dashed #6e2f34;background:#f6e9ea}

.swPairs{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.swPair{display:flex;flex-wrap:wrap;gap:8px}
.swPair .swCal{flex:1 1 260px;max-width:340px;margin:0}
.swDay.wk{background:#f3efe8;color:#222;border-color:#d8cfc2}
.swDay.swOff{background:#fff;color:#aaa;text-decoration:line-through}
.swLeg i.swWk{border:1px solid #d8cfc2;background:#f3efe8}
@media (max-width:620px){.swPair{flex-direction:column}.swPair .swCal{max-width:none}}
.swDay.wk.swA{background:#efe6d8;font-weight:700}.swDay.wk.swB{background:#f6e9ea;font-weight:700}

nav a[data-r="oncall"]{background:#8a5a3c;color:#f6ece4}
nav a[data-r="oncall"].on{box-shadow:inset 0 3px 0 #f6ece4,0 -2px 8px rgba(0,0,0,.18)}
.ocRow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid #eee}
.ocRow.cur{background:#faf6f1}
.ocRow .seg button{min-height:44px}
.ocRow .seg small{display:block;font-size:.7rem;opacity:.75}
.ocCard{margin-top:10px}

nav a[data-r="eom"]{background:#7d7656;color:#f4f1e6}
nav a[data-r="eom"].on{box-shadow:inset 0 3px 0 #f4f1e6,0 -2px 8px rgba(0,0,0,.18)}
.eomNom{padding:8px 0;border-top:1px solid #eee}

.eomWin{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-top:1px solid #eee;flex-wrap:wrap}
.eomWin img{width:120px;height:120px;object-fit:cover;border-radius:10px;border:1px solid #ddd}
.eomMainImg{width:100%;max-height:260px;object-fit:cover;border-radius:10px;margin-top:6px;border:1px solid #ddd}
