/* ── Espress web · cuenta ────────────────────────────────────────────────────
   Portado de `Espress Account.dc.html` (757 líneas, tanda 41) del handoff de Claude Design.
   Los valores son los del export, verbatim; salen de clases en vez de atributos
   `style` por lo mismo que en `site.css`: el diseño está en los números, no en
   dónde viven. Los hovers que el export marca con `style-hover` (que el navegador
   ignora) acá son `:hover` de verdad.

   Reutiliza de `site.css`: .page .gutter .optic .header .brand .brand-word .nav
   .nav-link — el header de esta página es el mismo, con otro bloque a la derecha.

   Prefijo `ac-` en todo lo propio, para que no colisione con `lg-` ni con las
   clases del marketing.
   ──────────────────────────────────────────────────────────────────────────── */

/* Los tres estados que el export anima con `espulse` en el punto de la invoice. */
@keyframes espulse{0%,100%{opacity:.3}50%{opacity:1}}
/* Tanda 43: el radar de PAYMENT SEEN y el vaso que se llena mientras se hace la factura. */
@keyframes esradar{0%{transform:scale(.18);opacity:.9}100%{transform:scale(1);opacity:0}}
/* Tanda 45 · A4. El ciclo es el de la RANURA 06 y ahora el export lo dice igual: sube 700 · espera
   140 · baja 220 = 1060 ms, EN BUCLE (un indicador de carga no sabe cuándo acaba, así que respira; un
   refresco llena una vez porque el gesto termina). `escupfill` 0 → 66 % → 79.2 % → 100 %, LINEAL
   (`animation: … linear infinite` en `.ac-cup-fill`): los keyframes son los del export verbatim.
   Hasta la tanda 44 esto llevaba cubic-bezier por tramo, del `LoadingCup` de la app (Erik, 2026-10-01);
   el README de la 45 fija «linear», y la fuente manda. */
@keyframes escupfill{
  0%{transform:scaleY(0)}
  66%{transform:scaleY(1)}
  79.2%{transform:scaleY(1)}
  100%{transform:scaleY(0)}
}
@media (prefers-reduced-motion:reduce){
  .ac-countdown-dot{animation:none;opacity:1}
  .ac-radar-dot,.ac-radar-ring,.ac-cup-fill{animation:none}
}

/* ── Tanda 43 · 5: pantallas grandes ──────────────────────────────────────────
   Por encima de 1280 la página ya no se detiene: las bandas (rojo, negro, blanco,
   off-white) corren de borde a borde y la columna de contenido crece hasta 1440 y
   luego se centra dentro de su banda. El padding lateral es el del export:
   max(clamp(20px,4vw,60px), calc((100% − 1440px) / 2)). La tipografía no escala.
   `.page` y `.gutter` son de site.css (desde la tanda 43 ya sin tope de 1280, así que esto
   repite lo mismo y es inofensivo); se redefinieron solo para
   esta página, que carga account.css después. */
.page{max-width:none}
.gutter{padding-left:max(clamp(20px,4vw,60px),calc((100% - 1440px) / 2));padding-right:max(clamp(20px,4vw,60px),calc((100% - 1440px) / 2))}

/* ── Tanda 43 · 5: el header del teléfono ─────────────────────────────────────
   Hasta 720px, una fila sticky de 64px: wordmark (cup 30, ESPRESS 21) + píldora MENU de
   44px; MENU abre un panel negro debajo. Fuera de ese ancho, no existe. */
.ac-mhead{display:none}
@media (max-width:720px){
  .header{display:none}
  .ac-mhead{display:block;position:sticky;top:0;z-index:30;background:var(--black);border-bottom:1px solid rgba(255,255,255,.14)}
}
.ac-mrow{display:flex;align-items:center;justify-content:space-between;gap:12px;height:64px;padding:0 20px}
.ac-mbrand{display:flex;align-items:baseline;gap:10px;text-decoration:none;flex:none}
.ac-mbrand img{width:30px;height:15.7px;display:block;object-fit:contain}
.ac-mbrand span{font-family:var(--font-body);font-weight:900;font-size:21px;line-height:15.7px;letter-spacing:.02em;color:var(--white);transform:scaleX(1.28);transform-origin:left center;margin-right:30px;white-space:nowrap}
.ac-mbtn{display:flex;align-items:center;gap:10px;height:44px;padding:0 18px;border-radius:22px;border:1px solid rgba(255,255,255,.4);background:transparent;cursor:pointer}
.ac-mbars{display:flex;flex-direction:column;gap:4px}
.ac-mbars i{display:block;width:14px;height:1.8px;border-radius:1px;background:var(--white)}
.ac-mbtn>span:last-child{font-weight:700;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--white)}
.ac-mpanel{background:var(--black);padding:6px 20px 26px;display:flex;flex-direction:column}
.ac-mpanel[hidden]{display:none}
.ac-mpanel a,.ac-mpanel a:hover{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid rgba(255,255,255,.14);font-family:var(--font-display);font-weight:900;font-size:19px;letter-spacing:.6px;text-transform:uppercase;color:var(--white)}
.ac-mchev{font-family:var(--font-body);font-weight:400;font-size:20px;color:var(--gray-400)}
.ac-msession{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.ac-msession[hidden]{display:none}
.ac-msession>span{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-msession button{flex:none;height:44px;padding:0 18px;border-radius:22px;border:1px solid rgba(255,255,255,.4);background:transparent;cursor:pointer}
.ac-msession button span{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--white)}

input{font-family:var(--font-body)}
input:focus{outline:none;border-color:var(--red-500)}

/* ── Huecos y franja DRAFT ────────────────────────────────────────────────────
   Misma técnica que `legal/`: lo que promete un servicio que todavía no existe
   se marca en el markup y se encuentra de un grep.
     grep -o 'data-account-stub=.[a-z-]*'  account/index.html
     grep -o 'data-account-gap=.[a-z-]*'   account/index.html
   ──────────────────────────────────────────────────────────────────────────── */
.gap{background:#fff3cf;box-shadow:inset 0 -2px 0 var(--red-500);padding:0 4px;border-radius:2px;font-weight:700;color:var(--black);white-space:nowrap}
.ac-draft{background:var(--black);padding-top:20px;padding-bottom:20px;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 18px}
.ac-draft b{font-family:var(--font-display);font-weight:900;font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--red-500);flex:none}
.ac-draft span{flex:1 1 320px;font-size:12.5px;line-height:18px;color:var(--gray-400);text-wrap:pretty}

/* Un control inerte se ve inerte. El diseño no tiene este estado porque en el
   diseño todo funciona; acá el botón existe y no hace nada, y eso hay que decirlo
   antes de que alguien lo pulse, no después. */
.ac-inert{opacity:.55;cursor:not-allowed !important}
.ac-inert:hover{background:inherit}
.ac-note-stub{margin:12px 0 0;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.08);font-size:12px;line-height:17px;color:var(--gray-400);text-wrap:pretty}
.ac-note-stub b{color:var(--red-500);font-weight:700}
.ac-note-stub.on-light{background:#fff3cf;color:var(--black)}
.ac-note-stub.on-light b{color:var(--red-600)}

/* ── Header: el bloque de sesión que reemplaza a las acciones del marketing ── */
.ac-session{display:flex;align-items:center;gap:14px;flex:none}
/* `display:flex` de una clase gana al `display:none` que el navegador aplica a
   [hidden], asi que el bloque de sesion se veia en login junto a la etiqueta que
   lo reemplaza. Hace falta declararlo, igual que en .ac-view / .ac-pane / .ac-toast. */
.ac-session[hidden]{display:none}
/* Tanda 52 (Account 53–63): el chip del handle, SIGN OUT y la etiqueta ACCOUNT sobre la barra negra. */
.ac-handle-pill{display:flex;align-items:center;gap:9px;height:38px;padding:0 16px;border-radius:19px;background:rgba(255,255,255,.08)}
.ac-handle-dot{width:8px;height:8px;border-radius:4px;background:var(--red-500)}
.ac-handle-pill span{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--white)}
.ac-signout{height:38px;padding:0 18px;border-radius:19px;border:1px solid rgba(255,255,255,.4);background:transparent;cursor:pointer}
.ac-signout:hover{border-color:var(--white)}
.ac-signout span{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--white)}
.ac-header-tag{flex:none;font-weight:700;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}

