/* Ajustes de la app real sobre los estilos del prototipo */
body{padding-inline:16px;padding-block:0 110px;min-height:100vh}
body.is-staff{padding-bottom:40px}
.boot,.center-msg{max-width:520px;margin:12vh auto 0;text-align:center}
.center-msg h1{font-family:var(--f-brand);font-weight:var(--bw);font-size:34px;letter-spacing:.14em;text-transform:uppercase}
.center-msg .hint{color:var(--muted);line-height:1.6}
.gorow{display:flex;gap:8px;margin-top:16px}
.client{max-width:640px;margin:0 auto;padding-top:16px}
.client .cartbar{max-width:none}
.foot{text-align:center;color:var(--muted);font-size:12px;margin-top:24px}
.muted{color:var(--muted)}.small{font-size:13px}
.view{max-width:1100px;margin:0 auto;padding-top:16px}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);margin-inline:-16px;padding:10px 16px 0;border-bottom:1px solid var(--line)}
.top .brand b{font-family:var(--f-brand);font-weight:var(--bw);letter-spacing:.1em;text-transform:uppercase;font-size:18px}
body.nocaps .top .brand b{text-transform:none;letter-spacing:0}
.top .brand{align-items:center;padding-bottom:10px}
.top .tabs{margin-top:0}
.top .tab{flex:0 0 auto;padding-inline:16px}
.rolechip{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:3px 8px}
.login{max-width:360px;margin:8vh auto 0;text-align:center}
.login h1{font-family:var(--f-brand);font-weight:var(--bw);font-size:30px;letter-spacing:.12em;text-transform:uppercase;margin:4px 0 6px}
.login .hint{color:var(--muted)}
.pinbox{font-size:34px;letter-spacing:.3em;min-height:52px;display:grid;place-items:center;border-bottom:2px solid var(--line);margin:16px 0 8px;font-variant-numeric:tabular-nums}
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.pinpad button{height:64px;border-radius:16px;border:1px solid var(--line);background:var(--surface);font-size:24px;font-weight:600}
.pinpad button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-size:16px}
.gcard{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:12px 14px;margin:14px 0}
.gcard div{display:grid;gap:2px;min-width:0}.gcard span{font-size:13px;color:var(--muted)}
.track .gcard{margin:12px 0 0;background:var(--bg)}
a.btn{text-decoration:none;color:inherit}a.btn.primary{color:var(--accent-fg)}
.secrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.secrow .subcat{margin:0 auto 0 0}
.copyrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.copyrow code{font-family:var(--f-mono);font-size:13px;background:var(--sunk);padding:8px 10px;border-radius:8px;overflow-wrap:anywhere;min-width:0;flex:1}
.pinin{width:120px}
.howto{margin-top:12px;font-size:14px}.howto summary{cursor:pointer;color:var(--accent);font-weight:600}
.howto ol{padding-left:20px;line-height:1.6}.howto code{font-family:var(--f-mono);font-size:12px}
.stickyact{position:sticky;bottom:0;background:var(--surface);padding-top:8px;margin:0}
.qrc .code{min-height:60px}
.okmark{margin-top:4px}
body.is-staff .pops{top:calc(118px + env(safe-area-inset-top,0px))}
.top .brand{flex-wrap:nowrap}
.top .brand b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top .hbtns{flex:none}
@media (max-width:520px){.top .brand b{font-size:15px}.rolechip{display:none}}
.center-msg h1.appname{text-transform:none;letter-spacing:-.01em;font-family:"Figtree",system-ui,sans-serif;font-weight:400}
.center-msg h1.appname b{font-weight:800;color:var(--accent)}
/* etapa 2: lista de espera, reportes y admin */
.waitbox{margin-top:12px}
@media (max-width:899px){.waitgrid{grid-template-columns:minmax(0,1fr)}}
.wcol{min-width:0}
.tbl.resv b{color:var(--fg)}
.alist{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}
.acard.off{opacity:.7}
.acard-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.acard-h h3{margin:0}.acard-h small{color:var(--muted);font-size:12px}
.acard-h code,.hint code{font-family:var(--f-mono);font-size:12px}
.anums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 4px}
.anums span{display:grid;font-size:11px;color:var(--muted);background:var(--sunk);border-radius:8px;padding:6px 8px}
.anums b{font-size:16px;color:var(--fg)}
.warnv{color:var(--alert)}
.filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1.3fr);gap:8px}
@media (max-width:600px){.filters{grid-template-columns:minmax(0,1fr)}.anums{grid-template-columns:repeat(2,minmax(0,1fr))}}
.evlist{display:grid;margin-top:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.evrow{display:grid;grid-template-columns:96px 56px minmax(0,1fr);gap:10px;padding:8px 12px;border-top:1px solid var(--line);font-size:13px;align-items:baseline}
.evrow:first-child{border-top:0}
.evt{color:var(--muted);font-size:12px}
.evl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.lv-error{background:var(--alert-soft)}.lv-error .evl{color:var(--alert)}
.lv-warn .evl{color:var(--warn)}
.evm{min-width:0}.evm small{color:var(--muted)}
.evm code{display:block;font-family:var(--f-mono);font-size:11px;color:var(--muted);overflow-wrap:anywhere;margin-top:2px}
@media (max-width:600px){.evrow{grid-template-columns:minmax(0,1fr) auto}.evm{grid-column:1/-1}}
.stats + .alist{margin-top:12px}
