/* ==========================================================================
   Doña Tota Burgers · hoja de componentes (dirección C · Trazo casero)
   Usa las variables de tokens.css (--bg, --ink, --primary, --space-4 ...).
   Prefijo dt- para todo lo que va al sitio. Prefijo pv- = solo previews.
   Fuentes: <link href="https://fonts.googleapis.com/css2?family=Mansalva&family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,600;1,700&display=swap" rel="stylesheet">
   ========================================================================== */
@import url("https://fonts.googleapis.com/css2?family=Mansalva&family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,600;1,700&display=swap");

/* Rutas del isotipo y el wordmark (PNG negro sobre transparente, se usan como máscara).
   Rutas relativas a este archivo (public/css/). */
:root { --iso-url: url("../img/logos/isotipo-linea.png"); --wordmark-url: url("../img/logos/wordmark.png"); }

/* ---------- base ---------- */
.dt-app { font-family: var(--font-body); font-size: 15px; line-height: 1.45; color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased; }
.dt-app *, .dt-app *::before, .dt-app *::after { box-sizing: border-box; }
.dt-app :where(h1, h2, h3, p, ul, ol, figure) { margin: 0; padding: 0; }
.dt-app :where(button, input, textarea) { font: inherit; color: inherit; }
.dt-app :where(button) { cursor: pointer; border: 0; background: none; padding: 0; }
.dt-app :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.dt-ic { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: var(--stroke-icon); stroke-linecap: round; stroke-linejoin: round; }
.dt-ic--sm { width: 20px; height: 20px; }

/* ---------- tipografía ---------- */
.dt-title { font-size: 24px; line-height: 30px; font-weight: 800; letter-spacing: -.01em; }
.dt-section { display: flex; align-items: center; gap: var(--space-2); font-size: 20px; line-height: 24px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; padding-bottom: 8px; border-bottom: 2px solid var(--ink); }
.dt-label { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.dt-help { font-size: 13px; line-height: 18px; font-weight: 500; color: var(--muted); }
.dt-price { font-weight: 700; font-style: italic; font-size: 17px; }
.dt-brush { font-family: var(--font-brush); font-weight: 400; line-height: 1; }

/* ---------- botones ---------- */
.dt-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--control-lg); padding: 0 var(--space-6); border-radius: var(--radius-lg); font-size: 16px; font-weight: 700; line-height: 20px; text-align: center; }
.dt-btn--primary { background: var(--primary); color: var(--on-primary); }
.dt-btn--ink { background: var(--ink); color: var(--bg); }
.dt-btn--outline { box-shadow: inset 0 0 0 2px var(--ink); color: var(--ink); }
.dt-btn--block { display: flex; width: 100%; }
.dt-btn--sm { min-height: var(--tap-min); padding: 0 var(--space-4); border-radius: var(--radius-pill); font-size: 15px; }
.dt-btn:disabled, .dt-btn[aria-disabled="true"] { background: var(--surface-2); color: var(--muted); box-shadow: none; cursor: not-allowed; }
.dt-link { display: inline-flex; align-items: center; gap: 6px; min-height: var(--tap-min); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.dt-iconbtn { display: inline-grid; place-items: center; width: var(--tap-min); height: var(--tap-min); border-radius: 50%; }

/* botón Agregar de la lista */
.dt-add { display: inline-flex; align-items: center; gap: 6px; min-height: var(--tap-min); padding: 0 18px 0 14px; border-radius: var(--radius-pill); background: var(--primary); color: var(--on-primary); font-weight: 700; font-size: 15px; }
.dt-add::before { content: "+"; font-size: 22px; line-height: 1; font-weight: 600; }
.dt-add:disabled { background: var(--surface-2); color: var(--muted); cursor: not-allowed; }

/* ---------- header ---------- */
.dt-band { position: relative; overflow: hidden; background: var(--accent); color: var(--on-accent); padding: 22px var(--space-5) 20px; }
.dt-band__iso { position: absolute; right: -26px; top: -8px; width: 170px; height: 180px; background: var(--brand-cream); opacity: .16; -webkit-mask: var(--iso-url) center / contain no-repeat; mask: var(--iso-url) center / contain no-repeat; }
.dt-band__logo { position: relative; display: block; width: 170px; height: 64px; background: var(--brand-cream); -webkit-mask: var(--wordmark-url) left center / contain no-repeat; mask: var(--wordmark-url) left center / contain no-repeat; }
.dt-band__hi { position: relative; margin-top: 10px; font-family: var(--font-brush); font-size: 30px; line-height: 32px; color: var(--brand-cream); }
.dt-status { display: flex; align-items: center; gap: var(--space-2); font-weight: 600; font-size: 15px; }
.dt-status__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--ok); flex: none; }
.dt-status--closed .dt-status__dot { background: var(--alert); }
.dt-cupo { display: grid; gap: 8px; }
.dt-cupo__txt { display: flex; align-items: baseline; gap: 6px; font-size: 15px; }
.dt-cupo__n { font-weight: 800; font-size: 20px; padding: 0 7px; border-radius: 6px; background: var(--primary); color: var(--on-primary); }
.dt-cupo__of { margin-left: auto; color: var(--muted); font-size: 13px; font-weight: 500; }
.dt-meter { height: 8px; border-radius: var(--radius-pill); background: var(--surface-2); overflow: hidden; }
.dt-meter > i { display: block; height: 100%; background: var(--ink); border-radius: inherit; }
.dt-topbar { display: flex; align-items: center; gap: var(--space-2); min-height: 60px; padding: 8px var(--space-3); }
.dt-topbar__title { font-size: 17px; line-height: 22px; font-weight: 800; flex: 1; }
.dt-steps { font-size: 13px; font-weight: 600; color: var(--muted); padding-right: 8px; }

