.ac-body { background: var(--bg); min-height: 100vh; }
.ac-shell {
  min-height: 100vh; display: grid; place-items: center;
  padding: 2.5rem 1.25rem;
}
.ac-card {
  width: 100%; max-width: 460px;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
  padding: clamp(1.8rem, 4vw, 2.8rem);
  box-shadow: 0 40px 80px -30px rgba(36,26,18,.18);
}
.ac-tabs { display: flex; gap: .5rem; margin: 1.5rem 0 1.6rem; border-bottom: 1px solid var(--line); }
.ac-tab {
  flex: 1; padding: .8rem 0; text-align: center; font-weight: 600; font-size: .92rem;
  color: var(--ink-mute); border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: color .25s, border-color .25s; background: none; cursor: pointer;
}
.ac-tab.is-active { color: var(--accent); border-color: var(--accent); }
.ac-form { display: none; flex-direction: column; gap: 1rem; }
.ac-form.is-active { display: flex; }
.ac-field { display: flex; flex-direction: column; gap: .4rem; }
.ac-field label { font-size: .82rem; font-weight: 600; color: var(--ink-soft); }
.ac-field input {
  padding: .85rem 1rem; border-radius: var(--radius-sm); border: 1px solid var(--line-strong);
  background: var(--bg); font-size: .95rem; color: var(--ink);
}
.ac-field input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.ac-consent { display: flex; align-items: flex-start; gap: .6rem; font-size: .82rem; color: var(--ink-mute); }
.ac-consent input { margin-top: .2rem; }
.ac-consent a { color: var(--accent); }
.ac-note { font-size: .8rem; color: var(--ink-mute); margin-top: -.3rem; }
.ac-error {
  font-size: .85rem; color: var(--rust); background: rgba(197,82,60,.08);
  border: 1px solid rgba(197,82,60,.25); border-radius: var(--radius-sm);
  padding: .7rem .9rem; display: none;
}
.ac-error.is-visible { display: block; }
.ac-success {
  font-size: .9rem; color: var(--success); background: rgba(63,122,74,.08);
  border: 1px solid rgba(63,122,74,.25); border-radius: var(--radius-sm);
  padding: .9rem 1rem; display: none;
}
.ac-success.is-visible { display: block; }
.ac-block-contact { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .7rem; }
.ac-block-contact a { font-size: .82rem; font-weight: 600; }
.ac-turnstile { margin-top: .2rem; }
.ac-danger {
  margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--line);
}
.ac-danger summary {
  cursor: pointer; font-size: .85rem; font-weight: 600; color: var(--ink-mute);
}
.ac-danger[open] summary { color: var(--rust); margin-bottom: .4rem; }
.ac-danger form { display: flex; flex-direction: column; gap: .8rem; margin-top: .8rem; }

/* ---- Área privada: chat + configurador + galería ---- */
.priv-shell { max-width: 1200px; margin: 0 auto; padding: clamp(1.5rem, 4vw, 3rem) 1.25rem 4rem; }
.priv-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.8rem; flex-wrap: wrap; }
.priv-header-center { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.priv-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
@media (max-width: 860px) { .priv-grid { grid-template-columns: 1fr; } }

.priv-panel {
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius);
  padding: clamp(1.3rem, 3vw, 1.8rem);
}
.priv-panel-title { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; margin-bottom: .3rem; }
.priv-empty { color: var(--ink-mute); font-size: .9rem; }

.chat-panel { display: flex; flex-direction: column; }
.chat-thread {
  display: flex; flex-direction: column; gap: .6rem;
  max-height: 420px; min-height: 200px; overflow-y: auto;
  margin: 1rem 0; padding-right: .3rem;
}
.chat-msg {
  max-width: 85%; padding: .65rem .9rem; border-radius: var(--radius-sm);
  font-size: .9rem; line-height: 1.45;
}
.chat-msg--asistente { align-self: flex-start; background: var(--bg); color: var(--ink); }
.chat-msg--usuario { align-self: flex-end; background: var(--accent); color: var(--paper); }
.chat-imagen { max-width: 100%; border-radius: var(--radius-sm); display: block; }
.chat-quick-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .8rem; }
.chat-opcion { font-size: .85rem; padding: .55rem .9rem; }
.chat-input-row { display: flex; gap: .6rem; }
.chat-input-row input {
  flex: 1; padding: .8rem 1rem; border-radius: var(--radius-sm); border: 1px solid var(--line-strong);
  background: var(--bg); font-size: .9rem; color: var(--ink);
}
.chat-input-row input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }

.galeria-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 1rem; margin-top: 1rem; }
.galeria-item { background: var(--bg); border-radius: var(--radius-sm); overflow: hidden; border: 1px solid var(--line); }
.galeria-item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.galeria-item figcaption { padding: .5rem .6rem .7rem; font-size: .78rem; color: var(--ink-mute); display: flex; flex-direction: column; gap: .15rem; }
.galeria-item figcaption strong { color: var(--ink); font-size: .82rem; }
.galeria-item figcaption a { color: var(--accent); font-weight: 600; margin-top: .2rem; }