/* ── Vista LOGIN ──────────────────────────────────────────────────────────── */
.ac-login{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));min-height:720px}
/* Las dos mitades de la entrada son columnas de una rejilla, como el hero de marketing
   (`.hero-copy` en site.css; tanda 44 · C1): el borde EXTERIOR de cada mitad se mide contra la
   página (`100vw`) para que el titular empiece donde empieza la cabecera y el formulario
   acabe donde acaba; el interior se queda en su gutter. Es el diseño del export, verbatim
   (hasta la tanda 43 era un desvío nuestro). */
.ac-login-left{background:var(--red-550);padding:clamp(48px,6vw,76px) clamp(22px,4vw,60px) clamp(48px,5vw,70px) max(clamp(22px,4vw,60px),calc((100vw - 1440px) / 2));display:flex;flex-direction:column}
/* `5.2vw` y no `6.6vw`: el titular vive en media columna y el vw mide el viewport
   entero. Es la trampa que el README del proyecto documenta. */
.ac-login-title{font-family:var(--font-display);font-weight:900;font-size:clamp(34px,5.2vw,68px);line-height:.94;text-transform:uppercase;color:var(--black);margin:0}
.ac-login-title .on-red{color:var(--white);display:block}
.ac-login-lede{margin:26px 0 0;max-width:420px;font-family:var(--font-display);font-weight:400;font-size:19px;line-height:1.36;color:var(--white);text-wrap:pretty}
.ac-points{margin-top:auto;display:flex;flex-direction:column;gap:16px;padding-top:48px}
.ac-point{display:flex;align-items:flex-start;gap:12px}
.ac-point i{width:8px;height:8px;border-radius:4px;background:var(--black);flex:none;margin-top:6px;display:block}
.ac-point span{font-weight:500;font-size:14px;line-height:20px;color:var(--white)}

.ac-login-right{background:var(--black);padding:clamp(48px,6vw,76px) max(clamp(22px,4vw,60px),calc((100vw - 1440px) / 2)) clamp(48px,5vw,70px) clamp(22px,4vw,60px);display:flex;flex-direction:column;justify-content:center}
/* Sin `margin-top`: los 30px eran del hueco bajo las pestañas Nostr/Email. En el diseño
   el título del paso arranca directo en el panel (centrado en vertical). */
.ac-pane{display:flex;flex-direction:column}
.ac-pane[hidden]{display:none}
.ac-pane-title{font-family:var(--font-display);font-weight:900;font-size:15px;letter-spacing:1.4px;text-transform:uppercase;color:var(--white)}
.ac-pane-note{margin:10px 0 0;font-size:13.5px;line-height:20px;color:var(--gray-400);text-wrap:pretty}
.ac-btn-white{display:flex;align-items:center;justify-content:center;height:56px;margin-top:14px;border-radius:28px;border:none;background:var(--white);cursor:pointer}
.ac-btn-white:hover{background:var(--red-500)}
.ac-btn-white span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:var(--black)}
.ac-input{height:52px;padding:0 18px;box-sizing:border-box;border:1px solid rgba(255,255,255,.24);border-radius:14px;font-size:14px;color:var(--white);background:rgba(255,255,255,.08)}
.ac-input.stack{margin-top:22px}
.ac-input::placeholder{color:var(--gray-550)}
.ac-signup-line{margin-top:16px;text-align:center;font-size:12.5px;color:var(--gray-400)}
.ac-error{margin-top:18px;padding:13px 16px;border-radius:14px;background:var(--red-500);font-weight:500;font-size:13px;color:var(--white)}

/* Paso del código (tanda 41). La fila "We sent a 6-digit code to · correo · Change" va con
   la línea base común. `overflow-wrap` en el correo no es del diseño: evita que una
   dirección larga rompa el ancho a 360. */
.ac-code-sent{margin-top:10px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.ac-code-sent span{font-size:13.5px;line-height:20px;color:var(--gray-400)}
.ac-code-sent b{font-weight:700;font-size:13.5px;color:var(--white);overflow-wrap:anywhere}
.ac-change{background:none;border:none;padding:0;cursor:pointer;font-weight:700;font-size:12.5px;color:var(--red-500)}
.ac-input.code{height:60px;font-family:ui-monospace,Menlo,monospace;font-size:24px;letter-spacing:10px;text-align:center}
.ac-input.is-error{border-color:var(--red-500)}
#resend-line{display:contents}
.ac-resend{height:44px;margin-top:8px;background:none;border:none;cursor:pointer;font-weight:700;font-size:12.5px;color:var(--white)}
.ac-resend-wait{margin-top:18px;text-align:center;font-size:12.5px;color:var(--gray-400)}

/* ── Vista CUENTA ─────────────────────────────────────────────────────────── */
.ac-account{padding-top:clamp(40px,5vw,56px);padding-bottom:clamp(56px,6vw,80px);background:var(--off-white)}
.ac-head{display:flex;align-items:flex-end;flex-wrap:wrap;justify-content:space-between;gap:18px 30px}
.ac-eyebrow{font-family:var(--font-display);font-weight:900;font-size:15px;letter-spacing:2px;text-transform:uppercase;color:var(--red-500)}
.ac-plan-title{margin:10px 0 0;font-family:var(--font-display);font-weight:900;font-size:clamp(28px,5vw,52px);line-height:1;text-transform:uppercase;color:var(--black)}
.ac-status{display:flex;align-items:center;gap:9px;height:36px;padding:0 18px;border-radius:18px;background:var(--black)}
.ac-status i{width:8px;height:8px;border-radius:4px;background:var(--red-500);display:block}
.ac-status span{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--white)}
.ac-status.is-paused{background:var(--red-500)}
.ac-status.is-paused i{background:var(--white)}
.ac-status.is-cancelled{background:var(--white)}
.ac-status.is-cancelled span{color:var(--black)}

.ac-cols{margin-top:30px;display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.ac-col-main{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:22px}
.ac-col-side{flex:1 1 320px;min-width:0;max-width:400px;display:flex;flex-direction:column;gap:22px}
.ac-card{background:var(--white);border-radius:28px;padding:34px 36px 36px}
.ac-card.tight{padding-bottom:30px}
.ac-card-dark{background:var(--black);border-radius:28px;padding:32px 36px 34px}
.ac-label{font-weight:700;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-550)}
.ac-sub-top{display:flex;align-items:flex-start;flex-wrap:wrap;justify-content:space-between;gap:16px 24px}
.ac-sub-name{margin-top:10px;font-family:var(--font-display);font-weight:900;font-size:30px;line-height:1.1;text-transform:uppercase;color:var(--black)}
.ac-renew{margin-top:8px;font-size:14px;color:var(--gray-550)}
.ac-sub-price{text-align:right;flex:none;min-width:0}
.ac-price{font-family:var(--font-display);font-weight:900;font-size:clamp(26px,3.4vw,34px);line-height:1;color:var(--black)}
.ac-price-note{margin-top:6px;font-size:12.5px;color:var(--gray-550)}
.ac-actions{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:10px}

