/* ESA Command Center v2.1 — "clear morning" system
   airy light ground with a soft aurora wash · deep sea-green for money
   warm coral for alerts · honey amber · periwinkle accents
   Sora for display & figures · Manrope for reading */

:root{
  --bg:#F7F9FB;
  --aurora-a:rgba(122,180,255,.16);
  --aurora-b:rgba(134,231,196,.18);
  --aurora-c:rgba(196,181,253,.14);
  --card:#FFFFFF;
  --card-border:rgba(23,42,58,.08);
  --ink:#1C2B36;
  --ink-soft:#5B6B78;
  --ink-faint:#8B99A5;
  --line:rgba(23,42,58,.08);
  --green:#0E8A6A;      --green-soft:rgba(14,138,106,.10);
  --red:#D4604C;        --red-soft:rgba(212,96,76,.10);
  --amber:#C08A2D;      --amber-soft:rgba(192,138,45,.12);
  --gray:#93A1AD;       --gray-soft:rgba(147,161,173,.14);
  --accent:#5B7FE8;     --accent-soft:rgba(91,127,232,.10);
  --display:'Sora',system-ui,sans-serif;
  --body:'Manrope',system-ui,sans-serif;
  --r-lg:20px; --r-md:14px; --r-sm:10px;
  --shadow-card:0 1px 2px rgba(23,42,58,.04), 0 8px 24px -12px rgba(23,42,58,.10);
  --shadow-lift:0 2px 4px rgba(23,42,58,.05), 0 16px 40px -16px rgba(23,42,58,.16);
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:
    radial-gradient(900px 480px at 8% -10%, var(--aurora-a), transparent 60%),
    radial-gradient(800px 460px at 92% -6%, var(--aurora-b), transparent 60%),
    radial-gradient(700px 500px at 50% 110%, var(--aurora-c), transparent 65%),
    var(--bg);
  background-attachment:fixed;
  color:var(--ink);
  font-family:var(--body);
  font-size:15px;
  line-height:1.5;
  padding-bottom:56px;
  font-variant-numeric:tabular-nums;
}

/* ---------- top bar ---------- */
.topbar{
  display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;
  padding:30px 36px 20px;max-width:1280px;margin:0 auto;
}
.eyebrow{
  font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin-bottom:5px;
}
.topbar h1{
  font-family:var(--display);font-size:29px;font-weight:600;letter-spacing:-.02em;
}
.topbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.stamp{
  font-size:12px;font-weight:700;color:var(--green);
  background:var(--green-soft);border:1px solid transparent;border-radius:999px;
  padding:7px 14px;display:inline-flex;align-items:center;gap:7px;
}
.stamp::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.stamp.warn{color:var(--red);background:var(--red-soft)}
.calendar-chip{
  font-size:12.5px;font-weight:600;color:var(--ink-soft);
  padding:7px 14px;border:1px solid var(--card-border);border-radius:999px;
  background:rgba(255,255,255,.75);backdrop-filter:blur(6px);
  max-width:440px;box-shadow:var(--shadow-card);
}

/* ---------- tabs ---------- */
.tab-bar{
  display:flex;gap:4px;padding:6px;margin:6px auto 0;max-width:1280px;
  position:sticky;top:10px;z-index:10;overflow-x:auto;
  width:calc(100% - 72px);
  background:rgba(255,255,255,.72);backdrop-filter:blur(12px);
  border:1px solid var(--card-border);border-radius:999px;box-shadow:var(--shadow-card);
}
.tab{
  appearance:none;border:none;background:none;cursor:pointer;
  font-family:var(--body);font-size:13.5px;font-weight:700;color:var(--ink-soft);
  padding:9px 18px;border-radius:999px;white-space:nowrap;
  transition:color .15s, background .15s;
}
.tab:hover{color:var(--ink)}
.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tab.active{
  color:#fff;background:linear-gradient(135deg,#33465A,#1C2B36);
  box-shadow:0 4px 12px -4px rgba(28,43,54,.45);
}

main{padding:28px 36px;max-width:1280px;margin:0 auto}
.tab-panel{display:none}
.tab-panel.active{display:block;animation:rise .35s ease both}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.section-head{margin-bottom:18px}
.section-head h2{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.01em}
.section-head p{color:var(--ink-soft);font-size:13.5px;margin-top:4px;max-width:72ch}
.owner-line{
  font-size:12.5px;font-weight:600;color:var(--ink-soft);
  background:rgba(255,255,255,.7);border:1px solid var(--card-border);border-radius:var(--r-sm);
  padding:9px 14px;margin:-4px 0 20px;max-width:max-content;
}

