/* ============================================================
   BAP Production Desk (static demo) — dashboard + trackers
   Editorial / industrial / direct. No gradients, no SaaS gloss.
   ============================================================ */

:root{
  --paper:#f2efe8;
  --ink:#1c1c1a;
  --wash:#587584;
  --wash-soft:rgba(88,117,132,.12);
  --line:rgba(28,28,26,.18);
  --mut:#5f5c55;
  --card:#fffdf8;
  --bad:#a33b2e;
  --amber:#9a6b1f;
  --good:#3d6b4f;
}
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.bap-wrap{ max-width:1180px; margin:0 auto; padding:0 20px; }

/* ---------- page head ---------- */
.bap-pagehead{
  padding:40px 0 6px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.bap-eyebrow{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:12px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--wash);
  font-weight:700;
  margin:0 0 12px;
}
.bap-pagehead h1{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:clamp(30px,4.4vw,44px);
  margin:0 0 8px;
  letter-spacing:-.5px;
}
.bap-pagehead .lede{
  font-size:15px;
  line-height:1.6;
  color:var(--mut);
  max-width:38em;
  margin:0;
}
.bap-demo-badge{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  font-weight:700;
  color:var(--wash);
  border:1px dashed var(--wash);
  padding:8px 12px;
  white-space:nowrap;
}
.bap-rule{ border:0; border-top:2px solid var(--ink); margin:24px 0 0; }

/* ---------- stat cards ---------- */
.bap-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  border:1px solid var(--ink);
  background:var(--ink);
  margin-top:28px;
}
@media (max-width:900px){ .bap-stats{ grid-template-columns:repeat(2,1fr); } }
.bap-stat{
  background:var(--paper);
  outline:1px solid var(--ink);
  outline-offset:-1px;
  padding:20px;
}
.bap-stat .k{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--mut);
  font-weight:700;
}
.bap-stat .v{
  font-family:Georgia,'Times New Roman',serif;
  font-size:42px;
  margin:8px 0 0;
  font-variant-numeric:tabular-nums;
}
.bap-stat .s{ font-size:12.5px; color:var(--mut); margin:6px 0 0; }
.bap-stat.alert .v{ color:var(--bad); }

/* ---------- panels ---------- */
.bap-panel{
  border:1px solid var(--ink);
  background:var(--card);
  margin-top:28px;
}
.bap-panel-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:16px 20px;
  border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.bap-panel-head h2{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:21px;
  margin:0;
}
.bap-panel-head .meta{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--wash);
  font-weight:700;
}
.bap-panel-head a.more{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--ink);
  text-decoration:none;
  border-bottom:1px solid var(--wash);
  padding-bottom:2px;
}
.bap-panel-head a.more:hover{ color:var(--wash); }
.bap-panel-body{ padding:20px; }
.bap-panel-body.flush{ padding:0; }

/* risk / summary cards inside panels */
.bap-duo{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:760px){ .bap-duo{ grid-template-columns:1fr; } }
.bap-big{
  font-family:Georgia,'Times New Roman',serif;
  font-size:34px;
  margin:0;
  font-variant-numeric:tabular-nums;
}
.bap-big-sub{ font-size:12.5px; color:var(--mut); margin:4px 0 14px; }
.bap-risklist{ list-style:none; margin:0; padding:0; }
.bap-risklist li{ margin-bottom:8px; }
.bap-risklist a{
  display:flex;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--line);
  padding:9px 12px;
  text-decoration:none;
  color:var(--ink);
  font-size:13px;
}
.bap-risklist a:hover{ border-color:var(--wash); background:var(--wash-soft); }
.bap-risklist .sub{ color:var(--mut); font-variant-numeric:tabular-nums; white-space:nowrap; }
.bap-empty{ padding:28px 20px; text-align:center; color:var(--mut); font-size:14px; }

/* ---------- tables ---------- */
.bap-tablewrap{ overflow-x:auto; }
table.bap-table{ width:100%; border-collapse:collapse; font-size:14px; }
.bap-table th{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:10.5px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--mut);
  text-align:left;
  padding:10px 12px;
  border-bottom:1px solid var(--ink);
  white-space:nowrap;
}
.bap-table td{
  padding:11px 12px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
}
.bap-table tr:last-child td{ border-bottom:0; }
.bap-table td.num, .bap-table th.num{ text-align:right; font-variant-numeric:tabular-nums; }
.bap-table .strong{ font-weight:700; }
.bap-table .muted{ color:var(--mut); }