.ac-btn-red{height:48px;padding:0 24px;border-radius:24px;border:none;background:var(--red-500);cursor:pointer}
.ac-btn-red:hover{background:var(--red-600)}
.ac-btn-red span{font-family:var(--font-display);position:relative;top:.13em;display:block;font-weight:900;font-size:11px;letter-spacing:1.4px;color:var(--white)}
.ac-btn-ghost{height:48px;padding:0 24px;border-radius:24px;border:1px solid var(--line-strong);background:transparent;cursor:pointer}
.ac-btn-ghost:hover{border-color:var(--black)}
.ac-btn-ghost span{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--black)}
.ac-manage{display:flex;align-items:center;gap:8px;height:48px;padding:0 24px;border-radius:24px;border:1px solid var(--line-strong);color:var(--black)}
.ac-manage:hover{border-color:var(--black);color:var(--black)}
.ac-manage>span{color:inherit}
.ac-manage>span:first-child{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase}
.ac-manage-arrow{font-size:14px}
.ac-action-note{flex:1 1 260px;margin:0;font-size:13px;line-height:19px;color:var(--gray-550);text-wrap:pretty}
.ac-btn-outline-black{display:flex;align-items:center;justify-content:center;height:48px;padding:0 24px;border-radius:24px;border:1px solid var(--black);background:transparent;color:var(--black);cursor:pointer}
.ac-btn-outline-black:hover{background:var(--black);color:var(--white)}
.ac-btn-outline-black span{font-weight:700;font-size:11px;line-height:1;position:relative;top:.128em;letter-spacing:1.2px;text-transform:uppercase;color:inherit}

/* Bloque de acceso pausado — `lapsed` en el export. */
.ac-lapse-head{display:flex;align-items:center;gap:12px}
.ac-lapse-icon{flex:none;width:30px;height:30px;border-radius:15px;background:var(--red-500);display:flex;align-items:center;justify-content:center}
.ac-lapse-title{font-family:var(--font-display);font-weight:900;font-size:clamp(20px,2.6vw,26px);line-height:1.1;text-transform:uppercase;color:var(--white)}
.ac-lapse-body{margin:14px 0 0;max-width:560px;font-size:14.5px;line-height:21px;color:var(--gray-400);text-wrap:pretty}
.ac-works{margin-top:22px;display:flex;flex-direction:column;gap:9px}
.ac-work{display:flex;align-items:flex-start;gap:11px}
.ac-work i{flex:none;width:7px;height:7px;margin-top:7px;border-radius:4px;background:var(--red-500);display:block}
.ac-work span{flex:1;font-size:14px;line-height:21px;color:var(--white)}
.ac-lapse-actions{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px}
.ac-btn-red-lg{display:flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 26px;border-radius:25px;border:none;background:var(--red-500);color:var(--white);cursor:pointer}
.ac-btn-red-lg:hover{background:var(--red-600);color:var(--white)}
.ac-btn-red-lg span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.4px;color:var(--white)}
/* La flecha ↗ del botón de gracia: cuerpo, sin el desplazamiento óptico de la etiqueta. */
.ac-btn-red-lg span.ac-arrow{font-family:var(--font-body);position:static;font-weight:400;font-size:14px;letter-spacing:0;color:inherit}
.ac-lapse-alt{display:flex;align-items:center;height:50px;font-size:13px;color:var(--gray-400)}
/* Gracia: 22px arriba y 10/18 de hueco, distinto del bloque de pausa (24 y 10). */
.ac-grace .ac-lapse-actions{margin-top:22px;align-items:center;gap:10px 18px}
.ac-grace-note{margin:16px 0 0;max-width:560px;font-size:13px;line-height:19px;color:var(--gray-550);text-wrap:pretty}
.ac-btn-outline-white{display:flex;align-items:center;justify-content:center;height:50px;padding:0 26px;border-radius:25px;border:1px solid rgba(255,255,255,.4);background:transparent;color:var(--white);cursor:pointer}
.ac-btn-outline-white:hover{background:var(--white);color:var(--black)}
.ac-btn-outline-white span{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:inherit}

/* Facturas. La tabla es una `<table>` de verdad y no una grilla de `<div>`: son
   datos tabulares con encabezados, y un lector de pantalla necesita saberlo. Los
   anchos de columna y el `min-width:512px` con scroll propio son los del export. */
.ac-inv-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}
.ac-inv-note{font-size:12.5px;color:var(--gray-550)}
.ac-inv-empty{margin:18px 0 0;font-size:14px;line-height:21px;color:var(--gray-550);text-wrap:pretty}
.ac-table-wrap{margin-top:18px;overflow-x:auto}
.ac-table{min-width:512px;width:100%;border-collapse:collapse;table-layout:fixed}
.ac-table col.c-date{width:110px}
.ac-table col.c-amount{width:96px}
.ac-table col.c-status{width:86px}
.ac-table col.c-proof{width:78px}
.ac-table th{text-align:left;padding:0 8px 11px 0;border-bottom:1px solid var(--line-strong);font-weight:700;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--gray-550)}
.ac-table th.right{text-align:right;padding-right:0}
.ac-table td{padding:15px 8px 15px 0;border-bottom:1px solid var(--line);vertical-align:middle}
.ac-table td.right{text-align:right;padding-right:0}
.ac-td-date{font-size:13.5px;color:var(--black)}
.ac-td-method{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--gray-550);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-td-amount{font-weight:700;font-size:13.5px;color:var(--black)}
.ac-td-status{font-weight:700;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--black)}
.ac-td-status.muted{color:var(--gray-550)}
.ac-td-proof{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--black);text-align:right;padding-right:0!important}

