:root{--bg:#0f1418;--card:#171e25;--line:#263038;--txt:#e8eef2;--muted:#8fa1ad;--acc:#2dd4bf;--ok:#3ddc97;--err:#ff6b6b;--warn:#f5c451}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:15px;line-height:1.45}
a{color:var(--acc)}
header.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;background:#0b0f12;border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{font-weight:700}.brand span{color:var(--acc)}.brand small{color:var(--muted);font-weight:400;margin-left:8px}
nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
nav a{color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:8px}
nav a.on{background:var(--card);color:var(--txt)}nav a.ext{color:var(--warn)}
form.inline{display:inline}
button,.btn{background:var(--acc);color:#04211d;border:0;border-radius:8px;padding:8px 14px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block;font-size:14px}
button.sec,.btn.sec{background:#2a3642;color:var(--txt)}
button.danger{background:var(--err);color:#2b0000}
button.link{background:none;color:var(--muted);padding:6px 10px;font-weight:400}
button:disabled{opacity:.45;cursor:not-allowed}
main.wrap{max-width:1180px;margin:0 auto;padding:20px}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;background:#12332c;border:1px solid #1f5a4d}
.flash.err{background:#3a1717;border-color:#6b2a2a}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.card h2{margin:0 0 10px;font-size:17px}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.muted{color:var(--muted)}.small{font-size:13px}
.he{direction:rtl;text-align:right;font-size:16px}
label{display:block;font-weight:600;margin:10px 0 4px}
input[type=text],input[type=password],input[type=number],input[type=time],select,textarea{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:#0e1317;color:var(--txt);font-size:14px}
textarea{min-height:90px;font-family:inherit}
textarea.he{min-height:120px}
.help{color:var(--muted);font-size:13px;margin-top:3px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{color:var(--muted);font-weight:600}
.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;background:#2a3642}
.tag.ok{background:#144d3a;color:#c7f7e4}.tag.err{background:#5a1f1f;color:#ffd0d0}.tag.warn{background:#5a4a12;color:#ffe9a8}
.check{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line)}
.dot{width:12px;height:12px;border-radius:50%;background:#3a4650;flex:none}.dot.on{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.err{background:var(--err)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.row>div{flex:1;min-width:160px}
pre{white-space:pre-wrap;word-break:break-word;background:#0b0f12;padding:12px;border-radius:8px;border:1px solid var(--line);max-height:70vh;overflow:auto;font-size:12.5px}
.transcript{display:flex;flex-direction:column;gap:6px}
.bubble{max-width:80%;padding:8px 12px;border-radius:12px;direction:rtl;text-align:right;font-size:16px}
.bubble.assistant{background:#173a34;align-self:flex-start}.bubble.user{background:#2a3642;align-self:flex-end}
.bubble.tool,.bubble.note,.bubble.error{background:#2b2630;font-size:13px;direction:ltr;text-align:left;align-self:center;color:var(--muted)}
.bubble.error{color:#ffb3b3}
.kpi{font-size:26px;font-weight:700}
