:root{--navy:#0A1D4D;--turquoise:#14B8A6;--mustard:#FBBF24;--purple:#6D28D9;--pink:#EC4899;--cream:#FFF8E9;--bg:#FFFDF8;--surface:#fff;--text:#172033;--muted:#6B7280;--line:#E9E5F1;--success:#22C55E;--danger:#EF4444;--sidebar:258px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Nunito,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}button,input,select{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,.folio,.code-input{font-family:Fredoka,sans-serif}h1,h2,h3,p{margin-top:0}
.eyebrow{display:inline-flex;text-transform:uppercase;letter-spacing:.11em;font-weight:900;font-size:.72rem;color:var(--pink);margin-bottom:7px}.muted{color:var(--muted)}.mobile-only{display:none!important}
.btn{border:0;border-radius:15px;padding:12px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:900;transition:.2s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--navy),#153581);color:#fff}.btn-accent{background:linear-gradient(135deg,var(--pink),#f76bb4);color:#fff}.btn-outline{background:#fff;color:var(--navy);border:1px solid rgba(10,29,77,.15)}.btn-soft{background:#e7fffb;color:#087b70;border:1px solid #b9f2e9}.btn-block{width:100%}.btn-sm{padding:8px 10px;font-size:.82rem}
.icon-btn{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:#fff;color:var(--navy);display:grid;place-items:center}.panel{background:#fff;border:1px solid rgba(10,29,77,.08);border-radius:23px;padding:22px;box-shadow:0 16px 52px rgba(10,29,77,.08)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.panel-heading h2{margin:0;font-size:1.06rem;color:var(--navy)}
.field{display:grid;gap:7px;margin-bottom:15px}.field>span{font-size:.82rem;font-weight:900;color:var(--muted)}.field input,.field select{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:#fff;outline:none}.field input:focus,.field select:focus{border-color:var(--pink);box-shadow:0 0 0 4px rgba(236,72,153,.11)}
.check-row{display:flex;gap:10px;align-items:center;margin:12px 0 18px}.alert{padding:12px 14px;border-radius:14px;margin-bottom:15px;font-weight:800}.alert-error{background:#fff0f2;color:#a91d37}.alert-success{background:#e8fff1;color:#12713a}.status-pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f0e9ff;color:var(--purple);font-size:.7rem;font-weight:900;text-transform:uppercase}.folio{display:inline-flex;padding:5px 9px;border-radius:999px;background:#e7fffb;color:#087b70;font-weight:900;font-size:.78rem}.note-box{background:var(--cream);border:1px solid #f6dfae;border-radius:14px;padding:12px;margin-bottom:16px;color:#6e5315}.empty-state{text-align:center;background:#fff;border:1px dashed #d8d0e7;border-radius:22px;padding:38px;color:var(--muted)}.form-panel{max-width:720px}.form-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:13px}


/* === Footer global · La Lote by Plumory === */
.plumory-footer{
 width:100%;
 display:flex;
 justify-content:center;
 align-items:center;
 padding:18px 12px calc(18px + env(safe-area-inset-bottom));
 text-align:center;
}
.plumory-footer-signature{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:5px;
 padding:7px 12px;
 border-radius:999px;
 background:rgba(255,255,255,.78);
 border:1px solid rgba(10,29,77,.08);
 box-shadow:0 6px 20px rgba(10,29,77,.05);
 font-size:.68rem;
 line-height:1;
 white-space:nowrap;
}
.plumory-footer-product{
 color:#0A1D4D;
 font-weight:900;
}
.plumory-footer-by{
 color:#9AA1AE;
 font-size:.58rem;
 font-weight:800;
 text-transform:lowercase;
}
.plumory-footer-brand{
 font-family:Fredoka,Nunito,sans-serif;
 font-size:.82rem;
 font-weight:900;
 background:linear-gradient(90deg,#6D28D9,#EC4899,#14B8A6);
 -webkit-background-clip:text;
 background-clip:text;
 color:transparent;
 letter-spacing:.01em;
}

/* En juego, caller y TV no debe ocupar espacio. */
body:has(.player-live-app)>.plumory-footer,
body:has(.caller-shell)>.plumory-footer,
body:has(.display-shell)>.plumory-footer,
body:has(.tv-display-shell)>.plumory-footer{
 display:none;
}

@media(max-width:760px){
 .plumory-footer{
  padding-top:14px;
  padding-bottom:calc(16px + env(safe-area-inset-bottom));
 }
 .plumory-footer-signature{
  padding:6px 10px;
  font-size:.64rem;
 }
 .plumory-footer-brand{font-size:.78rem}
}