/* Gold (tanda 43 · A): tarjeta negra al tope de la columna lateral. */
.ac-gold{background:var(--black);border-radius:28px;padding:28px 30px 30px}
.ac-gold-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ac-gold-label{font-weight:700;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}
.ac-gold-count{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--white)}
.ac-gold-main{margin-top:18px;display:flex;flex-direction:column;align-items:center}
.ac-gold-ring{position:relative;width:196px;height:196px}
.ac-gold-ring>svg{display:block;transform:rotate(-90deg)}
.ac-gold-cup{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ac-gold-cup svg{display:block;overflow:visible}
.ac-gold-fig{display:flex;align-items:baseline;margin-top:8px;color:var(--white)}
/* Tanda 45 · A5: las cifras de display van sobre una línea de 1.16 em (la cifra del anillo y `/20`):
   a 1.0 el glifo se recortaba. Valores del export. */
.ac-gold-num{font-family:var(--font-display);font-weight:900;font-size:34px;line-height:1.16}
.ac-gold-of{font-family:var(--font-display);font-weight:400;font-size:16px;line-height:1.16;margin-left:2px}
.ac-gold-lbl{margin-top:6px;font-weight:500;font-size:9.5px;letter-spacing:1px;text-transform:uppercase;color:var(--gray-400)}
.ac-gold-pill{display:flex;align-items:center;justify-content:center;height:28px;margin-top:12px;padding:0 13px;border-radius:14px;box-sizing:border-box}
.ac-gold-pill span{font-family:var(--font-display);position:relative;top:.1em;font-weight:400;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;white-space:nowrap}
.ac-gold-remain{margin-top:10px;min-height:18px;font-size:13px;line-height:18px;color:var(--white);text-align:center;text-wrap:pretty}
/* Tanda 45 · D7: la tarjeta mientras carga o si no se pudo leer. La píldora va a blanco 20 % sin
   palabra y con 112px de ancho mínimo; el pie queda como un hueco de 46px bajo su filete
   (el borde y la altura se sostienen para que la tarjeta no salte al llegar los datos); la
   línea de error va en gray-400. Todo del export. */
.ac-gold.is-busy .ac-gold-pill{min-width:112px;background:rgba(255,255,255,.20)!important}
.ac-gold.is-busy .ac-gold-foot{min-height:46px}
.ac-gold.is-busy .ac-gold-foot>*{display:none}
.ac-gold.is-err .ac-gold-remain{color:var(--gray-400)}
.ac-gold-foot{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
.ac-gold-stars{display:flex;gap:5px}
.ac-gold-stars svg{display:block}
.ac-gold-cycles{margin-top:10px;font-size:12.5px;line-height:18px;color:var(--gray-400)}
.ac-gold-orange{margin-top:6px;font-size:12.5px;line-height:18px;color:var(--btc-500)}
.ac-gold-orange[hidden]{display:none}

.ac-id-card{background:var(--white);border-radius:28px;padding:30px 32px 32px}
.ac-full-handle{margin-top:12px;font-family:ui-monospace,Menlo,monospace;font-size:13px;line-height:19px;color:var(--black);word-break:break-all}
.ac-method-line{margin-top:8px;font-size:12.5px;color:var(--gray-550)}
.ac-method-line{margin-top:8px;font-size:12.5px;color:var(--gray-550)}
.ac-id-actions{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.ac-danger{background:none;border:none;padding:0;cursor:pointer}
.ac-danger span{font-weight:700;font-size:12px;letter-spacing:.6px;color:var(--red-500)}

/* ── Vista CHECKOUT ───────────────────────────────────────────────────────── */
.ac-checkout{padding-top:clamp(36px,5vw,52px);padding-bottom:clamp(56px,6vw,80px);background:var(--off-white)}
.ac-back{display:flex;align-items:center;gap:9px;background:none;border:none;padding:0;cursor:pointer}
.ac-back svg{display:block;transform:rotate(180deg)}
.ac-back span{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--gray-550)}
.ac-co-cols{margin-top:26px;display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.ac-co-left{flex:1 1 440px;min-width:0;background:var(--white);border-radius:28px;padding:38px clamp(22px,3vw,40px) 40px}
/* El export fija el minimo del clamp en 32px. Medido: a 360 la tarjeta deja 276px
   de ancho util y "NO RENEWAL" a 32px pide 308 - se cortaba. El minimo baja a 28px,
   que es lo justo para que entre (~270). No se toca el `nowrap`: la regla del design
   system es que un titulo de banda no envuelve nunca, asi que lo que cede es el
   cuerpo, no el ritmo. Por encima de ~608px de viewport manda el `4.6vw`, de modo
   que esto no cambia nada de lo que el diseno dibuja en desktop. */
.ac-co-title{font-family:var(--font-display);font-weight:900;font-size:clamp(28px,4.6vw,46px);line-height:1;text-transform:uppercase;color:var(--black);white-space:nowrap;margin:0}
.ac-co-title.first{margin-top:12px}
.ac-co-title.red{color:var(--red-500)}
.ac-co-lede{margin:20px 0 0;max-width:520px;font-size:15px;line-height:22px;color:var(--black);text-wrap:pretty}
.ac-totals{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:13px}
.ac-total-row{display:flex;justify-content:space-between;font-size:14px}
.ac-total-row dt{color:var(--gray-550)}
.ac-total-row dd{margin:0;font-weight:700;color:var(--black)}
.ac-total-row dd.is-unset{color:var(--gray-550)}
.ac-total-final{display:flex;justify-content:space-between;align-items:baseline;padding-top:13px;border-top:1px solid var(--line)}
.ac-total-label{font-family:var(--font-display);font-weight:900;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;color:var(--black)}
.ac-total-value{margin:0;text-align:right}
.ac-total-sats{display:block;font-family:var(--font-display);font-weight:900;font-size:26px;line-height:1;color:var(--black)}
.ac-total-btc{display:block;margin-top:5px;font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--gray-550)}

.ac-co-right{flex:1 1 340px;min-width:0;max-width:520px;background:var(--black);border-radius:28px;padding:34px clamp(22px,3vw,36px) 36px}
.ac-inv-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;justify-content:space-between}
.ac-inv-eyebrow{font-weight:700;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}
.ac-countdown{display:flex;align-items:center;gap:8px}
.ac-countdown-dot{width:7px;height:7px;border-radius:4px;background:var(--red-500);animation:espulse 1.4s ease-in-out infinite;display:block}
.ac-countdown time{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--white)}
.ac-inv-box{margin-top:14px;padding:12px 14px;background:rgba(255,255,255,.08);border-radius:14px;display:flex;flex-direction:column;gap:6px}
.ac-inv-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ac-inv-row dt{font-weight:500;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--gray-400)}
.ac-inv-row dd{margin:0;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--white);text-align:right;word-break:break-all}
/* Tanda 43 · B: CHOOSE HOW TO SEND IT. Dos opciones grandes y ninguna factura todavía. */
.ac-picks{margin-top:18px;display:flex;flex-direction:column;gap:10px}
.ac-pick{display:flex;align-items:center;gap:16px;width:100%;box-sizing:border-box;padding:20px 20px 20px 22px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);cursor:pointer;text-align:left}
.ac-pick:hover{border-color:var(--white)}
.ac-pick svg{display:block;flex:none}
.ac-pick-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.ac-pick-name{font-family:var(--font-display);font-weight:900;font-size:17px;letter-spacing:1px;color:var(--white)}
.ac-pick-a{font-size:13.5px;line-height:19px;color:var(--white)}
.ac-pick-b{font-size:12.5px;line-height:17px;color:var(--gray-400)}
.ac-pick-note{margin:18px 0 0;font-size:12.5px;line-height:18px;color:var(--gray-400);text-wrap:pretty}
.ac-note-handle{font-family:ui-monospace,Menlo,monospace;color:var(--white)}
/* Cambiar de opinión: bajo la cabecera de la factura, "ON-CHAIN settles after 1 confirmation · Use Lightning instead". */
.ac-rail-row{margin-top:16px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;justify-content:space-between}
.ac-rail-id{display:flex;align-items:baseline;gap:10px;min-width:0}
.ac-rail-name{font-family:var(--font-display);font-weight:900;font-size:13px;letter-spacing:1.2px;color:var(--white)}
.ac-rail-note{font-size:12px;color:var(--gray-400)}
.ac-switch{background:none;border:none;padding:6px 0;cursor:pointer;font-weight:700;font-size:12px;color:var(--white);text-decoration:underline;text-underline-offset:3px}
/* El reloj atenuado a 15:00 mientras se hace la factura (el export: opacity .4). */
#inv-invoice.is-making .ac-countdown{opacity:.4}

