/* Analyst Simulator — scenario engine v2
   Field Manual tokens. Shared by every scenario. No scenario-specific rules here. */

:root{
  --ink:#111111; --paper:#E9E7E1; --surface:#F4F2ED;
  --slate:#4A4A46; --rule:#111111;
  --cobalt:#D8380F; --cobalt-wash:#F5DFD6;
  --amber:#F2C230; --amber-wash:#FAEFC8;
  --forest:#1B6349; --forest-wash:#E4EFE9;
  --crimson:#B3283C; --crimson-wash:#F6E4E8;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --sans:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --display:"Archivo Narrow","Archivo",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  border-top:6px solid var(--ink);
}
.eng-wrap{max-width:1120px;margin:0 auto;padding:24px 20px 72px}

/* ---------- masthead ---------- */
.eng-mast{
  display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between;
  padding-bottom:16px;margin-bottom:22px;border-bottom:2px solid var(--ink);
}
.eng-mast h1{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:1.6rem;line-height:1.05;letter-spacing:-.01em;margin:0 0 6px;
}
.eng-mast .tag{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.06em;font-size:.7rem;color:var(--slate);
}
.eng-clock{
  font-family:var(--mono);font-size:.95rem;text-align:right;flex:none;
}
.eng-clock .n{font-weight:500}
.eng-clock .l{
  display:block;font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;font-size:.65rem;color:var(--slate);margin-top:2px;
}

/* ---------- brief ---------- */
.eng-brief{
  background:var(--surface);border:2px solid var(--ink);border-left:6px solid var(--cobalt);
  padding:16px 18px;margin-bottom:20px;max-width:74ch;
}
.eng-brief p{margin:0 0 8px;font-size:.94rem}
.eng-brief p:last-child{margin-bottom:0}
.eng-brief .obj{color:var(--slate)}

/* ---------- alert ---------- */
.eng-alert{background:var(--surface);border:2px solid var(--ink);margin-bottom:24px}
.eng-alert-hd{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:10px 14px;border-bottom:2px solid var(--ink);background:var(--paper);
}
.eng-alert-hd .id{font-family:var(--mono);font-size:.76rem;color:var(--slate)}
.eng-sev{
  font-family:var(--mono);font-size:.7rem;font-weight:500;color:var(--ink);
  background:var(--amber);border:1px solid var(--ink);padding:2px 8px;text-transform:uppercase;
}
.eng-alert-body{padding:15px}
.eng-alert-body p{margin:0;font-size:.92rem}

/* ---------- two column ---------- */
.eng-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
@media(min-width:940px){
  .eng-cols{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}
  .eng-col-actions{position:sticky;top:16px}
}

.eng-panel{background:var(--surface);border:2px solid var(--ink)}
.eng-panel-hd{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:11px 16px;border-bottom:2px solid var(--ink);
}
.eng-panel-hd h2{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:.85rem;margin:0;
}
.eng-panel-hd .count{font-family:var(--mono);font-size:.76rem;color:var(--slate)}
.eng-panel-body{padding:16px}

/* ---------- artifacts ---------- */
.eng-artifact{border:1px solid var(--ink);background:var(--paper);padding:14px}
.eng-artifact + .eng-artifact{margin-top:14px}
.eng-artifact h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.02em;font-size:.88rem;margin:0 0 9px;
}
.eng-artifact pre{
  font-family:var(--mono);font-size:.79rem;line-height:1.7;
  background:var(--surface);border:1px solid var(--rule);
  padding:12px;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-word;
  color:var(--ink);
}
.eng-artifact .note{font-size:.82rem;color:var(--slate);margin:9px 0 0;max-width:60ch}
.eng-empty{color:var(--slate);font-size:.9rem;padding:8px 2px}

/* ---------- actions ---------- */
.eng-group + .eng-group{margin-top:18px}
.eng-group h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;font-size:.72rem;color:var(--slate);margin:0 0 8px;
}
.eng-action{
  display:flex;gap:12px;align-items:flex-start;justify-content:space-between;
  border:1px solid var(--ink);background:var(--paper);
  padding:11px 13px;width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer;
}
.eng-action + .eng-action{margin-top:8px}
.eng-action:hover:not(:disabled){background:var(--cobalt-wash);border-color:var(--cobalt)}
.eng-action:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}
.eng-action:disabled{cursor:default}
.eng-action .body{flex:1 1 auto;min-width:0}
.eng-action .label{font-weight:600;font-size:.92rem}
.eng-action .detail{font-size:.82rem;color:var(--slate);margin-top:2px}
.eng-action .min{
  font-family:var(--mono);font-size:.76rem;color:var(--slate);flex:none;
  padding-top:2px;white-space:nowrap;
}
.eng-action.taken{opacity:.55}
.eng-action.taken .label{text-decoration:line-through;text-decoration-color:var(--slate)}
.eng-action.gated{opacity:.5}
.eng-action .reason{font-size:.8rem;color:var(--slate);margin-top:2px;font-style:italic}
.eng-response{
  font-size:.82rem;color:var(--slate);margin:4px 0 0;padding-left:2px;max-width:56ch;
}
.eng-response b{color:var(--ink);font-weight:600}

