/* Tema "Atelier" — tokens exactos extraidos de la UI de OpenMausBot */
:root{
  --color-app:#f5f1eb;
  --color-panel:#fbf8f2;
  --color-raised:#fff;
  --color-raised-hover:#f2e9dc;
  --color-composer:#fff;
  --color-card:#fff;
  --color-menu:#fff;
  --color-inset:#f5f1eb;
  --color-control:#ece4d6;
  --color-hairline:#c8bda8;
  --color-ink:#1a1a18;
  --color-ink-secondary:#6b6559;
  --color-accent:#a05f25;
  --color-accent-border:#b06a2c;
  --color-accent-text:#96551f;
  --color-focus:#96551f;
  --color-accent-ink:#fff;
  --color-bubble-user:#f2e9dc;
  --color-bubble-user-ink:#1a1a18;
  --color-success:#3f6b47;
  --color-danger:#a33a32;
  --color-scrollbar:#c9c0ae;
  --color-maus-line:#6b6559;
  --font-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --radius-lg:6px;
  --radius-xl:10px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--color-app);color:var(--color-ink);
  font-family:var(--font-sans);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:none;
}
#app{display:flex;flex-direction:column;height:100dvh;max-width:900px;margin:0 auto;
     background:var(--color-app)}
header.top{
  display:flex;align-items:center;gap:10px;padding:12px 16px;
  background:var(--color-panel);border-bottom:1px solid var(--color-hairline);
  position:sticky;top:0;z-index:5;padding-top:calc(12px + env(safe-area-inset-top));
}
header.top .brand{font-weight:600;letter-spacing:.2px}
header.top .dot{width:8px;height:8px;border-radius:50%;background:var(--color-success);
  box-shadow:0 0 0 3px rgba(63,107,71,.15)}
header.top .spacer{flex:1}
header.top button.ghost{
  background:transparent;border:1px solid var(--color-hairline);color:var(--color-ink-secondary);
  border-radius:var(--radius-lg);padding:6px 10px;font:inherit;font-size:13px;cursor:pointer}
header.top button.ghost:hover{background:var(--color-raised-hover)}
header.top button.ghost.on{background:var(--color-success);border-color:var(--color-success);color:#fff}

main#scroll{flex:1;overflow-y:auto;padding:12px 10px;scroll-behavior:smooth}
.msg{display:flex;margin:10px 0;gap:8px}
.msg .who{font-size:11px;color:var(--color-ink-secondary);margin-bottom:3px}
.msg .bubble{
  max-width:min(96%,760px);padding:11px 15px;border-radius:var(--radius-xl);
  white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;
  border:1px solid var(--color-hairline);background:var(--color-card)}
.msg.user{justify-content:flex-end}
.msg.user .bubble{background:var(--color-bubble-user);color:var(--color-bubble-user-ink);
  border-color:var(--color-accent-border)}
.msg.bot .bubble{background:var(--color-card)}
.msg.system{justify-content:center}
.msg.system .bubble{background:var(--color-inset);color:var(--color-ink-secondary);
  font-size:13px;border-style:dashed}
.msg .bubble img{max-width:100%;border-radius:var(--radius-lg);margin-top:6px;display:block}
.msg .bubble a.file{
  display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:6px 10px;
  border:1px solid var(--color-hairline);border-radius:var(--radius-lg);
  background:var(--color-inset);color:var(--color-accent-text);text-decoration:none;font-size:13px}
.typing{font-size:12px;color:var(--color-ink-secondary);padding:2px 16px 8px;height:16px}

footer.composer{
  position:sticky;bottom:0;background:var(--color-panel);
  border-top:1px solid var(--color-hairline);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
}
.attachrow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--color-inset);
  border:1px solid var(--color-hairline);border-radius:999px;padding:4px 8px;font-size:12px}
.chip img{width:22px;height:22px;object-fit:cover;border-radius:6px}
.chip button{background:none;border:0;color:var(--color-danger);cursor:pointer;font-size:14px;line-height:1}
.row{display:flex;align-items:flex-end;gap:8px}
textarea#text{
  flex:1;resize:none;min-height:44px;max-height:180px;padding:11px 12px;font:inherit;
  color:var(--color-ink);background:var(--color-composer);
  border:1px solid var(--color-hairline);border-radius:var(--radius-lg);outline:none}
textarea#text:focus{border-color:var(--color-focus);box-shadow:0 0 0 2px rgba(150,85,31,.15)}
button.icon{
  flex:0 0 auto;width:44px;height:44px;border-radius:var(--radius-lg);cursor:pointer;
  border:1px solid var(--color-hairline);background:var(--color-raised);color:var(--color-ink);
  display:grid;place-items:center}
button.icon:hover{background:var(--color-raised-hover)}
button.send{background:var(--color-accent);border-color:var(--color-accent-border);
  color:var(--color-accent-ink)}
button.send:hover{background:#8f5521}
button.icon:disabled{opacity:.45;cursor:default}
svg{display:block}

.pushbanner{
  display:flex;align-items:center;gap:10px;margin:8px 10px 0;padding:10px 12px;
  background:var(--color-accent);color:#fff;border-radius:var(--radius-lg);font-size:13px}
.pushbanner span{flex:1}
.pushbanner button{
  flex:0 0 auto;font:inherit;font-size:13px;font-weight:600;cursor:pointer;
  background:#fff;color:var(--color-accent-text);border:0;border-radius:var(--radius-lg);padding:7px 12px}

/* ---- login ---- */
.login{max-width:420px;margin:8vh auto;padding:24px;background:var(--color-panel);
  border:1px solid var(--color-hairline);border-radius:var(--radius-xl)}
.login h1{font-size:20px;margin:0 0 4px}
.login p{color:var(--color-ink-secondary);font-size:14px;margin:0 0 18px}
.login label{display:block;font-size:13px;color:var(--color-ink-secondary);margin:12px 0 5px}
.login input{width:100%;padding:11px 12px;font:inherit;border-radius:var(--radius-lg);
  border:1px solid var(--color-hairline);background:var(--color-composer);color:var(--color-ink)}
.login button{width:100%;margin-top:16px;padding:12px;font:inherit;font-weight:600;cursor:pointer;
  background:var(--color-accent);color:var(--color-accent-ink);border:1px solid var(--color-accent-border);
  border-radius:var(--radius-lg)}
.login button.secondary{background:var(--color-raised);color:var(--color-ink);border-color:var(--color-hairline);
  font-weight:500}
.login .err{color:var(--color-danger);font-size:13px;margin-top:10px;min-height:18px}
.login .ok{color:var(--color-success);font-size:13px;margin-top:10px}
.hidden{display:none!important}
