.vent{
  --kb-paper:#fff;--kb-ink:#111;--kb-head:var(--navy);--kb-muted:#55606f;--kb-rule:#8b93a1;
  --kb-zebra:#f4f5f7;--kb-strong:#e6e9ee;--kb-band:var(--navy);--kb-frame:var(--navy);--kb-key:var(--red);
  --cell:#f3efe4;--cell-line:#8d815f;
  --warn:#8a5a00;--warn-bg:#fdf3dc;--warn-line:#f0d9a3;
}
:root:not([data-theme="dark"]) .vent{--muted:#5f6a7d;--field-line:#8792a5}
[data-theme="dark"] .vent{
  --kb-paper:var(--surface);--kb-ink:var(--text);--kb-head:var(--heading);--kb-muted:var(--muted);--kb-rule:#6b7b95;
  --kb-zebra:#1a2942;--kb-strong:#22324f;--kb-band:#0b1320;--kb-frame:#6b7b95;--kb-key:var(--link);
  --cell:#22324f;--cell-line:#8fa0bb;
  --warn:#f0c674;--warn-bg:#33280f;--warn-line:#6b5420;
}

.vent :focus-visible{outline:2px solid var(--heading);outline-offset:2px}
.vent ::selection{background:var(--heading);color:var(--surface)}
.vent button:disabled{opacity:.5;cursor:not-allowed}
.vent .btn-ghost{box-shadow:inset 0 0 0 1px var(--field-line)}
.vent .btn-ghost:hover:not(:disabled){background:var(--surface);box-shadow:inset 0 0 0 1px var(--heading)}
.vent button.link{background:none;padding:0;color:var(--link);text-decoration:underline;text-underline-offset:.15em}
.vent [hidden]{display:none!important}

.desk{display:grid;grid-template-columns:minmax(0,880px) 300px;gap:2.5rem;justify-content:center;align-items:start;padding-top:.5rem}

.page{background:var(--kb-paper);color:var(--kb-ink);min-height:calc(880px * 4 / 3);padding:28px 32px 32px;border-radius:3px;
  box-shadow:0 1px 2px rgba(22,35,58,.10),0 22px 44px -22px rgba(22,35,58,.38);font-variant-numeric:tabular-nums}
.page-head{display:grid;grid-template-columns:104px minmax(0,1fr);gap:16px;align-items:center;margin-bottom:18px}
.insignia{aspect-ratio:1;background:var(--irre-logo) center/contain no-repeat}
.page h1{font-size:2.2rem;line-height:1.1;margin:0;color:var(--kb-head)}
.loaded{margin:.3rem 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;color:var(--kb-muted);font-size:1.06rem}

.page input,.page select{font:inherit;color:var(--kb-ink);background:var(--cell);border:0;border-bottom:1.5px solid var(--cell-line);
  border-radius:2px 2px 0 0;padding:.1rem .3rem}
.page input{-moz-appearance:textfield;appearance:textfield;text-align:right}
.page input::-webkit-inner-spin-button,.page input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.page input:hover,.page select:hover{border-bottom-color:var(--kb-head)}
.page [data-warn]{background:var(--warn-bg);border-bottom-color:var(--warn);color:var(--warn)}
.page [aria-invalid=true]{background:var(--danger-bg);border-bottom-color:var(--danger);color:var(--danger)}
.page input::placeholder{color:var(--kb-muted);opacity:1;font-weight:400}
.page input.mission{display:block;width:100%;max-width:26rem;margin:.4rem 0 0;text-align:left;font-weight:600;font-size:1.1rem}

.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.weather{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:14px;align-items:start}
.weather .sheet{margin-top:0}
.sheet.winds th:first-child{width:144px}
.winds thead th{white-space:normal;line-height:1.1}
.winds .arrow-col{width:44px;text-align:center;padding:0}
.winds .arrow-col svg{display:block;margin:0 auto;color:var(--kb-head);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.winds .is-calm svg{opacity:0}
.sheet.ground th:first-child{width:62%}

.sheet{width:100%;table-layout:fixed;border-collapse:collapse;border:2px solid var(--kb-frame);font-size:.95rem;margin-top:14px}
.sheet th:first-child{width:176px}
.legs{font-size:.86rem}
.legs th:first-child{width:118px}
.legs thead th,.legs thead td{font-size:.74rem;white-space:normal;line-height:1.1}
.legs th,.legs td{padding:4px 4px}
.legs tbody th input{width:100%;text-align:left;font-weight:600}
.legs thead .heading{width:62px}
.legs td.heading{background:var(--kb-strong);font-family:Oswald,"Arial Narrow",sans-serif;font-weight:500;font-size:1.45rem;line-height:1;color:var(--kb-head);
  box-shadow:inset 2px 0 0 var(--kb-frame),inset -2px 0 0 var(--kb-frame)}
.legs td.time{font-weight:700}
.legs td.aux{color:var(--kb-muted);font-size:.78rem}
.legs thead th.aux{color:rgba(255,255,255,.78)}
.sheet thead th,.sheet thead td{background:var(--kb-band);color:#fff;font-family:Oswald,"Arial Narrow",sans-serif;font-weight:500;font-size:.82rem;letter-spacing:.03em}
.sheet thead th:first-child{font-size:1rem}
.sheet th,.sheet td{padding:5px 6px;text-align:right;white-space:nowrap;height:36px}
.sheet th:first-child{text-align:left;font-weight:600}
.sheet tbody tr:nth-child(even of :not([hidden])){background:var(--kb-zebra)}
.sheet tr.strong{background:var(--kb-strong);font-weight:600}
.sheet td input{width:100%}
.sheet .act{width:26px;padding:0 4px 0 0}
.icon{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border-radius:4px;background:none;color:var(--kb-muted)}
.icon:hover{background:var(--danger-bg);color:var(--danger)}
.add{display:block;width:100%;min-height:44px;padding:.35rem;background:none;border:2px dashed var(--cell-line);border-top:0;border-radius:0;
  color:var(--kb-muted);font-weight:600;font-size:.87rem}
.add:hover{background:var(--cell);color:var(--kb-head);border-color:var(--kb-head)}
.foot{margin:16px 0 0;color:var(--kb-muted);font-size:.82rem}

.rail{align-self:stretch;display:flex;flex-direction:column;gap:.6rem}
.rail h2{font-size:1.05rem;margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--line)}
.rail p{margin:0}
.status{position:sticky;top:var(--irre-topbar-offset,0px);z-index:1;display:flex;flex-direction:column;gap:.6rem;
  padding:1rem 0 .6rem;margin-top:-1rem;background:var(--bg)}
.echo{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.echo .name{display:block;font-family:Oswald,"Arial Narrow",sans-serif;letter-spacing:.12em;font-size:.82rem;color:var(--link)}
.echo strong{font-family:Oswald,"Arial Narrow",sans-serif;font-weight:500;font-size:1.7rem;line-height:1.1;color:var(--heading);font-variant-numeric:tabular-nums;white-space:nowrap}
.echo strong span+span{font-size:.55em;color:var(--muted)}
.issues{padding:.5rem .7rem;border-radius:6px;background:var(--danger-bg);border:1px solid var(--danger-line);color:var(--danger);font-size:.92rem}
.issues p{font-weight:600}
.issues ul{margin:.2rem 0 0;padding-left:1.1rem}
.issues.is-hint{background:var(--surface);border-color:var(--line);color:var(--text)}
.issues.is-hint p{font-weight:400}
.issues.is-warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn)}
.issues.is-warn p{font-weight:600}
.issues .check{margin-top:.5rem;padding-top:.45rem;border-top:1px solid currentColor;color:var(--warn)}
.issues .check:first-child{margin-top:0;padding-top:0;border-top:0}
.issues-toggle{display:none}
.vent button.primary:disabled{background:var(--surface-alt);color:var(--muted);opacity:1;box-shadow:inset 0 0 0 1px var(--field-line)}
.notice{font-size:.92rem}
.actions{display:flex;flex-wrap:wrap;gap:.5rem}
.field{display:flex;flex-direction:column;gap:.25rem;font-weight:600;color:var(--heading);font-size:.92rem}
.rail select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--field-line);border-radius:6px;padding:.4rem .5rem}
.rail [data-action=reset]{align-self:flex-start}
.sources summary{cursor:pointer;font-size:.87rem;color:var(--muted);padding:.15rem 0;width:fit-content}
.sources ul{margin:.35rem 0 0;padding-left:1.1rem}
.glossary{margin:.35rem 0 0}
.glossary dt{font-weight:600;color:var(--heading)}
.glossary dd{margin:0 0 .4rem}