details.eng-actions-collapse{border:none}
details.eng-actions-collapse > summary{
  list-style:none;cursor:pointer;display:none;
}
details.eng-actions-collapse > summary::-webkit-details-marker{display:none}
@media(max-width:939px){
  details.eng-actions-collapse > summary{
    display:block;font-family:var(--display);font-weight:700;text-transform:uppercase;
    letter-spacing:.04em;font-size:.8rem;padding:2px 0 10px;
  }
}

/* ---------- conclude ---------- */
.eng-conclude-btn{
  font-family:var(--display);font-size:.82rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;background:var(--ink);color:var(--paper);
  border:2px solid var(--ink);padding:12px 18px;cursor:pointer;width:100%;margin-top:18px;
}
.eng-conclude-btn:hover{background:#000;border-color:#000}
.eng-conclude-btn:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}

.eng-warn{
  background:var(--amber-wash);border:2px solid var(--ink);border-left:6px solid var(--amber);
  padding:14px 16px;margin:0 0 14px;
}
.eng-warn p{margin:0 0 8px;font-size:.9rem;line-height:1.5}
.eng-warn p:last-child{margin-bottom:0}
.eng-warn label{
  display:block;font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;font-size:.78rem;margin-bottom:8px;
}
.eng-warn textarea{
  width:100%;font:inherit;font-size:.9rem;line-height:1.5;padding:10px 12px;
  border:2px solid var(--ink);background:var(--surface);color:var(--ink);
  resize:vertical;min-height:90px;
}
.eng-warn textarea:focus-visible{outline:2px solid var(--cobalt);outline-offset:-2px}
.eng-warn .hint{font-size:.78rem;color:var(--slate);margin-top:6px}

.eng-btn{
  font-family:var(--display);font-size:.82rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;background:var(--ink);color:var(--paper);
  border:2px solid var(--ink);padding:11px 20px;cursor:pointer;margin-top:12px;
}
.eng-btn:hover:not(:disabled){background:#000;border-color:#000}
.eng-btn:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}
.eng-btn:disabled{background:var(--surface);border-color:var(--rule);color:var(--slate);cursor:not-allowed}
.eng-btn-ghost{background:none;color:var(--ink)}
.eng-btn-ghost:hover:not(:disabled){background:var(--surface)}

.eng-opts{display:flex;flex-direction:column;gap:8px;margin:0 0 4px}
.eng-opt{
  display:block;border:1px solid var(--ink);background:var(--paper);
  padding:12px 13px;cursor:pointer;text-align:left;font:inherit;font-size:.9rem;
  line-height:1.4;color:var(--ink);width:100%;
}
.eng-opt:hover:not(:disabled){background:var(--cobalt-wash);border-color:var(--cobalt)}
.eng-opt:focus-visible{outline:2px solid var(--cobalt);outline-offset:1px}

/* ---------- debrief ---------- */
.eng-read{
  border:1px solid var(--ink);background:var(--paper);padding:13px 15px;margin:0 0 16px;
}
.eng-read h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;font-size:.72rem;color:var(--slate);margin:0 0 6px;
}
.eng-read p{margin:0;font-size:.9rem;font-style:italic;white-space:pre-wrap}

.eng-verdict{border:2px solid var(--ink);border-left:6px solid;padding:15px 16px;margin:0 0 18px}
.eng-verdict.right{border-left-color:var(--forest);background:var(--forest-wash)}
.eng-verdict.wrong{border-left-color:var(--crimson);background:var(--crimson-wash)}
.eng-verdict h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  font-size:.92rem;margin:0 0 8px;
}
.eng-verdict p{margin:0;font-size:.9rem;line-height:1.55}

.eng-measures{list-style:none;margin:0 0 20px;padding:0;border-top:1px solid var(--ink)}
.eng-measures li{
  display:flex;gap:12px;justify-content:space-between;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--rule);font-size:.87rem;
}
.eng-measures .k{color:var(--slate)}
.eng-measures .v{font-family:var(--mono);font-weight:500;text-align:right}
.eng-measures .v.ok{color:var(--forest)}
.eng-measures .v.no{color:var(--crimson)}

.eng-debrief{border:1px solid var(--ink);background:var(--paper);padding:15px 16px;margin:0 0 18px}
.eng-debrief h3{
  font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;font-size:.72rem;color:var(--slate);margin:0 0 8px;
}
.eng-debrief p{margin:0;font-size:.9rem;line-height:1.6;white-space:pre-wrap}

@media (prefers-reduced-motion:no-preference){
  .eng-artifact,.eng-verdict,.eng-read{animation:eng-in .18s ease-out}
  @keyframes eng-in{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
}
