@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@500;600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600&display=swap');
/* =====================================================================
   MENU NEROX · ADMIN — Dark Premium · Bento Grid · Glassmorphism
   Kinetic Typography · Microanimaciones
   (mismas clases de siempre: no hay que tocar el HTML de las páginas)
   ===================================================================== */
:root{
  color-scheme:dark;
  --bg:#07070a; --bg-2:#0c0c11; --surface:rgba(var(--fg-rgb),.035); --surface-solid:#111117; --surface-2:rgba(var(--fg-rgb),.06);
  --border:rgba(var(--fg-rgb),.08); --border-strong:rgba(var(--fg-rgb),.14); --hairline:rgba(var(--fg-rgb),.05);
  --ink:#f4f4f6; --ink-muted:#a1a1ad; --ink-faint:#6c6c78;
  --accent:#a78bfa; --accent-2:#22d3ee; --accent-ink:#0a0a0f; --accent-soft:rgba(167,139,250,.14);
  --grad:linear-gradient(135deg,#a78bfa 0%,#60a5fa 50%,#22d3ee 100%);
  --danger:#f87171; --danger-soft:rgba(248,113,113,.12); --ok:#34d399; --ok-soft:rgba(52,211,153,.12); --warn:#fbbf24; --warn-soft:rgba(251,191,36,.12);
  --radius:18px; --radius-sm:10px; --radius-lg:24px;
  --blur:saturate(160%) blur(18px);
  --shadow:0 1px 0 rgba(var(--fg-rgb),.04) inset, 0 20px 40px -24px rgba(0,0,0,.8);
  --glow:0 0 0 1px rgba(167,139,250,.35), 0 10px 40px -10px rgba(167,139,250,.45);
  --ease:cubic-bezier(.22,1,.36,1); --spring:cubic-bezier(.34,1.56,.64,1);
  --font:'Inter',system-ui,-apple-system,sans-serif;
  --font-display:'Inter Tight','Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --fg-rgb:255,255,255; --panel-rgb:12,12,17; --ink-strong:#ffffff; --btn-bg:#ffffff; --btn-ink:#0a0a0f;
  --input-bg:rgba(0,0,0,.35); --input-bg-focus:rgba(0,0,0,.5); --sunken:rgba(0,0,0,.25); --canvas:#0b0b10; --option-bg:#111117;
  --tint-text:#ddd6fe; --ok-text:#a7f3d0; --err-text:#fecaca; --aurora:.16; --noise:.05;
}
*{ box-sizing:border-box; }
html{ background:var(--bg); }
body{ margin:0; background:transparent; color:var(--ink); font-family:var(--font); font-size:14px; line-height:1.55; -webkit-font-smoothing:antialiased; position:relative; min-height:100vh; }
body::before{ content:""; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(60vw 50vh at 85% -10%, rgba(167,139,250,var(--aurora)), transparent 60%),
    radial-gradient(50vw 45vh at -5% 30%, rgba(34,211,238,.10), transparent 60%),
    radial-gradient(40vw 40vh at 60% 110%, rgba(96,165,250,.10), transparent 60%),
    var(--bg); }
body::after{ content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:var(--noise); mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
::selection{ background:rgba(167,139,250,.35); color:#fff; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3{ margin:0; font-family:var(--font-display); font-weight:700; letter-spacing:-.02em; }
:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:8px; }
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:rgba(var(--fg-rgb),.08); border-radius:999px; border:2px solid transparent; background-clip:padding-box; }
::-webkit-scrollbar-thumb:hover{ background:rgba(var(--fg-rgb),.16); background-clip:padding-box; }
::-webkit-scrollbar-track{ background:transparent; }

/* ---------- Topbar (páginas antiguas) ---------- */
.topbar{ display:flex; align-items:center; justify-content:space-between; padding:14px 24px; border-bottom:1px solid var(--border); background:rgba(var(--panel-rgb),.6); backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur); position:sticky; top:0; z-index:10; }
.topbar__brand{ font-family:var(--font-display); font-weight:700; font-size:15px; display:flex; align-items:center; gap:8px; }
.topbar__brand span.dot{ width:8px; height:8px; border-radius:50%; background:var(--ok); display:inline-block; box-shadow:0 0 12px var(--ok); }
.topbar__nav{ display:flex; gap:6px; align-items:center; }

/* ---------- Layout ---------- */
.wrap{ max-width:1180px; margin:0 auto; padding:36px 28px 90px; }
.page-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:28px; flex-wrap:wrap; }
.page-head h1{ font-size:clamp(28px,3.6vw,40px); font-weight:800; letter-spacing:-.035em; line-height:1.08; color:var(--ink-strong); text-shadow:0 0 40px rgba(167,139,250,.25); }
.page-head p{ color:var(--ink-muted); font-size:13.5px; margin-top:8px; margin-bottom:0; }

/* ---------- Kinetic Typography ---------- */
.kt-char{ display:inline-block; opacity:0; transform:translateY(.55em) rotate(6deg); filter:blur(6px);
  animation:ktIn .8s var(--ease) forwards; animation-delay:calc(var(--i) * 28ms); will-change:transform,opacity,filter; }