/* ---------- chips de categoría (sticky) ---------- */
.dt-chips { position: sticky; top: 0; z-index: 5; display: flex; gap: var(--space-2); padding: 10px var(--space-5); overflow-x: auto; scrollbar-width: none; background: var(--bg); box-shadow: 0 1px 0 var(--rule); }
.dt-chip { display: inline-flex; align-items: center; gap: 6px; min-height: var(--tap-min); padding: 0 14px; border-radius: var(--radius-md); white-space: nowrap; font-weight: 600; font-size: 15px; color: var(--muted); }
.dt-chip[aria-current="true"], .dt-chip.is-on { color: var(--ink); background: var(--surface); box-shadow: inset 0 0 0 2px var(--ink); }

/* ---------- producto en la lista ---------- */
.dt-cat { padding: 28px var(--space-5) 0; }
.dt-item { display: grid; grid-template-columns: minmax(0, 1fr) var(--thumb); gap: 14px; padding: 16px 0; border-bottom: 1.5px dashed var(--rule); }
.dt-item__name { font-size: 16px; line-height: 20px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; }
.dt-item__desc { margin-top: 4px; font-size: 15px; line-height: 21px; color: var(--muted); }
.dt-item__prices { display: flex; flex-wrap: wrap; gap: 2px 14px; margin-top: 8px; font-size: 14px; color: var(--muted); }
.dt-item__prices span { white-space: nowrap; }
.dt-item__prices b { font-weight: 700; font-style: italic; font-size: 16px; color: var(--ink); }
.dt-item__foot { display: flex; align-items: center; gap: var(--space-2); margin-top: 10px; }
.dt-item.is-out .dt-item__name, .dt-item.is-out .dt-item__desc, .dt-item.is-out .dt-item__prices { opacity: .55; }
.dt-item.is-out .dt-media { filter: grayscale(1); opacity: .5; }
.dt-badge { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 1.5px var(--field-border); font-size: 13px; font-weight: 700; color: var(--muted); }

