:root{--bg:#0f1115;--panel:#151922;--text:#e7e7e7;--muted:#9aa4b2;--line:rgba(255,255,255,.1);--btn:rgba(255,255,255,.12);--btn2:rgba(255,255,255,.2);--ok:rgba(90,200,120,.18);--warn:rgba(255,200,80,.18);--err:rgba(255,90,90,.18)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Arial,sans-serif;background:radial-gradient(1100px 700px at 20% 0%,#1c2440 0%,var(--bg) 55%);color:var(--text)}.page{min-height:100vh;display:flex;flex-direction:column}.topbar{padding:14px 18px;border-bottom:1px solid var(--line);background:#00000040;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;gap:12px;align-items:center}.logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#fff3,#ffffff0f);border:1px solid var(--line)}.name{font-weight:700}.subtitle{font-size:12px;color:var(--muted);margin-top:2px}.main{flex:1;display:grid;place-items:center;padding:18px}.card{width:min(980px,100%);height:min(720px,calc(100vh - 140px));background:#0000004d;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}.row{display:flex;gap:12px;align-items:center}.pill{padding:8px 10px;border-radius:999px;border:1px solid var(--line);font-size:12px;color:var(--muted)}.pill.ok{background:var(--ok)}.pill.warn{background:var(--warn)}.pill.err{background:var(--err)}.messages{flex:1;padding:18px;overflow:auto}.bubble{max-width:78%;padding:12px 14px;border-radius:14px;margin:10px 0;border:1px solid var(--line);white-space:pre-wrap;line-height:1.35}.bubble.user{margin-left:auto;background:#48a0ff2e}.bubble.assistant{margin-right:auto;background:#ffffff12}.composer{display:flex;gap:10px;padding:12px;border-top:1px solid var(--line);background:#00000040}textarea{flex:1;resize:none;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#00000040;color:var(--text);outline:none}button{min-width:120px;border-radius:12px;border:1px solid var(--line);background:var(--btn);color:var(--text);cursor:pointer;font-weight:700}button:hover{background:var(--btn2)}button:disabled{opacity:.55;cursor:not-allowed}.form{padding:18px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}input{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#00000040;color:var(--text);outline:none}.small{font-size:12px;color:var(--muted)}hr{border:none;border-top:1px solid var(--line);margin:14px 0}