/* El hueco del QR. NO se dibuja ninguno — ver el comentario del markup. */
.ac-qr-wrap{margin-top:18px;display:flex;justify-content:center}
.ac-qr-slot{display:block;width:228px;height:228px;padding:16px;box-sizing:border-box;background:var(--white);border-radius:20px;text-align:center}
/* 196 × 196 por dentro: el QR, o el vaso de la factura que se está haciendo (sin una palabra). */
.ac-qr,.ac-qr-making{width:196px;height:196px}
.ac-qr-making{display:none;align-items:center;justify-content:center}
#inv-invoice.is-making .ac-qr-making{display:flex}
#inv-invoice.is-making .ac-qr{display:none}
.ac-cup-fill{transform-box:fill-box;transform-origin:50% 100%;animation:escupfill 1060ms linear infinite}
.ac-qr-slot b{font-family:var(--font-display);font-weight:900;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--red-500)}
.ac-qr-slot span{font-size:11.5px;line-height:16px;color:var(--gray-550);text-wrap:pretty}
.ac-addr-block{margin-top:20px}
.ac-addr-label{font-weight:700;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}
.ac-addr-row{margin-top:9px;display:flex;align-items:center;gap:10px;padding:13px 15px;background:rgba(255,255,255,.08);border-radius:14px;min-height:30px}
.ac-addr-skel{display:none;flex:1;flex-direction:column;gap:7px}
.ac-addr-skel i{display:block;height:8px;border-radius:4px;background:rgba(255,255,255,.14)}
.ac-addr-skel i:first-child{width:92%}
.ac-addr-skel i:last-child{width:58%}
#inv-invoice.is-making .ac-addr,#inv-invoice.is-making .ac-copy{display:none}
#inv-invoice.is-making .ac-addr-skel{display:flex}
.ac-addr{flex:1;min-width:0;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;line-height:16px;color:var(--white);word-break:break-all}
/* `break-all` es lo correcto para una direccion de bitcoin, que no tiene espacios
   donde cortar. Mientras el hueco lleva una frase, parte palabras a la mitad. */
.ac-addr.is-note{word-break:normal;overflow-wrap:anywhere}
.ac-copy{flex:none;height:30px;padding:0 13px;border-radius:15px;border:1px solid rgba(255,255,255,.35);background:transparent;cursor:pointer}
.ac-copy span{font-weight:700;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--white)}
.ac-check{display:flex;align-items:center;justify-content:center;width:100%;height:52px;margin-top:20px;border-radius:26px;border:none;background:var(--red-500);cursor:pointer}
.ac-check:hover{background:var(--red-600)}
.ac-check:disabled{opacity:.35;cursor:default}
.ac-check:disabled:hover{background:var(--red-500)}
.ac-check.is-asking{opacity:.6}
/* En "pago visto" CHECK PAYMENT pasa a botón de contorno. */
.ac-check.outline{background:transparent;border:1px solid rgba(255,255,255,.35)}
.ac-check.outline:hover{background:transparent;border-color:var(--white)}
.ac-check span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:var(--white)}
.ac-check-line{margin:12px 0 0;display:flex;align-items:flex-start;justify-content:center;gap:9px;text-align:left;font-size:12.5px;line-height:18px;color:var(--white);text-wrap:pretty}
.ac-check-line[hidden]{display:none}
.ac-check-dot{flex:none;width:6px;height:6px;margin-top:6px;border-radius:3px;background:var(--white)}
.ac-check-line.is-asking .ac-check-dot{opacity:.35}
.ac-check-note{margin:14px 0 0;text-align:center;font-size:11.5px;line-height:17px;color:var(--gray-400);text-wrap:pretty}

.ac-state{display:flex;flex-direction:column;align-items:center;padding:26px 0 10px}
.ac-state-ring{width:74px;height:74px;border-radius:37px;border:2px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center}
.ac-state-disc{width:74px;height:74px;border-radius:37px;background:var(--red-500);display:flex;align-items:center;justify-content:center}
.ac-state-title{margin-top:22px;font-family:var(--font-display);font-weight:900;font-size:34px;line-height:1;text-transform:uppercase;color:var(--white)}
.ac-state-title.big{font-size:40px}
/* NO INVOICE YET: 26px y centrado, con el aro rojo (el de EXPIRED es blanco al 35%). */
.ac-state-title.fail{font-size:26px;line-height:1.1;text-align:center}
.ac-state-ring.is-red{border-color:var(--red-500)}
.ac-state-note{margin:14px 0 0;text-align:center;font-size:13.5px;line-height:20px;color:var(--gray-400);text-wrap:pretty}
.ac-state-btn-red{display:flex;align-items:center;justify-content:center;width:100%;height:52px;margin-top:24px;border-radius:26px;border:none;background:var(--red-500);cursor:pointer}
.ac-state-btn-red:hover{background:var(--red-600)}
.ac-state-btn-red span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:var(--white)}
.ac-state-btns{width:100%;margin-top:18px;display:flex;flex-direction:column;gap:10px}
.ac-state-btn-white{width:100%;height:52px;border-radius:26px;border:none;background:var(--white);cursor:pointer}
/* BACK TO THE APP (solo con ?from=app). El diseño pone BACK TO ACCOUNT a 10px bajo el
   cuadro del txid; aquí ese cuadro se omite, así que sin el botón de la app se queda
   a 18 (bajo "Credited to") y con él, a 10. */
.ac-state-btn-app{display:flex;align-items:center;justify-content:center;width:100%;height:52px;border-radius:26px;background:var(--red-500);color:var(--white)}
.ac-state-btn-app:hover{color:var(--white)}
.ac-state-btn-app[hidden]{display:none}
.ac-state-btn-app span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:inherit}
.ac-state-btn-white span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:var(--black)}
.ac-state-plain{height:44px;margin-top:8px;background:none;border:none;cursor:pointer}
.ac-state-plain span{font-weight:500;font-size:13px;color:var(--gray-400)}
.ac-credit{width:100%;margin-top:18px;padding:14px 16px;background:rgba(255,255,255,.08);border-radius:14px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.ac-credit dt{font-weight:500;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--gray-400)}
.ac-credit dd{margin:0;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--white);text-align:right;word-break:break-all}
/* El comprobante tras el pago (tanda 42 · l; Account 384-390). El export no da hover al
   enlace, así que se queda blanco en vez de heredar el rojo de `a:hover`. */
.ac-tx{width:100%;margin-top:24px;padding:16px 18px;background:rgba(255,255,255,.08);border-radius:16px}
.ac-tx-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ac-tx-label{font-weight:700;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}
.ac-tx-link,.ac-tx-link:hover{font-weight:700;font-size:11px;color:var(--white)}
.ac-tx-id{margin-top:7px;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;line-height:16px;color:var(--white);word-break:break-all}
.ac-tx-note{margin-top:8px;font-size:11.5px;line-height:16px;color:var(--gray-400)}