/* ---------- pills ---------- */
.bap-pill{
  display:inline-block;
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:10.5px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  font-weight:700;
  padding:4px 10px;
  border:1px solid var(--ink);
  white-space:nowrap;
}
.bap-pill.sev-high{ background:var(--bad); border-color:var(--bad); color:#fff; }
.bap-pill.sev-medium{ background:transparent; border-color:var(--amber); color:var(--amber); }
.bap-pill.sev-low{ background:transparent; border-color:var(--mut); color:var(--mut); }
.bap-pill.st-active, .bap-pill.st-in_progress{ border-color:var(--wash); color:var(--wash); }
.bap-pill.st-complete, .bap-pill.st-approved, .bap-pill.st-completed, .bap-pill.st-paid{ border-color:var(--good); color:var(--good); }
.bap-pill.st-risk, .bap-pill.st-rejected{ background:var(--bad); border-color:var(--bad); color:#fff; }
.bap-pill.st-waiting, .bap-pill.st-submitted_for_review, .bap-pill.st-partial{ border-color:var(--amber); color:var(--amber); }
.bap-pill.st-queued, .bap-pill.st-requested, .bap-pill.st-scheduled, .bap-pill.st-unpaid{ border-color:var(--mut); color:var(--mut); }
.bap-pill.st-cancelled{ border-color:var(--mut); color:var(--mut); text-decoration:line-through; }
.bap-pill.st-in_development{ border-color:var(--wash); color:var(--wash); }
.bap-pill.ack{ border-color:var(--good); color:var(--good); }

/* ---------- alert actions ---------- */
.bap-actions{ display:flex; gap:8px; justify-content:flex-end; }
.bap-btn{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  font-weight:700;
  padding:8px 14px;
  border:1px solid var(--ink);
  background:transparent;
  color:var(--ink);
  cursor:pointer;
  border-radius:0;
  white-space:nowrap;
}
.bap-btn:hover{ background:var(--wash-soft); }
.bap-btn.primary{ background:var(--ink); color:var(--paper); }
.bap-btn.primary:hover{ background:#33312d; }
.bap-btn.danger{ border-color:var(--bad); color:var(--bad); }
.bap-btn.danger:hover{ background:rgba(163,59,46,.08); }
.bap-btn.small{ padding:6px 10px; font-size:10px; }
.bap-btn:disabled{ opacity:.45; cursor:default; }
tr.bap-resolved td{ opacity:.45; }

/* ---------- tracker toolbar / modal ---------- */
.bap-toolbar{
  display:flex;
  gap:12px;
  align-items:center;
  margin:24px 0 0;
  flex-wrap:wrap;
}
.bap-toolbar .spacer{ flex:1; }
.bap-search-inline input{
  font-size:14px;
  padding:10px 12px;
  border:1px solid var(--ink);
  background:#fff;
  color:var(--ink);
  border-radius:0;
  min-width:240px;
}
.bap-search-inline input:focus{ outline:2px solid var(--wash); }
.bap-modal-back{
  display:none;
  position:fixed; inset:0;
  background:rgba(28,28,26,.55);
  z-index:100;
  align-items:flex-start;
  justify-content:center;
  padding:40px 16px;
  overflow-y:auto;
}
.bap-modal-back.open{ display:flex; }
.bap-modal{
  background:var(--paper);
  border:2px solid var(--ink);
  max-width:560px;
  width:100%;
  padding:28px;
}
.bap-modal h3{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:24px;
  margin:0 0 6px;
}
.bap-modal .msub{ font-size:13px; color:var(--mut); margin:0 0 18px; }
.bap-field{ margin-bottom:14px; }
.bap-field label{
  display:block;
  font-size:13px;
  font-weight:700;
  margin:0 0 6px;
}
.bap-field .hint{ font-weight:400; color:var(--mut); font-size:12px; }
.bap-field input, .bap-field select, .bap-field textarea{
  width:100%;
  font-size:15px;
  padding:10px 12px;
  border:1px solid var(--ink);
  background:#fff;
  color:var(--ink);
  border-radius:0;
  font-family:inherit;
}
.bap-field input:focus, .bap-field select:focus, .bap-field textarea:focus{ outline:2px solid var(--wash); }
.bap-field textarea{ min-height:76px; resize:vertical; }
.bap-field-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:560px){ .bap-field-row{ grid-template-columns:1fr; } }
.bap-modal-foot{ display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }
.bap-form-err{ display:none; color:var(--bad); font-size:13px; font-weight:600; margin:0 0 12px; }

/* ---------- costing shortcuts ---------- */
.bap-links{ list-style:none; margin:0; padding:0; }
.bap-links li{ margin-bottom:8px; }
.bap-links a{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  padding:11px 14px;
  text-decoration:none;
  color:var(--ink);
  font-size:14px;
}
.bap-links a:hover{ border-color:var(--wash); background:var(--wash-soft); }
.bap-links .go{
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--wash);
  font-weight:700;
}

/* ---------- email band (dashboard) ---------- */
.bap-band{
  background:var(--ink);
  color:var(--paper);
  margin:56px 0 0;
  padding:44px 34px;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:32px;
  align-items:center;
}
@media (max-width:760px){ .bap-band{ grid-template-columns:1fr; padding:34px 24px; } }
.bap-band h2{
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  font-size:30px;
  margin:0 0 12px;
  line-height:1.2;
}
.bap-band h2 em{ color:#9db8c4; }
.bap-band p{ font-size:14px; line-height:1.65; color:#c9c4b8; margin:0; }
.bap-form label{
  display:block;
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:11px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#9db8c4;
  margin:0 0 6px;
  font-weight:700;
}
.bap-form input{
  width:100%;
  font-size:16px;
  padding:12px 14px;
  border:1px solid rgba(242,239,232,.35);
  background:rgba(242,239,232,.06);
  color:var(--paper);
  border-radius:0;
  margin-bottom:12px;
}
.bap-form input::placeholder{ color:#8a877f; }
.bap-form input:focus{ outline:2px solid var(--wash); }
.bap-form button{
  width:100%;
  font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  font-size:13px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:700;
  padding:14px;
  background:var(--wash);
  color:#fff;
  border:0;
  cursor:pointer;
  border-radius:0;
}
.bap-form button:hover{ background:#486b78; }
.bap-form .fine{ font-size:12px; color:#8a877f; margin-top:10px; line-height:1.5; }
.bap-form-ok{ display:none; border:1px solid var(--wash); padding:24px; text-align:center; }
.bap-form-ok h3{ font-family:Georgia,'Times New Roman',serif; font-weight:400; font-size:22px; margin:0 0 8px; }
.bap-form-ok p{ font-size:14px; }
.bap-form-err2{ display:none; color:#e8a0a0; font-size:13px; margin:0 0 10px; }
