:root{font-family:system-ui,-apple-system,Roboto,sans-serif;color:#262336;background:#fff8f4;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.top{background:#fff;padding:12px max(12px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #f1d9dc;position:sticky;top:0;z-index:3}.top h1{font-size:1.33rem;margin:0;color:#9d1e4d}.top small{font-size:.85rem}.subtitle{font-size:.76rem;color:#756d75}main{max-width:680px;margin:auto;padding:10px 9px 32px}.statusbar{display:flex;align-items:center;background:#fff;border:1px solid #f2d3df;border-radius:14px;padding:9px;gap:6px;margin-bottom:9px}.statusbar>div:not(.connection){flex:1;text-align:center;display:flex;flex-direction:column}.statusbar b{font-size:1.35rem;line-height:1.2}.statusbar span{font-size:.73rem;color:#716471}.connection{flex:1.3;text-align:right;font-size:.7rem;color:#786d70}.poster{position:relative;background:#f9dfb1;border-radius:12px;overflow:hidden;touch-action:pan-y pinch-zoom;box-shadow:0 1px 7px #321b191d}.poster img{display:block;width:100%;height:auto}.ticket-grid{position:absolute;left:9.25%;top:44.86%;width:83.44%;height:38.15%;display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);gap:1.0% .48%;touch-action:pan-y pinch-zoom}.ticket{border:1.6px solid #62768a;border-radius:5px;background:#fff;color:#1c2a33;min-width:0;min-height:0;padding:0;font-size:clamp(9px,3.2vw,21px);font-weight:800;line-height:1;box-shadow:0 0 2px #1f3544a1;display:flex;justify-content:center;align-items:center;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}.ticket.sold{background:transparent url("/sold-heart.svg") no-repeat center / 97% 97%;border-color:transparent;box-shadow:none;color:#3e1830;font-weight:900;padding:0;text-shadow:0 1px #fff,0 -1px #fff,1px 0 #fff,-1px 0 #fff}.ticket.pending{outline:3px dashed #f6b324;outline-offset:-3px}.ticket:focus-visible{outline:3px solid #312c87;outline-offset:-2px}.ticket:disabled{cursor:default;opacity:1}.legend{display:flex;gap:16px;justify-content:center;align-items:center;font-size:.8rem;margin:10px 0;color:#665764}.square{display:inline-block;width:13px;height:13px;border:1px solid #768796;border-radius:3px;vertical-align:middle;margin-right:4px}.sold-symbol{display:inline-block;width:19px;height:16px;background:url("/sold-heart.svg") center/contain no-repeat;vertical-align:middle;margin-right:4px}.square.white{background:white}.actions{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr);gap:6px}.actions.admin-actions{grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) minmax(0,1fr)}button{font:inherit;cursor:pointer} .actions button,.extras button,.dialog-actions button{min-height:44px;border:1px solid #e2bdcb;border-radius:10px;background:#fff;color:#762946;font-weight:650;padding:7px}.actions .primary,.dialog-actions .primary,.primary{background:#ba2f60;color:#fff;border-color:#ba2f60}.actions button:disabled{opacity:.45}.foot-actions{display:flex;justify-content:space-between;padding:10px 2px}.text-btn{border:0;background:transparent;color:#a12353;font-weight:700;padding:8px}.extras{background:#fff;border:1px solid #efdae2;border-radius:12px;padding:10px}.extras button{display:inline-block;margin:4px;font-size:.83rem}.extras p{font-size:.78rem;color:#6d6470}.message{text-align:center;color:#7b3654;font-size:.82rem;min-height:1.2rem}dialog{border:0;border-radius:15px;padding:23px;width:min(93vw,420px);box-shadow:0 15px 65px #10050b60}dialog::backdrop{background:#1e112595}dialog h2{font-size:1.2rem;margin-top:0}dialog label{display:grid;gap:10px}dialog input{width:100%;padding:12px;border:1px solid #b9a2ad;border-radius:9px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.error{color:#b6203d}.history-row{padding:9px 0;border-bottom:1px solid #e9e0e1;font-size:.8rem}#infoContent{max-height:50vh;overflow:auto;font-size:.85rem}#infoContent button{margin:4px;border:1px solid #ddd;border-radius:8px;padding:8px;background:#fff}@media (min-width:650px){.ticket{font-size:23px}}@media (max-width:390px){.actions button{font-size:.77rem;padding:7px 3px}.ticket{border-width:1px;border-radius:3px}}

/* Tarjeta de agradecimiento: accesible solo desde el menú del administrador. */
.extras .thank-btn{background:#fff0f4;border-color:#d33c6b;color:#9e1d4b;font-weight:800;}
.thanks-dialog{max-height:92dvh;overflow-y:auto;padding:18px;width:min(95vw,450px);}
.thanks-dialog h2{font-size:1.15rem;margin:0 0 6px;color:#a21d53;}
.thanks-help{font-size:.84rem;line-height:1.45;color:#665764;margin:3px 0 10px;}
.thanks-label{font-size:.85rem;font-weight:700;margin-bottom:5px;display:block;}
#thanksNumber{width:100%;padding:12px;border:1px solid #d4a8b9;border-radius:11px;background:white;font:inherit;}
.thanks-preview{display:block;width:min(100%,230px);height:auto;max-height:40dvh;object-fit:contain;margin:10px auto;border-radius:12px;box-shadow:0 3px 14px #58304330;}
.thanks-preview[hidden]{display:none;}
.thanks-status{font-size:.82rem;min-height:1rem;margin:7px 0;color:#75415a;}
.thanks-buttons{display:flex;flex-wrap:wrap;gap:7px;}
.thanks-buttons button{flex:1 1 110px;border:1px solid #d8afbe;border-radius:9px;min-height:44px;padding:8px;font-weight:700;background:white;color:#8e2650;}
.thanks-buttons button.primary{background:#ba2f60;color:#fff;border-color:#ba2f60;}
.thanks-buttons button:disabled{opacity:.48;cursor:default;}

/* Estado administrativo inequívoco y acción primaria al alcance de un toque. */
body.is-admin .top{background:linear-gradient(115deg,#92274c,#ba2f60);border-color:#92274c}
body.is-admin .top h1,body.is-admin .top .subtitle,body.is-admin .top .text-btn{color:#fff}
.admin-mode[hidden],.admin-quick[hidden]{display:none!important}
.admin-mode{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px max(12px,env(safe-area-inset-left));background:#6a213f;color:white;font-size:.78rem}
.admin-mode strong{letter-spacing:.03em}
.admin-exit{border:1px solid #ffffff7d;background:transparent;border-radius:10px;color:white;font-weight:750;min-height:38px;padding:6px 14px;flex-shrink:0}
.admin-quick{margin:0 0 10px}
.admin-quick .thank-btn{display:block;width:100%;min-height:65px;border:2px solid #ad2857;border-radius:13px;color:#fff;background:linear-gradient(105deg,#b93262,#e1567e);box-shadow:0 3px 10px #9b255526;text-align:left;font-size:1.04rem;font-weight:800;padding:11px 16px;line-height:1.2}
.admin-quick .thank-btn span{display:block;font-size:.72rem;font-weight:500;margin-top:5px;color:#fff9}
@media(max-width:390px){.admin-mode{font-size:.69rem}.admin-quick .thank-btn{min-height:60px}}

/* Vista pública sobria. El control de acceso es visible sin ocupar el cartel. */
.top .visitor-admin-button{border:1px solid #dec1cd;border-radius:999px;background:#fff;color:#7f3956;min-height:38px;padding:7px 12px;font-size:.78rem;font-weight:750;white-space:nowrap}
.visitor-admin-button[hidden],#undo[hidden]{display:none!important}
.actions #share{font-weight:800}
.actions #share:disabled{opacity:.65}
body.is-admin .top .visitor-admin-button{display:none!important}
@media(max-width:390px){.top .visitor-admin-button{padding:7px 10px;font-size:.76rem}.actions.admin-actions button{font-size:.76rem}}

/* Compartir: un toque abre WhatsApp para texto/enlace; compartir archivos usa el selector Android. */
.actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.actions.admin-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.actions .whatsapp-direct,.actions .image-share{min-height:58px}
.actions .whatsapp-direct,.thanks-buttons .whatsapp-direct{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;background:#14734e;color:#fff;border-radius:10px;border:1px solid #0e5b3d;font-weight:800;text-decoration:none;font-size:.98rem;padding:7px 10px;line-height:1.25}
.actions .whatsapp-direct small,.thanks-buttons .whatsapp-direct small{display:block;font-size:.7rem;font-weight:500;color:#eefaf3}
.actions .image-share{background:#fff;color:#822b55;border:1px solid #e3b9cb;font-weight:750;font-size:.95rem;line-height:1.25}
.actions .image-share small{display:block;font-size:.7rem;font-weight:500;margin-top:3px}
.actions .subtle-action{background:transparent;color:#784563;min-height:40px;grid-column:1/-1}
.actions.admin-actions .subtle-action{grid-column:auto}
.actions #undo{background:#fff8f4;color:#803956;min-height:40px}
.thanks-buttons .whatsapp-direct{flex:1 1 100%;min-height:48px}
.thanks-buttons .whatsapp-direct[hidden]{display:none!important}
.whatsapp-explainer{font-size:.76rem;color:#6b5c66;line-height:1.4;margin:10px 0 0}
@media (max-width:390px){.actions .whatsapp-direct,.actions .image-share{font-size:.86rem}.actions .whatsapp-direct small,.actions .image-share small{font-size:.66rem}}


/* v1.5.1 — Un solo botón principal para enviar el cartel PNG, sin enlaces ni textos. */
.actions{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.actions.admin-actions{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.actions .whatsapp-direct{min-height:62px}
.actions .whatsapp-direct:disabled{opacity:.62;cursor:wait}
.actions .subtle-action,.actions.admin-actions .subtle-action{grid-column:auto;min-height:62px}
.actions #undo{grid-column:1/-1}
.share-hint{margin:6px 3px 0;font-size:.73rem;line-height:1.35;color:#786774;text-align:center}


/* Publicar en estado — opción pública, sin mezclarse con la administración. */
.story-entry{display:block;width:100%;min-height:60px;margin:12px 0 4px;padding:10px 14px;background:#fff0f5;color:#8c2450;border:1.5px solid #de9cb5;border-radius:13px;text-align:left;font-size:1rem;font-weight:800}
.story-entry span{display:block;margin-top:4px;font-size:.74rem;font-weight:500;color:#684453}
.story-dialog{width:min(95vw,440px);max-height:94dvh;overflow:auto;padding:17px}
.story-dialog h2{font-size:1.12rem;color:#90264f;margin:0 0 7px}
.story-intro,.story-instructions{color:#6a5360;font-size:.8rem;line-height:1.45;margin:7px 0 10px}
.story-preview{display:block;width:min(100%,220px);height:auto;max-height:43dvh;object-fit:contain;margin:10px auto;border-radius:9px;box-shadow:0 4px 18px #53183635}
.story-preview[hidden]{display:none}
.story-status{text-align:center;min-height:1.1rem;color:#713850;font-size:.79rem}
.story-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.story-buttons button{min-height:48px;padding:7px;border:1px solid #dcbbc8;border-radius:10px;background:#fff;font-size:.82rem;font-weight:700;color:#792e4e}
.story-buttons button.primary{background:#b92f61;border-color:#b92f61;color:white}
.story-buttons button:disabled{opacity:.45}
.story-instructions{margin:12px 0 0}


/* Estado en dos publicaciones: llamadas principales bien visibles en móvil. */
.story-buttons{grid-template-columns:1fr;gap:8px}
.story-buttons button{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:57px;font-size:.89rem}
.story-buttons button strong{font-weight:800}
.story-buttons button small{font-size:.7rem;font-weight:500;margin-top:3px}
.story-buttons button.story-copy{background:#fff1f5;color:#922f58;border:1.5px solid #d67a9a;min-height:59px}
.story-buttons button.story-secondary{min-height:42px;background:#fff;border-color:#ead6de;color:#775366;font-size:.76rem}
.story-visible-link{font-size:.74rem;line-height:1.4;text-align:center;overflow-wrap:anywhere;margin:9px 0 0;color:#76616d}
.story-visible-link a{font-weight:750;color:#913257}


/* v1.8 — Cobros privados: controles solo visibles en administración, sin saturar cartel. */
.pay-summary[hidden]{display:none!important}
.pay-summary{background:#fff;border:1px solid #e6d1db;border-radius:13px;padding:9px 10px;margin-bottom:10px}
.pay-summary-title{display:flex;align-items:center;justify-content:space-between;gap:7px;color:#76314e;font-size:.86rem;margin-bottom:7px}
.pay-summary-title span{font-size:.67rem;font-weight:600;color:#897683}
.pay-summary-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.pay-stat{border:1px solid #ead8df;border-radius:10px;min-height:54px;padding:6px;background:#faf6f8;display:flex;align-items:center;justify-content:center;flex-direction:column}
.pay-stat b{font-size:1.18rem;line-height:1.25}
.pay-stat span{font-size:.71rem;font-weight:700}
.pay-stat.pending{background:#fff6e6;color:#915209;border-color:#efdbb0}
.pay-stat.paid{background:#eaf8ef;color:#19633f;border-color:#c2e7cc}
.pay-stat.unknown{background:#f6f3fa;color:#6a587b;border-color:#e0d9e9}
.pay-totals{font-size:.73rem;color:#78636c;margin:7px 1px 0;line-height:1.4}
body.is-admin .ticket.sold{position:relative}
body.is-admin .ticket.sold.pay-pending::after,body.is-admin .ticket.sold.pay-paid::after,body.is-admin .ticket.sold.pay-unknown::after{
 content:'';position:absolute;bottom:1px;right:1px;width:7px;height:7px;border:1px solid white;border-radius:50%;box-shadow:0 0 0 1px #fff7}
body.is-admin .ticket.sold.pay-pending::after{background:#e8a229}
body.is-admin .ticket.sold.pay-paid::after{background:#2aad67}
body.is-admin .ticket.sold.pay-unknown::after{background:#746c82}
.ticket-dialog,.pay-list-dialog{width:min(94vw,430px);max-height:90dvh;overflow-y:auto;padding:17px}
.ticket-dialog h2,.pay-list-dialog h2{font-size:1.25rem;color:#8d2653;margin:0 0 6px}
.ticket-current{font-size:.91rem;font-weight:800;color:#623c4d;margin:2px 0}
.ticket-seller{margin:10px 0;padding:10px;background:#f9f0f5;border:1px solid #e6ccd8;border-radius:11px;font-size:.83rem;color:#68364e}
.ticket-seller[hidden]{display:none!important}
.seller-edit{display:flex;gap:7px;margin-top:7px}.seller-edit input{width:100%;min-width:0;border:1px solid #d7afc0;border-radius:9px;padding:9px;min-height:44px;font:inherit;background:#fff}
.seller-edit button{min-width:79px;min-height:44px;border:0;border-radius:9px;background:#8c2d53;color:#fff;font-weight:750}
.seller-edit button:disabled{opacity:.55}
.seller-flag{display:flex;align-items:center;gap:8px;margin-top:9px;min-height:35px;font-size:.83rem;font-weight:750}
.seller-flag input{width:18px;height:18px;accent-color:#a5214e}
#ticketSellerMessage{font-size:.72rem;line-height:1.4;margin:5px 0 0;color:#6b4b60}
.seller-summary{display:grid;gap:9px;padding:5px 0}
.seller-group{border-bottom:1px solid #efdee5;padding:5px 0}.seller-group strong{font-size:.82rem}
.seller-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.seller-chips button{border:1px solid #e2c8d3;border-radius:8px;min-width:42px;min-height:40px;background:#fff;color:#7e2b50;font-weight:800}

.ticket-help,.ticket-private{font-size:.77rem;color:#776775;line-height:1.45;margin:7px 0}
.ticket-details{margin:10px 0;border:1px solid #edd6dd;border-radius:10px;padding:10px;background:#fffafc}
.ticket-details summary{font-size:.86rem;font-weight:750;color:#853653;cursor:pointer}
.ticket-fields{display:grid;gap:9px;margin-top:13px}
.ticket-fields label{display:grid;gap:5px;color:#654357;font-size:.8rem;font-weight:700}
.ticket-fields input,.ticket-fields textarea{border:1px solid #ddc6d2;border-radius:8px;min-height:43px;padding:9px;font:inherit;width:100%;color:#322a31;background:white}
.ticket-fields textarea{resize:vertical}
.ticket-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.ticket-quick button{min-height:65px;border-radius:12px;padding:8px 5px;line-height:1.25;font-size:.87rem;font-weight:850;border:1px solid}
.pay-pending-action{background:#fff0d2;border-color:#eac27a!important;color:#734507}
.pay-paid-action{background:#dff5e5;border-color:#9fd4b2!important;color:#145b37}
.ticket-quick button:disabled,.ticket-footer button:disabled{opacity:.5;cursor:wait}
.ticket-footer{display:flex;justify-content:space-between;gap:10px}
.ticket-footer button,.pay-list-dialog>button{border:1px solid #dcc1ce;border-radius:9px;min-height:42px;padding:7px 12px;background:white;color:#762946;font-weight:750}
.ticket-release{color:#9e3650!important}
.ticket-release[hidden]{display:none}
.ticket-message{font-size:.78rem;color:#8c2854;margin:8px 0 0;min-height:1em}
.pay-list-items{max-height:55dvh;overflow-y:auto;display:grid;gap:7px;margin:10px 0}
.pay-list-items button{min-height:45px;padding:8px 10px;border:1px solid #e1c9d3;background:#fff9fc;border-radius:9px;color:#5d2a47;text-align:left;font-weight:750}
.pay-list-items button small{display:block;color:#796c72;margin-top:3px;font-weight:500}
@media(max-width:380px){.ticket-quick button{font-size:.8rem}.pay-stat span{font-size:.65rem}}


/* v1.9 — corazón sin relleno, tinta oscura y halo blanco para contraste tras compresión WhatsApp. */
.ticket.sold{background-color:transparent;background-image:url('/sold-heart.svg?v=19');background-size:96% 97%;
 color:#25121f;font-size:clamp(11px,3.7vw,26px);font-weight:950;
 text-shadow:0 1px #fffefa,0 -1px #fffefa,1px 0 #fffefa,-1px 0 #fffefa,0 0 3px #fffefa;}
.actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.actions.admin-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
.actions .invite-whatsapp{display:flex;flex-direction:column;justify-content:center;align-items:center;
 text-align:center;background:#fff;color:#146040;border:1.5px solid #23955e;border-radius:10px;
 text-decoration:none;font-size:.87rem;font-weight:850;padding:8px 5px;min-height:62px;line-height:1.3}
.actions .invite-whatsapp small{font-size:.66rem;font-weight:600;color:#50765f;margin-top:3px}
.actions .subtle-action,.actions.admin-actions .subtle-action{grid-column:1/-1;min-height:37px;padding:5px;background:transparent;color:#7e4961}
.actions #undo{grid-column:1/-1}
@media(max-width:390px){.actions .whatsapp-direct{font-size:.85rem}.actions .whatsapp-direct small{font-size:.65rem}.actions .invite-whatsapp{font-size:.79rem}}

.foot-actions{flex-wrap:wrap;gap:2px;align-items:center}
.foot-actions .text-btn{font-size:.76rem;min-height:41px;padding:7px 5px}


/* v1.10 — estado vendido e icono con la misma tinta oscura del corazón real. */
.statusbar .sold-status b{color:#38182d}
.statusbar .sold-status>span{color:#38182d;font-weight:750}
.legend .legend-sold{display:inline-flex;align-items:center;gap:2px;color:#38182d;font-weight:800;border:1px solid #d4b9c7;border-radius:20px;padding:2px 9px 2px 4px;background:#fffafc}
.legend .sold-symbol{width:27px;height:25px;min-width:27px;background:url('/sold-heart.svg?v=19') center/contain no-repeat}
/* Datos de transferencia: nunca un checkout ni una validación de pago. */
.transfer-entry{display:block;width:100%;min-height:52px;margin:10px 0 0;padding:9px 13px;background:#faf4ff;color:#623486;border:1.5px solid #cfb7e3;border-radius:12px;text-align:left;font-size:.94rem;font-weight:850}
.transfer-entry span{display:block;margin-top:3px;font-size:.72rem;font-weight:550;color:#695477}
.transfer-dialog{width:min(95vw,440px);max-height:92dvh;overflow:auto;padding:18px}
.transfer-dialog h2{color:#612f83;font-size:1.12rem;margin:0 0 8px}
.transfer-intro,.transfer-how,.transfer-caution{font-size:.8rem;line-height:1.48;color:#645467;margin:9px 0}
.transfer-price{display:flex;justify-content:space-between;align-items:center;background:#fff1f5;border-radius:10px;padding:11px 12px;font-size:.85rem;color:#78415b}
.transfer-price strong{color:#7b2253;font-size:1.23rem}
.transfer-methods{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.transfer-method{min-height:46px;border:1.5px solid #d3bedf;background:#fff;color:#573774;border-radius:10px;font-weight:800}
.transfer-method.selected{background:#642d85;color:white;border-color:#642d85}
.transfer-account{display:flex;flex-direction:column;align-items:center;gap:3px;background:#fbf9fc;border:1px solid #e3d8e9;border-radius:12px;padding:13px 8px;color:#594761}
.transfer-account span{font-size:.8rem;font-weight:750}
.transfer-account strong{font-size:1.8rem;letter-spacing:.025em;color:#321a46;font-variant-numeric:tabular-nums}
.transfer-account small{color:#74627a;text-align:center;font-size:.73rem}
.transfer-copy-actions{display:block;margin:10px 0}
.transfer-identity{white-space:pre-line;background:#f5edf9;border:1px solid #dfcbe9;border-radius:10px;padding:10px;font-weight:750;font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}
#transferCopyConcept{width:100%;margin-top:7px;min-height:44px}#transferCopyConcept[hidden],.transfer-identity[hidden]{display:none!important}
.transfer-dialog [hidden]{display:none!important}
.transfer-copy-actions button{min-height:48px;border:1px solid #d2c1dc;background:white;border-radius:10px;font-size:.85rem;font-weight:800;color:#58347b}
.transfer-copy-actions button.transfer-main{background:#693a87;color:white;border-color:#693a87}
.transfer-ticket{display:grid;gap:5px;margin:13px 0;color:#544453;font-size:.82rem;font-weight:800}
.transfer-ticket small{font-size:.7rem;font-weight:500}
.transfer-ticket select{width:100%;min-height:45px;padding:10px;border:1px solid #cfc0d4;border-radius:9px;background:#fff;color:#302735;font:inherit}
.transfer-contact,.transfer-after{display:flex;align-items:center;justify-content:center;min-height:49px;margin:8px 0;padding:10px;border-radius:10px;text-align:center;text-decoration:none;font-size:.87rem;font-weight:800}
.transfer-contact{background:#16734c;color:#fff}
.transfer-after{background:#f1fff6;color:#15603c;border:1px solid #9ad4b3}
.transfer-feedback{font-size:.77rem;color:#5d3b70;min-height:1rem;line-height:1.4}
.transfer-caution{background:#fff8e8;border-left:3px solid #dda641;padding:10px;border-radius:5px;color:#694f31}
.transfer-close{min-height:44px;width:100%;border:1px solid #d6c8dc;border-radius:10px;background:#fff;font-weight:800;color:#573476}
@media(max-width:380px){.transfer-account strong{font-size:1.57rem}.transfer-copy-actions button{font-size:.77rem}.transfer-dialog{padding:14px}}

/* El único botón principal de pago: copiar el celular, con confirmación inequívoca. */
.transfer-copy-actions .transfer-main{display:block;width:100%;font-size:1rem;min-height:54px}
.transfer-copy-actions .transfer-main.copied{background:#e0f7e9;color:#115f3e;border-color:#8ccbab}
.transfer-feedback{font-weight:650}

/* v2.1 — Administración numérica y selección pública. */
.grid-note-public,.grid-note-admin{background:#fff;border-radius:11px;padding:10px;margin:7px 0;font-size:.83rem;line-height:1.4;color:#67344e;border:1px solid #e9cbd7}
.grid-note-public[hidden],.grid-note-admin[hidden]{display:none!important}
body.is-admin .poster{background:white;overflow:visible;box-shadow:none;border:1px solid #eed7df;padding:10px}
body.is-admin .poster #posterBase{display:none}
.transfer-phone-tap{border:0;background:transparent;color:#321a46;font-weight:900;font-size:1.7rem;font-variant-numeric:tabular-nums;letter-spacing:.02em;cursor:pointer;padding:2px 6px}
.transfer-phone-tap small{font-size:.65rem;display:block;color:#735280}
.reservation-dialog{width:min(94vw,440px);max-height:92dvh;overflow:auto;padding:18px}
.reservation-dialog h2{color:#8f2756;margin:0 0 8px}
.reservation-dialog form{display:grid;gap:10px}
.reservation-dialog label:not(.reserve-check){display:grid;gap:4px;font-size:.82rem;font-weight:750;color:#573449}
.reservation-dialog input:not([type=checkbox]){padding:11px;border:1px solid #d2b9c5;border-radius:9px;min-height:43px;font-size:1rem}
.reservation-dialog .reserve-check{display:flex;gap:9px;align-items:start;font-size:.76rem;line-height:1.4;color:#53424e}
.reserve-check input{width:19px;height:19px;flex-shrink:0;margin-top:1px}
.reservation-info,.reserve-feedback,.reserve-caution{font-size:.8rem;line-height:1.45;color:#665260}
.reserve-main,.reserve-whatsapp,.reserve-secondary{display:block;width:100%;min-height:46px;padding:11px;border-radius:10px;font-weight:800;text-align:center;text-decoration:none;margin-top:8px}
.reserve-main{border:0;background:#a42d63;color:#fff}
.reserve-main:disabled{opacity:.58}
.reserve-whatsapp{background:#176948;color:#fff}
.reserve-secondary{background:#fff;color:#813250;border:1px solid #d9c2cd}
.reserve-success{background:#e9faee;border-radius:8px;padding:8px;color:#165f3a;font-weight:850}
.reserve-caution{background:#fff7eb;padding:9px;border-radius:8px}
.reservation-dialog{width:min(calc(100vw - 24px),390px);padding:16px;max-height:92dvh}
.reservation-dialog form{gap:8px}.reservation-dialog h2{font-size:1.2rem}.reservation-dialog .reserve-main{margin-top:2px}
.reservation-dialog .reserve-secondary{min-height:40px;margin-top:8px}.reservation-dialog .reserve-feedback:empty{display:none}
.reservation-dialog #reserveReceipt p{margin:8px 0}.reservation-dialog #reserveTurnstile{min-height:65px}
.reservation-bar{position:sticky;top:0;z-index:5;background:#fff5fa;border:1px solid #d9b3c6;border-radius:12px;padding:9px 11px;margin:10px 0;display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px}
.reservation-bar button{min-height:44px;border:0;border-radius:9px;background:#8e2857;color:#fff;padding:8px 12px;font-weight:800}
.reservation-bar b{background:#fff;color:#8e2857;padding:2px 7px;border-radius:20px}.reservation-bar>span,.reservation-bar small{font-size:.75rem;color:#62344b}.reservation-bar p{font-size:.8rem;width:100%;margin:0}.reservation-bar p:empty{display:none}
.reservation-inbox{width:min(calc(100vw - 20px),520px);padding:15px;max-height:92dvh;overflow:auto}
.reservation-inbox-heading{display:flex;align-items:center;gap:8px;justify-content:space-between}.reservation-inbox h2{font-size:1.15rem;color:#7c2550;margin:0}.reservation-inbox-heading button{min-width:44px;min-height:44px;border:1px solid #dcc2cf;background:white;border-radius:9px}
.reservation-inbox-hint{font-size:.78rem;color:#684b5d;margin:8px 0}.reservation-items{display:grid;gap:10px}.reservation-item{border:1px solid #e2cbd6;border-radius:11px;padding:12px;background:#fffafc}.reservation-item h3{font-size:1rem;margin:0 0 6px;overflow-wrap:anywhere}.reservation-state{color:#8e2857;font-size:.82rem}.reservation-item p{font-size:.84rem;margin:6px 0;overflow-wrap:anywhere}.reservation-item small{font-size:.72rem;color:#765d6c}
.reservation-item-actions,.reservation-inbox-footer{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.reservation-item-actions button,.reservation-item-actions a,.reservation-inbox-footer button{min-height:44px;border:1px solid #d8b9c9;border-radius:9px;padding:9px;background:white;color:#74254e;font-size:.8rem;font-weight:750;text-align:center;text-decoration:none}
.reservation-item-actions [data-action=confirm]{background:#8e2857;color:white;flex-basis:100%}.reservation-inbox-footer{position:sticky;bottom:0;background:white;padding-top:8px}.reservation-inbox-footer button{flex:1}
@media(max-width:500px){.reservation-dialog,.reservation-inbox{max-width:none}}


/* v2.1.1: rojo = ocupado, reservado o vendido, mismo significado en todas las vistas. */
:root{--britney-ocupado:#b21d3d;--britney-ocupado-oscuro:#8e1631}
.legend .legend-sold{background:var(--britney-ocupado);color:#fff;border:1.5px solid var(--britney-ocupado-oscuro);padding:4px 11px 4px 7px;box-shadow:0 1px 3px #4b112333}
.legend .legend-sold .sold-symbol{filter:brightness(0) invert(1);width:20px;height:19px;margin-right:3px}
.statusbar #soldCount{color:var(--britney-ocupado)}
/* En administración, no usar corazones diminutos: bloques rojos y cifras blancas legibles. */
body.is-admin .poster .ticket.sold{
 background:var(--britney-ocupado)!important;border:2px solid var(--britney-ocupado-oscuro)!important;
 color:#fff!important;text-shadow:none!important;font-size:clamp(22px,5vw,30px);font-weight:900;
}
body.is-admin .poster .ticket:not(.sold){background:#fff;color:#24303c;border:2px solid #9caaba}
body.is-admin .poster .ticket.sold.pay-pending::after,body.is-admin .poster .ticket.sold.pay-paid::after,body.is-admin .poster .ticket.sold.pay-unknown::after{width:11px;height:11px;right:3px;bottom:3px;box-shadow:0 0 0 1px #fff}
body:not(.is-admin) .legend .legend-sold{font-size:.8rem}

/* 2.2: diez columnas adaptadas al ancho, sin desplazamiento horizontal. */
[hidden]{display:none!important}
.choose-number{display:block;width:100%;min-height:60px;margin:8px 0 12px;border:0;border-radius:14px;background:#a72053;color:#fff;font-size:1.08rem;font-weight:900;box-shadow:0 4px 12px #8b1f4b28}
body.is-admin .poster{display:none!important}
.number-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:0;background:#fff8f4;overflow:auto;overscroll-behavior:contain}
.number-heading{position:sticky;top:0;left:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px max(12px,env(safe-area-inset-right));background:#fff;border-bottom:1px solid #ecd1db}
.number-heading h2{margin:0 0 4px;color:#8a1c45;font-size:1.25rem}
.number-heading span{font-size:.78rem;color:#674556}
.number-heading button,#occupiedClose{border:1px solid #d6b4c4;min-height:44px;border-radius:10px;padding:10px 14px}
.number-grid-mount{width:100%;min-width:0;padding:14px clamp(5px,2vw,10px) 28px;touch-action:pan-y pinch-zoom}
#ticketGrid.ticket-grid{position:static;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,48px);width:100%;min-width:0;height:auto;gap:clamp(2px,.65vw,6px);touch-action:pan-y pinch-zoom}
#ticketGrid .ticket{min-width:0;min-height:48px;border:1.5px solid #9eabb8;border-radius:clamp(4px,1vw,10px);background:#fff;color:#25303c;font:850 clamp(14px,4.4vw,20px)/1 system-ui;text-shadow:none;box-shadow:none}
#ticketGrid .ticket.sold{background:var(--britney-ocupado)!important;background-image:none!important;border-color:var(--britney-ocupado-oscuro)!important;color:#fff!important;text-shadow:none!important}
.admin-grid-mount{width:100%;min-width:0;padding:clamp(4px,1vw,12px);border:1px solid #ead0db;background:#fff;border-radius:12px;margin:10px 0;touch-action:pan-y pinch-zoom}
body.is-admin #ticketGrid{grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,64px);min-width:0;gap:clamp(2px,.65vw,8px)}
body.is-admin #ticketGrid .ticket{font-size:clamp(14px,4.4vw,24px);min-width:0;min-height:64px;position:relative}
.poster-grid{position:absolute;left:9.25%;top:44.86%;width:83.44%;height:38.15%;display:grid;grid-template-columns:repeat(10,1fr);grid-template-rows:repeat(10,1fr);gap:1% .48%;touch-action:pan-y pinch-zoom}
.poster-grid .poster-ticket{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:0;border:1px solid #62768a;border-radius:4px;background:#fff;color:#24303c;font-size:clamp(10px,3.4vw,24px);font-weight:850;line-height:1;user-select:none;-webkit-tap-highlight-color:transparent}
.poster-grid .poster-ticket.sold{background:var(--britney-ocupado);color:#fff;border-color:var(--britney-ocupado-oscuro)}
.poster-ticket:focus-visible{outline:3px solid #312c87;outline-offset:-2px}
#occupiedDialog{text-align:center}#occupiedDialog p{font-size:1.2rem;font-weight:800}
body.is-admin .ticket.sold.pay-pending::after,body.is-admin .ticket.sold.pay-paid::after,body.is-admin .ticket.sold.pay-unknown::after{width:clamp(6px,1.6vw,10px);height:clamp(6px,1.6vw,10px);right:2px;bottom:2px}
@media(min-width:900px){body.is-admin main{max-width:1040px}}

/* Cuaderno privado: fichas cortas y edición por persona; nunca modifica el cartel público. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.book-nav{display:flex;gap:4px;background:#efdee5;padding:4px;border-radius:12px;margin:8px 0 12px}.book-nav[hidden],.notebook[hidden]{display:none!important}
.book-nav button{flex:1;border:0;min-height:43px;border-radius:9px;color:#71374e;background:transparent;font-weight:750}.book-nav button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #57304017;color:#9e2450}
body.is-admin.notebook-view #adminQuick,body.is-admin.notebook-view #paySummary,body.is-admin.notebook-view #adminTools,body.is-admin.notebook-view #adminGridMount,body.is-admin.notebook-view #adminGridNote,body.is-admin.notebook-view .legend{display:none!important}
body.is-admin.notebook-view #actions,body.is-admin.notebook-view #storyOpen,body.is-admin.notebook-view #transferOpen,body.is-admin.notebook-view .foot-actions{display:none!important}
/* El Cuaderno ya resume las fichas y los cobros; conservar solo la conexión. */
body.is-admin.notebook-view .statusbar{display:flex;justify-content:flex-end;padding:0;margin:4px 0;min-height:24px;background:transparent;border:0;box-shadow:none}
body.is-admin.notebook-view .statusbar>div:not(.connection){display:none}
body.is-admin.notebook-view .statusbar>.connection{padding:2px 0;margin:0;font-size:.78rem}
.book-heading,.book-person-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.book-heading h2{font-size:1.25rem;margin:5px 0 12px;color:#702140}.book-heading button{border:0;border-radius:10px;padding:10px 14px;font-weight:750;min-height:44px}
#bookSearch{width:100%;min-width:0;min-height:46px;font:inherit;border:1px solid #dfbfcb;border-radius:11px;padding:11px;background:#fff;margin:0 0 9px}
.book-filters{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding:2px 0 8px;scrollbar-width:thin}.book-filters button{flex:0 0 auto;white-space:nowrap;min-height:44px;border:1px solid #e3c9d3;border-radius:9px;background:#fff;padding:6px 9px;color:#73304c;font-size:.78rem;font-weight:650}.book-filters button[aria-pressed=true]{background:#7f2448;border-color:#7f2448;color:#fff}
.book-summary,.book-status{font-size:.78rem;line-height:1.4;color:#776472;margin:9px 2px}.book-status:empty{display:none}.book-list{display:grid;gap:10px}.book-person{border:1px solid #ead5de;border-radius:14px;padding:12px;background:#fff;min-width:0;box-shadow:0 2px 5px #65233e06}.book-person-heading h3{margin:0;font-size:1rem;color:#382b35;overflow-wrap:anywhere;min-width:0}.book-person-heading button{background:transparent;color:#8b2b50;border:1px solid #e6cfda;border-radius:9px;padding:7px 10px;min-height:39px;font-size:.8rem;font-weight:700;flex-shrink:0}
.book-ticket-chips{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.book-chip{min-width:39px;min-height:38px;padding:5px 8px;border-radius:9px;border:1px solid #d7cad1;color:#655363;font-weight:800;background:#f7f4f6}.book-chip.pending{background:#fff4df;border-color:#ebd0a0;color:#815117}.book-chip.paid{background:#e5f6eb;border-color:#bddfc9;color:#1c653e}.book-chip.paid:after{content:' ✓';font-size:.63rem}
.book-debt{font-size:.89rem;font-weight:750;margin:7px 0;color:#5d3847}.book-meta{font-size:.77rem;line-height:1.5;color:#7a6875;margin:5px 0 10px;overflow-wrap:anywhere}.book-person-actions{display:flex;gap:7px;flex-wrap:wrap}.book-person-actions a,.book-person-actions button{display:flex;align-items:center;justify-content:center;text-align:center;flex:1;min-height:43px;min-width:110px;text-decoration:none;border:1px solid #dec6d1;border-radius:9px;padding:8px;font:inherit;font-size:.79rem;font-weight:750;background:#fff;color:#81334f}.book-person-actions .book-remind{background:#e9f7ee;border-color:#c6e4d1;color:#17613c}.book-person-actions [aria-disabled=true],.book-person-actions button:disabled{opacity:.5;cursor:default}.book-empty{padding:18px 8px;text-align:center;color:#76606f;font-size:.9rem}
.book-dialog{width:min(96vw,510px);max-height:94dvh;overflow-y:auto;padding:17px 16px 0}.book-dialog h2{color:#8e294f;margin-bottom:15px}.book-dialog label{font-size:.88rem;font-weight:650;gap:6px;margin:10px 0}.book-dialog input,.book-dialog select{font:inherit;min-height:45px;min-width:0;border:1px solid #d4b2c1;border-radius:9px;background:#fff;color:#352a33;padding:9px;width:100%}.book-hint{font-size:.75rem;font-weight:400;color:#826c7b;line-height:1.4;margin:6px 0 10px}.book-dialog details{border:1px solid #e9d4df;border-radius:10px;padding:10px;margin:12px 0}.book-dialog summary{font-size:.85rem;font-weight:750;color:#8e3152;min-height:26px;cursor:pointer}.book-selected{display:grid;gap:5px}.book-number-status{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(125px,1fr);align-items:center;margin:0!important;gap:8px!important}.book-number-status strong{font-size:.85rem}.book-number-status select{padding:7px;font-size:.84rem;min-height:41px}
.book-picker{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;margin-top:11px}.book-picker button{font-size:clamp(11px,3.5vw,16px);font-weight:750;padding:0;min-width:0;min-height:39px;background:#fff;border:1px solid #bdc5cb;color:#38313a;border-radius:6px}.book-picker button.occupied{background:#fce8ed;border-color:#d9a4b6;color:#8f3456}.book-picker button[aria-pressed=true]{background:#8c2d53;border:2px solid #662440;color:#fff}.book-bulk{display:flex;gap:7px;margin:12px 0}.book-bulk button,#bookReload{border:1px solid #e3cad5;background:white;color:#84304d;border-radius:9px;padding:8px;min-height:40px;font-size:.75rem}.book-bulk button{flex:1}.book-message{font-size:.82rem;color:#913453;line-height:1.45;margin:9px 0}.book-footer{position:sticky;bottom:0;display:flex;gap:8px;padding:11px 0 16px;background:#fff}.book-footer button{flex:1;border:1px solid #d9b9c9;border-radius:10px;padding:11px;min-height:46px;font-weight:750;color:#84304d;background:#fff}.book-footer .primary{background:#ae2c5d;border-color:#ae2c5d;color:#fff}.book-footer button:disabled{opacity:.5}
@media(min-width:720px){.book-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

.admin-tools{border:1px solid #e6c8d5;border-radius:12px;padding:12px;background:#fff;margin:10px 0}
.admin-tools>label{font-size:.85rem;font-weight:750;color:#63374d}
.admin-tools input,.admin-tools textarea,.ticket-tools select{width:100%;padding:11px;border:1px solid #d6bdc9;border-radius:9px;font:inherit;min-height:44px}
.admin-tools details,.ticket-tools{border-top:1px solid #efdee5;margin-top:12px;padding-top:10px;font-size:.84rem;color:#60364c}
.admin-tools summary,.ticket-tools summary{min-height:36px;cursor:pointer;font-weight:750}
.admin-tools p{line-height:1.5;font-size:.8rem}
.admin-list{display:grid;gap:7px;max-height:290px;overflow:auto}
.admin-list button{min-height:44px;text-align:left;border:1px solid #e2c8d3;background:#fffbfd;border-radius:9px;padding:10px;color:#62334b}
#drawScheduleForm{display:grid;gap:8px}#drawScheduleForm label{display:grid;gap:4px}
#drawScheduleForm button,.ticket-tools button,.ticket-tools a{display:block;min-height:44px;padding:10px;border:1px solid #cdaaba;background:#fff;border-radius:9px;color:#7c2147;text-align:center;text-decoration:none;font-weight:700}
.ticket-tools label{margin:10px 0;font-size:.8rem}.ticket-tools p{font-size:.76rem;line-height:1.5}.template-actions{display:flex;gap:8px}.template-actions>*{flex:1}#proofList a{font-size:.8rem;margin:6px 0}
.draw-status,.official-result{padding:18px;border:1px solid #e6bfce;border-radius:16px;margin:0 0 12px;text-align:center;background:#fff}
.draw-status p{font-size:.86rem;margin:0 0 5px;color:#75425b}.draw-status strong{font:850 2.4rem/1.3 system-ui;font-variant-numeric:tabular-nums;color:#941e4c}
.official-result{background:#fff0f6}.official-result h2{font-size:1.35rem;color:#941e4c;margin:0 0 12px}.official-result p{font-size:.85rem;line-height:1.45;color:#63364c}.official-result>a{color:#8e2451;font-weight:700;font-size:.85rem}
.result-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.result-actions button{flex:1 1 120px;border:1px solid #d0a0b5;background:white;color:#7f2048;border-radius:10px;min-height:46px;padding:10px;font-weight:750}
.result-actions button:disabled{opacity:.5}
.draw-status[hidden],.official-result[hidden]{display:none!important}
.draw-status{padding:12px 14px;border-color:#d4bda5;background:#fffaf3;display:grid;gap:3px}
.draw-status strong{font-size:clamp(1.25rem,5.8vw,1.8rem);line-height:1.25;color:#805b45}
.draw-status p{font-size:.76rem;color:#6e5848;margin:0;line-height:1.4}
.official-result{padding:22px 18px;background:#fff8eb;border:1px solid #b98c6a;border-radius:24px 8px;color:#49372d}
.official-result .result-photo{display:block;width:142px;height:86px;object-fit:cover;object-position:60% 55%;border-radius:44% 44% 12px 12px;border:1px solid #b98c6a;padding:3px;margin:0 auto 12px}
.official-result h2{font:italic 600 clamp(24px,6.8vw,30px)/1.15 Georgia,serif;color:#915b3f;margin:0 0 6px;text-wrap:balance}
.official-result .result-ticket{display:block;font:850 clamp(80px,27vw,112px)/1.15 system-ui;color:#557486;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.official-result .result-congrats{font-size:.95rem;color:#805b45;margin:5px 0 15px}
.result-lottery{padding:12px;border:1px solid #c9dde3;border-radius:14px;background:#edf4f6}
.official-result .result-lottery p{margin:2px 0;color:#344b5a}.result-lottery #resultLottery{font-weight:750}.result-lottery #resultMajor{font-size:1.5rem;font-variant-numeric:tabular-nums;letter-spacing:.04em;margin-left:5px}.official-result .result-meta{font-size:.75rem;margin-top:8px}
.official-result .result-thanks{font:italic 600 20px/1.35 Georgia,serif;color:#915b3f;margin:16px 0 5px}.official-result .result-note{font-size:.74rem;color:#6e5848;margin:7px auto;max-width:32em}
.official-result>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:9px;color:#344b5a;font-size:.85rem;text-underline-offset:3px}
.result-sharing summary{min-height:44px;padding:12px;cursor:pointer;color:#6e5848;font-size:.8rem}.result-sharing .result-actions{margin:0}.result-sharing button{color:#344b5a;border-color:#c9dde3}
.draw-auto-policy{display:flex!important;align-items:center;gap:9px;line-height:1.4}.admin-tools .draw-auto-policy input{flex:0 0 20px;width:20px;min-height:20px;height:20px;padding:0}
body.is-admin .official-result{padding:14px;display:grid;grid-template-columns:76px minmax(0,1fr);gap:3px 10px;text-align:left}
body.is-admin .official-result .result-photo,body.is-admin .official-result .result-thanks{display:none}body.is-admin .official-result h2{grid-column:1/-1;font-size:1.1rem}body.is-admin .official-result .result-ticket{grid-column:1;grid-row:2/4;font-size:52px;align-self:center}body.is-admin .official-result .result-congrats{font-size:.75rem;margin:0}body.is-admin .official-result .result-lottery{grid-column:2;padding:7px}body.is-admin .official-result .result-note,body.is-admin .official-result>a,body.is-admin .official-result .result-sharing{grid-column:1/-1;margin:0}body.is-admin .official-result .result-lottery p{font-size:.75rem}body.is-admin .official-result .result-lottery #resultMajor{font-size:1.1rem}

/* Fechas privadas: botones compactos; el compromiso nunca marca un pago. */
.payment-dates{border-top:1px solid #efdee5;padding-top:9px;margin-top:8px;color:#76314e;font-size:.82rem}
.payment-date-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:7px}
.payment-date-buttons button{min-height:44px;min-width:0;border:1px solid #e2c8d3;border-radius:8px;background:#fff;color:#69334b;padding:6px 3px;font-size:clamp(.65rem,2.7vw,.8rem);font-weight:750}
#payDueOverdue{background:#fff0f1;color:#9c1732}#payDueToday{background:#fff7e8;color:#865108}

/* Analítica privada: mapa legible sin fotografías ni fichas privadas. */
.usage-dialog{width:min(100vw,760px);max-height:94dvh;overflow:auto;padding:16px;background:#fffaf8;color:#302431}
.usage-dialog [hidden]{display:none!important}.usage-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-16px;background:#fffaf8;padding:10px 0;z-index:1;border-bottom:1px solid #eedde3}.usage-heading h2{margin:0;color:#8e254e}
.usage-dialog button,.usage-dialog select{font:inherit;border:1px solid #d8bfca;border-radius:9px;background:#fff;color:#762946;padding:9px;min-height:44px;max-width:100%}
.usage-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}.usage-filters label{display:grid;gap:5px;min-width:0;font-size:.8rem}.usage-dialog select{width:100%;min-width:0}
.usage-note{font-size:.76rem;line-height:1.45;color:#746474;margin:8px 0}.usage-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}.usage-stat{background:#fff;border:1px solid #eedde4;border-radius:12px;padding:10px 7px;display:grid;gap:5px;text-align:center;min-width:0}.usage-stat strong{font-size:1.5rem;color:#92274c}.usage-stat span{font-size:.72rem;line-height:1.35}.usage-insight{font-size:.85rem;padding:10px;background:#f8edf1;border-radius:10px;line-height:1.5}
.usage-dialog section{margin:18px 0}.usage-dialog h3{font-size:1rem;margin:14px 0 9px}.usage-heat{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));gap:0;width:min(100%,370px);margin:10px auto;overflow:hidden;border:1px solid #dac9d1;border-radius:8px}.usage-poster-map{aspect-ratio:1135/1536;background:url('/base.webp?v=15') center/100% 100% no-repeat}.usage-number-map{aspect-ratio:1;background:#fff}
.usage-dialog .usage-cell{min-height:0;min-width:0;border-radius:0;border:1px solid #ffffff35;padding:0;font-size:.71rem;font-weight:750;line-height:1.1;background:transparent;color:#492837}.usage-dialog .usage-cell:focus-visible{outline:3px solid #242168;outline-offset:-3px}.usage-dialog .heat-0{background:transparent}
.usage-dialog .heat-1,.usage-scale .heat-1{background:#f5ceddd9;color:#492837}.usage-dialog .heat-2,.usage-scale .heat-2{background:#e9a2bed9;color:#492837}.usage-dialog .heat-3,.usage-scale .heat-3{background:#d96a95e0;color:#30202a}.usage-dialog .heat-4,.usage-scale .heat-4{background:#aa305ce6;color:#fff}.usage-dialog .heat-5,.usage-scale .heat-5{background:#741535ed;color:#fff}
.usage-scale{display:flex;justify-content:center;align-items:center;gap:4px;font-size:.72rem;color:#746474}.usage-scale i{width:24px;height:12px;border-radius:2px}.usage-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #f1e5e9;font-size:.83rem;line-height:1.45}.usage-row span:first-child{min-width:0;overflow-wrap:anywhere}.usage-row span:last-child{text-align:right;color:#736171;font-size:.75rem}
.usage-funnel-row{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:9px 0;border-bottom:1px solid #f1e5e9;font-size:.85rem}.usage-funnel-row small{grid-column:1/-1;color:#786574;font-size:.72rem}.usage-depth-row{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;font-size:.82rem;margin:12px 0}.usage-depth-row progress{width:100%;accent-color:#a12b58}.usage-empty{font-size:.83rem;color:#786574}
.usage-dialog details{margin:15px 0;border-top:1px solid #efdee6;padding-top:12px;font-size:.82rem;line-height:1.5}.usage-dialog summary{cursor:pointer;font-weight:650;min-height:34px}.usage-refresh{width:100%;margin-top:12px}.usage-privacy{font-size:.72rem;line-height:1.5;color:#796c75;margin-top:16px}.usage-privacy summary{cursor:pointer;width:max-content;padding:8px 0}.usage-privacy p{max-width:55ch}.usage-privacy label{display:flex;align-items:center;gap:8px;min-height:40px}.usage-privacy input{width:18px;height:18px}
@media(max-width:500px){.usage-dialog{width:100vw;max-width:none;height:100dvh;max-height:100dvh;margin:0;border-radius:0;padding:12px}.usage-heading{top:-12px}.usage-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.usage-filters label:last-child{grid-column:1/-1}.usage-stat strong{font-size:1.35rem}.usage-dialog .usage-cell{font-size:.67rem}}


/* Cuaderno: atribución editable en una sola vista, sin modificar pagos. */
.book-seller-panel{padding:10px 12px;margin:8px 0 12px;border:1px solid #e4ced8;border-radius:12px;background:#fffafc}
.book-seller-panel summary{font-size:.84rem;font-weight:800;min-height:30px;color:#7d2b4c;cursor:pointer}
.book-seller-panel p{margin:9px 0 2px}
.book-seller-dialog{width:min(96vw,510px)}
.book-seller-bulk{padding:10px;background:#f6edf1;border-radius:10px}
.book-seller-bulk label{font-size:.82rem;font-weight:750;display:block;margin-bottom:6px}
.book-seller-bulk>div{display:flex;gap:7px}
.book-seller-bulk input,.book-seller-name input{font:inherit;min-height:44px;min-width:0;width:100%;background:white;border:1px solid #d7b9c7;border-radius:9px;padding:9px}
.book-seller-bulk button{font:inherit;min-height:44px;border:0;border-radius:9px;background:#893255;color:#fff;font-weight:800;padding:7px 12px}
.book-seller-rows{display:grid;gap:9px;margin:12px 0;max-height:47dvh;overflow-y:auto}
.book-seller-line{padding:10px;border:1px solid #ead5de;border-radius:10px;display:grid;gap:7px}
.book-seller-name{display:grid;grid-template-columns:70px minmax(0,1fr);align-items:center;gap:8px;font-size:.82rem;margin:0!important}
.book-seller-name strong{color:#722743}
.book-seller-flag{display:flex!important;gap:8px!important;align-items:center!important;justify-content:flex-start;font-size:.8rem!important;font-weight:650!important;margin:0!important}
.book-seller-flag input{width:19px!important;height:19px!important;accent-color:#a5214e}
.book-seller-line small{font-size:.72rem;color:#775b6a}
#bookSellerReload{min-height:44px;border:1px solid #bd94a7;border-radius:8px;color:#762946;background:white;padding:9px}
#bookSellerReload[hidden]{display:none}

.book-chip.seller-disputed{outline:2px solid #b32744;outline-offset:1px}
.book-chip.seller-unassigned{border-style:dashed}


/* Cuaderno: selección explícita, táctil y compacta para reconocer ventas.
 * El perfil es por navegador y solo se dibuja tras sesión de administrador. */
.claim-panel{background:#fff;border:1px solid #e6cbd6;border-radius:12px;padding:11px;margin:10px 0 12px}
.claim-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;cursor:pointer;list-style:none}.claim-heading::-webkit-details-marker{display:none}.claim-heading::after{content:"▾";color:#782343}.claim-panel[open]>.claim-heading::after{content:"▴"}.claim-heading:focus-visible{outline:3px solid #915b3f;outline-offset:3px;border-radius:5px}
.claim-heading strong{margin:0;color:#782343;font-size:.92rem}
.claim-heading span{max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;color:#6b3950;background:#faeaf0;padding:5px 8px;border-radius:20px;font-weight:750}
.claim-register{padding-top:8px}.claim-register>label{font-weight:750;font-size:.82rem}
.claim-input-row{display:flex;gap:6px;margin-top:6px}
.claim-input-row input,.claim-filters input[type=search]{border:1px solid #dfbccb;border-radius:9px;background:white;padding:8px;min-width:0;width:100%;min-height:44px;font:inherit}
.claim-input-row button{min-width:75px;border:0;background:#843052;color:#fff;border-radius:9px;padding:8px;font-weight:750;min-height:44px}
.claim-panel .book-hint{font-size:.76rem;line-height:1.4;color:#705766;margin:8px 0}
.claim-actions{display:flex;gap:7px;margin-top:10px}
.claim-actions button{flex:1;border:1px solid #d8b9c8;border-radius:9px;min-height:43px;background:#fff;color:#76334d;font-size:.8rem;font-weight:750}
.claim-actions button:last-child{background:#8b2b53;color:white}
.claim-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0}
.claim-filters label{font-size:.76rem;display:flex;align-items:center;gap:6px}
.claim-filters label input{height:18px;width:18px;accent-color:#9c2952}
.claim-filters input[type=search]{flex:1 1 150px}
.claim-list{max-height:41dvh;overflow-y:auto;display:grid;gap:6px}
.claim-ticket{border:1px solid #e5d5dc;border-radius:9px;padding:8px;display:grid;grid-template-columns:22px 33px minmax(0,1fr);align-items:center;gap:9px;min-height:52px;background:#fff}
.claim-ticket.claim-selected{background:#f9ebf1;border-color:#a94d70}
.claim-ticket input{height:20px;width:20px;accent-color:#922a54}
.claim-ticket strong{color:#7b274a}
.claim-ticket-detail{min-width:0;display:grid;font-size:.79rem}
.claim-ticket-detail b{font-weight:650;overflow-wrap:anywhere}
.claim-ticket-detail small{font-size:.72rem;color:#856879}
#claimSave{width:100%;min-height:46px;border-radius:9px;border:0;margin-top:8px;background:#8e2f55;color:#fff;font-weight:800}
#claimSave:disabled{opacity:.5}
.claim-message{font-size:.78rem;color:#725363;margin:9px 0 0;line-height:1.4}
.claim-message:empty{display:none}

/* El reloj comparte la barra existente del administrador, sin desplazar sus fichas. */
body.is-admin .statusbar{flex-wrap:wrap}
body.is-admin .statusbar #drawStatus{flex:1.7;margin:0;padding:0;border:0;background:transparent;min-width:0;text-align:left}
body.is-admin .statusbar #drawCountdown{font-size:.95rem;line-height:1.4}
body.is-admin:not(.notebook-view) .statusbar #drawStatus{flex-basis:100%;text-align:center;padding:0 0 5px}
