/* Planck Operator console — homepage widget. Scoped under .opui; no :root/body overrides. */
.opui{
  --p-bg:#0A0B0D; --p-bg2:#101113; --sf:#141518; --sf2:#1A1C20; --sf3:#202329;
  --bd:rgba(236,226,214,0.10); --bdf:rgba(236,226,214,0.055); --bds:rgba(236,226,214,0.19);
  --tx:#EDEEF2; --tx2:#B4B8C0; --tx3:#8A8F99; --tx4:#5E636D;
  --ac:#C9A87C; --acs:#E0C79C;
  --cr:#E06C60; --hi:#D98A5B; --me:#CBB26A; --lo:#8FA9B8; --nf:#8A8F99; --ok:#7FB08A;
  --r:4px; --rl:9px; --rx:14px; --ez:cubic-bezier(.32,.72,0,1);
  --fm:'Geist Mono',ui-monospace,'JetBrains Mono',Menlo,monospace;
  --fs:'Newsreader',Georgia,serif; --fb:'Inter',-apple-system,sans-serif;display:block;padding:0;background:transparent;font-family:var(--fb);position:relative}
.opui *{box-sizing:border-box}
.code .sep{color:var(--ffaint);font-style:italic}
.opui .astate{display:inline-flex;align-items:center;gap:7px;font-family:var(--fm);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid var(--bd);color:var(--tx2)}
.opui .astate .as-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.opui .astate.as-exploit{color:var(--hi);border-color:rgba(217,138,91,.45);background:rgba(217,138,91,.06)}
.opui .astate.as-exploit .as-dot{animation:aspulse 1.5s var(--ez) infinite}
.opui .badge{display:inline-block;font-family:var(--fm);font-size:10px;text-transform:uppercase;letter-spacing:.12em;padding:3px 9px;border-radius:999px;border:1px solid var(--bd);color:var(--tx3);background:transparent}
/* ---- dock console ---- */
.opui .dock2{background:#07090d;border:1px solid var(--bd);border-radius:var(--rx);display:flex;flex-direction:column;overflow:hidden;position:relative}
.opui .dock-progress{position:absolute;top:0;left:0;right:0;height:2px;background:rgba(255,255,255,.05);overflow:hidden;z-index:2}
.opui .dock-progress .fill{height:100%;width:35%;background:linear-gradient(90deg,var(--ac),var(--acs));animation:indet 1.4s var(--ez) infinite}
.opui .dock-head{height:44px;flex:0 0 44px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 15px;background:#0a0d12;border-bottom:1px solid var(--bd)}
.opui .dock-title{font-family:var(--fm);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--tx3);display:flex;align-items:center;gap:9px;min-width:0}
.opui .term-ico{color:var(--ac);font-weight:700;letter-spacing:-1px}
.opui .dock-titletext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.opui .ev-count{color:var(--tx4);letter-spacing:.04em}
.opui .dock-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.opui .dock-status{font-family:var(--fm);font-size:11px;color:var(--acs);display:flex;align-items:center;gap:7px;letter-spacing:.04em}
.opui .dock-status .spin{width:11px;height:11px;border-radius:50%;border:1.5px solid rgba(201,168,124,.25);border-top-color:var(--ac);animation:spin .7s linear infinite}
.opui .dock-btn{height:24px;padding:0 11px;font-family:var(--fb);font-size:11px;background:rgba(255,255,255,.03);color:var(--tx3);border:1px solid var(--bd);border-radius:6px}
.opui .dock-tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--bd);flex:0 0 auto}
.opui .dock-tabs button{height:34px;background:none;border:0;border-bottom:2px solid transparent;color:var(--tx4);padding:0 12px;font-family:var(--fm);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.opui .dock-tabs button.active{color:var(--tx);border-bottom-color:var(--ac)}
.opui .dock-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:10px 15px;font-family:var(--fm)}
/* thin scrollbars */
.opui .flist::-webkit-scrollbar,.opui .dock-body::-webkit-scrollbar{width:8px}
.opui .flist::-webkit-scrollbar-thumb,.opui .dock-body::-webkit-scrollbar-thumb{background:rgba(236,226,214,.14);border-radius:99px;border:2px solid transparent;background-clip:padding-box}
.opui .flist::-webkit-scrollbar-thumb:hover,.opui .dock-body::-webkit-scrollbar-thumb:hover{background:rgba(236,226,214,.24);background-clip:padding-box}
.opui .flist,.opui .dock-body{scrollbar-width:thin;scrollbar-color:rgba(236,226,214,.16) transparent}
.browser .opui{border-radius:0}
.opui .ev{padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04);display:flex;gap:12px;align-items:baseline;color:var(--tx2);flex-wrap:wrap;animation:evin .3s ease both}
.opui .ev .k{flex:0 0 60px;font-size:9px;text-transform:uppercase;letter-spacing:.16em;padding-top:2px}
.opui .ev .msg{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12.5px;line-height:1.55}
.opui .ev .det,.opui .ev .msg .det{color:var(--tx4)}
.opui .ev.kind-phase{color:#fff}
.opui .ev.kind-phase .k{color:var(--acs)}
.opui .ev.kind-tool .k{color:var(--lo)}
.opui .ev.kind-agent .k{color:#8FA9B8}
.opui .ev.kind-agent{color:var(--tx3)}
.opui .ev.kind-ai .k{color:var(--ac)}
.opui .ev.kind-ai{color:var(--acs)}
.opui .ev.kind-finding .k{color:var(--hi)}
.opui .ev.kind-test .k{color:var(--ac)}
.opui .ev.kind-test{color:var(--tx)}
.opui .ev.kind-test .msg{font-weight:500}
.opui .ev.hyp{color:var(--tx3)}
.opui .ev.hyp .msg{font-style:italic}
/* steer */
.opui .op-steer{flex:0 0 auto;border-top:1px solid var(--bd)}
.opui .op-steer-head{display:flex;align-items:center;gap:8px;padding:10px 14px 0}
.opui .op-steer-lbl{font-family:var(--fm);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--tx4)}
.opui .op-live{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-family:var(--fm);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--acs)}
.opui .op-live-dot{width:6px;height:6px;border-radius:50%;background:var(--acs);animation:aspulse 1.5s var(--ez) infinite}
.opui .op-chips{display:flex;gap:6px;flex-wrap:wrap;padding:9px 14px 2px}
.opui .op-chips button{background:var(--sf2);border:1px solid var(--bd);color:var(--tx3);font-family:var(--fm);font-size:10px;letter-spacing:.02em;padding:5px 11px;border-radius:999px}
.opui .op-input{display:flex;gap:8px;padding:10px 14px 12px}
.opui .op-input input{flex:1;min-width:0;background:#06070a;border:1px solid var(--bd);color:var(--tx);border-radius:8px;padding:9px 12px;font-size:12.5px;font-family:var(--fm)}
.opui .op-input button{background:var(--ac);color:#0a0a0a;border:none;border-radius:8px;padding:0 18px;font-family:var(--fb);font-size:12px;font-weight:600}
.opui .dock-body{min-height:280px}
.opui .dock2{height:min(560px,70vh)}
.opui .dock-body{min-height:0}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes aspulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes bk{50%{opacity:0}}
@keyframes indet{0%{transform:translateX(-120%)}100%{transform:translateX(380%)}}
@keyframes evin{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