/* foto + placeholder */
.dt-media { position: relative; overflow: hidden; aspect-ratio: 1 / 1; border-radius: var(--radius-lg); background: var(--brand-night); }
.dt-media--43 { aspect-ratio: 4 / 3; }
.dt-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dt-media.is-loading { background: var(--surface-2); }
.dt-media.is-loading::before { content: ""; position: absolute; inset: 20%; background: var(--muted); opacity: .45; -webkit-mask: var(--iso-url) center / contain no-repeat; mask: var(--iso-url) center / contain no-repeat; }
.dt-media.is-loading::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%); background-size: 220% 100%; animation: dt-shine 1.4s linear infinite; }
@keyframes dt-shine { from { background-position: 120% 0; } to { background-position: -120% 0; } }
@media (prefers-reduced-motion: reduce) { .dt-media.is-loading::after { animation: none; } }

/* ---------- barra de carrito ---------- */
.dt-cartbar { position: sticky; bottom: 0; z-index: 6; padding: 12px var(--space-4) 16px; background: linear-gradient(transparent, var(--bg) 35%); }
.dt-cartbar__btn { display: flex; align-items: center; gap: 10px; width: 100%; min-height: var(--cart-bar); padding: 0 16px; border-radius: var(--radius-lg); background: var(--ink); color: var(--bg); box-shadow: var(--shadow-float); font-size: 15px; }
.dt-cartbar__n { display: grid; place-items: center; min-width: 30px; height: 30px; border-radius: 50%; background: var(--primary); color: var(--on-primary); font-weight: 800; }
.dt-cartbar__txt { flex: 1; text-align: left; white-space: nowrap; }
.dt-cartbar__go { font-weight: 800; font-size: 16px; white-space: nowrap; }

/* ---------- bottom sheet ---------- */
.dt-scrim { position: absolute; inset: 0; z-index: 30; background: var(--scrim); }
.dt-sheet { position: absolute; z-index: 31; left: 0; right: 0; bottom: 0; max-height: 92%; overflow-y: auto; background: var(--surface); border-radius: var(--radius-xl) var(--radius-xl) 0 0; box-shadow: var(--shadow-sheet); }
.dt-sheet__handle { width: 44px; height: 5px; border-radius: 3px; background: var(--field-border); margin: 10px auto 0; }
.dt-sheet__close { position: absolute; right: 12px; top: 22px; z-index: 2; background: var(--surface); box-shadow: var(--shadow-float); }
.dt-sheet__body { padding: 16px var(--space-5) 0; display: grid; gap: var(--space-4); }
.dt-sheet__foot { position: sticky; bottom: 0; padding: 12px var(--space-5) 18px; background: var(--surface); box-shadow: 0 -1px 0 var(--rule); }