/* ── Tanda 43 · 1: pago visto, falta su confirmación ───────────────────────── */
.ac-seen-at{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--white)}
.ac-seen-at[hidden],.ac-seen-tx[hidden],.ac-late-tx[hidden],.ac-tx-link[hidden]{display:none}
.ac-seen-hero{display:flex;flex-direction:column;align-items:center;padding:30px 0 4px}
/* Radar: punto rojo al centro, tres aros que se ensanchan y se desvanecen (2,4 s, escalonados). */
.ac-radar{position:relative;display:block;width:104px;height:104px}
.ac-radar-base{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(255,255,255,.14)}
.ac-radar-base.inner{inset:30%}
.ac-radar-ring{position:absolute;inset:0;border-radius:50%;border:2px solid #fe0100;opacity:0;animation:esradar 2400ms cubic-bezier(.33,1,.68,1) infinite}
.ac-radar-ring.d1{animation-delay:800ms}
.ac-radar-ring.d2{animation-delay:1600ms}
.ac-radar-dot{position:absolute;left:50%;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:6px;background:#fe0100;animation:espulse 1.4s ease-in-out infinite}
.ac-seen-title{margin-top:22px;font-family:var(--font-display);font-weight:900;font-size:30px;line-height:1.05;text-align:center;text-transform:uppercase;color:var(--white)}
.ac-seen-note{margin:14px 0 0;text-align:center;font-size:13.5px;line-height:20px;color:var(--gray-400);text-wrap:pretty}
.ac-seen-box{margin-top:20px;padding:16px 18px;background:rgba(255,255,255,.08);border-radius:16px;display:flex;flex-direction:column;gap:14px}
.ac-seen-conf{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ac-conf-num{font-family:var(--font-display);font-weight:900;font-size:20px;line-height:1;color:var(--white)}
.ac-conf-num span{font-weight:400;color:var(--gray-400)}
.ac-seen-tx{padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}
.ac-seen-tx .ac-tx-id{margin-top:7px}

/* Pagada tarde: el dinero llegó, se liquida a mano. */
.ac-state-ring.is-white{border-color:var(--white)}
.ac-late-box{width:100%;margin-top:20px;padding:16px 18px;box-sizing:border-box;background:rgba(255,255,255,.08);border-radius:16px;display:flex;flex-direction:column;gap:14px}
.ac-late-credit{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}
/* Sin txid el bloque se omite y "Credited to" abre la caja, sin su filete. */
.ac-late-tx[hidden]+.ac-late-credit{padding-top:0;border-top:0}
.ac-late-credit-label{font-weight:500;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--gray-400)}
.ac-late-credit-val{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--white);text-align:right;word-break:break-all}
.ac-late-back{width:100%;height:52px;margin-top:22px;border-radius:26px;border:none;background:var(--white);cursor:pointer}
.ac-late-back span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:var(--black)}
/* Price · Received · Short by (tanda 44 · B2): tres columnas con un filete debajo; sin
   cifras legibles la fila entera se omite en vez de imprimir una a medias. */
.ac-late-sums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12)}
.ac-late-sums[hidden]{display:none}
.ac-late-k{display:block;font-weight:500;font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--gray-400)}
.ac-late-v{display:block;margin-top:5px;font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--white)}
.ac-late-write-note{margin:16px 0 0;text-align:center;font-size:12.5px;line-height:18px;color:var(--gray-400);text-wrap:pretty}
.ac-late-write{display:flex;align-items:center;justify-content:center;width:100%;height:52px;margin-top:18px;border-radius:26px;background:var(--white);text-decoration:none}
.ac-late-write span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:var(--black)}
#late-day[hidden],#late-short[hidden]{display:none}
#late-day,#late-short{display:flex;flex-direction:column;align-items:center}

/* ── Footer reducido ──────────────────────────────────────────────────────── */
.ac-footer{background:var(--red-500);padding:44px max(clamp(20px,4vw,60px),calc((100% - 1440px) / 2)) calc(40px + env(safe-area-inset-bottom))} /* + zona segura de abajo: ver site.css, html.ends-black-red */
.ac-footer-row{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:20px 40px}
.ac-footer-word{font-family:var(--font-body);font-weight:900;font-size:26px;line-height:1;letter-spacing:.02em;color:var(--white);transform:scaleX(1.28);transform-origin:left center;margin-right:36px;white-space:nowrap}
.ac-footer-links{display:flex;flex-wrap:wrap;gap:14px 28px}
.ac-footer-links a{font-size:13px;color:var(--white)}
.ac-footer-links a:hover{color:var(--black)}

/* ── Toast ────────────────────────────────────────────────────────────────── */
.ac-toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);padding:13px 22px;border-radius:22px;background:var(--black);font-weight:500;font-size:13px;color:var(--white);z-index:60}
.ac-toast[hidden]{display:none}

/* ── Borrar la cuenta: el diálogo del export (tanda 41) ────────────────────────
   z-index 70 sobre el toast (60), como en el diseño. */
.ac-overlay{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.ac-overlay[hidden]{display:none}
.ac-dialog{width:100%;max-width:460px;box-sizing:border-box;background:var(--white);border-radius:28px;padding:34px 32px 30px}
/* El foco va al diálogo, que no es un control: sin el aro global (que además le
   pondría `border-radius:6px`). */
.ac-dialog:focus-visible{outline:none;border-radius:28px}
.ac-dialog-title{font-family:var(--font-display);font-weight:900;font-size:22px;line-height:1.1;text-transform:uppercase;color:var(--black)}
.ac-dialog-body{margin:12px 0 0;font-size:14.5px;line-height:21px;color:var(--gray-550);text-wrap:pretty}
.ac-dialog-body.first{margin-top:14px}
.ac-dialog-now{margin:12px 0 0;font-weight:700;font-size:14.5px;line-height:21px;color:var(--black)}
.ac-dialog-actions{margin-top:24px;display:flex;flex-wrap:wrap;gap:10px}
.ac-dialog-go{flex:1 1 150px;height:50px;border-radius:25px;border:none;background:var(--red-500);cursor:pointer}
.ac-dialog-go:hover{background:var(--red-600)}
.ac-dialog-go span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.6px;color:var(--white)}
.ac-dialog-keep{flex:1 1 150px;height:50px;border-radius:25px;border:1px solid var(--line-strong);background:transparent;cursor:pointer}
.ac-dialog-keep span{font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--black)}

/* Las tres vistas son excluyentes, igual que los tres `sc-if` del export. */
.ac-view[hidden]{display:none}

/* ── Conectada (2026-09-29) ───────────────────────────────────────────────────
   Lo que la página conectada añade, todo del export: la tarjeta de gracia (blanca,
   borde rojo, título negro, cuerpo gris 550), botones que ahora son enlaces a la
   tienda, el QR real dentro del slot blanco de 228px. */
.ac-grace{border:1px solid var(--red-500);padding:30px 36px 32px}
.ac-grace[hidden],.ac-manage[hidden],#code-step[hidden],#email-step[hidden],#login-error[hidden],#invoices-card[hidden]{display:none}
.ac-lapse-title.on-light{color:var(--black)}
.ac-lapse-body.on-light{color:var(--gray-550)}
a.ac-btn-red-lg{text-decoration:none}
.ac-qr svg{display:block;width:100%;height:100%}
.mono{font-family:ui-monospace,Menlo,monospace}
/* Los dos pasos del login viven dentro del panel en columna: `contents` deja que sus
   hijos sigan siendo filas del panel, como el campo y el botón del export. */
#email-step,#code-step{display:contents}
#plan-price-block[hidden]{display:none}

/* ── Tanda 58 · sats desde el nodo ───────────────────────────────────────────
   Todo de `Espress Account.dc.html` (export del 16/10, `data-screen-label="Pay from your
   node"` y las piezas nuevas de la tarjeta): la caja de datos del nodo, el aviso de cobro
   fallido, la columna Method que parte en dos líneas, y la pantalla de conexión con sus
   seis estados. Reusa `.ac-co-left/.ac-co-right/.ac-co-title/.ac-totals` del checkout,
   `.ac-grace` (tarjeta blanca con borde rojo) y `.ac-state*` de los paneles. */
