:root{
  --bg:#0c0c10;--card:#14141a;--card2:#1c1c24;--bdr:#2a2a38;
  --text:#dddde8;--muted:#6b6b82;--hint:#3e3e52;
  --accent:#7c5af0;--accent2:#a07cf8;--green:#3dd68c;--red:#f05a7c;--yellow:#f0c05a;
  --r:12px;--r2:8px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;line-height:1.6}
a{color:var(--accent2);text-decoration:none}
a:hover{text-decoration:underline}

.wrap{max-width:720px;margin:0 auto;padding:32px 20px 60px}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}
.brand .logo{font-size:26px}
.brand .name{font-size:18px;font-weight:700}
.brand .tag{font-size:11.5px;color:var(--muted);margin-left:4px}

h1{font-size:22px;margin:0 0 6px}
h2{font-size:16px;margin:0 0 12px}
p.lead{color:var(--muted);margin:0 0 24px;font-size:14px}

.card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:18px 20px;margin-bottom:16px}
.companion-card{display:flex;flex-direction:column;gap:6px}
.companion-card .name{font-size:16px;font-weight:700}
.companion-card .meta{font-size:12.5px;color:var(--muted)}
.companion-card .desc{font-size:13.5px;color:var(--text);opacity:.85}
.companion-card .row{display:flex;justify-content:space-between;align-items:center;gap:10px}

.field{margin-bottom:14px}
.field label{display:block;font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.field input,.field textarea{width:100%;background:var(--card2);border:1px solid var(--bdr);border-radius:var(--r2);
  padding:10px 12px;color:var(--text);font-size:14px;outline:none;resize:vertical;font-family:inherit;transition:border-color .15s}
.field input:focus,.field textarea:focus{border-color:var(--accent)}

.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--bdr);border-radius:var(--r2);
  padding:10px 18px;font-size:13.5px;cursor:pointer;background:var(--card2);color:var(--text);transition:all .15s}
.btn:hover{border-color:var(--accent);color:var(--accent2)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
.btn.primary:hover{background:var(--accent2);color:#fff}
.btn:disabled{opacity:.5;cursor:default}

.msg{font-size:12.5px;min-height:16px;margin:8px 0}
.msg.err{color:var(--red)}
.msg.ok{color:var(--green)}

.nav-links{display:flex;gap:16px;font-size:12.5px;margin-top:24px;color:var(--muted)}

/* Chat */
.chat-box{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);
  height:60vh;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.bubble{max-width:80%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.5}
.bubble.user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.bubble.assistant{align-self:flex-start;background:var(--card2);border:1px solid var(--bdr);border-bottom-left-radius:4px}
.chat-input-row{display:flex;gap:8px}
.chat-input-row textarea{flex:1;min-height:44px;max-height:120px}
.placeholder{color:var(--hint);text-align:center;padding:40px 0;font-size:13px}
