@font-face{font-family:UnitBlock;src:url('assets/fonts/NimbusSansNarrow-Bold.otf') format('opentype');font-weight:700;font-display:swap}
@font-face{font-family:UnitSans;src:url('assets/fonts/NimbusSans-Regular.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:UnitSans;src:url('assets/fonts/NimbusSans-Bold.otf') format('opentype');font-weight:700;font-display:swap}
:root{
  color-scheme:dark;
  --blue:#1f3d79;
  --deep:#173365;
  --wash:#31518c;
  --line:rgba(255,255,255,.22);
  --soft:rgba(255,255,255,.72);
  --faint:rgba(255,255,255,.09);
  --orange:#f58a00;
  --green:#49b47c;
  --amber:#ffb44f;
  --red:#ff6f73;
  font-size:clamp(12px,min(.94vw,1.46vh),16px)
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--blue)}
body{font:1rem/1.35 UnitSans,Arial,sans-serif;color:#fff}
h1,h2,h3,p{margin:0}
#board{height:100vh;min-height:680px;display:flex;flex-direction:column;overflow:hidden;background:var(--blue)}
.masthead{
  height:8.8rem;flex:0 0 auto;display:flex;align-items:center;gap:2.7rem;
  padding:.75rem 2.4rem 0;border-bottom:.28rem solid var(--orange);background:var(--blue)
}
.ses-logo{display:block;width:27rem;max-height:7.5rem;object-fit:contain;object-position:left center;background:var(--blue)}
.unit-title{flex:1;min-width:0;padding-left:2.6rem;border-left:1px solid var(--line)}
h1{
  font-family:UnitBlock,'Arial Narrow',Impact,sans-serif;font-size:5.25rem;font-weight:700;
  line-height:.88;letter-spacing:.035em;white-space:nowrap
}
.clock{min-width:17.5rem;display:flex;flex-direction:column;text-align:right}
.clock strong{font-family:UnitBlock,Impact,sans-serif;font-size:3.55rem;line-height:1;letter-spacing:.055em;font-variant-numeric:tabular-nums}
.clock span{margin-top:.5rem;color:var(--soft);font-size:max(12px,.82rem)}
main{flex:1;min-height:0;display:grid;grid-template-columns:21.5rem minmax(0,1fr)}
.attendance-rail{
  min-height:0;padding:1.45rem 1.8rem 1.2rem;background:var(--deep);
  display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.1)
}
.rail-heading,.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}
.rail-heading h2{font-family:UnitBlock,sans-serif;font-size:1.65rem;letter-spacing:.025em;text-transform:uppercase}
.rail-heading span,.section-head>span{color:var(--soft);font-size:max(11px,.72rem);white-space:nowrap}
.onsite-total{display:flex;align-items:center;gap:1rem;margin:.75rem 0 1rem}
.onsite-total>strong{font-family:UnitBlock,sans-serif;font-size:6rem;line-height:.86}
.onsite-total p{font-weight:700;font-size:1rem}
.onsite-total small{display:block;margin-top:.25rem;color:var(--soft);font-size:max(11px,.74rem)}
.attendance-list{flex:1;min-height:0}
.person{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:2.65rem;padding:.42rem 0;border-top:1px solid rgba(255,255,255,.15)}
.person-name{font-size:max(13px,.95rem);overflow-wrap:anywhere}
.person-name small{margin-left:.45rem;color:var(--soft);font-size:11px}
.person-time{color:var(--soft);font-size:max(11px,.75rem);font-variant-numeric:tabular-nums}
.rail-source,.section-source{margin-top:auto;padding-top:.65rem;color:var(--soft);font-size:11px}
.section-source.stale{color:var(--amber)}
.duty{margin-top:.7rem;padding-top:.85rem;border-top:.2rem solid var(--orange)}
.kicker{color:#ffc275;font-size:11px;font-weight:700;letter-spacing:.18em}
.duty-person{margin-top:.45rem}
.duty h3{font-family:UnitBlock,sans-serif;font-size:2.2rem;line-height:1.05;text-transform:uppercase;letter-spacing:.025em}
.duty p{margin-top:.25rem;color:var(--soft);font-size:max(12px,.8rem)}
.workspace{min-width:0;min-height:0;display:flex;flex-direction:column}
.summary-strip{
  min-height:6.6rem;flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);
  padding:.9rem 2rem;border-bottom:1px solid var(--line)
}
.summary{display:flex;align-items:center;gap:1rem}
.summary+.summary{padding-left:2rem;border-left:1px solid var(--line)}
.summary>strong{font-family:UnitBlock,sans-serif;font-size:4.35rem;line-height:.9}
.summary p{font-weight:700;font-size:.95rem}
.summary small{display:block;margin-top:.2rem;color:var(--soft);font-size:max(11px,.7rem)}
.current-board{
  flex:1;min-height:0;display:grid;grid-template-columns:1.18fr 1fr 1.05fr;
  gap:0;padding:1.25rem 2rem 1rem
}
.operations,.training,.contribution{min-width:0}
.training,.contribution{padding-left:1.65rem;border-left:1px solid var(--line)}
.operations,.training{padding-right:1.65rem}
.section-head{margin-bottom:.65rem}
.section-head h2{
  font-family:UnitBlock,sans-serif;font-size:1.85rem;line-height:1;
  letter-spacing:.04em;text-transform:uppercase
}
.readiness-summary{display:flex;align-items:baseline;gap:.55rem;margin:.55rem 0}
.readiness-summary strong{font-family:UnitBlock,sans-serif;font-size:2.55rem;line-height:1}
.readiness-summary span{color:var(--soft);font-size:max(12px,.78rem)}
.readiness-rule{height:.28rem;display:flex;gap:.3rem;margin:.5rem 0 .55rem}
.readiness-rule i{flex:1;background:currentColor}
.ready{color:var(--green)}.limited{color:var(--amber)}.unavailable{color:var(--red)}.unknown{color:#aab9d0}
.asset{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.42rem 0;border-bottom:1px solid rgba(255,255,255,.13)}
.asset>span{font-weight:700;font-size:max(12px,.83rem)}
.status{display:inline-flex;align-items:center;gap:.42rem;font-size:max(11px,.68rem);white-space:nowrap}
.status i{width:.5rem;height:.5rem;border-radius:50%;background:currentColor;box-shadow:0 0 0 .2rem rgba(255,255,255,.06)}
.maintenance{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--line)}
.task{display:grid;grid-template-columns:.55rem minmax(0,1fr) auto;align-items:start;gap:.55rem;padding:.42rem 0;border-bottom:1px solid rgba(255,255,255,.13)}
.task>i{width:.42rem;height:.42rem;margin-top:.35rem;border-radius:50%;background:var(--orange)}
.task strong{display:block;font-size:max(12px,.78rem)}
.task small{display:block;margin-top:.1rem;color:var(--soft);font-size:10px}
.task>span{color:#ffc275;font-size:10px;font-weight:700;white-space:nowrap}
.event{display:grid;grid-template-columns:4.3rem minmax(0,1fr);gap:.8rem;padding:.72rem 0;border-bottom:1px solid rgba(255,255,255,.15)}
.event-date{border-right:.2rem solid var(--orange)}
.event-date strong{display:block;font-family:UnitBlock,sans-serif;font-size:2.4rem;line-height:.9}
.event-date span{display:block;margin-top:.25rem;color:var(--soft);font-size:10px;text-transform:uppercase}
.event h3{font-size:max(13px,.9rem);line-height:1.2}
.event p{margin-top:.3rem;color:var(--soft);font-size:max(11px,.7rem)}
.leader-legend{display:flex;gap:.9rem;margin:-.15rem 0 .4rem;color:var(--soft);font-size:10px}
.leader-legend span{display:flex;align-items:center;gap:.3rem}
.leader-legend i{width:.55rem;height:.22rem;background:var(--orange)}
.leader-legend i.training-key{background:#8ab4f4}.leader-legend i.other-key{background:#65c39b}
.leader{padding:.42rem 0}
.leader-line{display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:baseline;gap:.4rem}
.leader-index{font-family:UnitBlock,sans-serif;color:#ffba62;font-size:1.15rem}
.leader-name{font-weight:700;font-size:max(12px,.78rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.leader-line>strong{font-family:UnitBlock,sans-serif;font-size:1.3rem}
.leader-line>strong small{margin-left:.12rem;color:var(--soft);font-size:9px;font-family:UnitSans}
.leader-bar{display:flex;height:.24rem;margin:.28rem 0 0 1.9rem;background:rgba(255,255,255,.1)}
.leader-bar i{background:var(--orange)}.leader-bar i.training-part{background:#8ab4f4}.leader-bar i.other-part{background:#65c39b}
.analytics{
  flex:0 0 17.25rem;min-height:0;display:grid;grid-template-columns:.88fr 1.24fr 1fr;
  padding:1rem 2rem 1.05rem;border-top:1px solid var(--line)
}
.analytics>section{min-width:0}
.analytics>section+section{margin-left:1.5rem;padding-left:1.5rem;border-left:1px solid var(--line)}
.analytics .section-head h2{font-size:1.55rem}
.report{width:100%;border-collapse:collapse;font-size:max(11px,.75rem)}
.report th{padding:0 0 .35rem;color:var(--soft);font-size:10px;font-weight:400;text-align:right;white-space:nowrap}
.report td{padding:.32rem 0;border-top:1px solid rgba(255,255,255,.14);text-align:right;font-variant-numeric:tabular-nums}
.report th:first-child,.report td:first-child{text-align:left}
.report td:nth-child(2){font-weight:700;color:#ffc275}
.availability-note{margin:-.15rem 0 .55rem;color:var(--soft);font-size:10px}
.availability-grid{display:grid;grid-template-columns:5.4rem repeat(7,1fr);gap:.28rem}
.availability-day{text-align:center;color:var(--soft);font-size:10px;text-transform:uppercase}
.availability-day span,.availability-day small{display:block}
.availability-day small{margin-top:.08rem;color:rgba(255,255,255,.48);font-size:9px}
.availability-row{display:contents}
.availability-row>strong{display:flex;align-items:center;font-size:max(11px,.7rem);white-space:nowrap}
.availability-row>span{
  display:flex;align-items:center;justify-content:center;min-height:2.05rem;
  border-bottom:.15rem solid var(--orange);background:var(--faint);
  font-family:UnitBlock,sans-serif;font-size:1.35rem;font-variant-numeric:tabular-nums
}
.activity-mix .mix-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.mix-columns>div+div{padding-left:1.1rem;border-left:1px solid rgba(255,255,255,.14)}
.mix-columns h3{margin:0 0 .55rem;color:var(--soft);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.plot-row{margin-bottom:.55rem}
.plot-label{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.2rem;font-size:max(10px,.67rem)}
.plot-track{height:.2rem;background:rgba(255,255,255,.13)}
.plot-fill{height:100%;background:var(--orange)}
.mix-columns>div+div .plot-fill{background:#8ab4f4}
.empty{padding:.7rem 0;color:var(--soft);font-size:12px}
.loading{padding:2rem}.loading-error{grid-column:1/-1}
footer{
  height:2.15rem;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:0 1.4rem;background:#132b58;color:rgba(255,255,255,.72);font-size:10px
}
#mode-note{color:#ffc275;letter-spacing:.08em}
.feed{display:flex;align-items:center;gap:.55rem;white-space:nowrap}
#feed-light{width:.45rem;height:.45rem;border-radius:50%;background:currentColor}
.feed[data-state=sample]{color:#ffc275}.feed[data-state=live]{color:#78d7aa}.feed[data-state=error]{color:#ff8c8f}
.feed-divider{opacity:.35}#feed-detail{color:rgba(255,255,255,.62)}
#feed-light.received{animation:pulse 1.6s ease-out 2}
@keyframes pulse{45%{box-shadow:0 0 0 .55rem rgba(255,194,117,0);opacity:.55}}
@media(max-height:900px) and (min-width:1100px){
  .masthead{height:7.8rem}.ses-logo{width:24rem;max-height:6.5rem}h1{font-size:4.65rem}
  .summary-strip{min-height:5.7rem;padding-top:.65rem;padding-bottom:.65rem}.summary>strong{font-size:3.8rem}
  .current-board{padding-top:.9rem;padding-bottom:.75rem}.analytics{flex-basis:15.4rem;padding-top:.75rem;padding-bottom:.75rem}
  .onsite-total{margin:.45rem 0 .65rem}.onsite-total>strong{font-size:5.25rem}.person{min-height:2.3rem;padding:.3rem 0}
  .duty{margin-top:.35rem;padding-top:.55rem}.duty h3{font-size:1.9rem}.asset{padding:.3rem 0}.task{padding:.28rem 0}
  .event{padding:.5rem 0}.event-date strong{font-size:2rem}.leader{padding:.3rem 0}
  .section-head h2{font-size:1.65rem}.availability-row>span{min-height:1.72rem}.report td{padding:.25rem 0}
}
@media(max-width:1450px) and (min-width:1000px){
  .masthead{gap:1.8rem;padding-left:1.7rem;padding-right:1.7rem}.ses-logo{width:22rem}.unit-title{padding-left:1.8rem}
  h1{font-size:4.2rem}.clock{min-width:14rem}.clock strong{font-size:3rem}main{grid-template-columns:19rem minmax(0,1fr)}
  .summary-strip,.current-board,.analytics{padding-left:1.4rem;padding-right:1.4rem}
  .current-board{grid-template-columns:1.12fr .95fr 1fr}.training,.contribution{padding-left:1rem}.operations,.training{padding-right:1rem}
  .analytics>section+section{margin-left:1rem;padding-left:1rem}.section-head>span{display:none}
  .task small{display:none}.activity-mix .mix-columns{gap:.7rem}.mix-columns>div+div{padding-left:.7rem}
}
@media(max-width:999px){
  :root{font-size:16px}#board{height:auto;min-height:100vh;overflow:visible}.masthead{height:auto;padding:1rem 1.2rem;gap:1.2rem;flex-wrap:wrap}
  .ses-logo{width:17rem}.unit-title{padding-left:1.2rem}h1{font-size:3.2rem}.clock{width:100%;min-width:0;flex-direction:row;align-items:center;justify-content:space-between;text-align:left}
  .clock strong{font-size:2.5rem}.clock span{margin:0}main{grid-template-columns:1fr}.attendance-rail{min-height:30rem}
  .summary-strip{padding:1.2rem}.current-board{grid-template-columns:1fr;padding:1.2rem}.training,.contribution{padding:1.2rem 0 0;margin-top:1.2rem;border-left:0;border-top:1px solid var(--line)}
  .operations,.training{padding-right:0}.analytics{flex-basis:auto;grid-template-columns:1fr;padding:1.2rem}.analytics>section+section{margin:1.2rem 0 0;padding:1.2rem 0 0;border-left:0;border-top:1px solid var(--line)}
  footer{height:auto;min-height:2.5rem;flex-wrap:wrap;padding:.7rem 1rem}
}
@media(max-width:600px){
  .ses-logo{width:13rem}.unit-title{width:100%;padding:0;border-left:0}h1{font-size:3rem}
  .summary-strip{gap:.5rem}.summary{display:block}.summary+.summary{padding-left:.5rem}.summary>strong{font-size:3rem}.summary p{font-size:12px}.summary small{font-size:10px}
  .activity-mix .mix-columns{grid-template-columns:1fr}.mix-columns>div+div{padding:1rem 0 0;border-left:0;border-top:1px solid var(--line)}
  .availability-grid{grid-template-columns:4.7rem repeat(7,1fr);gap:.15rem}.availability-row>span{font-size:1rem}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