.ac-node-facts{margin-top:24px;padding:20px 22px;border-radius:18px;background:var(--off-white);display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px 24px}
.ac-node-facts>div{min-width:0}
.ac-node-fact-k{font-weight:700;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--gray-550)}
.ac-node-fact-v{margin-top:7px;font-weight:700;font-size:14px;line-height:19px;color:var(--black);overflow-wrap:anywhere}
.ac-node-fact-sub{margin-top:3px;font-size:12.5px;line-height:17px;color:var(--gray-550);text-wrap:pretty}
/* PAY FROM YOUR NODE: contorno negro con rótulo de display (900 · 11 · 1.4), como el rojo de al lado. */
.ac-btn-outline-black span.display{font-family:var(--font-display);font-weight:900;letter-spacing:1.4px;text-transform:none;top:.13em}
.ac-manage.as-button{background:transparent;cursor:pointer}
.ac-manage.lg{height:50px;padding:0 24px;border-radius:25px;text-decoration:none}
/* El aviso del nodo (RETRYING / REFUSED): cuerpo a 600 de ancho, los tres arreglos en tinta negra. */
.ac-lapse-body.wide{max-width:600px}
.ac-fixes{margin-top:18px;display:flex;flex-direction:column;gap:9px}
.ac-fixes .ac-work span{color:var(--black)}
#node-fixes-note{margin-top:14px;max-width:600px}
/* En la pausa, el botón del nodo: contorno blanco al 0,4 con rótulo de display, hover solo al borde. */
.ac-btn-outline-white.display span{font-family:var(--font-display);position:relative;top:.13em;font-weight:900;font-size:12px;letter-spacing:1.4px;text-transform:none}
.ac-btn-outline-white.display:hover{background:transparent;border-color:var(--white);color:var(--white)}
/* Invoices: cabecera en línea base con 6/24 de hueco; la tabla a 560 con Method flexible
   (110 · 1fr≥120 · 80 · 70 · 78) y la celda en dos líneas si hace falta. */
.ac-inv-head{align-items:baseline;gap:6px 24px}
.ac-table{min-width:560px}
.ac-table col.c-method{width:auto}
.ac-table col.c-amount{width:80px}
.ac-table col.c-status{width:70px}
.ac-td-method{white-space:normal;overflow:visible;text-overflow:clip;line-height:17px;text-wrap:pretty}

/* La pantalla PAY FROM YOUR NODE · izquierda */
.ac-node-label{margin-top:30px;font-weight:700;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-550)}
.ac-node-label.tight{margin-top:0}
.ac-node-tiles{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ac-node-tile{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:18px 18px 16px;border-radius:20px;border:1px solid var(--line-strong);background:var(--white);cursor:pointer;text-align:left}
.ac-node-tile.is-on{background:var(--black);border-color:var(--black)}
.ac-node-tile-name{font-family:var(--font-display);font-weight:900;font-size:12px;letter-spacing:1.4px;color:var(--black)}
.ac-node-tile-price{font-family:var(--font-display);font-weight:900;font-size:26px;line-height:1;color:var(--black)}
.ac-node-tile-sats{font-size:12.5px;color:var(--gray-550);min-height:15px}
.ac-node-tile.is-on .ac-node-tile-name,.ac-node-tile.is-on .ac-node-tile-price{color:var(--white)}
.ac-node-tile.is-on .ac-node-tile-sats{color:var(--gray-400)}
.ac-node-budget{margin-top:12px;padding:20px 22px;border-radius:20px;background:var(--off-white)}
.ac-node-budget-row{margin-top:9px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.ac-node-budget-num{font-family:var(--font-display);font-weight:900;font-size:26px;line-height:1;color:var(--black)}
.ac-node-budget-unit{font-weight:700;font-size:14px;color:var(--black)}
.ac-node-budget-why{margin:10px 0 0;font-size:13px;line-height:19px;color:var(--gray-550);text-wrap:pretty}
#node-rows{margin-top:26px;padding-top:22px}
#node-rows .ac-total-row{align-items:baseline;gap:18px}
#node-rows dt{flex:none}
#node-rows dd{text-align:right;text-wrap:pretty}
.ac-node-stack{margin:18px 0 0;font-size:13px;line-height:19px;color:var(--gray-550);text-wrap:pretty}

/* · derecha, elegir */
.ac-node-way{margin-top:16px;padding:22px 20px 20px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06)}
.ac-node-or+.ac-node-way{margin-top:0}
.ac-node-way-line{margin:8px 0 0;font-size:13.5px;line-height:19px;color:var(--white);text-wrap:pretty}
.ac-node-way .ac-rail-row{margin-top:14px;gap:4px 14px}
.ac-node-way .ac-rail-id{gap:8px}
.ac-node-k{font-weight:500;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--gray-400)}
.ac-node-host{font-size:12px;color:var(--white);overflow-wrap:anywhere}
.ac-input.node{display:block;width:100%;height:48px;margin-top:10px;padding:0 16px;font-size:13px}
.ac-node-hint{margin:8px 0 0;font-size:11.5px;line-height:16px;color:var(--gray-400);text-wrap:pretty}
.ac-node-way .ac-error{margin-top:10px;padding:11px 14px;font-size:12.5px;line-height:18px}
.ac-node-way .ac-check{margin-top:16px;background:var(--white)}
.ac-node-way .ac-check span{color:var(--black)}
.ac-node-way .ac-check:hover{background:var(--red-500)}
.ac-node-way .ac-check.outline{margin-top:14px;background:transparent;border-color:rgba(255,255,255,.4)}
.ac-node-way .ac-check.outline span{color:var(--white)}
.ac-node-way .ac-check.outline:hover{border-color:var(--white)}
.ac-input.node-url{display:block;width:100%;height:auto;margin-top:14px;padding:13px 16px;font-size:12px;line-height:17px;resize:vertical;word-break:break-all}
.ac-input.node-url:focus,.ac-input.node:focus{outline:none;border-color:var(--red-500)}
.ac-node-or{display:flex;align-items:center;gap:12px;margin:16px 0}
.ac-node-or span{flex:1;height:1px;background:rgba(255,255,255,.14)}
.ac-node-or b{font-weight:700;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}

/* · abriendo el hub, cobrando, conectado, error */
.ac-node-cup{display:flex;align-items:center;justify-content:center;width:104px;height:104px}
.ac-node-cup svg{display:block;overflow:visible}
.ac-check.outline.link{gap:8px;margin-top:22px;box-sizing:border-box;text-decoration:none;color:var(--white)}
.ac-check.outline.link.tight{margin-top:10px}
.ac-check.outline.link span:first-child{font-family:var(--font-body);position:static;top:0;font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:inherit}
.ac-check.outline.link .ac-manage-arrow{font-family:var(--font-body);position:static;font-weight:400;font-size:14px;letter-spacing:0;color:inherit}
.ac-state-note.on-white{color:var(--white)}
.ac-tx-pair{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ac-tx-pair+.ac-tx-pair{margin-top:12px}
.ac-tx-right{text-align:right}
.ac-tx-id.first{display:block;margin-top:0}
.ac-tx-note.tight{display:block;margin-top:3px}
.ac-tx-hash{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.12)}
.ac-node-code{margin-top:14px;padding:6px 12px;border-radius:12px;background:rgba(255,255,255,.08);font-size:11px;color:var(--gray-400)}
#node-facts[hidden],#node-alert[hidden],#go-node[hidden],#disconnect-node[hidden],#node-fixes[hidden],#node-fixes-note[hidden],#node-stack[hidden],#node-own[hidden],#node-hub-err[hidden],#node-url-err[hidden],#node-err-hub[hidden],#node-ok-hash-block[hidden],#del-node[hidden],#lapse-alt[hidden],#node-charging-sats[hidden],#node-alert-hub[hidden],#node-choose[hidden],#node-away[hidden],#node-charging[hidden],#node-ok[hidden],#node-error[hidden],#node-store[hidden],#node-back-to-app[hidden],#lapse-node[hidden]{display:none}

