/* ---- hero control scene ---- */
.scene-control{max-width:430px}
.pc-risk{left:0;top:22px;width:61%;padding:15px;z-index:2}
.risk-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}
.risk-t{display:block;font-size:13px;font-weight:700;color:var(--c-ink)}
.risk-s{display:block;font-size:10.5px;color:var(--c-muted);margin-top:2px}
.risk-score{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:rgba(200,70,50,.1);border:1px solid rgba(200,70,50,.3);color:#C84632;font-weight:800;font-size:16px;
  box-shadow:0 0 0 0 rgba(200,70,50,.2);animation:riskpulse 4.8s ease-in-out infinite}
.risk-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--c-line);font-size:11px;color:var(--c-ink)}
.risk-row b{font-size:10px;color:var(--c-muted)}
.risk-row.duplicate{color:#C84632}
.risk-dot{width:9px;height:9px;border-radius:50%;background:#C84632;box-shadow:0 0 0 4px rgba(200,70,50,.1)}
.risk-dot.amber{background:var(--honey);box-shadow:0 0 0 4px rgba(224,162,60,.14)}
.risk-dot.green{background:var(--green);box-shadow:0 0 0 4px rgba(16,128,92,.12)}
.pc-review{right:0;top:88px;width:48%;padding:15px 14px;z-index:4;animation:float 7s ease-in-out infinite .3s}
.review-h{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--green);margin-bottom:12px}
.review-step{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--c-line);font-size:11px;color:var(--c-ink)}
.review-step span{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#EAEDE8;color:var(--c-muted);font-size:9px;font-weight:800;flex:none}
.review-step.on span{background:var(--green);color:#fff;animation:stepdone 5s ease-in-out infinite}
.review-actions{display:flex;gap:6px;margin-top:12px}
.review-actions span{font-size:9.5px;font-weight:700;border-radius:7px;border:1px solid var(--c-line);padding:6px 8px;color:var(--c-ink);background:#fff}
.review-actions .primary-action{background:var(--green);border-color:var(--green);color:#fff}
.control-core{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);z-index:6;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  background:#fff;border:1px solid var(--g-soft);border-radius:999px;padding:6px 13px;font-size:11px;font-weight:700;color:var(--c-ink);box-shadow:0 8px 22px rgba(16,128,92,.3)}
.control-core svg{width:13px;height:13px;color:var(--green)}
.control-ring{position:absolute;left:50%;top:52%;width:54px;height:54px;border-radius:50%;border:2px solid var(--green);z-index:5;opacity:0;
  transform:translate(-50%,-50%);animation:controlring 3.4s ease-out infinite}
.control-ring.r2{animation-delay:1.7s}

/* ---- control gates ---- */
.pc-gate-list{left:0;top:22px;width:63%;padding:15px;z-index:2}
.gate-h,.ex-h,.cmp-h,.role-h,.policy-h,.action-h,.audit-h{font-size:12px;font-weight:700;color:var(--c-ink);margin-bottom:12px}
.gate-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--c-line);font-size:11px;color:var(--c-ink)}
.gate-row b{font-size:10px;color:var(--c-muted)}
.gate-ic{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--green)}
.gate-ic::after{content:"";width:7px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);margin-top:-2px}
.gate-row.warn{color:#C84632}
.gate-row.warn .gate-ic{background:#fff;border:1.6px solid rgba(200,70,50,.55)}
.gate-row.warn .gate-ic::after{content:"!";border:0;transform:none;color:#C84632;font-size:11px;font-weight:800;margin:0}
.pc-stop{right:0;top:104px;width:46%;padding:15px;z-index:3;animation:float 7s ease-in-out infinite .4s}
.stop-label{font-size:14px;font-weight:800;color:#C84632;margin-bottom:5px}
.stop-copy{font-size:11px;line-height:1.45;color:var(--c-muted)}
.stop-bar{height:7px;border-radius:999px;background:rgba(200,70,50,.12);margin-top:15px;overflow:hidden}
.stop-bar span{display:block;height:100%;width:58%;background:#C84632;border-radius:999px;animation:barwarn 4.8s ease-in-out infinite}

/* ---- exception queue ---- */
.pc-exceptions{left:0;top:26px;width:72%;padding:14px;z-index:2}
.ex-row{display:grid;grid-template-columns:58px 1fr auto;gap:8px;align-items:center;padding:9px 8px;border-radius:8px;font-size:10.5px;color:var(--c-ink)}
.ex-row+.ex-row{margin-top:4px}
.ex-row.hot{background:var(--honey-soft);animation:holdpulse 4.8s ease-in-out infinite}
.ex-type{font-size:9px;font-weight:800;color:var(--green);background:var(--g-soft);border-radius:999px;padding:3px 7px;text-align:center}
.ex-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ex-row b{font-size:9px;color:var(--c-muted)}
.pc-priority{right:0;bottom:34px;width:40%;padding:15px;z-index:4;animation:float 6.8s ease-in-out infinite .5s}
.priority-k{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green);margin-bottom:5px}
.priority-v{font-size:18px;font-weight:800;color:var(--c-ink)}
.priority-meta{font-size:10.5px;color:var(--c-muted);margin-top:5px}

/* ---- evidence compare ---- */
.pc-compare{top:22px;width:45%;padding:14px;z-index:2}
.pc-compare.left{left:0}.pc-compare.right{right:0}
.cmp-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--c-line);font-size:11px;color:var(--c-muted)}
.cmp-row b{color:var(--c-ink);font-variant-numeric:tabular-nums}
.cmp-row.warn b{color:#C84632}
.pc-reason{left:50%;bottom:26px;width:74%;padding:14px;z-index:4;transform:translateX(-50%);box-shadow:0 18px 44px rgba(14,74,56,.2)}
.reason-h{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--green);margin-bottom:7px}
.pc-reason p{font-size:11px;line-height:1.45;color:var(--c-ink);margin:0}

/* ---- roles ---- */
.pc-role-card{left:0;top:42px;width:48%;padding:15px;z-index:2}
.role-field{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--c-line);font-size:11px;color:var(--c-muted)}
.role-field b{color:var(--c-ink);font-variant-numeric:tabular-nums}
.role-badge{display:inline-flex;margin-top:12px;border-radius:999px;background:var(--honey-soft);color:#8A5A08;border:1px solid rgba(224,162,60,.28);font-size:10px;font-weight:800;padding:6px 10px}
.role-flow{position:absolute;left:18%;right:8%;top:190px;display:flex;align-items:center;z-index:3}
.role-node{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid var(--c-line);font-size:10px;font-weight:800;color:var(--c-muted);box-shadow:0 12px 24px rgba(14,74,56,.13)}
.role-node.done{background:var(--green);border-color:var(--green);color:#fff}
.role-node.active{border-color:var(--green);color:var(--green);box-shadow:0 0 0 5px rgba(16,128,92,.12),0 12px 24px rgba(14,74,56,.13)}
.role-line{height:2px;flex:1;background:repeating-linear-gradient(90deg,var(--green) 0 6px,transparent 6px 12px);transform-origin:left;animation:drawline 4.8s ease-in-out infinite}
.pc-policy{right:0;top:60px;width:45%;padding:14px;z-index:2;animation:float 7.2s ease-in-out infinite .35s}
.policy-row{font-size:11px;color:var(--c-ink);padding:9px 0;border-top:1px solid var(--c-line)}
.policy-row::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:8px}

/* ---- actions ---- */
.pc-action-panel{left:0;top:44px;width:52%;padding:15px;z-index:2}
.action-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--c-line);font-size:11px;color:var(--c-ink)}
.action-row span{width:17px;height:17px;border-radius:50%;background:#EAEDE8;flex:none}
.action-row.active{color:#C84632}
.action-row.active span{background:#C84632;box-shadow:0 0 0 5px rgba(200,70,50,.12)}
.pc-audit{right:0;top:92px;width:48%;padding:14px;z-index:3;animation:float 7s ease-in-out infinite .4s}
.audit-item{font-size:10.5px;color:var(--c-ink);padding:8px 0;border-top:1px solid var(--c-line)}
.audit-item b{color:var(--green);font-variant-numeric:tabular-nums;margin-right:7px}

@keyframes riskpulse{0%,100%{box-shadow:0 0 0 0 rgba(200,70,50,0)}50%{box-shadow:0 0 0 7px rgba(200,70,50,.12)}}
@keyframes stepdone{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
@keyframes controlring{0%{transform:translate(-50%,-50%) scale(.5);opacity:.55}100%{transform:translate(-50%,-50%) scale(3.4);opacity:0}}
@keyframes barwarn{0%,18%{width:0}44%,100%{width:58%}}
@keyframes holdpulse{0%,100%{box-shadow:0 0 0 0 rgba(224,162,60,0)}50%{box-shadow:0 0 0 5px rgba(224,162,60,.15)}}
@keyframes drawline{0%,12%{transform:scaleX(0)}42%,100%{transform:scaleX(1)}}

@media (max-width:620px){
  .pc-risk{width:66%}
  .pc-review{width:52%;right:-4px}
  .pc-exceptions{width:76%}
  .pc-priority{width:44%}
  .pc-reason{width:82%}
}
@media (prefers-reduced-motion:reduce){
  .risk-score,.pc-review,.review-step.on span,.control-ring,.pc-stop,.stop-bar span,.ex-row.hot,.pc-priority,
  .role-line,.pc-policy,.pc-audit{animation:none!important}
  .control-ring{opacity:0!important}
}
