/* Mi espacio — portal del apóstol. Móvil primero; usa los tokens de adc_brand (--adc-*) con respaldo. */
.adcp {
  --p-wine: var(--adc-color-primary, #6B1D2A);
  --p-wine-h: var(--adc-color-primary-hover, #561722);
  --p-wine-strong: var(--adc-color-primary-strong, #4A1220);
  --p-wine-deep: var(--adc-wine-deep, #330C16);
  --p-wine-soft: var(--adc-wine-soft, #F4E9EA);
  --p-gold: var(--adc-gold, #B8924A);
  --p-gold-text: var(--adc-gold-text, #7A5C22);
  --p-gold-bright: var(--adc-gold-bright, #D9B979);
  --p-bg: var(--adc-color-bg, #FAF6EF);
  --p-bg-alt: var(--adc-color-bg-alt, #F3ECE0);
  --p-surface: var(--adc-color-surface, #FFFFFF);
  --p-text: var(--adc-color-text, #2A2724);
  --p-muted: var(--adc-color-text-muted, #5C5650);
  --p-line: var(--adc-color-line, #E4DACB);
  --p-ok: var(--adc-color-success, #556B2F);
  --p-ok-soft: var(--adc-color-success-soft, #EEF2E6);
  --p-warn: var(--adc-color-warning, #9A5B0B);
  --p-danger: var(--adc-color-danger, #B42318);
  --p-danger-soft: var(--adc-color-danger-soft, #FDECEA);
  --p-info: var(--adc-color-info, #2F5D7C);
  --p-info-soft: var(--adc-color-info-soft, #E8F0F6);
  --p-serif: var(--adc-font-serif, "EB Garamond", Georgia, "Times New Roman", serif);
  --p-sans: var(--adc-font-sans, "Source Sans 3", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif);
  --p-r: var(--adc-radius, 10px);
  --p-r-lg: var(--adc-radius-lg, 16px);
  --p-shadow: 0 1px 2px rgba(42, 39, 36, .05), 0 6px 20px rgba(42, 39, 36, .06);
  --p-tab-h: 68px;
  margin: 0;
  background: var(--p-bg);
  color: var(--p-text);
  font-family: var(--p-sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.adcp *, .adcp *::before, .adcp *::after { box-sizing: border-box; }
.adcp a { color: var(--p-wine); text-underline-offset: 3px; }
.adcp a:hover { color: var(--p-wine-h); }
.adcp :focus-visible { outline: 3px solid var(--p-gold); outline-offset: 2px; border-radius: 6px; }
.adcp h1, .adcp h2, .adcp h3 { font-family: var(--p-serif); color: var(--p-text); font-weight: 600; letter-spacing: -.005em; margin: 0; }
.adcp p { margin: 0; }
.adcp-ico { width: 22px; height: 22px; flex: 0 0 auto; vertical-align: -5px; }
.adcp-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.adcp-skip { position: absolute; left: -999px; top: 8px; background: #fff; padding: 8px 14px; z-index: 99; border-radius: 8px; }
.adcp-skip:focus { left: 8px; }

/* ---------- barra superior ---------- */
.adcp-top { position: sticky; top: 0; z-index: 30; background: var(--p-wine-strong); color: #fff; padding-top: env(safe-area-inset-top); box-shadow: 0 1px 0 rgba(0,0,0,.15); }
.adcp-top__in { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 1240px; margin: 0 auto; padding: 10px 16px; min-height: 64px; }
.adcp-brand { display: flex; align-items: center; gap: 12px; color: #fff !important; text-decoration: none; }
.adcp-brand__mark { width: 56px; height: 56px; max-width: none; margin: -10px -10px; border-radius: 9px; flex: 0 0 56px; }
.adcp-brand__txt { display: flex; flex-direction: column; line-height: 1.15; }
.adcp-brand__txt strong { font-family: var(--p-serif); font-size: 21px; font-weight: 600; letter-spacing: .01em; }
.adcp-brand__txt small { font-size: 13px; color: var(--p-gold-bright); letter-spacing: .04em; }
.adcp-top__actions { display: flex; align-items: center; gap: 6px; }
.adcp-top__bell { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: #fff !important; }
.adcp-top__bell:hover { background: rgba(255,255,255,.08); }
.adcp-top__me { display: grid; place-items: center; width: 48px; height: 48px; text-decoration: none; }
.adcp-dot { position: absolute; top: 6px; right: 4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--p-gold-bright); color: var(--p-wine-deep); font-size: 12px; font-weight: 700; line-height: 20px; text-align: center; font-style: normal; }
.adcp-avatar { border-radius: 50%; object-fit: cover; display: inline-grid; place-items: center; background: var(--p-wine-soft); color: var(--p-wine); font-weight: 700; letter-spacing: .03em; flex: 0 0 auto; }
.adcp-top .adcp-avatar { box-shadow: 0 0 0 2px var(--p-gold-bright); background: #fff; }

/* ---------- estructura ---------- */
.adcp-shell { max-width: 1240px; margin: 0 auto; padding: 20px 16px calc(var(--p-tab-h) + 32px + env(safe-area-inset-bottom)); }
.adcp-shell--out { padding-bottom: 32px; }
.adcp-side { display: none; }
.adcp-main { min-width: 0; outline: none; }
.adcp-main > * + * { margin-top: 20px; }

/* ---------- barra inferior (teléfono) ---------- */
.adcp-tabbar { position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, 1fr); background: var(--p-surface); border-top: 1px solid var(--p-line); padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -6px 20px rgba(42,39,36,.06); }
.adcp-tabbar a { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-height: var(--p-tab-h); color: var(--p-muted); text-decoration: none; font-size: 14px; font-weight: 600; }
.adcp-tabbar a .adcp-ico { width: 26px; height: 26px; }
.adcp-tabbar a[aria-current="page"] { color: var(--p-wine); }
.adcp-tabbar a[aria-current="page"]::before { content: ""; position: absolute; top: 0; left: 28%; right: 28%; height: 3px; border-radius: 0 0 3px 3px; background: var(--p-wine); }
.adcp-dot--tab { top: 6px; right: calc(50% - 26px); }

/* ---------- tipografía de página ---------- */
.adcp-eyebrow { font-size: 15px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--p-gold-text); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.adcp-eyebrow .adcp-ico { width: 18px; height: 18px; }
.adcp-hello h1 { font-size: 32px; line-height: 1.15; margin-top: 4px; }
.adcp-motto { font-family: var(--p-serif); font-style: italic; color: var(--p-muted); font-size: 18px; margin-top: 6px !important; }
.adcp-pagehead h1 { font-size: 30px; line-height: 1.2; margin-top: 4px; }
.adcp-pagehead--center { text-align: center; }
.adcp-pagehead--center .adcp-eyebrow { justify-content: center; }
.adcp-lead { font-size: 18px; color: var(--p-muted); margin-top: 8px !important; max-width: 62ch; }
.adcp-h2 { font-size: 24px; margin: 8px 0 14px !important; }
.adcp-h3 { font-size: 21px; line-height: 1.3; display: flex; align-items: center; gap: 10px; }
.adcp-h3 .adcp-ico { color: var(--p-wine); }
.adcp-text { font-size: 17px; }
.adcp-muted { color: var(--p-muted); }
.adcp-small { font-size: 16px; color: var(--p-muted); }
.adcp-center { text-align: center; }
.adcp-bignum { font-family: var(--p-serif); font-size: 44px; line-height: 1.05; color: var(--p-wine); font-weight: 600; }
.adcp-bignum small { font-size: 22px; color: var(--p-muted); }
.adcp-stage { font-family: var(--p-serif); font-size: 24px; color: var(--p-wine); font-weight: 600; margin: 4px 0 !important; }
.adcp-intention { font-family: var(--p-serif); font-size: 19px; line-height: 1.45; color: var(--p-text); font-style: italic; }

/* ---------- tarjetas ---------- */
.adcp-card { background: var(--p-surface); border: 1px solid var(--p-line); border-radius: var(--p-r-lg); padding: 24px; box-shadow: var(--p-shadow); }
.adcp-card > * + * { margin-top: 14px; }
.adcp-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; }
.adcp-card__head .adcp-h3 { flex: 1 1 auto; min-width: 0; }
.adcp-more { font-size: 16px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 2px; white-space: nowrap; }
.adcp-more .adcp-ico { width: 18px; height: 18px; }
.adcp-grid { display: grid; gap: 20px; grid-template-columns: 1fr; }
.adcp-stack { display: grid; gap: 16px; }
.adcp-card--narrow { max-width: 560px; }
.adcp-card--stat { text-align: center; }
.adcp-card--poll { border-color: var(--p-gold); background: linear-gradient(180deg, #FFFDF8, #fff); }
.adcp-card--cred { background: var(--p-wine-soft); border-color: transparent; }

/* ---------- próxima sesión (héroe) ---------- */
.adcp-next { position: relative; overflow: hidden; border-radius: var(--p-r-lg); padding: 26px 24px; color: #fff; background: radial-gradient(120% 140% at 100% 0%, #7d2737 0%, var(--p-wine) 38%, var(--p-wine-strong) 100%); box-shadow: 0 10px 30px rgba(74,18,32,.28); }
.adcp-next::after { content: ""; position: absolute; right: -28px; top: -18px; width: 150px; height: 190px; opacity: .10; background: linear-gradient(var(--p-gold-bright), var(--p-gold-bright)) 50% 0/22px 100% no-repeat, linear-gradient(var(--p-gold-bright), var(--p-gold-bright)) 50% 32%/100% 22px no-repeat; pointer-events: none; }
.adcp-next__eyebrow { display: flex; gap: 8px; align-items: center; color: var(--p-gold-bright); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: 14px; }
.adcp-next__eyebrow .adcp-ico { width: 18px; height: 18px; }
.adcp-next__date { font-family: var(--p-serif); font-size: 30px; line-height: 1.15; margin: 10px 0 12px !important; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.adcp-next__meta { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 18px; }
.adcp-next__meta li { display: flex; gap: 10px; align-items: flex-start; }
.adcp-next__meta .adcp-ico { color: var(--p-gold-bright); margin-top: 2px; }
.adcp-next__note { margin-top: 12px !important; color: rgba(255,255,255,.86); font-size: 16px; }
.adcp-next__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }

/* ---------- botones ---------- */
.adcp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 12px 22px; border-radius: 12px; border: 2px solid transparent; font: 600 17px/1.2 var(--p-sans); text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, color .15s, transform .05s; }
.adcp-btn:active { transform: translateY(1px); }
.adcp-btn--primary { background: var(--p-wine); color: #fff !important; }
.adcp-btn--primary:hover { background: var(--p-wine-h); }
.adcp-btn--ghost { background: transparent; border-color: var(--p-line); color: var(--p-wine) !important; }
.adcp-btn--ghost:hover { border-color: var(--p-wine); background: var(--p-wine-soft); }
.adcp-btn--light { background: #fff; color: var(--p-wine-strong) !important; }
.adcp-btn--light:hover { background: #FFF6E6; }
.adcp-btn--outline-light { border-color: rgba(255,255,255,.55); color: #fff !important; background: transparent; }
.adcp-btn--outline-light:hover { background: rgba(255,255,255,.1); }
.adcp-btn--done { background: var(--p-ok-soft); color: var(--p-ok) !important; border-color: transparent; cursor: default; }
.adcp-btn--sm { min-height: 46px; padding: 9px 16px; font-size: 16px; }
.adcp-btn--block { width: 100%; }
.adcp-btn .adcp-ico { width: 20px; height: 20px; }
.adcp-linkbtn { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; display: inline-flex; gap: 10px; align-items: center; }
.adcp-iconbtn { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--p-line); color: var(--p-wine) !important; }
.adcp-iconbtn:hover { background: var(--p-wine-soft); }
.adcp-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.adcp-row--between { justify-content: space-between; }
.adcp-row--center { justify-content: center; }

/* ---------- chips ---------- */
.adcp-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font: 700 14px/1.5 var(--p-sans); letter-spacing: .02em; text-transform: none; background: var(--p-bg-alt); color: var(--p-muted); }
.adcp-chip .adcp-ico { width: 16px; height: 16px; }
.adcp-chip--wine { background: var(--p-wine-soft); color: var(--p-wine); }
.adcp-chip--gold { background: #F6EBD3; color: var(--p-gold-text); }
.adcp-next .adcp-chip--gold { background: var(--p-gold-bright); color: var(--p-wine-deep); font-family: var(--p-sans); font-size: 14px; }
.adcp-chip--ok { background: var(--p-ok-soft); color: var(--p-ok); font-size: 15px; padding: 6px 12px; }

/* ---------- listas ---------- */
.adcp-list { list-style: none; margin: 0; padding: 0; }
.adcp-list li + li { border-top: 1px solid var(--p-line); }
.adcp-list a { display: flex; flex-direction: column; padding: 12px 0; text-decoration: none; color: var(--p-text) !important; }
.adcp-list a:hover strong { color: var(--p-wine); }
.adcp-list strong { font-weight: 600; font-size: 17px; }
.adcp-list small { color: var(--p-muted); font-size: 16px; }
.adcp-list a .adcp-chip, .adcp-list li > .adcp-chip { align-self: flex-start; margin-bottom: 4px; }
.adcp-list--plain li { padding: 12px 0; }
.adcp-list--plain small { display: block; margin-top: 2px; }

.adcp-steps { list-style: none; margin: 6px 0 0; padding: 0; display: flex; gap: 6px; }
.adcp-steps li { flex: 1; height: 8px; border-radius: 4px; background: var(--p-bg-alt); }
.adcp-steps li.is-done { background: var(--p-gold); }
.adcp-steps li.is-current { background: var(--p-wine); }

.adcp-event { display: flex; gap: 16px; align-items: flex-start; }
.adcp-card .adcp-event + .adcp-event { border-top: 1px solid var(--p-line); padding-top: 14px; }
.adcp-event__date { flex: 0 0 64px; height: 70px; border-radius: 12px; background: var(--p-wine-soft); color: var(--p-wine); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.adcp-event__date span { font-family: var(--p-serif); font-size: 30px; font-weight: 600; }
.adcp-event__date small { font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-top: 4px; }
.adcp-event__body { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; min-width: 0; }
.adcp-event__body small { color: var(--p-muted); font-size: 16px; }
.adcp-event--big .adcp-event__body { gap: 8px; }

.adcp-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.adcp-quick a { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 8px; text-align: center; border-radius: var(--p-r-lg); background: var(--p-surface); border: 1px solid var(--p-line); text-decoration: none; color: var(--p-text) !important; font-weight: 600; font-size: 15.5px; line-height: 1.25; }
.adcp-quick a .adcp-ico { color: var(--p-wine); width: 28px; height: 28px; }
.adcp-quick a:hover { border-color: var(--p-wine); }

.adcp-place { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 12px; background: var(--p-bg); }
.adcp-place .adcp-ico { color: var(--p-wine); margin-top: 2px; }
.adcp-place span { color: var(--p-muted); }
.adcp-person { display: flex; align-items: center; gap: 14px; padding: 6px 0; }
.adcp-person > div:nth-child(2) { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.adcp-person small { color: var(--p-muted); font-size: 16px; }
.adcp-person__actions { display: flex; gap: 8px; }
.adcp-dir { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.adcp-dir li { display: flex; flex-direction: column; padding: 12px 0; border-bottom: 1px solid var(--p-line); }
.adcp-dir span { color: var(--p-muted); }
.adcp-att { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.adcp-att li { padding: 10px 12px; border-radius: 10px; background: var(--p-bg); display: flex; flex-direction: column; border-left: 4px solid var(--p-line); }
.adcp-att li.is-ok { border-left-color: var(--p-ok); }
.adcp-att li.is-no { border-left-color: var(--p-danger); }
.adcp-att em { font-style: normal; font-weight: 600; }
.adcp-att small { color: var(--p-muted); font-size: 15px; }

.adcp-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.adcp-timeline li { display: flex; gap: 16px; padding: 0 0 22px; position: relative; }
.adcp-timeline li:not(:last-child)::before { content: ""; position: absolute; left: 19px; top: 40px; bottom: 0; width: 2px; background: var(--p-line); }
.adcp-timeline li.is-done:not(:last-child)::before { background: var(--p-gold); }
.adcp-timeline__dot { flex: 0 0 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; background: var(--p-bg-alt); color: var(--p-muted); }
.adcp-timeline li.is-done .adcp-timeline__dot { background: var(--p-gold); color: #fff; }
.adcp-timeline li.is-current .adcp-timeline__dot { background: var(--p-wine); color: #fff; box-shadow: 0 0 0 6px var(--p-wine-soft); }
.adcp-timeline strong { font-size: 18px; }
.adcp-timeline p { color: var(--p-muted); font-size: 16px; margin-top: 4px !important; }
.adcp-progress { height: 10px; border-radius: 5px; background: var(--p-bg-alt); overflow: hidden; }
.adcp-progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--p-gold), var(--p-wine)); }
.adcp-checklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.adcp-checklist li { display: flex; gap: 10px; align-items: flex-start; }
.adcp-checklist li .adcp-ico { color: var(--p-muted); }
.adcp-checklist li.is-done .adcp-ico { color: var(--p-ok); }
.adcp-files { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.adcp-files a { display: flex; flex-direction: column; padding: 14px 16px; border: 1px solid var(--p-line); border-radius: 12px; text-decoration: none; color: var(--p-text) !important; }
.adcp-files a:hover { border-color: var(--p-wine); }
.adcp-files small { color: var(--p-muted); }
.adcp-ledger { list-style: none; margin: 0; padding: 0; }
.adcp-ledger li { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--p-line); }
.adcp-ledger li > div { flex: 1 1 60%; display: flex; flex-direction: column; }
.adcp-ledger small { color: var(--p-muted); }
.adcp-ledger__amt { font-weight: 700; font-size: 18px; }

/* ---------- avisos ---------- */
.adcp-notice { padding: 0; overflow: hidden; }
.adcp-notice__img { display: block; width: 100%; max-height: 260px; object-fit: cover; }
.adcp-notice__body { padding: 24px; }
.adcp-notice__body > * + * { margin-top: 10px; }
.adcp-notice.is-pinned { border-color: var(--p-gold); box-shadow: 0 0 0 1px var(--p-gold), var(--p-shadow); }
.adcp-prose { font-size: 17px; max-width: 68ch; }
.adcp-prose p + p { margin-top: 10px; }
.adcp-inbox { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.adcp-inbox li { background: var(--p-surface); border: 1px solid var(--p-line); border-radius: var(--p-r-lg); padding: 18px 20px; display: grid; gap: 6px; }
.adcp-inbox li.is-new { border-left: 5px solid var(--p-gold); }
.adcp-inbox strong { font-size: 18px; }

/* ---------- formularios ---------- */
.adcp-form { display: grid; gap: 16px; }
.adcp-form--grid { grid-template-columns: 1fr; }
.adcp-form--inline { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.adcp-field { display: grid; gap: 6px; }
.adcp-field > span { font-weight: 600; font-size: 16px; }
.adcp-field input, .adcp-field textarea, .adcp-field select { width: 100%; min-height: 52px; padding: 12px 14px; border: 1.5px solid #CDBFAA; border-radius: 12px; background: #fff; color: var(--p-text); font: 400 18px/1.4 var(--p-sans); }
.adcp-field textarea { min-height: 110px; resize: vertical; }
.adcp-field input:focus, .adcp-field textarea:focus { border-color: var(--p-wine); outline: 3px solid rgba(107,29,42,.15); outline-offset: 0; }
.adcp-codeinput { font-size: 26px !important; letter-spacing: .25em; text-align: center; font-weight: 700 !important; }
.adcp-pass { position: relative; display: block; }
.adcp-pass input { padding-right: 70px; }
.adcp-pass__toggle { position: absolute; right: 6px; top: 6px; bottom: 6px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--p-bg-alt); color: var(--p-wine); font: 600 15px var(--p-sans); cursor: pointer; }
.adcp-check { display: flex; gap: 12px; align-items: flex-start; font-size: 16px; line-height: 1.5; cursor: pointer; }
.adcp-check input, .adcp-radios input { width: 24px; height: 24px; margin: 1px 0 0; accent-color: var(--p-wine); flex: 0 0 24px; }
.adcp-radios { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; }
.adcp-radios legend { font-weight: 600; margin-bottom: 8px; padding: 0; }
.adcp-radios label { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--p-line); border-radius: 12px; cursor: pointer; }
.adcp-radios label:has(input:checked) { border-color: var(--p-wine); background: var(--p-wine-soft); }
.adcp-switch { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--p-line); cursor: pointer; }
.adcp-switch input { appearance: none; -webkit-appearance: none; flex: 0 0 52px; width: 52px; height: 30px; border-radius: 15px; background: #CDBFAA; position: relative; margin: 0; cursor: pointer; transition: background .15s; }
.adcp-switch input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .15s; }
.adcp-switch input:checked { background: var(--p-wine); }
.adcp-switch input:checked::after { transform: translateX(22px); }
.adcp-switch > span { display: flex; flex-direction: column; }
.adcp-switch small { color: var(--p-muted); font-size: 16px; }
.adcp-switch--warn input:checked { background: var(--p-warn); }
.adcp-file { position: relative; overflow: hidden; }
.adcp-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.adcp-photo { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.adcp-photo > * + * { margin-top: 0; }
.adcp-details summary { cursor: pointer; font-weight: 600; color: var(--p-wine); padding: 10px 0; min-height: 44px; }
.adcp-details[open] summary { margin-bottom: 10px; }
.adcp-help { text-align: center; color: var(--p-muted); font-size: 16px; }
.adcp-idbox { padding: 14px 16px; border-radius: 12px; background: var(--p-bg); display: flex; flex-direction: column; }
.adcp-idbox strong { font-size: 22px; letter-spacing: .03em; }
.adcp-idbox span { color: var(--p-muted); font-size: 15px; }

/* ---------- mensajes ---------- */
.adcp-flash { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; font-size: 16.5px; background: var(--p-ok-soft); color: #2F3D18; border: 1px solid #D5DEC4; }
.adcp-flash .adcp-ico { margin-top: 1px; }
.adcp-flash--error { background: var(--p-danger-soft); color: #7A1A12; border-color: #F3C9C4; }
.adcp-flash--info { background: var(--p-info-soft); color: #1F3F55; border-color: #CBDCE8; }
.adcp-demo { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-size: 15px; color: var(--p-muted); padding: 10px 14px; border-radius: 10px; background: #FFF8EA; border: 1px dashed var(--p-gold); }
.adcp-democode { padding: 16px; border-radius: 12px; background: #FFF8EA; border: 1px dashed var(--p-gold); text-align: center; }
.adcp-democode__n { font-family: var(--p-serif); font-size: 40px; letter-spacing: .12em; color: var(--p-wine); font-weight: 700; margin-top: 6px !important; }
.adcp-empty { text-align: center; padding: 40px 24px; background: var(--p-surface); border: 1px dashed var(--p-line); border-radius: var(--p-r-lg); display: grid; justify-items: center; gap: 10px; }
.adcp-empty > .adcp-ico { width: 44px; height: 44px; color: var(--p-gold); }
.adcp-empty h3 { font-size: 22px; }
.adcp-empty p { color: var(--p-muted); max-width: 46ch; }

/* ---------- encuestas ---------- */
.adcp-options { display: grid; gap: 10px; }
.adcp-option { min-height: 52px; padding: 12px 16px; border-radius: 12px; border: 1.5px solid var(--p-line); background: #fff; text-align: left; font: 600 17px var(--p-sans); color: var(--p-text); cursor: pointer; }
.adcp-option:hover { border-color: var(--p-wine); background: var(--p-wine-soft); }
.adcp-results { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.adcp-results li { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; }
.adcp-results__lbl { grid-column: 1 / -1; font-weight: 600; }
.adcp-results__bar { height: 12px; border-radius: 6px; background: var(--p-bg-alt); overflow: hidden; align-self: center; }
.adcp-results__bar span { display: block; height: 100%; background: var(--p-gold); }
.adcp-results li.is-mine .adcp-results__bar span { background: var(--p-wine); }
.adcp-results__n { font-weight: 700; min-width: 48px; text-align: right; }

/* ---------- menú «Más» ---------- */
.adcp-menu { list-style: none; margin: 0; padding: 0; background: var(--p-surface); border: 1px solid var(--p-line); border-radius: var(--p-r-lg); overflow: hidden; }
.adcp-menu li + li { border-top: 1px solid var(--p-line); }
.adcp-menu a { display: flex; align-items: center; gap: 16px; padding: 16px 18px; min-height: 72px; text-decoration: none; color: var(--p-text) !important; }
.adcp-menu a:hover { background: var(--p-bg); }
.adcp-menu a > span:nth-child(2) { flex: 1; display: flex; flex-direction: column; }
.adcp-menu small { color: var(--p-muted); font-size: 16px; }
.adcp-menu__ico { width: 44px; height: 44px; border-radius: 12px; background: var(--p-wine-soft); color: var(--p-wine); display: grid; place-items: center; }
.adcp-menu__go { color: var(--p-muted); }

/* ---------- credencial ---------- */
.adcp-cred { max-width: 420px; margin: 0 auto; border-radius: 22px; overflow: hidden; background: #fff; box-shadow: 0 14px 40px rgba(74,18,32,.18); border: 1px solid var(--p-line); }
.adcp-cred__top { display: flex; gap: 12px; align-items: center; padding: 18px 22px; color: #fff; background: linear-gradient(135deg, var(--p-wine) 0%, var(--p-wine-strong) 100%); }
.adcp-cred__top div { display: flex; flex-direction: column; line-height: 1.25; }
.adcp-cred__top strong { font-family: var(--p-serif); font-size: 20px; }
.adcp-cred__top small { color: var(--p-gold-bright); font-size: 14px; }
.adcp-cred__id { display: flex; gap: 18px; padding: 22px; align-items: flex-start; }
.adcp-cred__id .adcp-avatar { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--p-gold); }
.adcp-cred__id h2 { font-size: 24px; line-height: 1.2; }
.adcp-cred__id p { margin-top: 6px !important; }
.adcp-cred__id dl { margin: 12px 0 0; display: grid; gap: 4px; }
.adcp-cred__id dl div { display: flex; gap: 8px; font-size: 15.5px; }
.adcp-cred__id dt { color: var(--p-muted); min-width: 92px; }
@media (max-width: 479px) { .adcp-cred__id { flex-direction: column; align-items: center; text-align: center; } .adcp-cred__id > div { width: 100%; } .adcp-cred__id dl { justify-items: center; } .adcp-cred__id dl div { justify-content: center; } .adcp-cred__id dt { min-width: 0; } .adcp-cred__id dt::after { content: ':'; } }
.adcp-cred__id dd { margin: 0; font-weight: 600; }
.adcp-cred__qr { display: grid; place-items: center; padding: 6px 22px 10px; }
.adcp-cred__qr svg { width: 220px; height: 220px; }
.adcp-cred__motto { text-align: center; font-family: var(--p-serif); font-style: italic; color: var(--p-wine); padding: 0 22px 20px; font-size: 17px; }

/* ---------- acceso ---------- */
.adcp--out { background: radial-gradient(90% 60% at 50% 0%, #F3E6E0 0%, var(--p-bg) 70%); }
.adcp-auth { display: grid; gap: 24px; max-width: 980px; margin: 0 auto; padding-top: 8px; }
.adcp-auth__card { background: var(--p-surface); border-radius: 20px; border: 1px solid var(--p-line); padding: 28px 22px; box-shadow: 0 16px 40px rgba(74,18,32,.10); display: grid; gap: 20px; }
.adcp-auth__brand { text-align: center; display: grid; justify-items: center; gap: 8px; }
.adcp-auth__brand .adcp-brand__mark { width: 96px; height: 96px; margin: 0; flex-basis: 96px; }
.adcp-auth__brand h1 { font-size: 36px; }
.adcp-auth__brand .adcp-eyebrow { justify-content: center; text-align: center; font-size: 13px; }
.adcp-auth__aside { padding: 8px 6px; }
.adcp-auth__aside h2 { font-size: 24px; }
.adcp-auth__aside > * + * { margin-top: 12px !important; }
.adcp-ticks { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 12px; }
.adcp-ticks li { display: flex; gap: 12px; align-items: center; font-size: 17px; }
.adcp-ticks .adcp-ico { color: var(--p-wine); }
.adcp-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; border-radius: 14px; background: var(--p-bg-alt); }
.adcp-seg a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; border-radius: 10px; text-decoration: none; font-weight: 600; color: var(--p-muted) !important; font-size: 16px; text-align: center; }
.adcp-seg a .adcp-ico { width: 20px; height: 20px; }
.adcp-seg a[aria-selected="true"] { background: #fff; color: var(--p-wine) !important; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.adcp-verify { max-width: 520px; margin: 0 auto; padding: 40px 16px; }
.adcp-verify .adcp-auth__card { text-align: center; justify-items: center; }
.adcp-verify h1 { font-size: 32px; }
.adcp-verify__st { display: flex; gap: 10px; align-items: center; justify-content: center; padding: 12px 18px; border-radius: 12px; font-size: 18px; }
.adcp-verify__st.is-ok { background: var(--p-ok-soft); color: var(--p-ok); }
.adcp-verify__st.is-no { background: var(--p-danger-soft); color: var(--p-danger); }

/* ---------- pie ---------- */
.adcp-foot { max-width: 1240px; margin: 0 auto; justify-items: center; text-align: center; color: var(--p-muted); font-size: 15px; padding: 8px 16px calc(var(--p-tab-h) + 28px + env(safe-area-inset-bottom)); display: grid; gap: 4px; }
.adcp--out .adcp-foot { padding-bottom: 32px; }
.adcp-foot__motto { font-family: var(--p-serif); font-style: italic; color: var(--p-wine); }
.adcp--in .adcp-foot { display: none; }
.adcp-logout-m { margin-top: 28px !important; }

/* ---------- tableta / escritorio ---------- */
@media (min-width: 720px) {
  .adcp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .adcp-form--grid { grid-template-columns: 1fr 1fr; }
  .adcp-field--wide { grid-column: 1 / -1; }
  .adcp-auth { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; padding-top: 40px; }
  .adcp-auth__card { padding: 40px 40px; }
  .adcp-auth__aside { padding: 24px 32px; }
  .adcp-hello h1 { font-size: 40px; }
  .adcp-pagehead h1 { font-size: 38px; }
  .adcp-next { padding: 36px 40px; }
  .adcp-next__date { font-size: 38px; }
  .adcp-card { padding: 28px 32px; }
}
@media (min-width: 1024px) {
  .adcp-shell { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px; padding: 36px 24px 64px; }
  .adcp-shell--out { display: block; }
  .adcp-tabbar { display: none; }
  .adcp--in .adcp-foot { display: grid; padding-bottom: 40px; }
  .adcp-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 100px; align-self: start; }
  .adcp-side ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
  .adcp-side a, .adcp-side .adcp-linkbtn { display: flex; align-items: center; gap: 12px; padding: 11px 14px; min-height: 48px; border-radius: 12px; text-decoration: none; color: var(--p-text) !important; font-weight: 600; font-size: 16.5px; width: 100%; }
  .adcp-side a .adcp-ico, .adcp-side .adcp-linkbtn .adcp-ico { color: var(--p-muted); }
  .adcp-side a:hover, .adcp-side .adcp-linkbtn:hover { background: var(--p-bg-alt); }
  .adcp-side a[aria-current="page"] { background: var(--p-wine-soft); color: var(--p-wine) !important; }
  .adcp-side a[aria-current="page"] .adcp-ico { color: var(--p-wine); }
  .adcp-side__out { border-top: 1px solid var(--p-line); padding-top: 12px; }
  .adcp-count { margin-left: auto; font-style: normal; font-size: 13px; font-weight: 700; background: var(--p-wine); color: #fff; border-radius: 10px; padding: 0 8px; }
  .adcp-main > * + * { margin-top: 28px; }
  .adcp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
  .adcp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adcp-top__in { padding: 10px 24px; }
  .adcp-quick { display: none; }
  .adcp-logout-m { display: none; }
}
@media print {
  .adcp-top, .adcp-side, .adcp-tabbar, .adcp-foot, .adcp-demo, .adcp-flash, .adcp-row, .adcp-small, .adcp-pagehead { display: none !important; }
  .adcp { background: #fff; }
  .adcp-cred { box-shadow: none; }
}
@media (prefers-reduced-motion: reduce) { .adcp * { transition: none !important; } }