/* ── Tanda 59 · la conexión con Alby Hub para quien no es experto ───────────────
   Medidas del export del 17/10 (`Espress Account.dc.html`, pantalla Pay from your node). */
.ac-node-budget-usd{flex-basis:100%;font-size:13px;color:var(--gray-550)}
.ac-node-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;justify-content:space-between}
.ac-node-reco{padding:5px 11px 4px;border-radius:999px;background:var(--red-500);font-weight:700;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--white)}
.ac-node-steps{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}
.ac-node-steps li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;align-items:start}
.ac-node-step-n{flex:none;width:26px;height:26px;box-sizing:border-box;border-radius:13px;border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:11px;line-height:1;color:var(--white)}
.ac-node-step-n span{position:relative;top:.13em}
.ac-node-step-t{padding-top:3px;font-size:13.5px;line-height:19px;color:var(--gray-400);text-wrap:pretty}
.ac-node-step-t strong{font-weight:700;color:var(--white)}
.ac-node-way .ac-rail-row.ac-node-hubrow{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);gap:4px 14px}
.ac-node-closed{margin:16px 0 0;padding:11px 14px;border-radius:14px;background:rgba(255,255,255,.08);font-size:12.5px;line-height:18px;color:var(--white);text-wrap:pretty}
.ac-node-closed[hidden]{display:none}
.ac-node-way .ac-check{gap:10px}
.ac-node-way .ac-check:not(.outline){margin-top:18px}
.ac-node-arrow{font-size:14px;color:var(--black)}
.ac-node-arrow.white{color:var(--white)}
.ac-node-way .ac-check:hover .ac-node-arrow{color:var(--white)}
.ac-node-open-note{margin:10px 0 0;text-align:center;font-size:12px;line-height:17px;color:var(--gray-400)}
.ac-node-other{margin-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.ac-node-other-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:68px;padding:14px 0;background:none;border:none;cursor:pointer;text-align:left}
.ac-node-other-row:hover{opacity:.85}
.ac-node-other-txt{display:flex;flex-direction:column;gap:4px;min-width:0}
.ac-node-other-t{font-weight:700;font-size:14px;color:var(--white)}
.ac-node-other-s{font-size:12.5px;line-height:17px;color:var(--gray-400);text-wrap:pretty}
.ac-node-other-disc{flex:none;width:30px;height:30px;box-sizing:border-box;border-radius:15px;border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center}
.ac-node-other-disc svg{display:block}
.ac-node-other-disc svg[hidden]{display:none}
.ac-node-way.outline{margin-top:0;background:transparent}
.ac-node-other-foot{margin:14px 0 0;font-size:12px;line-height:17px;color:var(--gray-400);text-wrap:pretty}
.ac-node-wait-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;justify-content:space-between}
.ac-state.wait{padding:30px 0 4px}
.ac-node-wait-status{margin:14px 0 0;display:flex;align-items:center;justify-content:center;gap:9px;text-align:center;font-weight:700;font-size:13px;line-height:19px;color:var(--white)}
.ac-node-wait-dot{flex:none;width:8px;height:8px;border-radius:4px;background:#fe0100;animation:espulse 1.4s ease-in-out infinite}
.ac-state.wait .ac-state-note{margin-top:10px}
.ac-node-phone-note{margin:14px 0 0;padding:11px 14px;border-radius:14px;background:rgba(255,255,255,.08);text-align:center;font-size:12.5px;line-height:18px;color:var(--white);text-wrap:pretty}
.ac-node-phone-note[hidden]{display:none}
.ac-check.outline.reopen{margin-top:22px;gap:8px;border-color:rgba(255,255,255,.35)}
.ac-check.outline.reopen:hover{border-color:var(--white)}
.ac-check.outline.reopen span.plain{font-family:inherit;top:0;font-weight:700;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--white)}
.ac-node-wait-foot{margin:14px 0 0;font-size:12.5px;line-height:18px;color:var(--gray-400);text-align:center;text-wrap:pretty}
.ac-node-handoff{margin:0 auto;max-width:520px;box-sizing:border-box;background:var(--black);border-radius:28px;padding:38px clamp(22px,3vw,36px) 34px;display:flex;flex-direction:column;align-items:center}
.ac-node-handoff[hidden]{display:none}
.ac-node-handoff .ac-state-ring{margin-top:24px}
.ac-state-title.hand{font-size:clamp(26px,3vw,34px)}
.ac-node-handoff .ac-state-note{margin-top:10px}
.ac-node-handoff .ac-state-note.on-white{margin-top:14px}
.ac-node-handoff .ac-state-btn-white{margin-top:24px}
@media (prefers-reduced-motion:reduce){.ac-node-wait-dot{animation:none}}

/* ── Tanda 60 · el hub en el nodo propio (export del 17/10 b) ──────────────────── */
.ac-node-where-label{margin-top:20px;font-weight:700;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}
.ac-node-where{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ac-node-where-tile{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-height:74px;padding:14px 14px 13px;box-sizing:border-box;border-radius:14px;border:1px solid rgba(255,255,255,.24);background:transparent;cursor:pointer;text-align:left}
.ac-node-where-t{font-weight:700;font-size:14px;line-height:18px;color:var(--white)}
.ac-node-where-s{font-size:12px;line-height:16px;color:var(--gray-400);text-wrap:pretty}
.ac-node-where-tile.is-on{background:var(--white);border-color:var(--white)}
.ac-node-where-tile.is-on .ac-node-where-t{color:var(--black)}
.ac-node-where-tile.is-on .ac-node-where-s{color:var(--gray-550)}
.ac-node-addr-label{display:block;margin-top:18px;font-weight:700;font-size:12.5px;color:var(--white)}
#node-own .ac-input.node{margin-top:8px}
#node-own .ac-node-hint{font-size:12px;line-height:17px}
#node-own .ac-node-hint.tight{margin-top:6px}
.ac-node-desktop{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;line-height:17px;color:var(--gray-400);text-wrap:pretty}
.ac-node-inline{display:inline;padding:0;background:none;border:none;cursor:pointer;font-weight:700;font-size:12px;line-height:17px;color:var(--white);text-decoration:underline;text-underline-offset:3px}
.ac-node-steps.ruled{margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
.ac-node-way .ac-check.is-off{opacity:.35;cursor:default}
.ac-node-way .ac-check.is-off:hover{background:var(--white)}
.ac-node-way .ac-check.is-off:hover .ac-node-arrow{color:var(--black)}
.ac-node-open-note{overflow-wrap:anywhere}
.ac-node-ownwait{width:100%;box-sizing:border-box;margin-top:16px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.08);text-align:left}
.ac-node-ownwait[hidden]{display:none}
.ac-node-ownwait-t{font-weight:700;font-size:10.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray-400)}
.ac-node-ownwait p{margin:7px 0 0;font-size:12.5px;line-height:18px;color:var(--white);text-wrap:pretty}
.ac-node-fact-sub,.ac-tx-note.tight{overflow-wrap:anywhere}
/* Tanda 61 · 2: la línea gris de la app que el hub se queda (bajo "what to do", 12.5/18, gray-400). */
.ac-node-left{margin:8px 0 0;text-align:center;font-size:12.5px;line-height:18px;color:var(--gray-400);text-wrap:pretty}
/* Tanda 61 · 4: la línea "via" bajo Method en Invoices (11/15, mono, el hub que pagó ese cobro). */
.ac-td-via{display:block;margin-top:3px;font-size:11px;line-height:15px;overflow-wrap:anywhere}