.kt-space{ display:inline-block; width:.28em; }
@keyframes ktIn{ to{ opacity:1; transform:none; filter:blur(0); } }
.kt-word{ display:inline-block; white-space:nowrap; }
.kt-shine{ background:linear-gradient(100deg,#fff 0%,#fff 40%,#c4b5fd 50%,#fff 60%,#fff 100%); background-size:250% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:ktShine 6s linear infinite; }
@keyframes ktShine{ from{ background-position:120% 0; } to{ background-position:-120% 0; } }

/* ---------- Botones ---------- */
.btn{ position:relative; overflow:hidden; isolation:isolate; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-family:var(--font); font-size:13px; font-weight:600; padding:10px 16px; min-height:38px; border-radius:12px;
  border:1px solid var(--border-strong); background:rgba(var(--fg-rgb),.04); color:var(--ink); cursor:pointer; white-space:nowrap;
  backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur);
  transition:transform .18s var(--spring), background .2s var(--ease), border-color .2s var(--ease), box-shadow .25s var(--ease); }
.btn:hover{ background:rgba(var(--fg-rgb),.08); border-color:rgba(var(--fg-rgb),.24); transform:translateY(-1px); }
.btn:active{ transform:scale(.96); }
.btn-primary{ background:var(--btn-bg); color:var(--btn-ink); border-color:var(--btn-bg); box-shadow:0 8px 24px -10px rgba(var(--fg-rgb),.45); }
.btn-primary:hover{ background:var(--btn-bg); opacity:1; box-shadow:0 0 0 4px rgba(167,139,250,.25), 0 12px 32px -10px rgba(167,139,250,.7); }
.btn-primary::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--grad); opacity:0; transition:opacity .3s var(--ease); }
.btn-primary:hover::before{ opacity:.18; }
.btn-danger{ color:var(--danger); border-color:rgba(248,113,113,.3); background:rgba(248,113,113,.06); }
.btn-danger:hover{ background:var(--danger-soft); border-color:rgba(248,113,113,.55); }
.btn-sm{ padding:6px 11px; min-height:32px; font-size:12px; border-radius:10px; }
.btn[disabled], .btn:disabled{ opacity:.45; pointer-events:none; }
.nx-ripple{ position:absolute; border-radius:50%; transform:scale(0); background:currentColor; opacity:.22; pointer-events:none; animation:nxRipple .6s var(--ease) forwards; z-index:0; }
@keyframes nxRipple{ to{ transform:scale(2.6); opacity:0; } }

/* ---------- Tarjetas glass ---------- */
.card{ position:relative; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px;
  backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur); box-shadow:var(--shadow);
  transition:border-color .3s var(--ease), transform .35s var(--ease), box-shadow .35s var(--ease); }
.card::before, .stat-box::before{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .35s var(--ease);
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(167,139,250,.12), transparent 45%); }
.card:hover::before, .stat-box:hover::before{ opacity:1; }
.card:hover{ border-color:rgba(var(--fg-rgb),.14); }
.card > *{ position:relative; }

/* Bento grid de tarjetas */
.grid-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); grid-auto-flow:dense; gap:16px; margin-top:20px; }
@media (min-width:980px){
  .grid-cards > .card:first-child:not(:only-child){ grid-column:span 2; grid-row:span 2; padding:28px;
    background:linear-gradient(160deg,rgba(167,139,250,.12),rgba(34,211,238,.04) 60%,rgba(var(--fg-rgb),.02)); border-color:rgba(167,139,250,.25); }
  .grid-cards > .card:first-child:not(:only-child) .rest-card__name{ font-size:clamp(24px,2.4vw,34px); letter-spacing:-.03em; }
  .grid-cards > .card:first-child:not(:only-child) .rest-card__url{ font-size:13px; }
  .grid-cards > .card:first-child:not(:only-child) .rest-card__actions{ margin-top:auto; }
}
.grid-cards > .card{ transition:transform .4s var(--ease), border-color .3s var(--ease), box-shadow .4s var(--ease); }
.grid-cards > .card:hover{ transform:translateY(-3px); box-shadow:0 30px 60px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(167,139,250,.18); }

.rest-card{ display:flex; flex-direction:column; gap:12px; }
.rest-card__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.rest-card__name{ font-family:var(--font-display); font-weight:700; font-size:17px; letter-spacing:-.02em; }
.rest-card__type{ font-family:var(--font-mono); font-size:10.5px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.14em; margin-top:3px; }
.badge{ display:inline-flex; align-items:center; gap:5px; font-size:11px; font-weight:600; padding:4px 10px; border-radius:999px; border:1px solid transparent; }
.badge-on{ background:var(--ok-soft); color:var(--ok); border-color:rgba(52,211,153,.25); }
.badge-on::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 8px currentColor; animation:nxPulse 2s infinite; }
.badge-off{ background:var(--danger-soft); color:var(--danger); border-color:rgba(248,113,113,.25); }
.rest-card__url{ font-family:var(--font-mono); font-size:12px; color:var(--ink-muted); word-break:break-all; padding:8px 10px; border-radius:10px; background:var(--sunken); border:1px solid var(--hairline); }
.rest-card__actions{ display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }

.empty{ text-align:center; padding:70px 20px; color:var(--ink-muted); }

/* ---------- Formularios ---------- */
form.stack{ display:flex; flex-direction:column; gap:16px; max-width:680px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{ font-size:12px; font-weight:600; color:var(--ink-muted); letter-spacing:.01em; }
.field small{ color:var(--ink-faint); font-size:11.5px; }
.field input[type=text], .field input[type=url], .field input[type=tel], .field input[type=number], .field input[type=password], .field input[type=email], .field input[type=date], .field input[type=time], .field input[type=datetime-local], .field textarea, .field select,
html body input[type=text], html body input[type=url], html body input[type=tel], html body input[type=number], html body input[type=password], html body input[type=email], html body input[type=search], html body input[type=date], html body input[type=time], html body input[type=datetime-local], html body textarea, html body select{
  font-family:var(--font); font-size:14px; padding:11px 13px; border:1px solid var(--border-strong); border-radius:12px; background:var(--input-bg); color:var(--ink); outline:none;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease); }
