:root{--bg:#0b0f0c;--panel:#111814;--line:#24362b;--fg:#d6e8da;--dim:#8fa597;--acc:#5fe39a;--warn:#f2c14e;--bad:#ff6b6b;--focus:#9ecbff;color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--fg);font:14px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;display:flex;flex-direction:column;min-height:100vh}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--acc);color:#000;padding:4px 8px;z-index:9}
header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--line)}
header strong span{color:var(--acc)}header small,#identity{color:var(--dim)}
#staging-banner{background:var(--warn);color:#000;padding:.4rem 1rem;font-weight:700}
#app{flex:1;display:grid;grid-template-columns:minmax(220px,300px) 1fr;min-height:0}
#commands{border-right:1px solid var(--line);padding:.75rem;overflow:auto;max-height:calc(100vh - 6rem)}
#commands h2{font-size:1rem;margin:0 0 .25rem;color:var(--acc)}
#cmd-list{list-style:none;margin:0;padding:0}
#cmd-list button{display:block;width:100%;text-align:left;background:none;border:1px solid transparent;color:var(--fg);padding:.35rem .4rem;font:inherit;cursor:pointer;border-radius:3px}
#cmd-list button:hover{border-color:var(--line);background:var(--panel)}
#cmd-list code{color:var(--acc);display:block}
.desc{display:block;color:var(--dim);font-size:12px}
main{display:flex;flex-direction:column;min-width:0;padding:.75rem}
#out{flex:1;overflow:auto;max-height:calc(100vh - 11rem);padding-right:.25rem}
#out p{margin:.25rem 0}
.echo{color:var(--dim)}.echo .ps{color:var(--acc)}
.note{color:var(--fg)}.err{color:var(--bad)}.err::before{content:"✖ "}
.muted{color:var(--dim)}
.block{border:1px solid var(--line);border-left:3px solid var(--acc);background:var(--panel);padding:.5rem .75rem;margin:.4rem 0 .8rem}
.block h3{margin:0 0 .35rem;font-size:1rem;color:var(--acc)}.block h4{margin:.4rem 0 .2rem;font-size:.95rem}
.eyebrow{color:var(--dim);font-size:12px;letter-spacing:.06em;margin:0}
.issues{border-left:3px solid var(--warn);padding-left:.6rem;margin:.4rem 0}
.issues ul{margin:.2rem 0;padding-left:1.2rem}
.verdict{display:flex;gap:.6rem;align-items:baseline;margin:.3rem 0}
.badge{display:inline-block;padding:0 .4rem;border:1px solid currentColor;border-radius:3px;font-weight:700;white-space:nowrap;color:var(--warn)}
.badge[data-status="PASS"]{color:var(--acc)}
.badge[data-status="FAIL"],.badge[data-status="UNKNOWN"],.badge[data-status="BLOCKED"]{color:var(--bad)}
.badge[data-status="N/A"]{color:var(--dim)}
table{border-collapse:collapse;width:100%;margin:.3rem 0}
th,td{text-align:left;padding:.2rem .5rem;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
th{color:var(--dim);font-weight:400}
.kv{display:grid;grid-template-columns:minmax(10rem,max-content) 1fr;gap:.1rem 1rem;margin:.3rem 0}
.kv dt{color:var(--dim)}.kv dd{margin:0;overflow-wrap:anywhere}
.timeline{padding-left:1.4rem}.timeline li{margin:.3rem 0}
details summary{cursor:pointer;color:var(--dim)}
a{color:var(--focus)}
button.link{background:none;border:1px solid var(--line);color:var(--acc);font:inherit;padding:0 .4rem;cursor:pointer;border-radius:3px}
button.link:hover{background:var(--line)}
#prompt{display:flex;gap:.5rem;align-items:center;border-top:1px solid var(--line);padding-top:.5rem}
#ps{color:var(--acc);white-space:nowrap}
#cmd{flex:1;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--fg);font:inherit;padding:.3rem 0}
#prompt button{background:var(--acc);color:#000;border:0;font:inherit;padding:.25rem .8rem;cursor:pointer;border-radius:3px}
#hint{min-height:1.5em;margin-top:.3rem;font-size:12px}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
footer{border-top:1px solid var(--line);padding:.5rem 1rem;color:var(--dim);font-size:12px}
@media (max-width:760px){#app{grid-template-columns:1fr}#commands{border-right:0;border-bottom:1px solid var(--line);max-height:30vh}#out{max-height:none}}
#cmd-toggle{display:none;font-size:12px;margin-left:.4rem}
@media (max-width:640px){
body{height:100vh;height:100dvh;min-height:0}
header{flex-wrap:wrap;gap:.2rem 1rem;padding:.5rem .75rem}#identity{min-width:0;overflow-wrap:anywhere}
#app{grid-template-rows:auto minmax(0,1fr)}
#commands{max-height:45vh;padding:.4rem .75rem}#cmd-toggle{display:inline-block}
#commands:not(.open)>p,#commands:not(.open) #cmd-list{display:none}
main{min-height:0;padding:.5rem .75rem}#out{min-height:0;max-height:none}
table{display:block;max-width:100%;overflow-x:auto}th,td{overflow-wrap:break-word}
.kv{grid-template-columns:minmax(0,1fr);gap:0}.kv dd{margin-bottom:.3rem}
#ps{max-width:45%;overflow:hidden;text-overflow:ellipsis}#cmd{min-width:0;font-size:16px}
#prompt{padding-bottom:env(safe-area-inset-bottom)}
footer{position:static;padding:.4rem .75rem}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