/* ---------- opciones (Simple / Doble, Efectivo / Transferencia) ---------- */
.dt-options { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2); }
.dt-option { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px; min-height: 64px; padding: 10px 14px; border-radius: var(--radius-md); background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--field-border); text-align: left; }
.dt-option__t { font-weight: 700; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.dt-option__s { font-size: 14px; color: var(--muted); }
.dt-option[aria-checked="true"] { box-shadow: inset 0 0 0 2.5px var(--ink); background: var(--bg); }
.dt-option[aria-checked="true"] .dt-option__t::after { content: ""; width: 18px; height: 18px; margin-left: auto; border-radius: 50%; background: var(--primary); box-shadow: inset 0 0 0 5px var(--ink); }
.dt-options--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dt-options--pay .dt-option { min-height: 72px; flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px; font-weight: 700; font-size: 16px; }

/* extras del detalle: una fila por extra, con el lenguaje de .dt-line y .dt-stepper--sm */
.dt-extras { display: grid; }
.dt-extra { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: var(--tap-min); padding: 8px 0; border-bottom: 1.5px dashed var(--rule); }
.dt-extra:last-child { border-bottom: 0; }
.dt-extra__info { display: grid; gap: 2px; min-width: 0; }
.dt-extra__n { font-weight: 700; font-size: 16px; }
.dt-extra__p { font-size: 14px; color: var(--muted); }
.dt-extra.is-out .dt-extra__n, .dt-extra.is-out .dt-extra__p { opacity: .55; }
.dt-line__extra { font-size: 14px; font-weight: 600; color: var(--ink); }

/* seguimiento: pasos del pedido (CAMBIOS-02). El paso actual dice "Ahora" en texto. */
.dt-track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; list-style: none; }
.dt-track__step { position: relative; display: grid; justify-items: center; gap: 6px; text-align: center; }
.dt-track__step::before { content: ""; position: absolute; top: 13px; left: calc(-50% + 16px); right: calc(50% + 16px); height: 3px; border-radius: 2px; background: var(--rule); }
.dt-track__step:first-child::before { display: none; }
.dt-track__step.is-done::before, .dt-track__step.is-now::before { background: var(--ink); }
.dt-track__dot { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--field-border); background: var(--surface); color: var(--on-accent); }
.dt-track__step.is-done .dt-track__dot { background: var(--ink); box-shadow: none; color: var(--bg); }
.dt-track__step.is-now .dt-track__dot { background: var(--primary); box-shadow: inset 0 0 0 2px var(--ink); }
.dt-track__t { font-size: 13px; line-height: 16px; font-weight: 600; color: var(--muted); }
.dt-track__step.is-done .dt-track__t, .dt-track__step.is-now .dt-track__t { color: var(--ink); }
.dt-track__step.is-now .dt-track__t { font-weight: 800; }
.dt-track__t small { display: block; font-size: 12px; font-weight: 600; color: var(--muted); }

/* Home: botón fijo para volver al seguimiento (CAMBIOS-02 C3) */
.dt-mipedido { justify-content: flex-start; gap: 10px; text-align: left; }
.dt-mipedido b { font-weight: 800; }

/* stepper */
.dt-stepper { justify-self: start; display: inline-flex; align-items: center; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 1.5px var(--field-border); }
.dt-stepper button { width: 48px; height: 48px; display: grid; place-items: center; font-size: 22px; font-weight: 600; border-radius: 50%; }
.dt-stepper output { min-width: 28px; text-align: center; font-weight: 800; font-size: 17px; }
.dt-stepper--sm button { width: 44px; height: 44px; }
.dt-stepper button:disabled { color: var(--muted); cursor: not-allowed; }

/* ---------- campos ---------- */
.dt-field { display: grid; gap: 6px; }
.dt-field__label { font-size: 14px; font-weight: 700; }
.dt-input { width: 100%; min-height: var(--field-h); padding: 0 14px; border: 0; border-radius: var(--radius-md); background: var(--surface-2); box-shadow: inset 0 0 0 1.5px var(--field-border); font-size: 16px; }
textarea.dt-input { min-height: 84px; padding: 12px 14px; resize: none; line-height: 22px; }
.dt-input::placeholder { color: var(--muted); }
.dt-input.is-focus, .dt-input:focus { outline: none; box-shadow: inset 0 0 0 2.5px var(--ink); background: var(--surface); }
.dt-input[aria-invalid="true"] { box-shadow: inset 0 0 0 2.5px var(--alert); }
.dt-field__err { display: flex; gap: 6px; align-items: center; font-size: 13px; font-weight: 600; color: var(--alert); }

/* ---------- carrito ---------- */
.dt-line { display: grid; grid-template-columns: 64px 1fr auto; gap: 12px; padding: 16px 0; border-bottom: 1.5px dashed var(--rule); align-items: start; }
.dt-line .dt-media { border-radius: var(--radius-md); }
.dt-line__name { font-weight: 800; text-transform: uppercase; letter-spacing: .02em; font-size: 15px; line-height: 19px; }
.dt-line__meta { font-size: 14px; color: var(--muted); }
.dt-line__note { font-size: 14px; font-style: italic; color: var(--muted); }
.dt-line__price { font-weight: 700; font-style: italic; font-size: 16px; text-align: right; }
.dt-line__acts { grid-column: 2 / 4; display: flex; align-items: center; justify-content: space-between; }
.dt-sum { display: grid; gap: 8px; padding: 16px 0; }
.dt-sum__row { display: flex; justify-content: space-between; font-size: 15px; }
.dt-sum__row--total { padding-top: 10px; border-top: 2px solid var(--ink); font-size: 18px; font-weight: 800; }

