.concierge-shell {
  min-height: 100vh;
  padding: 140px var(--pad) 60px;
  display: flex;
  justify-content: center;
}
.concierge-grid {
  width: 100%;
  max-width: 980px;
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 40px;
}
@media (max-width: 860px) {
  .concierge-grid { grid-template-columns: 1fr; }
}

.disclosure-banner {
  border: 1px solid var(--gold-soft);
  background: rgba(201,167,104,0.06);
  padding: 16px 20px;
  font-size: 0.82rem;
  color: var(--champagne);
  margin-bottom: 26px;
  border-radius: 4px;
}

.chat-window {
  border: 1px solid var(--line);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  height: 60vh;
  min-height: 420px;
}
.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 26px;
  display: flex;
  flex-direction: column;
}
.chat-messages .chat-bubble { max-width: 78%; }
.chat-notconfigured { border-color: var(--stone) !important; opacity: 0.85; }
.chat-input-row {
  display: flex;
  gap: 10px;
  padding: 16px;
  border-top: 1px solid var(--line);
}
.chat-input-row textarea {
  flex: 1;
  resize: none;
  background: rgba(244,239,228,0.03);
  border: 1px solid var(--line);
  color: var(--ivory);
  padding: 12px 14px;
  font-family: var(--sans);
  font-size: 0.92rem;
  border-radius: 4px;
  min-height: 46px;
  max-height: 140px;
}
.chat-input-row textarea:focus { outline: none; border-color: var(--gold); }
.chat-empty { color: var(--stone); font-size: 0.9rem; text-align: center; margin: auto; }
.typing-dots { color: var(--stone); font-size: 0.85rem; padding: 0 26px 16px; }

.side-panel { display: flex; flex-direction: column; gap: 24px; }
.side-card {
  border: 1px solid var(--line);
  padding: 20px;
  border-radius: 6px;
}
.side-card h4 { font-family: var(--sans); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gold); margin-bottom: 12px; }
.memory-list { list-style: none; margin: 0; padding: 0; font-size: 0.84rem; color: var(--taupe); display: grid; gap: 8px; }
.memory-list li span { display: block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--stone); }
.memory-empty { font-size: 0.84rem; color: var(--stone); }
.side-card .btn { width: 100%; margin-top: 12px; }
.report-box textarea {
  width: 100%;
  background: rgba(244,239,228,0.03);
  border: 1px solid var(--line);
  color: var(--ivory);
  padding: 10px;
  font-family: var(--sans);
  font-size: 0.85rem;
  min-height: 80px;
  margin-bottom: 10px;
  border-radius: 4px;
}