/* ---------- five numbers ---------- */
.five-ledger{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;margin-bottom:26px;
}
.ledger-row{
  background:var(--card);border:1px solid var(--card-border);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);
  padding:20px 20px 18px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:10px;
  transition:box-shadow .2s, transform .2s;
}
.ledger-row:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.ledger-row::before{
  content:'';position:absolute;inset:0 0 auto 0;height:4px;
  background:var(--bar,linear-gradient(90deg,var(--gray),transparent));
}
.ledger-row:has(.ledger-value.green){--bar:linear-gradient(90deg,#22B893,#0E8A6A)}
.ledger-row:has(.ledger-value.amber){--bar:linear-gradient(90deg,#E8B45A,#C08A2D)}
.ledger-row:has(.ledger-value.red){--bar:linear-gradient(90deg,#F08A72,#D4604C)}
.ledger-label{font-weight:800;font-size:13px;color:var(--ink-soft);padding-right:6px;line-height:1.35}
.ledger-label .idx{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--display);font-size:10.5px;font-weight:600;color:var(--accent);
  background:var(--accent-soft);border-radius:6px;padding:2px 7px;margin-right:8px;
}
.ledger-value{
  font-family:var(--display);font-weight:600;font-size:33px;letter-spacing:-.03em;line-height:1;
}
.ledger-value.green{color:var(--green)}
.ledger-value.amber{color:var(--amber)}
.ledger-value.red{color:var(--red)}
.ledger-value .unit{font-size:16px;font-weight:500;color:var(--ink-faint)}
.ledger-context{font-size:12.5px;color:var(--ink-soft)}
.ledger-context .note{
  display:block;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);
  font-size:12px;color:var(--ink);opacity:.8;
}
.ledger-meta{display:flex;gap:8px;align-items:center;margin-top:auto}

/* soft freshness pill (replaces the audit stamp) */
.mini-stamp{
  font-size:10.5px;font-weight:700;letter-spacing:.02em;
  color:var(--ink-faint);background:var(--gray-soft);
  border-radius:999px;padding:3px 10px;cursor:default;white-space:nowrap;
}
.mini-stamp.stale{color:var(--red);background:var(--red-soft)}
.mini-stamp.pending{color:var(--accent);background:var(--accent-soft)}

/* ---------- metric cards ---------- */
.kpi-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(224px,1fr));
  gap:14px;margin-bottom:24px;
}
.kpi{
  background:var(--card);border:1px solid var(--card-border);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);
  padding:18px;position:relative;display:flex;flex-direction:column;gap:9px;
  transition:box-shadow .2s, transform .2s;
}
.kpi:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}
.kpi .k-label{font-size:12px;font-weight:800;letter-spacing:.02em;color:var(--ink-soft);padding-right:78px;line-height:1.35}
.kpi .k-value{
  font-family:var(--display);font-weight:600;font-size:27px;letter-spacing:-.03em;line-height:1;
  display:inline-flex;align-items:baseline;gap:6px;
}
.kpi .k-value::after{
  content:'';width:8px;height:8px;border-radius:50%;align-self:center;background:var(--gray);
}
.kpi .k-value.green{color:var(--green)}   .kpi .k-value.green::after{background:var(--green)}
.kpi .k-value.amber{color:var(--amber)}   .kpi .k-value.amber::after{background:var(--amber)}
.kpi .k-value.red{color:var(--red)}       .kpi .k-value.red::after{background:var(--red)}
.kpi .k-value.gray{color:var(--ink-faint)}
.kpi .k-value .unit{font-size:14px;font-weight:500;color:var(--ink-faint)}
.kpi .k-context{font-size:12.5px;color:var(--ink-soft)}
.kpi .k-meta{position:absolute;top:14px;right:14px}
.kpi .k-source{
  font-size:11px;font-weight:600;color:var(--ink-faint);
  border-top:1px dashed var(--line);padding-top:8px;margin-top:auto;
}

/* ---------- panels & tables ---------- */
.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:16px}
.panel{
  background:var(--card);border:1px solid var(--card-border);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);padding:20px 22px;
}
.panel-head h3{font-family:var(--display);font-size:15.5px;font-weight:600}
.panel-head p{font-size:12.5px;color:var(--ink-soft);margin:4px 0 12px}
.panel-note{font-size:12.5px;color:var(--ink-soft);margin-bottom:12px;max-width:92ch}

