/* Nexo 2.0 · piezas nuevas sobre styles.css (mismos colores y radios del tema). */
[hidden]{display:none!important}
textarea{border:1px solid var(--line);background:var(--elevated);color:var(--text);padding:12px;border-radius:9px;font:inherit;font-size:12px;width:100%;resize:vertical;line-height:1.5}
textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
code{font-family:ui-monospace,Consolas,monospace;font-size:11px;background:var(--elevated);padding:3px 6px;border-radius:6px}
.pad{padding:0 24px 20px}.pad0{padding:0!important;margin-bottom:18px}.help.pad{padding:0 24px 18px}
.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar.large{width:64px;height:64px;font-size:20px}
.workspace-icon.has-logo{overflow:hidden;background:#fff}.workspace-icon img{width:100%;height:100%;object-fit:contain}
.nav-badge{margin-left:auto;background:var(--accent);color:var(--on-primary);font-size:9px;font-weight:700;padding:2px 7px;border-radius:999px}

/* Pestañas, filtros y chips */
.segmented{display:inline-flex;background:var(--elevated);border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px;flex-wrap:wrap}
.segmented.wide{display:flex;margin-bottom:22px;max-width:max-content}
.seg{border:0;background:transparent;padding:8px 14px;border-radius:8px;font-size:11px;color:var(--muted);font-weight:600}
.seg:hover{color:var(--text)}.seg.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0002}
.chips{display:flex;gap:8px;flex-wrap:wrap;padding:0 24px 18px}
.chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);padding:7px 13px;border-radius:999px;font-size:11px;font-weight:600}
.chip:hover{color:var(--text);border-color:var(--muted)}.chip.active{background:var(--text);color:var(--surface);border-color:var(--text)}
.chips.pad0{padding:0}