.field input[type=text], .field input[type=url], .field input[type=tel], .field input[type=number], .field input[type=password], .field input[type=email], .field textarea, .field select{ width:100%; }
html body input:hover, html body textarea:hover, html body select:hover{ border-color:rgba(var(--fg-rgb),.22); }
html body input:focus, html body textarea:focus, html body select:focus, .field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); background:var(--input-bg-focus); }
html body select option{ background:var(--option-bg); color:var(--ink); }
html body input::placeholder, html body textarea::placeholder{ color:var(--ink-faint); }
html body input[type=date]::-webkit-calendar-picker-indicator, html body input[type=time]::-webkit-calendar-picker-indicator{ filter:invert(1) opacity(.6); }
html body input[type=checkbox], html body input[type=radio]{ accent-color:var(--accent); }
html body input[type=file]{ color:var(--ink-muted); font-size:13px; }
html body input[type=file]::file-selector-button{ font:600 12.5px var(--font); color:var(--ink); background:rgba(var(--fg-rgb),.06); border:1px solid var(--border-strong); border-radius:10px; padding:8px 14px; margin-right:12px; cursor:pointer; transition:background .2s, border-color .2s; }
html body input[type=file]::file-selector-button:hover{ background:rgba(var(--fg-rgb),.12); border-color:rgba(var(--fg-rgb),.28); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .field-row{ grid-template-columns:1fr; } }
.field input[type=color], html body input[type=color]{ width:52px; height:40px; padding:3px; border:1px solid var(--border-strong); border-radius:12px; background:var(--input-bg); cursor:pointer; }

.toolbar{ display:flex; gap:8px; flex-wrap:wrap; }

/* ---------- Tablas ---------- */
table.list{ width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }
table.list th{ text-align:left; font-family:var(--font-mono); font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; color:var(--ink-faint); padding:10px 12px; border-bottom:1px solid var(--border); }
table.list td{ padding:12px; border-bottom:1px solid var(--hairline); vertical-align:middle; transition:background .2s var(--ease); }
table.list tr:last-child td{ border-bottom:none; }
table.list tr:hover td{ background:rgba(var(--fg-rgb),.025); }
.mono{ font-family:var(--font-mono); font-size:12px; color:var(--ink-muted); }

.section-title{ display:flex; align-items:center; justify-content:space-between; margin:34px 0 12px; }
.section-title h2{ font-size:16px; letter-spacing:-.015em; display:flex; align-items:center; gap:10px; }
.section-title h2::before{ content:""; width:6px; height:6px; border-radius:2px; background:var(--grad); box-shadow:0 0 10px rgba(167,139,250,.7); }

/* ---------- Chips / interruptores ---------- */
.chip-toggle{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; padding:4px 10px; border-radius:999px; border:1px solid var(--border-strong); background:rgba(var(--fg-rgb),.03); color:var(--ink-muted); cursor:pointer; user-select:none;
  transition:transform .18s var(--spring), background .2s, border-color .2s, color .2s; }
.chip-toggle:hover{ border-color:rgba(var(--fg-rgb),.28); color:var(--ink); }
.chip-toggle:active{ transform:scale(.94); }
.chip-toggle.on{ background:rgba(167,139,250,.16); color:var(--tint-text); border-color:rgba(167,139,250,.45); }
.chip-toggle.estado.on{ background:var(--ok-soft); color:var(--ok); border-color:rgba(52,211,153,.4); box-shadow:0 0 18px -6px rgba(52,211,153,.6); }
.chip-toggle.estado.off{ background:var(--danger-soft); color:var(--danger); border-color:rgba(248,113,113,.4); }

/* ---------- Login ---------- */
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px; }
.login-card{ width:100%; max-width:390px; padding:34px 30px; border-radius:var(--radius-lg); background:rgba(var(--fg-rgb),.04);
  box-shadow:0 40px 80px -30px rgba(0,0,0,.9), 0 0 0 1px rgba(var(--fg-rgb),.06), 0 0 80px -20px rgba(167,139,250,.25); animation:nxRise .8s var(--ease) both; }
.login-card h1{ font-size:24px; margin-bottom:6px; letter-spacing:-.03em; }
.login-card p{ color:var(--ink-muted); font-size:13px; margin-bottom:22px; }
.login-card .btn-primary{ min-height:46px; font-size:14px; margin-top:4px; }
.alert{ font-size:13px; padding:11px 14px; border-radius:12px; margin-bottom:14px; animation:nxRise .45s var(--ease) both; }
.alert-error{ background:var(--danger-soft); color:var(--err-text); border:1px solid rgba(248,113,113,.3); }
.alert-ok{ background:var(--ok-soft); color:var(--ok-text); border:1px solid rgba(52,211,153,.3); }

.qr-box{ display:flex; flex-direction:column; align-items:center; gap:16px; padding:28px; }
#qrCanvas{ border-radius:14px; background:#fff; padding:10px; box-shadow:0 20px 50px -20px rgba(167,139,250,.5); }
.nfc-status{ font-size:12.5px; color:var(--ink-muted); text-align:center; }

/* ---------- Shell con sidebar glass ---------- */
.admin-shell{ display:flex; min-height:100vh; }
.sidebar{ width:248px; flex-shrink:0; background:rgba(var(--panel-rgb),.55); border-right:1px solid var(--border);
  backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur);
  padding:20px 12px; display:flex; flex-direction:column; gap:2px; position:sticky; top:0; height:100vh; overflow-y:auto; z-index:20; }
.sidebar__brand{ font-family:var(--font-display); font-weight:800; font-size:15px; letter-spacing:-.02em; display:flex; align-items:center; gap:10px; padding:2px 10px 16px; }
.sidebar__brand img{ height:22px !important; }
.sidebar__restaurante{ font-size:11.5px; color:var(--ink-muted); padding:0 10px 10px; word-break:break-word; }
.sidebar__seccion{ font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.16em; color:var(--ink-faint); padding:18px 10px 6px; }
.sidebar__spacer{ flex:1; }
.sidebar__usuario{ font-size:11px; color:var(--ink-faint); padding:10px 8px 2px; }
.nav-link{ position:relative; display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:11px; font-size:13px; font-weight:500; color:var(--ink-muted);
  transition:color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease); }