.table-wrap{overflow-x:auto;border-radius:var(--r-sm)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{
  text-align:left;font-size:10.5px;font-weight:800;
  text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);
  padding:9px 12px;border-bottom:1px solid var(--line);
}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:none}
td:first-child{font-weight:700}
tbody tr{transition:background .12s}
tbody tr:hover{background:rgba(91,127,232,.045)}
.cell-flag{color:var(--red);font-weight:700}
.cell-good{color:var(--green);font-weight:700}
.cell-warn{color:var(--amber);font-weight:700}

/* ---------- red flag docket ---------- */
.flag{
  border:1px solid var(--card-border);border-left:4px solid var(--gray);
  padding:12px 14px;margin-bottom:10px;
  background:rgba(255,255,255,.6);border-radius:var(--r-sm);
}
.flag.red{border-left-color:var(--red);background:linear-gradient(90deg,var(--red-soft),transparent 45%)}
.flag.amber{border-left-color:var(--amber);background:linear-gradient(90deg,var(--amber-soft),transparent 45%)}
.flag .f-text{font-size:13px;font-weight:700;line-height:1.4}
.flag .f-action{font-size:12.5px;color:var(--ink-soft);margin-top:5px}
.flag .f-owner{
  display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.04em;
  color:var(--accent);background:var(--accent-soft);border-radius:999px;
  padding:2px 10px;margin-top:8px;text-transform:uppercase;
}

/* ---------- dept health & calendar ---------- */
.dept-row{
  display:flex;gap:12px;align-items:baseline;padding:10px 8px;border-radius:var(--r-sm);
  cursor:pointer;transition:background .12s;
}
.dept-row:hover,.dept-row:focus-visible{background:var(--accent-soft)}
.dept-row:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.d-dot{width:9px;height:9px;border-radius:50%;flex:none;position:relative;top:2px;
  box-shadow:0 0 0 3px transparent}
.d-dot.green{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.d-dot.amber{background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}
.d-dot.red{background:var(--red);box-shadow:0 0 0 3px var(--red-soft)}
.d-name{font-weight:800;font-size:13.5px;min-width:96px}
.d-line{font-size:12.5px;color:var(--ink-soft)}

.cal-row{display:flex;gap:12px;padding:8px;font-size:12.5px;border-radius:var(--r-sm)}
.cal-row:nth-child(odd){background:rgba(23,42,58,.025)}
.cal-date{font-weight:800;color:var(--accent);white-space:nowrap}

/* ---------- stage metric ---------- */
.stage-track{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px}
.stage-pill{
  font-size:10px;font-weight:700;padding:4px 10px;border-radius:999px;
  color:var(--ink-faint);background:var(--gray-soft);
}
.stage-pill.current{color:#fff;background:linear-gradient(135deg,#F08A72,#D4604C)}
.stage-pill.done{color:var(--green);background:var(--green-soft)}

/* ---------- footer ---------- */
.foot{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:18px 36px;max-width:1280px;margin:12px auto 0;
  font-size:11.5px;font-weight:600;color:var(--ink-faint);
  border-top:1px solid var(--line);
}

/* ---------- responsive & motion ---------- */
@media(max-width:900px){
  .two-col{grid-template-columns:1fr}
  .topbar,main,.foot{padding-left:18px;padding-right:18px}
  .tab-bar{width:calc(100% - 36px)}
  .five-ledger{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .five-ledger{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .tab-panel.active{animation:none}
  .kpi,.ledger-row{transition:none}
}

/* ---------- period toggle & sparklines (v2.2) ---------- */
.period-select{
  appearance:none;font-family:var(--body);font-size:12.5px;font-weight:700;
  color:var(--ink);background:rgba(255,255,255,.85);
  border:1px solid var(--card-border);border-radius:999px;
  padding:7px 32px 7px 14px;cursor:pointer;box-shadow:var(--shadow-card);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%235B6B78' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;
}
.period-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.period-chip{
  align-self:flex-start;font-size:10px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--accent);background:var(--accent-soft);
  border-radius:999px;padding:2px 9px;margin-top:-4px;
}

.spark{display:flex;flex-direction:column;gap:3px;color:var(--ink-faint);margin-top:2px}
.ledger-row .spark,.kpi .spark{color:var(--accent)}
.spark svg{display:block;max-width:100%}
.spark-label{font-size:10px;font-weight:700;color:var(--ink-faint);letter-spacing:.02em}
