:root {
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #000;
  color: #f4f6f8;
  --panel: rgba(8, 13, 23, .92);
  --panel-soft: rgba(65, 65, 25, .05);
  --border: rgba(255, 255, 255, .1);
  --muted: #9ca3af;
  --accent: #2563eb;
  --accent-2: #4ade80;
  --indigo: #4f46e5;
  --gold: #e0bb43;
}

* { box-sizing: border-box; }
html, body { height: 100%; margin: 0; }
html { font-size: 20px; }
body { overflow: hidden; background: linear-gradient(to bottom right, #000, #1e3a8a) fixed; }
button, textarea { font: inherit; }
button { color: inherit; }

.app-shell { display: grid; grid-template-columns: 390px 1fr; height: 100dvh; background: transparent; }
.sidebar { display: flex; flex-direction: column; min-width: 0; min-height: 0; height: 100dvh; padding: 28px 23px; background: linear-gradient(180deg, rgba(0,0,0,.84), rgba(6,15,36,.74)); border-right: 1px solid var(--border); backdrop-filter: blur(16px); }
.brand { display: flex; align-items: center; gap: 16px; padding: 6px 11px 30px; }
.brand-mark, .welcome-mark { display: grid; place-items: center; background: linear-gradient(135deg, var(--accent), #5b9df6); box-shadow: 0 10px 35px rgba(116, 107, 238, .22); font-weight: 750; }
.brand-mark { width: 54px; height: 54px; border-radius: 17px; font-size: 22px; }
.brand strong, .brand span { display: block; }
.brand strong { font-size: 20px; letter-spacing: .01em; }
.brand span { margin-top: 4px; color: var(--muted); font-size: 15px; }
.new-chat { display: flex; align-items: center; gap: 14px; width: 100%; padding: 18px 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--panel-soft); cursor: pointer; transition: .2s ease; }
.new-chat:hover { border-color: rgba(139,124,246,.48); background: #1b1f2a; }
.new-chat span { color: #bcb3ff; font-size: 27px; }
.history-label { margin: 34px 12px 14px; color: #687182; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.history { flex: 1; min-height: 0; overflow-y: scroll; scrollbar-gutter: stable; }
.history-item { display: flex; align-items: center; gap: 11px; width: 100%; margin-bottom: 5px; padding: 15px 14px; border: 0; border-radius: 13px; background: transparent; color: #b9c0cc; text-align: left; cursor: pointer; }
.history-item:hover, .history-item.active { background: #181c25; color: #fff; }
.history-item span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 17px; }
.history-item .delete { display: none; padding: 2px 4px; border: 0; background: transparent; color: #747d8d; cursor: pointer; }
.history-item:hover .delete { display: block; }
.sidebar-footer { display: flex; align-items: center; gap: 12px; padding: 17px 9px 4px; border-top: 1px solid var(--border); }
.privacy-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--accent-2); box-shadow: 0 0 14px rgba(86,214,177,.65); }
.sidebar-footer strong, .sidebar-footer span { display: block; }
.sidebar-footer strong { font-size: 15px; }
.sidebar-footer span { margin-top: 5px; color: var(--muted); font-size: 13px; }

.chat-panel { display: grid; grid-template-rows: 92px minmax(0, 1fr) auto; min-width: 0; min-height: 0; height: 100dvh; overflow: hidden; background: radial-gradient(circle at 50% -25%, rgba(102,84,207,.12), transparent 42%), #10131a; }
.topbar { display: flex; align-items: center; padding: 0 40px; border-bottom: 1px solid var(--border); background: rgba(16,19,26,.8); backdrop-filter: blur(16px); }
.menu-button { display: none; margin-right: 12px; border: 0; background: transparent; cursor: pointer; }
.model-title strong, .model-title span { display: block; }
.model-title strong { font-size: 19px; }
.model-title span { margin-top: 4px; color: var(--muted); font-size: 15px; }
.status { display: flex; align-items: center; gap: 10px; margin-left: auto; padding: 10px 15px; border: 1px solid var(--border); border-radius: 999px; color: #9ca4b3; font-size: 14px; }
.status i { width: 7px; height: 7px; border-radius: 50%; background: #f2b84b; }
.status.ready i { background: var(--accent-2); box-shadow: 0 0 10px rgba(86,214,177,.7); }
.status.error i { background: #ef6b73; }

.messages { min-height: 0; overflow-y: scroll; padding: 44px max(32px, calc((100% - 1120px) / 2)) 130px; scroll-behavior: smooth; scrollbar-gutter: stable; }

.history,
.messages {
  scrollbar-width: auto;
  scrollbar-color: rgba(139, 124, 246, .72) rgba(255, 255, 255, .05);
}

.history::-webkit-scrollbar,
.messages::-webkit-scrollbar {
  width: 13px;
}

.history::-webkit-scrollbar-track,
.messages::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, .05);
  border-radius: 999px;
}

.history::-webkit-scrollbar-thumb,
.messages::-webkit-scrollbar-thumb {
  min-height: 48px;
  border: 3px solid transparent;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--accent), #5b9df6) padding-box;
}

.history::-webkit-scrollbar-thumb:hover,
.messages::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #a89cff, #72afff) padding-box;
}
.welcome { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 70vh; text-align: center; }
.welcome-mark { width: 80px; height: 80px; margin-bottom: 30px; border-radius: 24px; font-size: 31px; }
.welcome h1 { margin: 0; font-size: clamp(44px, 5vw, 62px); letter-spacing: -.035em; }
.welcome > p { max-width: 760px; margin: 18px 0 42px; color: var(--muted); font-size: 20px; line-height: 1.65; }
.suggestions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; width: min(100%, 1080px); }
.suggestions[hidden] { display: none; }
.suggestions button { min-height: 120px; padding: 22px; border: 1px solid var(--border); border-radius: 19px; background: rgba(24,28,37,.66); color: #aeb5c2; font-size: 17px; line-height: 1.5; text-align: left; cursor: pointer; transition: .2s ease; }
.suggestions button:hover { transform: translateY(-2px); border-color: rgba(139,124,246,.4); color: white; background: #1b1f2a; }
.message { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 20px; max-width: 1120px; margin: 0 auto 42px; }
.avatar { display: grid; place-items: center; width: 49px; height: 49px; border-radius: 15px; background: #222734; color: #d7dce5; font-size: 15px; font-weight: 750; }
.message.assistant .avatar { background: linear-gradient(135deg, var(--accent), #5b9df6); color: white; }
.message-body { min-width: 0; padding-top: 6px; color: #dce0e8; font-size: 21px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.message.user .message-body { color: #f6f7f9; }
.message-body .md-line { min-height: 1.7em; }
.message-body .md-spacer { height: .72em; }
.message-body .md-list-line { display: grid; grid-template-columns: 2.1em minmax(0, 1fr); gap: .25em; margin: .2em 0; white-space: normal; }
.message-body .md-list-line.md-bullet { padding-left: 1em; }
.message-body .md-marker { text-align: right; }
.message-body strong { color: inherit; font-weight: 750; }
.message-body em { font-style: italic; }
.message-body h2, .message-body h3, .message-body h4, .message-body h5 { margin: .75em 0 .3em; color: inherit; line-height: 1.3; }
.message-body blockquote { margin: .6em 0; padding: .15em 0 .15em 1em; border-left: 3px solid var(--gold); color: inherit; opacity: .88; }
.message-body code { padding: .12em .32em; border-radius: .3em; background: rgba(82, 88, 78, .1); font: .88em/1.5 Consolas, "Courier New", monospace; }
.message-body pre { max-width: 100%; margin: .7em 0; padding: 1em; overflow-x: auto; border: 1px solid rgba(82, 88, 78, .18); border-radius: 10px; background: #20241f; color: #f6f3ec; white-space: pre; }
.message-body pre code { padding: 0; background: transparent; color: inherit; }
.typing::after { content: ""; display: inline-block; width: 7px; height: 15px; margin-left: 3px; vertical-align: -2px; border-radius: 2px; background: #aaa1ff; animation: blink .85s infinite; }
@keyframes blink { 50% { opacity: .15; } }

.composer-wrap { padding: 22px max(32px, calc((100% - 1120px) / 2)) 27px; background: linear-gradient(transparent, #10131a 26%); }
.document-shelf { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; max-width: 1120px; margin: 0 auto 12px; padding: 12px 15px; border: 1px solid var(--border); border-radius: 16px; background: rgba(23,27,36,.96); }
.document-shelf[hidden] { display: none; }
.document-shelf-title { align-self: center; }
.document-shelf-title strong, .document-shelf-title span { display: block; }
.document-shelf-title strong { font-size: 14px; }
.document-shelf-title span { margin-top: 4px; color: var(--muted); font-size: 11px; }
.document-list { display: grid; gap: 8px; min-width: 0; }
.document-item { min-width: 0; }
.document-summary { display: flex; align-items: center; gap: 10px; }
.document-summary strong { min-width: 0; overflow: hidden; color: #d8dde6; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.document-summary span { margin-left: auto; color: var(--muted); font-size: 11px; white-space: nowrap; }
.document-delete { display: grid; flex: 0 0 auto; place-items: center; width: 24px; height: 24px; padding: 0; border: 1px solid rgba(239,107,115,.2); border-radius: 7px; background: rgba(239,107,115,.08); color: #ff9ba2; font-size: 18px; line-height: 1; cursor: pointer; }
.document-delete:hover { border-color: rgba(239,107,115,.5); background: rgba(239,107,115,.16); }
.document-delete:disabled { opacity: .35; cursor: not-allowed; }
.document-item.ready .document-summary span { color: var(--accent-2); }
.document-item.error .document-summary span { color: #ff9ba2; }
.document-progress { height: 3px; margin-top: 7px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.06); }
.document-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent), #5b9df6); transition: width .3s ease; }
.document-item.ready .document-progress i { background: var(--accent-2); }
.document-item.error .document-progress i { background: #ef6b73; }
.attachment-status { display: flex; align-items: center; gap: 11px; max-width: 1120px; margin: 0 auto 12px; padding: 11px 15px; border: 1px solid var(--border); border-radius: 15px; background: #171b24; color: #cbd1dc; font-size: 14px; }
.attachment-status[hidden] { display: none; }
.attachment-status.uploading { border-color: rgba(139,124,246,.4); }
.attachment-status.ready { border-color: rgba(86,214,177,.38); }
.attachment-status.error { border-color: rgba(239,107,115,.4); }
.attachment-icon { display: grid; place-items: center; min-width: 42px; height: 30px; border-radius: 9px; background: rgba(239,107,115,.14); color: #ff9ba2; font-size: 11px; font-weight: 800; letter-spacing: .05em; }
.attachment-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.attachment-state { margin-left: auto; color: var(--muted); white-space: nowrap; }
.composer { display: flex; align-items: flex-end; gap: 15px; max-width: 1120px; margin: 0 auto; padding: 16px 16px 16px 25px; border: 1px solid rgba(255,255,255,.12); border-radius: 25px; background: #1a1e27; box-shadow: 0 18px 55px rgba(0,0,0,.25); }
.composer:focus-within { border-color: rgba(139,124,246,.58); box-shadow: 0 18px 60px rgba(0,0,0,.3), 0 0 0 3px rgba(139,124,246,.07); }
.attach-button { display: grid; flex: 0 0 auto; place-items: center; width: 54px; height: 54px; border: 1px solid rgba(255,255,255,.1); border-radius: 17px; background: #242936; color: #d7d3ff; font-size: 32px; line-height: 1; cursor: pointer; transition: .2s ease; }
.attach-button:hover { border-color: rgba(139,124,246,.55); background: #2b3040; color: white; transform: translateY(-1px); }
.attach-button:disabled { opacity: .5; cursor: wait; transform: none; }
textarea { flex: 1; max-height: 220px; padding: 10px 0; border: 0; outline: 0; resize: none; background: transparent; color: #f4f5f7; font-size: 21px; line-height: 1.5; }
textarea::placeholder { color: #717989; }
.send-button { display: grid; flex: 0 0 auto; place-items: center; width: 54px; height: 54px; border: 0; border-radius: 17px; background: linear-gradient(135deg, var(--accent), #6d8ef6); color: white; font-size: 28px; cursor: pointer; }
.send-button:disabled { background: #343947; color: #6f7787; cursor: not-allowed; }
.stop-button { display: grid; flex: 0 0 auto; place-items: center; width: 54px; height: 54px; border: 1px solid rgba(255,255,255,.18); border-radius: 17px; background: #f5f7fb; color: #111827; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.send-button[hidden], .stop-button[hidden] { display: none !important; }
.stop-button:hover { background: #fff; transform: scale(1.03); }
.stop-button span { display: block; width: 17px; height: 17px; border-radius: 3px; background: currentColor; }
.composer-wrap > p { margin: 13px auto 0; color: #606979; font-size: 14px; text-align: center; }
.toast { position: fixed; right: 22px; bottom: 22px; max-width: 390px; padding: 12px 15px; border: 1px solid rgba(239,107,115,.28); border-radius: 11px; background: #2b171c; color: #ffbdc1; font-size: 12px; opacity: 0; transform: translateY(8px); pointer-events: none; transition: .2s ease; }
.toast.show { opacity: 1; transform: translateY(0); }

/* Identidad visual de Horta Technologies LLC */
.brand { min-height: 100px; padding: 2px 8px 27px; }
.brand-wordmark { display: block; width: min(100%, 300px); height: auto; border-radius: 8px; }
.new-chat { border-radius: 10px; background: rgba(65,65,25,.05); backdrop-filter: blur(10px); }
.new-chat:hover { border-color: rgba(224,187,67,.5); background: rgba(255,255,255,.07); }
.new-chat span { color: var(--gold); }
.history-item { border-radius: 8px; }
.history-item:hover, .history-item.active { background: rgba(37,99,235,.18); box-shadow: inset 3px 0 0 #4f7cff; }
.privacy-dot { background: var(--accent-2); }
.sidebar-footer { background: rgba(0,0,0,.12); }

.chat-panel { background: radial-gradient(circle at 82% 12%, rgba(37,99,235,.2), transparent 34%); }
.topbar { background: rgba(0,0,0,.26); }
.model-title strong { letter-spacing: -.02em; }
.admin-link { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin-left: auto; padding: 8px 16px; border: 1px solid rgba(224,187,67,.35); border-radius: 999px; background: rgba(224,187,67,.08); color: #f4d76f; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-decoration: none; transition: .2s ease; }
.admin-link:hover { border-color: rgba(224,187,67,.7); background: rgba(224,187,67,.15); color: #fff0a5; }
.logout-link { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin-left: 9px; padding: 8px 15px; border: 1px solid rgba(255,255,255,.12); border-radius: 999px; background: rgba(255,255,255,.045); color: #bbc4d2; font-size: 11px; font-weight: 800; letter-spacing: .1em; cursor: pointer; transition: .2s ease; }
.logout-link:hover { border-color: rgba(248,113,113,.45); background: rgba(248,113,113,.1); color: #ffd1d4; }
.logout-link:disabled { opacity: .55; cursor: wait; }
.status { background: rgba(65,65,25,.05); backdrop-filter: blur(10px); }
.topbar .status { margin-left: 10px; }

.history,
.messages {
  scrollbar-color: rgba(79, 124, 255, .78) rgba(255, 255, 255, .05);
}
.history::-webkit-scrollbar-thumb,
.messages::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #2563eb, #4f46e5) padding-box;
}
.history::-webkit-scrollbar-thumb:hover,
.messages::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #4f7cff, #6a60ee) padding-box;
}

.welcome-mark { width: min(440px, 78vw); height: auto; min-height: 130px; overflow: hidden; background: rgba(0,0,0,.12); border: 1px solid rgba(79,124,255,.22); border-radius: 18px; box-shadow: 0 14px 48px rgba(0,0,0,.22), 0 0 36px rgba(79,124,255,.09); }
.welcome-mark img { display: block; width: 100%; height: auto; object-fit: contain; }
.welcome h1 { max-width: 900px; font-weight: 800; letter-spacing: -.055em; }
.suggestions button { border-radius: 10px; background: rgba(65,65,25,.05); backdrop-filter: blur(10px); }
.suggestions button:hover { border-color: rgba(79,124,255,.58); background: rgba(37,99,235,.13); }

.message.assistant .avatar { background: rgba(0,0,0,.3); border: 1px solid rgba(224,187,67,.32); }
.message.assistant .avatar { color: #8fc5ff; font-size: 12px; font-weight: 850; letter-spacing: -.02em; }

.document-shelf,
.attachment-status { border-radius: 10px; background: rgba(8,13,23,.78); backdrop-filter: blur(12px); }
.document-progress i { background: linear-gradient(90deg, #2563eb, #4f46e5); }
.document-item.ready .document-progress i { background: linear-gradient(90deg, #20935c, #4ade80); }
.attachment-icon { background: rgba(224,187,67,.13); color: #f4d76f; }

.composer { border-radius: 14px; background: rgba(8,13,23,.9); backdrop-filter: blur(14px); }
.composer:focus-within { border-color: rgba(79,124,255,.68); box-shadow: 0 18px 60px rgba(0,0,0,.3), 0 0 0 3px rgba(37,99,235,.12); }
.attach-button { border-radius: 10px; background: rgba(255,255,255,.05); color: var(--gold); }
.attach-button:hover { border-color: rgba(224,187,67,.5); background: rgba(224,187,67,.1); }
.send-button { border-radius: 10px; background: linear-gradient(to right, #2563eb, #4f46e5); }
.send-button:disabled { background: rgba(255,255,255,.08); }
.stop-button { border-radius: 10px; }

@media (max-width: 1100px) {
  html { font-size: 17px; }
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; z-index: 10; inset: 0 auto 0 0; width: min(88vw, 360px); transform: translateX(-102%); box-shadow: 30px 0 70px rgba(0,0,0,.45); transition: transform .22s ease; }
  .sidebar.open { transform: translateX(0); }
  .menu-button { display: block; }
  .topbar { padding: 0 22px; }
  .messages { padding-inline: 24px; }
  .composer-wrap { padding-inline: 19px; }
}

@media (max-width: 760px) {
  html { font-size: 16px; }
  .chat-panel { grid-template-rows: 74px 1fr auto; }
  .sidebar { width: min(90vw, 340px); padding: 22px 18px; }
  .suggestions { grid-template-columns: 1fr; }
  .suggestions button { min-height: auto; }
  .welcome-mark { width: min(320px, 84vw); min-height: 92px; }
  .welcome h1 { font-size: 36px; }
  .welcome > p { font-size: 17px; }
  .message { grid-template-columns: 38px minmax(0, 1fr); gap: 12px; }
  .avatar { width: 36px; height: 36px; }
  .message-body { font-size: 18px; }
  textarea { font-size: 18px; }
  .composer { padding: 12px 12px 12px 18px; }
  .attach-button { width: 44px; height: 44px; border-radius: 14px; font-size: 27px; }
  .send-button { width: 44px; height: 44px; }
  .stop-button { width: 44px; height: 44px; }
  .stop-button span { width: 15px; height: 15px; }
  .attachment-state { display: none; }
  .document-shelf { grid-template-columns: 1fr; }
  .document-shelf-title span { display: none; }
  .model-title span { display: none; }
  .logout-link { padding-inline: 11px; }
  .status span { display: none; }
}

/* Identidad AIDA: paleta suministrada */
:root {
  color-scheme: light;
  background: #faf7f2;
  color: #3d433b;
  --panel: rgba(250, 247, 242, .94);
  --panel-soft: rgba(239, 219, 210, .22);
  --border: rgba(82, 88, 78, .18);
  --muted: #73786f;
  --accent: #52584e;
  --accent-2: #7c9079;
  --indigo: #9f737e;
  --gold: #c58b99;
}

body {
  background:
    radial-gradient(circle at 82% 8%, rgba(247, 221, 222, .88), transparent 35%),
    linear-gradient(145deg, #faf7f2 0%, #efdbd2 100%) fixed;
  color: #3d433b;
}

.sidebar {
  background: linear-gradient(180deg, #52584e 0%, #454b42 100%);
  border-right-color: rgba(250, 247, 242, .2);
  color: #faf7f2;
}

.brand {
  min-height: 92px;
  justify-content: center;
  padding: 3px 8px 24px;
}

.brand-wordmark {
  width: min(100%, 285px);
  max-height: 112px;
  object-fit: contain;
  border-radius: 0;
}

.new-chat {
  border-color: rgba(250, 247, 242, .22);
  background: rgba(250, 247, 242, .08);
  color: #faf7f2;
}
.new-chat:hover {
  border-color: #f7ddde;
  background: rgba(247, 221, 222, .16);
}
.new-chat span { color: #f7ddde; }
.history-label { color: #d8c1bb; }
.history-item { color: #e7ddd8; }
.history-item:hover,
.history-item.active {
  background: rgba(247, 221, 222, .15);
  color: #fff;
  box-shadow: inset 3px 0 0 #f7ddde;
}
.history-item .delete { color: #d8c1bb; }
.sidebar-footer {
  border-top-color: rgba(250, 247, 242, .18);
  background: transparent;
}
.sidebar-footer span { color: #d8cfc9; }
.privacy-dot {
  background: #f7ddde;
  box-shadow: 0 0 14px rgba(247, 221, 222, .65);
}

.chat-panel {
  background:
    radial-gradient(circle at 78% 10%, rgba(247, 221, 222, .68), transparent 35%),
    #faf7f2;
}
.topbar {
  border-bottom-color: rgba(82, 88, 78, .15);
  background: rgba(250, 247, 242, .86);
}
.model-title strong { color: #3c423a; }
.model-title span { color: #747a71; }
.menu-button { color: #52584e; }
.status {
  border-color: rgba(82, 88, 78, .2);
  background: rgba(255, 255, 255, .48);
  color: #687066;
}
.status i { background: #c58b99; }
.status.ready i {
  background: #71856f;
  box-shadow: 0 0 10px rgba(113, 133, 111, .45);
}

.history,
.messages {
  scrollbar-color: rgba(82, 88, 78, .62) rgba(82, 88, 78, .08);
}
.history::-webkit-scrollbar-track,
.messages::-webkit-scrollbar-track { background: rgba(82, 88, 78, .08); }
.history::-webkit-scrollbar-thumb,
.messages::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #d8c1bb, #9f737e) padding-box;
}
.history::-webkit-scrollbar-thumb:hover,
.messages::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #cdaeb0, #52584e) padding-box;
}

.welcome-mark {
  width: min(430px, 76vw);
  min-height: 0;
  margin-bottom: 24px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.welcome-mark img {
  width: 100%;
  max-height: 210px;
  object-fit: contain;
}
.welcome h1 { color: #3b4139; }
.welcome > p { color: #71776e; }
.suggestions button {
  border-color: rgba(82, 88, 78, .17);
  background: rgba(255, 255, 255, .52);
  color: #555c52;
  box-shadow: 0 10px 30px rgba(82, 88, 78, .05);
}
.suggestions button:hover {
  border-color: #d8c1bb;
  background: #f7ddde;
  color: #3f453d;
}

.avatar {
  background: #efdbd2;
  color: #52584e;
}
.message.assistant .avatar {
  border-color: rgba(82, 88, 78, .18);
  background: #52584e;
  color: #f7ddde;
}
.message-body,
.message.user .message-body { color: #3f463d; }
.typing::after { background: #c58b99; }

.composer-wrap {
  background: linear-gradient(transparent, #faf7f2 26%);
}
.document-shelf,
.attachment-status {
  border-color: rgba(82, 88, 78, .18);
  background: rgba(250, 247, 242, .94);
  color: #454b43;
}
.document-summary strong { color: #454b43; }
.attachment-icon {
  background: #f7ddde;
  color: #8e606c;
}
.composer {
  border-color: rgba(82, 88, 78, .22);
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 18px 50px rgba(82, 88, 78, .12);
}
.composer:focus-within {
  border-color: #c99aa5;
  box-shadow: 0 18px 50px rgba(82, 88, 78, .13), 0 0 0 3px rgba(216, 193, 187, .28);
}
textarea { color: #3d433b; }
textarea::placeholder { color: #8a8f86; }
.attach-button {
  border-color: rgba(82, 88, 78, .16);
  background: #efdbd2;
  color: #52584e;
}
.attach-button:hover {
  border-color: #c99aa5;
  background: #f7ddde;
  color: #3d433b;
}
.send-button {
  background: linear-gradient(135deg, #52584e, #73796f);
  color: #fff;
}
.send-button:disabled {
  background: #d8d8d2;
  color: #969b92;
}
.stop-button {
  border-color: rgba(82, 88, 78, .18);
  background: #f7ddde;
  color: #52584e;
}
.stop-button:hover { background: #efdbd2; }
.composer-wrap > p { color: #787e74; }

.admin-link {
  border-color: rgba(159, 115, 126, .38);
  background: #f7ddde;
  color: #7a505b;
}
.admin-link:hover {
  border-color: #c58b99;
  background: #efdbd2;
  color: #52584e;
}
.logout-link {
  border-color: rgba(82, 88, 78, .18);
  background: rgba(82, 88, 78, .06);
  color: #626960;
}
.logout-link:hover {
  border-color: rgba(159, 74, 83, .35);
  background: rgba(159, 74, 83, .08);
  color: #8d3f48;
}
.toast {
  border-color: rgba(139, 63, 72, .25);
  background: #fff1f1;
  color: #843d46;
}