@media(pointer:coarse){
  .vent select,.vent input[type=number],.vent input[type=text]{min-height:44px;font-size:1rem}
  .vent button{min-height:44px}
  .icon{width:44px}
  .sources summary{padding:.7rem 0}
}

@media screen and (max-width:1180px){
  .desk{grid-template-columns:minmax(0,880px)}
  .status{position:fixed;top:auto;left:0;right:0;bottom:0;z-index:5;gap:.4rem;margin:0;padding:.5rem 16px calc(.5rem + env(safe-area-inset-bottom));
    border-top:1px solid var(--line)}
  .status .issues{font-size:.87rem;padding:.35rem .6rem}
  html{scroll-padding-bottom:calc(var(--status-h,0px) + 16px)}
  .issues.can-fold .issues-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:0;
    background:none;color:inherit;font-weight:600;text-align:left}
  .issues.can-fold .issues-toggle svg{transform:rotate(180deg);transition:transform .2s cubic-bezier(.16,1,.3,1)}
  .issues.can-fold.is-open .issues-toggle svg{transform:none}
  .issues.can-fold:not(.is-open) .issues-body{display:none}
  .issues-body{max-height:40vh;overflow:auto}
  .rail h2:first-of-type{margin-top:0;padding-top:0;border-top:0}
  .vent{padding-bottom:calc(var(--status-h,9rem) + 24px)}
}
@media screen and (max-width:900px){
  .page{min-height:0}
  .legs,.legs thead,.legs thead tr,.legs tbody,.legs tfoot,.legs td{display:block}
  .legs th:first-child{width:auto}
  .legs thead th:not(:first-child),.legs thead td,.legs td.pad{display:none}
  .legs thead th{display:block;height:auto;padding:6px 10px}
  .legs tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px;padding:8px 10px}
  .legs tbody th,.legs tfoot th{grid-column:1/-1;height:auto;padding:0}
  .legs tr[data-row] th{grid-column:1/-2}
  .legs th,.legs td{padding:0;height:auto}
  .legs tr[data-row] .act{grid-column:-2;grid-row:1;justify-self:end;width:auto}
  .legs tr[data-row] td.heading{grid-column:span 2;font-size:1.9rem;padding:4px 8px;border-radius:2px;box-shadow:inset 0 0 0 2px var(--kb-frame)}
  .legs tr[data-row] td.time{font-size:1.3rem;align-self:end}
  .legs td{text-align:left;white-space:normal}
  .legs td[data-label]::before{content:attr(data-label);display:block;font-family:Oswald,"Arial Narrow",sans-serif;font-size:.72rem;font-weight:400;letter-spacing:.03em;color:var(--kb-muted)}
  .legs td.heading::before{font-size:.72rem;line-height:1.5}
  .legs td input{text-align:left}
}
@media screen and (max-width:760px){
  .page{padding:16px 14px 20px}
  .page-head{grid-template-columns:56px minmax(0,1fr);gap:10px}
  .page h1{font-size:1.45rem}
  .loaded{font-size:.92rem}
  .weather{grid-template-columns:1fr;gap:10px}
}

@page{size:A4 portrait;margin:10mm}
@media print{
  .vent,[data-theme="dark"] .vent{--kb-paper:#fff;--kb-ink:#000;--kb-head:#000;--kb-muted:#444;--kb-rule:#666;--kb-zebra:#f4f5f7;
    --kb-strong:#e6e9ee;--kb-band:#000;--kb-frame:#000;--kb-key:#000;--cell:transparent;--cell-line:transparent}
  html,body{background:#fff!important;color:#000}
  body{padding-top:0!important}
  .irre-topbar,.brandbar,.no-print,footer{display:none!important}
  .wrap{padding:0!important;max-width:none}
  .desk{display:block;padding:0}
  .page{box-shadow:none;padding:0;min-height:0}
  .sheet thead th,.sheet thead td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .sheet tr.is-empty{display:none}
  .vent :focus{outline:none}
  .legs td.heading{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .page input::placeholder{color:transparent}
  .page select{appearance:none;-webkit-appearance:none}
}