/* Avisos, búsqueda global y diálogos */
.notice.warn{background:var(--warning-bg);color:var(--warning);border-color:transparent;margin:0 0 22px}
.notice .btn{margin-left:auto}.notice.tight{margin-top:14px;padding:10px 14px}
.gsearch{position:relative;flex:1;max-width:340px;margin:0 18px}.gsearch .search{width:100%}.gsearch .search input{width:100%}
.gresults{position:absolute;top:46px;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px #0003;z-index:60;overflow:hidden}
.gresult{display:flex;gap:10px;width:100%;align-items:center;padding:10px 12px;border:0;background:transparent;color:var(--text);text-align:left}
.gresult:hover{background:var(--elevated)}.gresult b{display:block;font-size:11px}.gresult small{display:block;margin-top:3px;font-size:9px}.gresult.none{color:var(--muted);font-size:11px;padding:14px}
.modal.wide{max-width:880px}.modal.small{max-width:430px}.confirm-text{font-size:12px;margin:12px 0 18px;line-height:1.6}
.modal form{margin:0}.alert-list{margin-top:8px}.alert-list .quick-action{padding-left:6px;padding-right:6px}
.check{display:flex;gap:11px;align-items:flex-start;padding:10px 0;font-size:11px;cursor:pointer}
.check input{margin-top:2px;accent-color:var(--accent);width:16px;height:16px;flex-shrink:0}.check b{display:block;font-size:12px;font-weight:600}.check small{display:block;margin-top:3px;font-size:10px;line-height:1.5}
.field small{font-size:10px;line-height:1.5;font-weight:400}

/* Inicio */
.chart-wrap{padding:0 12px 4px}.chart{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line);stroke-width:1}
.bar-in{fill:var(--accent)}.bar-out{fill:var(--muted);opacity:.45}.axis{fill:var(--muted);font-size:11px}
.legend{display:flex;gap:16px;font-size:10px;color:var(--muted);padding:6px 24px 18px}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot-in{background:var(--accent)}.dot-out{background:var(--muted);opacity:.6}
.hbars{display:grid;gap:2px}.hbar{display:grid;grid-template-columns:minmax(70px,30%) 1fr 40px;gap:12px;align-items:center;font-size:11px;margin:9px 0}
.hbar>div{height:9px;background:var(--elevated);border-radius:6px;overflow:hidden}.hbar i{display:block;height:100%;background:var(--accent);border-radius:6px;min-width:2px}.hbar b{text-align:right;font-variant-numeric:tabular-nums}
.onboarding{margin-bottom:23px}
.step{display:flex;align-items:center;gap:14px;width:100%;padding:15px 24px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);text-align:left;font-size:12px}
.step:hover{background:var(--elevated)}.step-mark{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;flex-shrink:0}.step-mark .icon{width:12px;height:12px}
.step.done{color:var(--muted)}.step.done .step-mark{background:var(--positive);border-color:var(--positive);color:#fff}.step>.icon:last-child{margin-left:auto;color:var(--muted);width:14px}
.membership-showcase{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}
.membership-showcase .card-wrap{padding:0 24px 20px}.showcase-actions{padding:0 24px 24px;margin-top:auto}
.card-wrap{min-width:0}.member-card{display:block;width:100%;height:auto;border-radius:22px;box-shadow:0 14px 34px #0003}
.dashboard-layout.lower{align-items:start}

/* Acceso */
.scan-target.live{background:#000;overflow:hidden}.scan-target video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:20px}.scan-corner{z-index:2}
.scan-target{width:min(300px,100%)}
.lookup{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}.lookup label{font-size:11px;font-weight:600;display:block;margin-bottom:9px}.lookup input{width:100%}.lookup-results{margin-top:8px}
.lookup-results .gresult{border:1px solid var(--line);border-radius:10px;margin-top:6px}
.access-side{display:grid;gap:20px;align-content:start}.result-person{display:flex;align-items:center;gap:10px;margin-top:10px}
.access-result .result-person h3{margin:0}

/* Clientes y ficha */
.detail-head{display:flex;gap:16px;align-items:center;margin-bottom:18px}.detail-head p{font-size:12px;margin-top:8px}.detail-pills{display:flex;gap:8px;flex-wrap:wrap}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.kvs{display:grid}.kv{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.kv span{color:var(--muted)}.kv b{font-weight:600;text-align:right;overflow-wrap:anywhere}
.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.detail-actions.center{justify-content:center}
.wa-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;font-size:10px;color:var(--muted)}
.detail-history{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.detail-history h3{margin-bottom:8px}
.mini-row{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:8px 0;border-bottom:1px solid var(--line)}.struck{text-decoration:line-through;color:var(--muted)}
.photo-row{display:flex;align-items:center;gap:16px;margin-bottom:8px}.photo-row>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.photo-row small{flex-basis:100%}
.person .avatar{flex-shrink:0}

/* Tarjetas */
.cards-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:23px;margin-bottom:23px}
.designer-body{padding:0 24px 24px}.preview-col{align-self:start}.card-wrap.sticky{position:sticky;top:18px}
.color-rows.three{grid-template-columns:repeat(3,minmax(0,1fr))}.color-row small{display:block;color:var(--muted);font-size:9px;margin-top:3px;font-family:ui-monospace,Consolas,monospace}.color-row>span:last-child{flex:1}
.checks{display:grid;gap:2px;margin:8px 0}
.upload-row{display:flex;gap:14px;align-items:center;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:14px}
.upload-prev{width:56px;height:56px;border-radius:14px;background:var(--elevated);display:grid;place-items:center;overflow:hidden;font-weight:700;font-size:20px;flex-shrink:0;color:var(--muted)}.upload-prev.wide{width:96px;font-size:11px}.upload-prev img{width:100%;height:100%;object-fit:contain}
.upload-row b{font-size:12px;display:block}.upload-row small{display:block;margin:4px 0 8px;font-size:10px;line-height:1.5}
.row-actions{flex-wrap:wrap}
.plan-links{display:flex;justify-content:space-between}.pricing-card.inactive{opacity:.65}
.day-row{display:flex;gap:6px;flex-wrap:wrap}.day{position:relative}.day input{position:absolute;opacity:0}.day span{display:inline-block;padding:8px 11px;border:1px solid var(--line);border-radius:9px;font-size:11px;cursor:pointer;font-weight:500}
.day input:checked+span{background:var(--accent);color:var(--on-primary);border-color:var(--accent)}.day input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}

/* Dinero */
.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;margin-bottom:23px}.cart{position:sticky;top:16px;align-self:start}
.product-grid.compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.product-card.tile{text-align:left;padding:16px;color:var(--text);cursor:pointer;display:block;width:100%;max-width:none}.product-card.tile:hover{border-color:var(--accent)}.product-card.tile h3{font-size:13px;margin:8px 0}.product-card.tile b{font-size:15px}
.cart-lines{max-height:330px;overflow:auto}.cart-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:12px 20px;border-top:1px solid var(--line);font-size:11px}.cart-line b{display:block}.cart-line small{display:block;margin-top:3px}
.qty{display:flex;align-items:center;gap:4px}.qty span{min-width:18px;text-align:center;font-weight:650}.qty .icon-button{width:28px;height:28px;border:1px solid var(--line);font-size:16px}.line-total{min-width:64px;text-align:right}
.cart-foot{padding:16px 20px 20px;border-top:1px solid var(--line)}.cart-total{display:flex;justify-content:space-between;align-items:baseline;font-size:12px}.cart-total b{font-size:26px;letter-spacing:-1px}.cart-foot .field{margin:12px 0}
.receipt-preview{background:var(--elevated);padding:16px;border-radius:14px;margin-top:10px}
.ticket{max-width:300px;margin:0 auto;padding:18px;background:#fff;color:#111;font-family:ui-monospace,Consolas,monospace;font-size:12px;text-align:center;border-radius:6px}
.ticket h2{font-size:16px;color:#111;letter-spacing:0}.ticket p{color:#444;font-size:11px;margin:2px 0}.ticket hr{border:0;border-top:1px dashed #999;margin:10px 0}
.ticket table{width:100%;font-size:11px;text-align:left}.ticket td{padding:3px 0;border:0;white-space:normal;color:#111}.ticket td:last-child{text-align:right}.ticket tbody tr:hover{background:none}
.ticket .total{display:flex;justify-content:space-between;font-size:14px;margin:4px 0}.ticket-logo{max-height:48px;max-width:140px;margin-bottom:6px}.ticket .thanks{margin-top:10px}
.report-grid.wide{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}

/* Ajustes */
.appearance.wide{max-width:none}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:22px}
.theme-option{text-align:left;font-weight:600}.theme-option.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}
.theme-preview:after{display:none}.theme-preview i{position:absolute;left:26%;top:14%;right:8%;bottom:14%;border-radius:5px;border:1px solid #8882}
.theme-preview b{position:absolute;left:33%;top:30%;width:36%;height:9px;border-radius:5px}.theme-preview em{position:absolute;left:33%;top:54%;width:18%;height:9px;border-radius:5px;opacity:.7}
.theme-preview.rainbow{background:conic-gradient(from 0deg,#ef4444,#f59e0b,#84cc16,#14b8a6,#3b82f6,#8b5cf6,#ec4899,#ef4444)}
.meter{margin-top:22px}.meter>div{height:8px;border-radius:6px;background:var(--elevated);overflow:hidden;margin-bottom:8px}.meter i{display:block;height:100%;background:var(--accent)}
.settings-layout>.surface{align-self:start}.settings-main{min-width:0}.appearance .btn+.btn{margin-top:10px}
.setup-alt{display:flex;flex-direction:column;gap:2px;margin-top:20px;align-items:flex-start}.login-card .check{padding:6px 0}.login-card .field input{background:var(--bg)}
.login-card{max-width:380px}.login-card h2{overflow-wrap:anywhere}

/* Portal */
.digital-pass .card-wrap{margin-bottom:6px}.digital-pass .token-display{margin-top:18px}.digital-pass{max-width:460px;text-align:center}
.digital-pass .pass-details{gap:10px}.digital-pass .pass-details span{text-align:left}

/* Impresión: solo se imprime lo que se prepara en #printSheet */
#printSheet{display:none}
@media print{
  @page{margin:12mm}
  body.printing>*:not(#printSheet){display:none!important}
  body.printing{background:#fff}
  body.printing #printSheet{display:block;color:#000}
  .print-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10mm}
  .print-card{margin:0;break-inside:avoid}.print-card svg{width:100%;height:auto;border-radius:12px}.print-card figcaption{font-size:9pt;color:#444;margin-top:2mm;text-align:center}
  .ticket{box-shadow:none}
}

/* Pantallas medianas y pequeñas */
@media(max-width:1150px){.report-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr))}.gsearch{max-width:220px;margin:0 10px}.cards-layout{grid-template-columns:1fr}.card-wrap.sticky{position:static}.pos-layout{grid-template-columns:1fr}.cart{position:static}}
@media(max-width:850px){.detail-grid,.detail-history{grid-template-columns:1fr}.report-grid.wide{grid-template-columns:1fr}.color-rows.three{grid-template-columns:1fr}}
@media(max-width:640px){.gsearch{display:none}.chips{padding:0 18px 16px}.pad{padding:0 18px 18px}.step{padding:14px 18px}.segmented.wide{max-width:100%}.seg{padding:8px 11px}.cart-line{padding:12px 16px}.hbar{grid-template-columns:minmax(60px,34%) 1fr 34px;gap:8px}.notice{flex-wrap:wrap}.showcase-actions,.membership-showcase .card-wrap{padding-left:18px;padding-right:18px}.designer-body{padding:0 18px 20px}.modal.wide{max-width:none}.scan-target{width:min(280px,100%)}}

.modal-heading+h2{margin-bottom:6px}.modal h2+form,.modal h2+p+form{margin-top:14px}.photo-row{margin-top:10px}

/* Logo de Nexo (variables: --logo-n símbolo/letras, --logo-r rojo de marca) */
:root{--logo-n:#1f2328;--logo-r:#f02f30}:root[data-theme=dark]{--logo-n:#f1f1f1}
.logo-mark{height:30px;width:auto;aspect-ratio:208/190;flex-shrink:0;display:block}.logo-word{height:13px;width:auto;aspect-ratio:363/75;display:block}.logo-word.small{display:inline-block;height:10px;margin-left:6px;vertical-align:-1px}
.brand{gap:11px}.sidebar .brand{padding:0 8px}
.login-story .brand{flex-direction:column;align-items:flex-start;gap:16px}.login-story .logo-mark{height:62px}.login-story .logo-word{height:20px}
.empty-state .logo-mark{height:44px;margin-bottom:14px}
.login-story .story-copy>.eyebrow{letter-spacing:2.2px}

/* Página de la tarjeta del cliente (tarjeta.html) */
.tp-body{margin:0;background:#14181b;min-height:100vh}.tp-loading{color:#aaa;text-align:center;padding:60px 20px}
.tp{--tp-bg:#242529;--tp-fg:#fff;--tp-accent:#d92e40;min-height:100vh;background:linear-gradient(180deg,var(--tp-bg),color-mix(in srgb,var(--tp-bg) 70%,#000));color:var(--tp-fg);padding:max(22px,env(safe-area-inset-top)) 18px max(26px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:18px}
.tp>*{width:100%;max-width:440px}.tp p,.tp h2,.tp li{color:inherit}
.tp-head{display:flex;align-items:center;gap:10px;justify-content:center;font-size:15px;letter-spacing:-.2px}.tp-head img{width:34px;height:34px;object-fit:contain;background:#fff;border-radius:9px;padding:3px}
.tp-card .member-card{box-shadow:0 22px 50px #0006}.tp-meta{text-align:center;font-size:12px;opacity:.85;margin:0}
.tp-actions{display:flex;gap:10px}.tp-actions button{flex:1;min-height:46px;border-radius:12px;border:1px solid color-mix(in srgb,var(--tp-fg) 35%,transparent);background:transparent;color:var(--tp-fg);font-weight:650;font-size:13px}.tp-actions button:first-child{background:var(--tp-accent);border-color:var(--tp-accent);color:#fff}
.tp-install{background:color-mix(in srgb,var(--tp-fg) 10%,transparent);border-radius:18px;padding:18px 20px}.tp-install h2{font-size:17px;margin:0 0 6px}.tp-install p{font-size:12px;opacity:.85;margin:0 0 10px}.tp-install ol{margin:0;padding-left:20px;font-size:13px;line-height:1.7}
.tp-terms{font-size:11px;opacity:.75;text-align:center;margin:0}.tp-foot{text-align:center;font-size:10px;opacity:.65}
.tp-empty{justify-content:center;text-align:center}.tp-empty h2{font-size:22px}.tp-empty p{opacity:.8}
.tp-big{position:fixed;inset:0;z-index:50;background:#000c;display:flex;align-items:center;justify-content:center;padding:20px}.tp-big-card{background:#fff;color:#111;border-radius:22px;padding:18px;text-align:center;width:min(340px,100%)}.tp-big-card svg{width:100%;height:auto;display:block}.tp-big-card code{display:block;margin:10px 0;background:none;font-size:14px;letter-spacing:2px;color:#111}.tp-big-card button{width:100%;min-height:44px;border-radius:12px;border:0;background:#111;color:#fff;font-weight:650}