/* ---------- mapa (marco alrededor de Leaflet) ---------- */
.dt-map { position: relative; overflow: hidden; background: var(--surface-2); }
.dt-map__canvas { position: absolute; inset: 0; }
.dt-zone { stroke-width: 2.5; fill-opacity: .22; }
.dt-zone--centro { fill: var(--zone-centro); stroke: var(--zone-centro); }
.dt-zone--norte { fill: var(--zone-norte); stroke: var(--zone-norte); }
.dt-zone--sur { fill: var(--zone-sur); stroke: var(--zone-sur); }
.dt-pin { position: absolute; width: 44px; height: 56px; transform: translate(-50%, -100%); filter: drop-shadow(0 4px 6px rgba(0,0,0,.3)); }
.dt-pin__shadow { position: absolute; width: 18px; height: 6px; border-radius: 50%; background: rgba(0,0,0,.3); transform: translate(-50%, -50%); }
.dt-mapchip { position: absolute; left: 50%; top: 14px; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px 0 12px; border-radius: var(--radius-pill); background: var(--surface); color: var(--ink); box-shadow: var(--shadow-float); font-size: 15px; font-weight: 600; white-space: nowrap; }
.dt-mapchip .dt-ic { color: var(--ok); }
.dt-mapchip b { font-weight: 800; }
.dt-mapchip--alert { box-shadow: var(--shadow-float), inset 0 0 0 2px var(--alert); }
.dt-mapchip--alert .dt-ic { color: var(--alert); }
.dt-mapctl { position: absolute; right: 12px; display: grid; border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-float); overflow: hidden; }
.dt-mapctl button { width: 48px; height: 48px; display: grid; place-items: center; font-size: 22px; font-weight: 600; }
.dt-mapctl button + button { box-shadow: inset 0 1px 0 var(--rule); }
.dt-locate { position: absolute; left: 12px; display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px 0 12px; border-radius: var(--radius-pill); background: var(--surface); box-shadow: var(--shadow-float); font-weight: 700; font-size: 15px; }
.dt-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; font-weight: 600; }
.dt-legend span { display: inline-flex; align-items: center; gap: 6px; }
.dt-legend i { width: 14px; height: 14px; border-radius: 4px; border: 2px solid; }

/* ---------- franjas horarias ---------- */
.dt-slots { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dt-slot { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-height: 72px; padding: 10px 14px; border-radius: var(--radius-md); background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--field-border); text-align: left; }
.dt-slot__t { font-size: 18px; font-weight: 800; letter-spacing: -.01em; }
.dt-slot__s { font-size: 13px; font-weight: 600; color: var(--muted); }
.dt-slot[aria-checked="true"] { background: var(--ink); color: var(--bg); box-shadow: none; }
.dt-slot[aria-checked="true"] .dt-slot__s { color: var(--bg); opacity: .8; }
.dt-slot:disabled { background: var(--surface-2); box-shadow: none; cursor: not-allowed; }
.dt-slot:disabled .dt-slot__t { text-decoration: line-through; text-decoration-thickness: 2px; color: var(--muted); }
.dt-slot.is-justfull { box-shadow: inset 0 0 0 2px var(--alert); }
.dt-slot.is-justfull .dt-slot__s { color: var(--alert); }
/* salida llena: se puede elegir igual, el pedido queda a confirmar */
.dt-slot--llena { box-shadow: inset 0 0 0 2px var(--alert); }
.dt-slot--llena .dt-slot__s { color: var(--alert); }
.dt-slot--llena[aria-checked="true"] .dt-slot__s { color: var(--bg); }
/* salida nocturna "Después de las 23:00": siempre a confirmar */
.dt-slot--confirm { grid-column: 1 / -1; box-shadow: inset 0 0 0 1.5px var(--field-border); background: var(--surface-2); }
.dt-slot--confirm .dt-slot__s { font-weight: 700; color: var(--ink); }
.dt-slot--confirm[aria-checked="true"] { background: var(--ink); color: var(--bg); box-shadow: none; }
.dt-slot--confirm[aria-checked="true"] .dt-slot__s { color: var(--bg); }

