:root{
  --bg:#020402; --panel:#061006; --line:#315431;
  --green:#8cff8c; --green2:#4fd44f; --dim:#6f936f;
  --amber:#f0c95a; --red:#ff7373;
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0; background:#010301; color:var(--green);
  font-family:"Courier New",Courier,monospace;
  background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:100% 4px;
}
body::after{
  content:""; position:fixed; inset:0; pointer-events:none;
  box-shadow:inset 0 0 120px #000;
}
.shell{
  width:min(980px,96vw); margin:20px auto;
  border:2px solid var(--line); background:rgba(1,5,1,.96);
}
.titlebar{
  display:flex; justify-content:space-between; gap:10px;
  padding:8px 10px; color:#001500; background:var(--green);
  font-weight:700;
}
.toolbar{
  display:flex; flex-wrap:wrap; gap:8px; padding:10px;
  border-bottom:1px solid var(--line);
}
button{
  border:1px solid var(--green2); border-radius:0;
  background:#071007; color:var(--green);
  font:700 13px "Courier New",monospace; padding:8px 10px;
  cursor:pointer;
}
button:hover,button:focus-visible{background:var(--green);color:#001500;outline:none}
.status{
  display:grid; grid-template-columns:repeat(4,1fr); gap:8px;
  padding:10px; border-bottom:1px solid var(--line);
}
.card{border:1px solid var(--line);background:var(--panel);padding:8px;min-height:54px}
.card span{display:block;font-size:11px;color:var(--dim)}
.card strong{color:var(--amber)}
.terminal{
  height:min(58vh,520px); min-height:340px; overflow:auto;
  padding:14px; white-space:pre-wrap; line-height:1.45;
}
.line{margin:0 0 7px}
.user{color:var(--amber)}
.bot{color:var(--green)}
.sys{color:var(--dim)}
.err{color:var(--red)}
.inputrow{
  display:flex;gap:8px;align-items:center;padding:10px;border-top:1px solid var(--line);
}
.prompt{white-space:nowrap;color:var(--green2)}
#chatInput{
  width:100%;border:0;outline:0;background:transparent;color:var(--green);
  font:15px "Courier New",monospace;
}
.footer{padding:8px 10px;border-top:1px solid var(--line);color:var(--dim);font-size:11px}
.hidden{display:none!important}
#libPanel{
  padding:10px;border-top:1px solid var(--line);background:#030803;
}
.libgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.libitem{border:1px solid var(--line);padding:7px;color:var(--dim)}
.libitem b{color:var(--green)}
.badge{color:var(--amber);font-size:11px}
@media(max-width:650px){
  .status{grid-template-columns:repeat(2,1fr)}
  .libgrid{grid-template-columns:1fr}
  .titlebar{flex-direction:column}
}
