/* ============================================================
   SHORTLISTED · THE AGENT LAB — interactive Agent Studio trainer
   ============================================================ */
.lab-shell{max-width:880px;margin:0 auto;padding:0 20px}
.lab-scene{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 24px;margin:34px 0;font-size:15.5px;line-height:1.65;color:#4a4840}
.lab-scene b{color:var(--ink)}
.lab-scene .who{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--partner);display:block;margin-bottom:8px}

/* ---------- palette ---------- */
.palette{position:sticky;top:70px;z-index:30;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
  background:rgba(250,247,242,.94);backdrop-filter:blur(10px);padding:12px;border:1px solid var(--line);border-radius:16px;margin:0 0 26px;box-shadow:0 6px 24px rgba(60,48,24,.08)}
.brick{display:flex;align-items:center;gap:9px;background:#fff;border:2px solid var(--line);border-radius:12px;
  padding:10px 16px;cursor:grab;user-select:none;font-weight:600;font-size:14px;color:var(--ink);transition:transform .15s,border-color .15s,box-shadow .15s}
.brick .b-ic{font-size:19px}
.brick:hover{transform:translateY(-2px)}
.brick.llm{border-color:rgba(61,91,196,.45)}
.brick.code{border-color:rgba(176,119,36,.45)}
.brick.api{border-color:rgba(46,125,91,.45)}
.brick.human{border-color:rgba(196,69,86,.45)}
.brick.sel{box-shadow:0 0 0 3px rgba(61,91,196,.3);transform:translateY(-2px) scale(1.04)}
.brick:active{cursor:grabbing}
.pal-hint{width:100%;text-align:center;font-size:12px;color:var(--mute)}

/* ---------- pipeline ---------- */
.pipe{position:relative;margin:0 0 30px}
.pipe::before{content:'';position:absolute;left:27px;top:20px;bottom:20px;width:3px;background:linear-gradient(180deg,var(--architect),var(--partner),var(--skeptic));border-radius:2px;opacity:.25}
.slot{position:relative;display:flex;gap:16px;align-items:flex-start;margin-bottom:14px;padding-left:0}
.slot .s-dot{flex:0 0 56px;width:56px;height:56px;border-radius:50%;background:#fff;border:2px dashed var(--mute);
  display:flex;align-items:center;justify-content:center;font-size:22px;z-index:1;transition:all .25s;color:var(--mute);font-weight:700}
