/* /open-core r4 — shared: display fonts, the run window (Zidos Desktop replica), verifier states. */
@font-face{font-family:Onest;src:url('fonts/onest-cyrillic.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Onest;src:url('fonts/onest-latin.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Cormorant;src:url('fonts/cormorant-garamond-cyrillic-500-italic.woff2') format('woff2');font-style:italic;font-weight:500;font-display:swap;unicode-range:U+0400-045F,U+0490-0491}
@font-face{font-family:Cormorant;src:url('fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');font-style:italic;font-weight:500;font-display:swap;unicode-range:U+0000-00FF}

:root{
  --r4-display:Onest,Inter,system-ui,sans-serif;
  --r4-serif:Cormorant,Georgia,serif;
  /* app run window, light (agent p3) */
  --rw-bg:#F5F6FA;--rw-main:#EDEFF5;--rw-card:#FFFFFF;--rw-ink:#0F1222;--rw-muted:#535D73;--rw-faint:#D5DAE4;
  --rw-lime:#3F6B00;--rw-lime-fill:#A6E83A;--rw-deny:#BE123C;--rw-seg:#E3E7EF;--rw-seg-on:#FFFFFF;--rw-on:#0F1222;--rw-allow-hover:#8FD11F;
  --r4-word:#4E8400;
  --r4-ease:cubic-bezier(.32,.72,0,1);--r4-in:600ms;--r4-fast:200ms;
}
:root[data-theme=dark]{
  --rw-bg:#141728;--rw-main:#181B2D;--rw-card:#252A3E;--rw-ink:#F5F6FA;--rw-muted:#A9AEBF;--rw-faint:#3A3F55;
  --r4-word:#A6E83A;
  --rw-lime:#C9F178;--rw-lime-fill:#C9F178;--rw-deny:#FDA4AF;--rw-seg:#252A3E;--rw-seg-on:#F5F6FA;
}

.tn{font-variant-numeric:tabular-nums}
.r4-it{font-family:var(--r4-serif);font-style:italic;font-weight:500;letter-spacing:-.01em}

/* ---------- run window ---------- */
.rw{--rw-r:24px;background:var(--rw-bg);color:var(--rw-ink);border-radius:28px;padding:20px;font:14px/1.4 Inter,system-ui,sans-serif;text-align:left;container-type:inline-size}
.rw h3{margin:0;font-size:14px;font-weight:500;letter-spacing:0}
.rw-head{display:flex;align-items:center;gap:16px;padding:4px 4px 16px}
.rw-title{flex:1;min-width:0}
.rw-task{margin:0;font-size:17px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rw-model{margin:4px 0 0;font-size:12.5px;color:var(--rw-muted)}
.rw-seg{display:flex;background:var(--rw-seg);border-radius:999px;padding:4px;font-size:13px}
.rw-seg span{padding:7px 14px;border-radius:999px;color:var(--rw-muted)}
.rw-seg span.on{background:var(--rw-seg-on);color:var(--rw-on)}
.rw-state{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--rw-muted)}
.rw-state i{width:8px;height:8px;border-radius:50%;background:var(--rw-muted)}
.rw-state[data-v=done] i{background:var(--rw-lime)}
.rw-state[data-v=stop] i{background:var(--rw-deny)}
.rw-cols{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:12px;background:var(--rw-main);border-radius:var(--rw-r);padding:12px}
.rw-main,.rw-side{display:grid;gap:12px;align-content:start;min-width:0}
.rw-card{background:var(--rw-card);border-radius:18px;padding:16px;margin:0}
.rw-prog{display:flex;justify-content:space-between;margin:14px 0 8px;font-size:13px;color:var(--rw-muted)}
.rw-bar{height:6px;border-radius:999px;background:var(--rw-faint);overflow:hidden}
.rw-bar i{display:block;height:100%;background:var(--rw-lime-fill);transform:scaleX(0);transform-origin:left;transition:transform var(--r4-in) var(--r4-ease)}
.rw-steps{list-style:none;display:grid;gap:2px}
.rw-steps-h{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:8px;color:var(--rw-muted)}
.rw-steps-h h3{color:var(--rw-ink)}
.rw-step{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;gap:4px 10px;align-items:start;padding:8px 0}
/* not reached yet: tone, not opacity (stays readable) */
.rw-step:not([data-s=allow]):not([data-s=wait]):not([data-s=deny]) .rw-st{color:var(--rw-muted)}
.rw-st{transition:color var(--r4-fast) ease}
.rw-dot{width:18px;height:18px;border-radius:50%;margin-top:1px;background:var(--rw-faint);display:grid;place-items:center}
.rw-step[data-s=allow] .rw-dot{background:var(--rw-lime-fill)}
.rw-step[data-s=allow] .rw-dot::after{content:"";width:7px;height:4px;border:solid var(--rw-on);border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg)}
.rw-step[data-s=deny] .rw-dot{background:var(--rw-deny)}
.rw-step[data-s=wait] .rw-dot{background:transparent;box-shadow:inset 0 0 0 2px var(--rw-ink)}
.rw-st{margin:0;font-weight:500;overflow-wrap:anywhere}
.rw-sd{margin:2px 0 0;font-size:12.5px;color:var(--rw-muted);overflow-wrap:anywhere}
.rw-step.is-fold .rw-st{font-weight:400;color:var(--rw-muted)}
.rw-step time{font-size:12px;color:var(--rw-muted);padding-top:2px}
.rw-pill{font-size:12px;padding:2px 9px;border-radius:999px;background:var(--rw-main);color:var(--rw-muted);white-space:nowrap;align-self:start}
.rw-pill:not(:has(.on)){visibility:hidden}
.rw-swap{display:inline-grid}
p.rw-swap{display:grid}
.rw-swap>span{grid-area:1/1;visibility:hidden}
.rw-swap>span.on{visibility:visible}
.rw-pill.rw-swap>span{text-align:center}
.rw-step[data-s=deny] .rw-pill{color:var(--rw-deny)}
.rw-step[data-s=wait] .rw-pill{background:var(--rw-ink);color:var(--rw-bg)}
.rw-diff{margin:8px 0 0;font:12px/1.5 'JetBrains Mono',ui-monospace,monospace;display:grid;background:var(--rw-main);border-radius:10px;padding:8px 10px;white-space:pre-wrap;overflow-wrap:anywhere}
.rw-diff .rm{color:var(--diff-removed)}.rw-diff .ad{color:var(--diff-added)}
.rw-ask[hidden]{display:none}
.rw-step.has-ask .rw-ask[hidden]{display:flex;visibility:hidden}
.rw-ask[data-chosen] button{cursor:default}
.rw-ask[data-chosen=allow] .rw-deny,.rw-ask[data-chosen=deny] .rw-allow{opacity:.45}
.rw-ask{display:flex;gap:8px;margin-top:10px}
.rw-ask button{font:inherit;font-size:14px;font-weight:500;min-height:44px;padding:0 18px;border-radius:999px;border:0;cursor:pointer;transition:background-color var(--r4-fast) ease,color var(--r4-fast) ease}
.rw-allow{background:var(--action);color:var(--rw-on)}
.rw-allow:hover:not(:disabled){background:var(--rw-allow-hover)}
.rw-deny{background:var(--rw-main);color:var(--rw-ink)}
.rw-deny:hover:not(:disabled){background:var(--rw-faint)}
.rw-ask button:focus-visible{outline:2px solid var(--rw-ink);outline-offset:2px}
.rw-flow ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.rw-flow li{color:var(--rw-muted);transition:color var(--r4-fast) ease}
.rw-flow li.on{color:var(--rw-ink)}
.rw-verdict{margin:10px 0 2px;font-weight:500}
.rw-verdict[data-v=pass]{color:var(--rw-lime)}
.rw-verdict[data-v=stop]{color:var(--rw-deny)}
.rw-vd{margin:0;font-size:12.5px;color:var(--rw-muted)}
@container (max-width:640px){
  .rw-cols{grid-template-columns:1fr}
  .rw-seg{display:none}
}
@container (max-width:420px){
  .rw-step{grid-template-columns:18px minmax(0,1fr) auto}
  .rw-step time{display:none}
}

/* ---------- verifier (shared state hooks; each direction styles its own stage) ---------- */
[data-zv] [data-zv-undo]{display:none}
[data-zv][data-zv=fail] [data-zv-undo]{display:inline-flex}
[data-zv][data-zv=fail] [data-zv-tamper]{display:none}
[data-zv][data-zv=busy] button{pointer-events:none;opacity:.6}
[data-zv-code]{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:13px;letter-spacing:.02em}

@media (prefers-reduced-motion:reduce){
  .rw *, .rw *::after{transition:none!important}
}