.nav-link:hover{ background:rgba(var(--fg-rgb),.05); color:var(--ink); transform:translateX(2px); }
.nav-link.active{ background:linear-gradient(90deg,rgba(167,139,250,.18),rgba(167,139,250,.04)); color:var(--ink-strong); font-weight:600; box-shadow:inset 0 0 0 1px rgba(167,139,250,.22); }
.nav-link.active::before{ content:""; position:absolute; left:-12px; top:8px; bottom:8px; width:3px; border-radius:0 3px 3px 0; background:var(--grad); box-shadow:0 0 14px rgba(167,139,250,.9); }
.admin-main{ flex:1; min-width:0; overflow-x:auto; }
.admin-main .wrap{ padding-top:34px; }
.sidebar__usuario-activo{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:12px; color:var(--ink); background:rgba(var(--fg-rgb),.04); border:1px solid var(--border); border-radius:12px; padding:9px 11px; margin:0 0 10px; }
.badge-maestro{ font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; background:linear-gradient(135deg,#f43f5e,#f97316); color:#fff; padding:2px 7px; border-radius:999px; }
.banner-maestro{ position:fixed; top:0; left:0; right:0; z-index:1000; background:linear-gradient(90deg,rgba(244,63,94,.92),rgba(249,115,22,.92)); backdrop-filter:blur(10px); color:#fff; text-align:center; font-size:12.5px; font-weight:700; padding:9px 12px; letter-spacing:.01em; }
.banner-maestro a{ color:#fff; text-decoration:underline; margin-left:8px; }
@media (max-width:860px){
  .admin-shell{ flex-direction:column; }
  .sidebar{ width:100%; height:auto; position:sticky; top:0; flex-direction:row; flex-wrap:nowrap; align-items:center; overflow-x:auto; overflow-y:hidden; padding:10px; gap:4px; border-right:none; border-bottom:1px solid var(--border); scrollbar-width:none; }
  .sidebar::-webkit-scrollbar{ display:none; }
  .sidebar__spacer, .sidebar__seccion, .sidebar__restaurante{ display:none; }
  .sidebar__brand{ padding:6px 8px; flex-shrink:0; }
  .sidebar__usuario-activo{ margin:0; flex-shrink:0; }
  .nav-link{ flex-shrink:0; white-space:nowrap; }
  .nav-link.active::before{ display:none; }
  .wrap{ padding:24px 16px 80px; }
}

/* Ojito mostrar/ocultar contraseña */
.pw-wrap{ position:relative; }
.pw-wrap input{ padding-right:44px !important; width:100%; }
.pw-eye{ position:absolute; right:6px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; font-size:17px; line-height:1; padding:6px; color:var(--ink-muted); transition:transform .2s var(--spring); }
.pw-eye:hover{ color:var(--ink); transform:translateY(-50%) scale(1.12); }

/* ---------- Reveal + microanimaciones ---------- */
@keyframes nxRise{ from{ opacity:0; transform:translateY(14px) scale(.985); } to{ opacity:1; transform:none; } }
@keyframes nxPulse{ 0%,100%{ opacity:1; } 50%{ opacity:.35; } }
.nx-reveal{ opacity:0; transform:translateY(16px) scale(.985); }
.nx-reveal.is-in{ animation:nxRise .7s var(--ease) forwards; animation-delay:calc(var(--d,0) * 45ms); }
.nx-count{ font-variant-numeric:tabular-nums; }

/* =====================================================================
   OVERRIDES DE PÁGINA (vencen a los <style> internos de cada página)
   ===================================================================== */
/* Bento de estadísticas */
html body .stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); grid-auto-flow:dense; gap:14px; margin-bottom:28px; }
@media (min-width:900px){
  html body .stat-grid{ grid-template-columns:repeat(4,1fr); }
  html body .stat-grid > .stat-box:first-child{ grid-column:span 2; grid-row:span 2; display:flex; flex-direction:column; justify-content:flex-end; min-height:200px;
    background:linear-gradient(150deg,rgba(167,139,250,.16),rgba(34,211,238,.05) 55%,rgba(var(--fg-rgb),.02)); border-color:rgba(167,139,250,.28); }
  html body .stat-grid > .stat-box:first-child .n{ font-size:clamp(40px,4.6vw,64px); }
  html body .stat-grid > .stat-box:nth-child(4):last-child{ grid-column:span 2; }
}
html body .stat-box{ position:relative; overflow:hidden; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px;
  backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur); box-shadow:var(--shadow); transition:transform .35s var(--ease), border-color .3s var(--ease); }
html body .stat-box:hover{ transform:translateY(-2px); border-color:rgba(var(--fg-rgb),.16); }
html body .stat-box .n{ font-family:var(--font-display); font-size:30px; font-weight:800; letter-spacing:-.04em; line-height:1; color:var(--ink-strong); font-variant-numeric:tabular-nums; position:relative; }
html body .stat-box .l{ font-family:var(--font-mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--ink-faint); margin-top:10px; position:relative; }

html body .cols2, html body .cols3, html body .fact-cols{ gap:16px; }
html body .rank li{ border-bottom-color:var(--hairline); }
html body .rank b, html body .n-val{ color:var(--ink-strong); font-family:var(--font-mono); }
html body .rank li:first-child .n-val{ color:var(--ok); }
html body .alerta-inactivo{ border-left:3px solid var(--danger); }

/* Panel de sala */
html body .mesa-tile{ position:relative; overflow:hidden; border-radius:16px; border:1px solid rgba(255,255,255,.12); box-shadow:0 14px 30px -18px rgba(0,0,0,.9); transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
html body .mesa-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg,rgba(255,255,255,.18),transparent 45%); pointer-events:none; }
html body .mesa-tile > *{ position:relative; z-index:1; }
html body .mesa-tile:hover{ transform:translateY(-3px) scale(1.01); }
html body .mesa-tile.libre{ background:linear-gradient(150deg,#10b981,#047857); }
html body .mesa-tile.ocupada{ background:linear-gradient(150deg,#f59e0b,#c2410c); }
html body .mesa-tile.reservada{ background:linear-gradient(150deg,#8b5cf6,#5b21b6); }
html body .mesa-tile.cuenta{ background:linear-gradient(150deg,#f43f5e,#be123c); animation:nxGlowRed 1.8s ease-in-out infinite; }
@keyframes nxGlowRed{ 0%,100%{ box-shadow:0 14px 30px -18px rgba(0,0,0,.9); } 50%{ box-shadow:0 0 0 3px rgba(244,63,94,.35), 0 14px 40px -12px rgba(244,63,94,.7); } }
html body .mesa-tile__num{ font-family:var(--font-display); font-size:18px; letter-spacing:-.02em; }
html body .mesa-tile input[type=number]{ background:rgba(0,0,0,.25); color:#fff; border:1px solid rgba(255,255,255,.25); padding:4px 6px; border-radius:8px; }
html body .mesa-tile button{ border-radius:8px; backdrop-filter:blur(6px); transition:transform .15s var(--spring), background .2s; }
html body .mesa-tile button:active{ transform:scale(.92); }
html body .agenda-row{ border-bottom-color:var(--hairline); }
html body .agenda-row select, html body .mini-form input, html body .mini-form select, html body .filtros-form input, html body .filtros-form select, html body .edit-grid input, html body .edit-grid select{ background:var(--input-bg); color:var(--ink); border-color:var(--border-strong); }

/* Plano visual */
html body .canvas-wrap{ background:var(--canvas); border-color:var(--border); }
html body #canvas{ background-color:var(--canvas); background-image:linear-gradient(rgba(var(--fg-rgb),.05) 1px,transparent 1px), linear-gradient(90deg,rgba(var(--fg-rgb),.05) 1px,transparent 1px); }
html body .zona-box{ border-color:rgba(255,255,255,.25); }
html body .zona-box__label{ background:rgba(0,0,0,.55); color:#fff; backdrop-filter:blur(8px); }
html body .zona-box__acciones button{ background:rgba(255,255,255,.12); color:#fff; }
html body .zona-box__acciones button:hover{ background:rgba(255,255,255,.24); }
html body .mesa-box{ background:linear-gradient(150deg,#2a2a35,#14141b); border:1px solid rgba(255,255,255,.18); box-shadow:0 8px 20px -6px rgba(0,0,0,.8); }
html body .mesa-box__del{ border-color:var(--canvas); }
html body .resize-handle{ background:var(--accent); border-color:var(--canvas); }
html body .toolbar-fixed, html body .barra-acciones{ background:rgba(var(--panel-rgb),.7); backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur); border-color:var(--border); border-radius:14px; }
html body .mini-form, html body .qr-inline, html body .edit-row, html body .rename-popover{ background:rgba(var(--panel-rgb),.9); border-color:var(--border); }
html body .rename-popover{ box-shadow:0 20px 40px -10px rgba(0,0,0,.8); }
html body .rename-popover button{ background:var(--btn-bg); color:var(--btn-ink); }
html body .edit-row td{ background:rgba(var(--fg-rgb),.02); }

/* QR en lote / facturación / cobros / usuarios / carta */
html body .qr-card{ background:var(--surface); border-color:var(--border); border-radius:16px; transition:transform .3s var(--ease); }
html body .qr-card:hover{ transform:translateY(-2px); }
html body .qr-card canvas, html body .qr-card img, html body .qr-inline canvas, html body .qr-inline img{ background:#fff; padding:6px; border-radius:10px; }
html body .plan-pick label{ border-color:var(--border-strong); border-radius:12px; transition:all .2s var(--ease); }
html body .plan-pick label:has(input:checked){ border-color:var(--accent); background:var(--accent-soft); box-shadow:0 0 0 3px rgba(167,139,250,.15); }
html body .plan-pick input:checked + span{ color:var(--tint-text); }
html body .precio-preview{ font-family:var(--font-display); font-size:30px; font-weight:800; letter-spacing:-.03em; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
html body .link-box{ background:var(--input-bg); border-color:var(--border); color:var(--ink-muted); }
html body .estado-pill{ background:rgba(var(--fg-rgb),.06); }
html body .estado-pill.badge-on{ background:var(--ok-soft); color:var(--ok); }
html body .estado-pill.badge-off{ background:var(--danger-soft); color:var(--danger); }
html body .permisos-check label{ background:rgba(var(--fg-rgb),.05); border:1px solid var(--border); transition:border-color .2s; }
html body .permisos-check label:hover{ border-color:var(--border-strong); }
html body .badge-perm{ background:rgba(167,139,250,.14); color:var(--tint-text); }
html body .pill-small{ background:rgba(var(--fg-rgb),.07); color:var(--ink-muted); }
html body .cat-head h3, html body .zona-head h3, html body .zona-block h3{ font-family:var(--font-display); letter-spacing:-.02em; }
html body .mesa-row{ border-bottom-color:var(--hairline); }

/* Estilos inline claros heredados */
html body [style*="background:#f3f1ec"]{ background:var(--canvas) !important; }
html body [style*="background:#f4f4f5"]{ background:rgba(var(--fg-rgb),.06) !important; }
html body .badge[style*="#fdeee0"]{ background:rgba(249,115,22,.14) !important; color:#fdba74 !important; border-color:rgba(249,115,22,.3); }
html body .badge[style*="#f0e4fd"]{ background:rgba(167,139,250,.14) !important; color:var(--tint-text) !important; border-color:rgba(167,139,250,.3); }
html body [style*="background:#fdf1ef"]{ background:var(--danger-soft) !important; }
html body pre[style*="background:#fff"]{ background:var(--sunken) !important; color:var(--ink) !important; border-color:var(--border) !important; }
html body img[src*="icon_black"]{ filter:invert(1); }

/* =====================================================================
   CARTA PRO (.nx-scope · _maestra.php) — mismo sistema Dark Premium
   ===================================================================== */
html body .nx-scope{
  --bg:transparent; --surface:rgba(var(--fg-rgb),.035); --surface-2:var(--sunken); --ink:#f4f4f6; --ink-muted:#a1a1ad; --ink-faint:#6c6c78;
  --line:rgba(var(--fg-rgb),.09); --accent:#a78bfa; --accent-2:#f97316; --accent-soft:rgba(167,139,250,.14); --ok:#34d399; --ok-soft:rgba(52,211,153,.12);
  --danger:#f87171; --danger-soft:rgba(248,113,113,.12);
  --font-d:'Inter Tight','Inter',system-ui,sans-serif; --font-b:'Inter',system-ui,sans-serif; --r:18px; --r-sm:12px;
  --shadow:0 1px 0 rgba(var(--fg-rgb),.04) inset, 0 20px 40px -24px rgba(0,0,0,.8);
  color:var(--ink); font-size:14px;
}
html body .nx-scope h1.nx-title{ font-family:var(--font-d); font-size:clamp(28px,3.6vw,40px); font-weight:800; letter-spacing:-.035em; line-height:1.05; }
html body .nx-scope .nx-eyebrow{ font-family:var(--font-m); color:var(--accent); letter-spacing:.18em; }
html body .nx-scope .nx-card{ position:relative; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); padding:22px; box-shadow:var(--shadow);
  backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur); transition:border-color .3s var(--ease), transform .35s var(--ease); }
html body .nx-scope .nx-card:hover{ border-color:rgba(var(--fg-rgb),.15); }
html body .nx-scope .nx-card h2, html body .nx-scope .nx-historial h2{ font-family:var(--font-d) !important; font-size:17px; font-weight:700; letter-spacing:-.02em; }
html body .nx-scope .nx-context strong{ font-family:var(--font-d); font-size:18px; letter-spacing:-.02em; }
html body .nx-scope .nx-context a{ color:var(--accent); text-decoration:none; }
html body .nx-scope .nx-grid--3{ grid-auto-flow:dense; }
@media (min-width:980px){
  html body .nx-scope .nx-grid--3 > .nx-card:first-child:not(:only-child){ grid-column:span 2; background:linear-gradient(150deg,rgba(167,139,250,.14),rgba(34,211,238,.04) 60%,rgba(var(--fg-rgb),.02)); border-color:rgba(167,139,250,.26); }
}
html body .nx-scope .nx-btn{ position:relative; overflow:hidden; border-radius:12px; min-height:38px; padding:9px 14px; font-size:13px; background:rgba(var(--fg-rgb),.04); color:var(--ink); border-color:var(--line);
  transition:transform .18s var(--spring), background .2s, border-color .2s, box-shadow .25s; }
html body .nx-scope .nx-btn:hover{ background:rgba(var(--fg-rgb),.08); border-color:rgba(var(--fg-rgb),.24); transform:translateY(-1px); }
html body .nx-scope .nx-btn:active{ transform:scale(.96); }
html body .nx-scope .nx-btn--primary, html body .nx-scope .nx-btn--accent{ background:var(--btn-bg); color:var(--btn-ink); border-color:var(--btn-bg); }
html body .nx-scope .nx-btn--primary:hover, html body .nx-scope .nx-btn--accent:hover{ background:var(--btn-bg); box-shadow:0 0 0 4px rgba(167,139,250,.25), 0 12px 32px -10px rgba(167,139,250,.7); }
html body .nx-scope .nx-btn--ok{ background:var(--ok); color:#04130d; border-color:var(--ok); }
html body .nx-scope .nx-btn--danger{ color:var(--danger); }
html body .nx-scope .nx-btn--danger:hover{ background:var(--danger-soft); border-color:rgba(248,113,113,.5); }
html body .nx-scope .nx-btn--sm{ min-height:32px; padding:6px 11px; font-size:12px; border-radius:10px; }
html body .nx-scope .nx-input, html body .nx-scope .nx-select, html body .nx-scope .nx-textarea{ background:var(--input-bg); color:var(--ink); border-color:var(--border-strong); border-radius:12px; }
html body .nx-scope .nx-input:focus, html body .nx-scope .nx-select:focus, html body .nx-scope .nx-textarea:focus{ background:var(--input-bg-focus); border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); }
html body .nx-scope .nx-lang-tag{ background:var(--accent-soft); color:var(--tint-text); }
html body .nx-scope .nx-switch input{ background:rgba(var(--fg-rgb),.14); }
html body .nx-scope .nx-switch input:checked{ background:var(--grad); box-shadow:0 0 14px -2px rgba(167,139,250,.7); }
html body .nx-scope .nx-switch input::after{ transition:transform .3s var(--spring); }
html body .nx-scope .nx-skin, html body .nx-scope .nx-font{ background:rgba(var(--fg-rgb),.03); border-color:var(--line); }
html body .nx-scope .nx-skin:has(input:checked), html body .nx-scope .nx-font:has(input:checked){ border-color:var(--accent); box-shadow:0 0 0 3px rgba(167,139,250,.2); background:var(--accent-soft); }
html body .nx-scope .nx-swatch{ border-color:var(--bg); }
html body .nx-scope .nx-swatch[aria-pressed="true"]{ box-shadow:0 0 0 2px var(--ink-strong); }
html body .nx-scope .nx-progress{ background:rgba(var(--fg-rgb),.08); }
html body .nx-scope .nx-progress span{ background:var(--grad); box-shadow:0 0 12px rgba(167,139,250,.6); }
html body .nx-scope .nx-badge{ background:rgba(var(--fg-rgb),.05); }
html body .nx-scope .nx-badge--warn{ background:var(--warn-soft); color:var(--warn); }
html body .nx-scope .nx-flash--ok{ background:var(--ok-soft); color:var(--ok-text); border:1px solid rgba(52,211,153,.3); }
html body .nx-scope .nx-flash--error{ background:var(--danger-soft); color:var(--err-text); border:1px solid rgba(248,113,113,.3); }
html body .nx-scope .nx-table-wrap{ background:var(--surface); border-color:var(--line); backdrop-filter:var(--blur); }
html body .nx-scope .nx-table th{ background:rgba(var(--panel-rgb),.92); font-family:var(--font-m); letter-spacing:.12em; }
html body .nx-scope .nx-table tr.is-missing td:first-child{ box-shadow:inset 3px 0 0 var(--warn); }
html body .nx-scope .nx-seg{ background:rgba(var(--fg-rgb),.04); border-color:var(--line); }
html body .nx-scope .nx-seg button[aria-pressed="true"]{ background:var(--btn-bg); color:var(--btn-ink); }
html body .nx-scope .nx-qr{ background:var(--surface); border-color:var(--line); }
html body .nx-scope .nx-qr__code{ background:#fff; border-radius:12px; padding:6px; }
html body .nx-scope .nx-aviso{ background:var(--surface); border-color:var(--line); backdrop-filter:var(--blur); }
html body .nx-scope .nx-aviso__mesa{ font-family:var(--font-d); font-weight:800; letter-spacing:-.04em; }
html body .nx-scope .nx-aviso__detalle{ background:var(--sunken); }
html body .nx-scope .nx-aviso--cuenta{ border-top-color:#38bdf8; }
html body .nx-scope .nx-empty b{ font-family:var(--font-d); }
html body .nx-scope .nx-local__avatar{ border-radius:14px; box-shadow:0 10px 24px -10px rgba(0,0,0,.8); }
html body .nx-scope .nx-local__name{ font-family:var(--font-d); letter-spacing:-.02em; }
html body .nx-scope .nx-tabs{ background:rgba(var(--fg-rgb),.03); border:1px solid var(--line); border-radius:14px; padding:5px; gap:4px; backdrop-filter:var(--blur); }
html body .nx-scope .nx-tabs a{ border-radius:10px; border-bottom:none; margin-bottom:0; color:var(--ink-muted); padding:8px 12px; min-height:36px; }
html body .nx-scope .nx-tabs a:hover{ background:rgba(var(--fg-rgb),.06); color:var(--ink); }
html body .nx-scope .nx-tabs a[aria-current="page"]{ background:var(--btn-bg); color:var(--btn-ink); box-shadow:0 6px 18px -8px rgba(var(--fg-rgb),.4); }
html body .nx-scope .nx-historial li{ border-bottom-color:var(--hairline); }


/* =====================================================================
   MODO CLARO (Light Premium) — mismo sistema, mismas clases
   ===================================================================== */
html[data-theme="light"]{
  color-scheme:light;
  --bg:#f5f5f7; --bg-2:#ececf0; --surface:rgba(255,255,255,.72); --surface-solid:#ffffff; --surface-2:rgba(20,20,30,.04);
  --border:rgba(20,20,30,.09); --border-strong:rgba(20,20,30,.16); --hairline:rgba(20,20,30,.06);
  --ink:#0a0a0f; --ink-muted:#52525b; --ink-faint:#8a8a96;
  --accent:#7c3aed; --accent-2:#0891b2; --accent-soft:rgba(124,58,237,.10);
  --grad:linear-gradient(135deg,#7c3aed 0%,#3b82f6 50%,#0891b2 100%);
  --danger:#dc2626; --danger-soft:rgba(220,38,38,.08); --ok:#059669; --ok-soft:rgba(5,150,105,.10); --warn:#d97706; --warn-soft:rgba(217,119,6,.10);
  --shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 1px 2px rgba(20,20,30,.04), 0 18px 40px -26px rgba(20,20,30,.28);
  --fg-rgb:20,20,30; --panel-rgb:255,255,255; --ink-strong:#0a0a0f; --btn-bg:#0a0a0f; --btn-ink:#ffffff;
  --input-bg:#ffffff; --input-bg-focus:#ffffff; --sunken:rgba(20,20,30,.035); --canvas:#f1f0ec; --option-bg:#ffffff;
  --tint-text:#6d28d9; --ok-text:#047857; --err-text:#b91c1c; --aurora:.12; --noise:.025;
}
html[data-theme="light"] body::before{ background:
    radial-gradient(60vw 50vh at 85% -10%, rgba(124,58,237,.10), transparent 60%),
    radial-gradient(50vw 45vh at -5% 30%, rgba(8,145,178,.08), transparent 60%),
    radial-gradient(40vw 40vh at 60% 110%, rgba(59,130,246,.08), transparent 60%),
    var(--bg); }
html[data-theme="light"] ::selection{ background:rgba(124,58,237,.2); color:#0a0a0f; }
html[data-theme="light"] .page-head h1{ text-shadow:none; }
html[data-theme="light"] .btn-primary{ box-shadow:0 8px 22px -10px rgba(10,10,15,.45); }
html[data-theme="light"] .btn-primary:hover{ box-shadow:0 0 0 4px rgba(124,58,237,.18), 0 12px 30px -10px rgba(124,58,237,.5); }
html[data-theme="light"] .card:hover{ border-color:rgba(20,20,30,.16); }
html[data-theme="light"] .grid-cards > .card:hover{ box-shadow:0 30px 60px -34px rgba(20,20,30,.35), 0 0 0 1px rgba(124,58,237,.18); }
html[data-theme="light"] .card::before, html[data-theme="light"] .stat-box::before{ background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(124,58,237,.08), transparent 45%); }
html[data-theme="light"] .login-card{ background:rgba(255,255,255,.8); box-shadow:0 40px 80px -40px rgba(20,20,30,.35), 0 0 0 1px rgba(20,20,30,.06), 0 0 80px -20px rgba(124,58,237,.18); }
html[data-theme="light"] .sidebar{ background:rgba(255,255,255,.6); }
html[data-theme="light"] .nav-link.active{ background:linear-gradient(90deg,rgba(124,58,237,.12),rgba(124,58,237,.03)); box-shadow:inset 0 0 0 1px rgba(124,58,237,.2); }
html[data-theme="light"] .chip-toggle.on{ background:rgba(124,58,237,.10); border-color:rgba(124,58,237,.35); }
html[data-theme="light"] img[src*="icon_white"]{ filter:invert(1); }
html[data-theme="light"] img[src*="icon_black"]{ filter:none; }
html[data-theme="light"] input[type=date]::-webkit-calendar-picker-indicator, html[data-theme="light"] input[type=time]::-webkit-calendar-picker-indicator{ filter:none; opacity:.6; }
html[data-theme="light"] .grid-cards > .card:first-child:not(:only-child), html[data-theme="light"] .stat-grid > .stat-box:first-child{ background:linear-gradient(150deg,rgba(124,58,237,.10),rgba(8,145,178,.04) 55%,rgba(255,255,255,.7)); border-color:rgba(124,58,237,.22); }
html[data-theme="light"] .mesa-box{ background:linear-gradient(150deg,#27272f,#0f0f14); }
html[data-theme="light"] .badge[style*="#fdeee0"]{ background:rgba(234,88,12,.10) !important; color:#c2410c !important; }
html[data-theme="light"] .badge[style*="#f0e4fd"]{ background:rgba(124,58,237,.10) !important; color:#6d28d9 !important; }
html[data-theme="light"] body .nx-scope{
  --surface:rgba(255,255,255,.72); --surface-2:rgba(20,20,30,.035); --ink:#0a0a0f; --ink-muted:#52525b; --ink-faint:#8a8a96;
  --line:rgba(20,20,30,.09); --accent:#7c3aed; --accent-soft:rgba(124,58,237,.10); --ok:#059669; --ok-soft:rgba(5,150,105,.10); --danger:#dc2626; --danger-soft:rgba(220,38,38,.08);
  --shadow:0 1px 2px rgba(20,20,30,.04), 0 18px 40px -26px rgba(20,20,30,.28);
}
html[data-theme="light"] body .nx-scope .nx-grid--3 > .nx-card:first-child:not(:only-child){ background:linear-gradient(150deg,rgba(124,58,237,.10),rgba(8,145,178,.04) 60%,rgba(255,255,255,.7)); }
html[data-theme="light"] body .nx-scope .nx-switch input{ background:rgba(20,20,30,.15); }
html[data-theme="light"] body .nx-scope .nx-switch input:checked{ background:var(--grad); box-shadow:0 0 12px -2px rgba(124,58,237,.5); }
html[data-theme="light"] body .nx-scope .nx-tabs a[aria-current="page"]{ box-shadow:0 6px 18px -8px rgba(10,10,15,.45); }

/* ---------- Interruptor claro / oscuro ---------- */
.nx-theme-toggle{ display:flex; align-items:center; gap:10px; width:100%; padding:9px 12px; margin:0 0 6px; border-radius:11px; border:1px solid var(--border); background:rgba(var(--fg-rgb),.03);
  color:var(--ink-muted); font:500 13px var(--font); cursor:pointer; transition:color .2s, background .2s, border-color .2s, transform .18s var(--spring); }
.nx-theme-toggle:hover{ color:var(--ink); background:rgba(var(--fg-rgb),.06); border-color:var(--border-strong); }
.nx-theme-toggle:active{ transform:scale(.97); }
.nx-theme-toggle__track{ position:relative; margin-left:auto; width:38px; height:22px; flex:0 0 38px; border-radius:999px; background:rgba(var(--fg-rgb),.12); transition:background .3s var(--ease); }
.nx-theme-toggle__track::after{ content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:var(--ink-strong); box-shadow:0 2px 6px rgba(0,0,0,.3); transition:transform .35s var(--spring); }
html[data-theme="light"] .nx-theme-toggle__track{ background:var(--grad); }
html[data-theme="light"] .nx-theme-toggle__track::after{ transform:translateX(16px); background:#fff; }
.nx-theme-toggle__ico{ display:inline-block; transition:transform .5s var(--spring); }
.nx-theme-toggle:hover .nx-theme-toggle__ico{ transform:rotate(-25deg) scale(1.15); }
.nx-theme-toggle--float{ position:fixed; top:14px; right:14px; z-index:1100; width:auto; backdrop-filter:var(--blur); -webkit-backdrop-filter:var(--blur); background:rgba(var(--panel-rgb),.6); }
.topbar .nx-theme-toggle{ width:auto; margin:0; }
html.nx-theme-anim, html.nx-theme-anim *{ transition:background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease) !important; }
@media (max-width:860px){ .sidebar .nx-theme-toggle{ width:auto; flex-shrink:0; margin:0; white-space:nowrap; } .sidebar .nx-theme-toggle__label{ display:none; } }

/* ---------- Accesibilidad / impresión ---------- */
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .nx-reveal, .kt-char{ opacity:1 !important; transform:none !important; filter:none !important; }
}
@media print{
  html, body{ background:#fff !important; color:#000 !important; }
  body::before, body::after{ display:none !important; }
  .card, .stat-box, .qr-card, .nx-card, .nx-qr{ background:#fff !important; color:#000 !important; backdrop-filter:none !important; box-shadow:none !important; border-color:#ccc !important; }
  .page-head h1, .kt-char{ color:#000 !important; -webkit-text-fill-color:#000; background:none !important; opacity:1 !important; transform:none !important; filter:none !important; }
  .nx-reveal{ opacity:1 !important; transform:none !important; }
}