/* ---------- transferencia ---------- */
.dt-bank { display: grid; gap: 12px; padding: var(--space-4); border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--field-border); }
.dt-bank__row { display: grid; gap: 2px; }
.dt-bank__v { font-size: 17px; font-weight: 700; word-break: break-all; }
.dt-bank__v--mono { font-variant-numeric: tabular-nums; letter-spacing: .04em; font-size: 15px; }
.dt-drop { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 12px 14px; border-radius: var(--radius-md); border: 2px dashed var(--field-border); font-weight: 700; }
.dt-drop small { display: block; font-weight: 500; color: var(--muted); font-size: 13px; }

/* ---------- avisos ---------- */
.dt-note { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--radius-md); background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--field-border); font-size: 14px; line-height: 20px; }
.dt-note--alert { box-shadow: inset 0 0 0 2px var(--alert); }
.dt-note--alert .dt-ic { color: var(--alert); }
.dt-note--ok .dt-ic { color: var(--ok); }
.dt-note b { display: block; font-size: 15px; }
.dt-toast { position: absolute; left: 12px; right: 12px; z-index: 20; display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; border-radius: var(--radius-lg); background: var(--ink); color: var(--bg); box-shadow: var(--shadow-float); font-size: 15px; line-height: 21px; font-weight: 500; }
.dt-toast b { display: block; font-weight: 800; }
.dt-empty { display: grid; justify-items: center; gap: 12px; padding: 32px var(--space-6); text-align: center; }
.dt-empty__iso { width: 110px; height: 118px; background: var(--ink); -webkit-mask: var(--iso-url) center / contain no-repeat; mask: var(--iso-url) center / contain no-repeat; }
.dt-empty__t { font-family: var(--font-brush); font-size: 34px; line-height: 36px; }
.dt-empty p { color: var(--muted); max-width: 300px; }

/* ---------- confirmación ---------- */
.dt-ticket { display: grid; gap: 0; border-radius: var(--radius-lg); background: var(--surface); box-shadow: inset 0 0 0 1.5px var(--field-border); overflow: hidden; }
.dt-ticket__head { padding: 18px 18px 14px; text-align: center; border-bottom: 1.5px dashed var(--rule); }
.dt-ticket__n { font-size: 88px; line-height: 88px; font-weight: 800; letter-spacing: -.03em; }
.dt-ticket__row { display: flex; gap: 12px; align-items: center; padding: 14px 18px; border-bottom: 1.5px dashed var(--rule); font-size: 15px; }
.dt-ticket__row:last-child { border-bottom: 0; }
.dt-ticket__row span { color: var(--muted); font-size: 13px; font-weight: 600; display: block; }
.dt-ticket__row b { font-weight: 700; }

/* ==========================================================================
   Solo previews (marco del teléfono y ficha)
   ========================================================================== */
.pv { display: flex; flex-wrap: wrap; gap: 28px; justify-content: center; padding: 24px; font-family: var(--font-body); color: var(--ink); }
.pv-phone { width: 390px; flex: none; }
.pv-cap { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 0 0 10px 6px; }
.pv-frame { position: relative; height: 780px; border-radius: 44px; padding: 10px; background: #0c0c0c; }
.pv-frame--short { height: 700px; }
.pv-screen { position: relative; height: 100%; border-radius: 34px; overflow: hidden; }
.pv-scroll { height: 100%; overflow-y: auto; scrollbar-width: none; }
.pv-scroll::-webkit-scrollbar { display: none; }