.slot .s-body{flex:1;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 18px;transition:border-color .2s}
.slot .s-q{font-weight:600;font-size:15.5px;color:var(--ink)}
.slot .s-sub{font-size:13px;color:var(--mute);margin-top:3px}
.slot .s-fb{display:none;margin-top:12px;font-size:13.5px;line-height:1.6;border-radius:10px;padding:12px 14px}
.slot .s-fb.show{display:block}
.slot .s-fb.good{background:rgba(46,125,91,.07);border:1px solid rgba(46,125,91,.3);color:#245c44}
.slot .s-fb.bad{background:rgba(196,69,86,.06);border:1px solid rgba(196,69,86,.3);color:#8c3341}
.slot.armed .s-body{border-color:var(--architect);box-shadow:0 0 0 3px rgba(61,91,196,.12)}
.slot.armed .s-dot{border-color:var(--architect);color:var(--architect)}
.slot.done .s-dot{border-style:solid;background:rgba(46,125,91,.1);border-color:var(--good);color:inherit}
.slot.done .s-body{border-color:rgba(46,125,91,.4)}
.slot.running .s-dot{border-style:solid;border-color:var(--partner);background:rgba(176,119,36,.12);animation:pulse-run 1s infinite}
@keyframes pulse-run{50%{box-shadow:0 0 0 8px rgba(176,119,36,.12)}}

/* ---------- run console ---------- */
.console{background:#221f1a;border-radius:16px;padding:20px 22px;margin:26px 0;display:none;box-shadow:0 18px 50px rgba(60,48,24,.25)}
.console.show{display:block}
.console .c-head{font-family:ui-monospace,Consolas,monospace;font-size:11px;letter-spacing:.2em;color:#b8a878;margin-bottom:12px}
.c-log{font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.8;color:#d8d2c2;min-height:40px}
.c-log .ok{color:#7ec9a4}
.c-log .warn{color:#e0a34e}
.c-log .err{color:#e07a8a}
.c-line{opacity:0;animation:cIn .3s forwards}
@keyframes cIn{to{opacity:1}}
/* allocation bars */
.alloc{margin:12px 0}
.alloc .a-row{display:flex;align-items:center;gap:12px;margin-bottom:8px;font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:#d8d2c2}
.alloc .a-name{flex:0 0 90px}
.alloc .a-track{flex:1;height:14px;background:#3a352a;border-radius:7px;overflow:hidden}
.alloc .a-fill{height:100%;width:0;border-radius:7px;transition:width 1.2s cubic-bezier(.2,.7,.3,1)}
.alloc .a-fill.full{background:#4da583}
.alloc .a-fill.part{background:#e0a34e}
.alloc .a-tag{flex:0 0 110px;text-align:right}
/* approval modal */
.gate{display:none;background:#fff;border:2px solid var(--skeptic);border-radius:16px;padding:22px;margin:22px 0;box-shadow:0 20px 60px rgba(60,48,24,.2)}
.gate.show{display:block;animation:gateIn .35s cubic-bezier(.2,1.2,.4,1)}
@keyframes gateIn{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.gate .g-k{font-size:11px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;color:var(--skeptic);margin-bottom:10px}
.gate table{width:100%;border-collapse:collapse;font-size:13.5px;margin-bottom:14px}
.gate th{text-align:left;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);padding:6px 8px;border-bottom:1px solid var(--line)}
.gate td{padding:8px;border-bottom:1px solid var(--line);color:#4a4840}
.gate .full{color:#245c44;font-weight:600}
.gate .part{color:#a05c1a;font-weight:600}
.gate .g-btns{display:flex;gap:10px;flex-wrap:wrap}
/* report */
.report{display:none;background:var(--panel);border:1px solid rgba(46,125,91,.4);border-radius:16px;padding:22px;margin:22px 0}
.report.show{display:block;animation:gateIn .35s cubic-bezier(.2,1.2,.4,1)}
.report h3{font-family:var(--serif);font-style:italic;font-weight:900;font-size:22px;margin-bottom:10px}
.report p{font-size:14.5px;color:#4a4840;line-height:1.65;margin-bottom:8px}
/* lessons recap */
.lessons{display:none;margin:26px 0}
.lessons.show{display:block}
.lesson-chip{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin-bottom:9px}
.lesson-chip .l-ic{font-size:18px;margin-top:1px}
.lesson-chip .l-t{font-size:14px;line-height:1.55;color:#4a4840}
.lesson-chip .l-t b{color:var(--ink)}
/* hud */
.lab-hud{display:flex;gap:14px;align-items:center;justify-content:center;margin:0 0 22px;font-family:ui-monospace,Consolas,monospace;font-size:12px;color:var(--mute)}
.lab-hud .h-score{color:var(--good);font-weight:700}
.lab-hud .h-miss{color:var(--skeptic);font-weight:700}
.power{display:none;margin:24px auto;text-align:center}
.power.show{display:block;animation:gateIn .4s cubic-bezier(.2,1.2,.4,1)}
@media(max-width:640px){
  .slot .s-dot{flex:0 0 44px;width:44px;height:44px;font-size:18px}
  .pipe::before{left:21px}
  .alloc .a-tag{flex:0 0 84px;font-size:11px}
}
.sec-title-sm{font-family:var(--serif);font-style:italic;font-weight:900;font-size:26px;margin:34px 0 16px}
.rep-note{font-size:13px;color:var(--mute);border-top:1px dashed var(--line);padding-top:10px;margin-top:12px}
.tool-note{font-size:13px;color:var(--mute);margin:26px 0 40px;line-height:1.6}
