:root{
  --primary:#0d5af5;--primary-dark:#0645ca;--ink:#0d1b35;--muted:#69758c;--surface:#fff;--canvas:#f5f7fb;
  --line:#e7ebf2;--green:#18a957;--green-soft:#effbf4;--red:#ef3340;--red-soft:#fff1f2;
  --purple:#7a42e8;--purple-soft:#f5f0ff;--shadow:0 10px 35px rgba(24,39,75,.08);--radius:20px;
}
*{box-sizing:border-box}html{background:var(--canvas)}body{margin:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.app-body{min-height:100vh;background:var(--canvas);padding-bottom:92px}.min-w-0{min-width:0}
.app-header{position:sticky;top:0;z-index:1020;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(231,235,242,.85)}.app-header__inner{max-width:1180px;margin:auto;height:68px;padding:0 18px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:800;font-size:1.05rem}.brand__icon{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--primary),#6b43ff);color:#fff;display:grid;place-items:center}.header-actions{display:flex;align-items:center;gap:10px}.icon-button{width:40px;height:40px;border:1px solid var(--line);background:#fff;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none}.user-chip{max-width:190px;align-items:center;gap:8px;padding:5px 10px 5px 5px;border:1px solid var(--line);border-radius:999px;font-size:.85rem}.user-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eaf0ff;color:var(--primary);font-weight:800}
.app-main{max-width:1180px;margin:0 auto;padding:20px 16px 36px}.raffle-hero,.numbers-panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius)}.raffle-hero{padding:18px}.raffle-hero.compact{margin-bottom:16px}.raffle-hero__top{display:flex;align-items:center;gap:12px}.back-button{flex:0 0 auto;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#f2f5fa;color:var(--ink);text-decoration:none;font-size:1.2rem}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.page-title{font-size:1.45rem;font-weight:850;margin:2px 0 6px}.raffle-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:.84rem}.btn-soft-primary{color:var(--primary);background:#edf3ff;border:1px solid #d8e5ff;font-weight:700}.btn-soft-primary:hover{background:#e0ebff;color:var(--primary-dark)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.stat-card{position:relative;overflow:hidden;min-height:105px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:15px;display:flex;flex-direction:column;justify-content:flex-end}.stat-card__icon{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:11px;display:grid;place-items:center}.stat-card strong{font-size:1.35rem;line-height:1.1}.stat-card small{color:var(--muted);margin-top:5px}.stat-card--blue{background:#f2f6ff}.stat-card--blue .stat-card__icon{background:#dce7ff;color:var(--primary)}.stat-card--green{background:var(--green-soft)}.stat-card--green .stat-card__icon{background:#d8f5e4;color:var(--green)}.stat-card--red{background:var(--red-soft)}.stat-card--red .stat-card__icon{background:#ffdfe2;color:var(--red)}.stat-card--purple{background:var(--purple-soft)}.stat-card--purple .stat-card__icon{background:#e6dcff;color:var(--purple)}
.numbers-panel{padding:16px}.filter-pills{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.filter-pills::-webkit-scrollbar{display:none}.filter-pill{white-space:nowrap;border:1px solid var(--line);background:#fff;color:#4b5870;border-radius:12px;padding:10px 14px;font-weight:700;font-size:.86rem}.filter-pill.active{background:var(--primary);border-color:var(--primary);color:#fff}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.status-dot--available{background:var(--green)}.status-dot--occupied{background:var(--red)}
.search-box{height:50px;margin-top:12px;border:1px solid var(--line);border-radius:14px;background:#fafbfd;display:flex;align-items:center;padding:0 14px;gap:10px}.search-box>i{color:#7a879b}.search-box input{min-width:0;flex:1;border:0;outline:0;background:transparent;font-size:16px;color:var(--ink)}.search-box__clear{border:0;background:transparent;color:#9aa4b5;display:none}.search-box.has-value .search-box__clear{display:block}.numbers-legend{display:flex;gap:18px;padding:15px 2px 12px;font-size:.78rem;color:var(--muted)}
.numbers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:9px}.number-tile{aspect-ratio:1/1;min-width:0;border-radius:13px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;transition:transform .15s ease,box-shadow .15s ease;border:1px solid}.number-tile strong{font-size:clamp(.82rem,2vw,1rem);font-variant-numeric:tabular-nums}.number-tile__dot{width:6px;height:6px;border-radius:50%}.number-tile--available{color:#087631;border-color:#9bdfb7;background:linear-gradient(180deg,#fbfffc,var(--green-soft))}.number-tile--available .number-tile__dot{background:var(--green)}.number-tile--occupied{color:#d71927;border-color:#ff9ca4;background:linear-gradient(180deg,#fff,var(--red-soft))}.number-tile--occupied .number-tile__dot{background:var(--red)}.number-tile:active{transform:scale(.94)}.number-tile:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(24,39,75,.1)}.number-tile.is-hidden{display:none}.empty-state{padding:38px 10px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:6px}.empty-state i{font-size:2rem;color:#aab3c2}.empty-state strong{color:var(--ink)}
.bottom-sheet .modal-content{border:0;border-radius:24px;box-shadow:0 -15px 50px rgba(16,28,55,.2)}.sheet-handle{display:none}.number-summary{display:flex;align-items:center;gap:14px}.number-summary__badge{width:72px;height:72px;border-radius:17px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-size:1.65rem;font-weight:900;font-variant-numeric:tabular-nums}.number-summary__badge.occupied{background:var(--red);color:#fff}.status-badge{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:800}.status-badge--available{color:#087631;background:#dff7e8}.status-badge--occupied{color:#d71927;background:#ffe1e4}.form-floating>.form-control{border-radius:14px;border-color:var(--line)}.form-help{font-size:.78rem;color:var(--muted)}.btn-lg{border-radius:14px;font-weight:750}.btn-primary{background:var(--primary);border-color:var(--primary)}
.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:1040;height:74px;padding:7px 10px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);display:none;grid-template-columns:repeat(5,1fr);align-items:center;box-shadow:0 -8px 28px rgba(24,39,75,.08)}.mobile-nav__item{color:#667187;text-decoration:none;text-align:center;font-size:.67rem;display:flex;flex-direction:column;align-items:center;gap:3px}.mobile-nav__item i{font-size:1.25rem}.mobile-nav__create{justify-self:center;align-self:start;transform:translateY(-21px);width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),#1845dc);color:#fff;text-decoration:none;font-size:1.7rem;box-shadow:0 10px 24px rgba(13,90,245,.35);border:5px solid #fff}
/* Dashboard and lists */.page-shell{max-width:1180px;margin:auto;padding:22px 16px}.welcome-card{background:linear-gradient(135deg,#0d5af5,#6944ef);color:#fff;border-radius:24px;padding:26px;box-shadow:0 14px 34px rgba(13,90,245,.22)}.raffle-list{display:grid;gap:14px}.raffle-card{display:block;color:inherit;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:20px;padding:17px;box-shadow:var(--shadow)}.raffle-card__header{display:flex;justify-content:space-between;gap:10px}.raffle-card__title{font-size:1.05rem;font-weight:850}.progress-soft{height:7px;background:#edf0f5;border-radius:99px;overflow:hidden}.progress-soft span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),#6549ef);border-radius:99px}.badge-soft{padding:6px 9px;border-radius:999px;background:#e4f7eb;color:#158444;font-size:.72rem;font-weight:800}.section-title{font-weight:850;font-size:1.18rem;margin:24px 0 12px}.desktop-action{display:inline-flex}
@media(max-width:767.98px){
  .app-body{padding-bottom:94px}.app-header__inner{height:60px}.brand span:last-child{display:none}.app-main{padding:14px 10px 28px}.mobile-nav{display:grid}.raffle-hero{border-radius:18px;padding:14px}.page-title{font-size:1.18rem}.raffle-meta{font-size:.76rem;gap:5px 12px}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stat-card{min-height:87px;padding:10px 7px;text-align:center;align-items:center}.stat-card__icon{display:none}.stat-card strong{font-size:clamp(.84rem,3.7vw,1.05rem);max-width:100%;overflow:hidden;text-overflow:ellipsis}.stat-card small{font-size:.64rem}.numbers-panel{padding:12px;border-radius:18px}.numbers-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.number-tile{border-radius:10px;gap:5px}.number-tile strong{font-size:.78rem}.numbers-legend{padding-top:12px}.bottom-sheet .modal-dialog{position:fixed;left:0;right:0;bottom:0;margin:0;max-width:none;align-items:flex-end}.bottom-sheet .modal-content{border-radius:24px 24px 0 0;max-height:88vh;padding-bottom:env(safe-area-inset-bottom)}.sheet-handle{display:block;width:48px;height:5px;border-radius:99px;background:#cbd1db;margin:9px auto 0}.bottom-sheet.fade .modal-dialog{transform:translateY(100%)}.bottom-sheet.show .modal-dialog{transform:none}.modal-header{padding-left:16px;padding-right:16px}.modal-body{padding-left:16px;padding-right:16px}.desktop-action{display:none}.page-shell{padding:14px 10px}.welcome-card{padding:20px;border-radius:20px}}
@media(max-width:390px){.numbers-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.number-tile{border-radius:9px}.number-tile strong{font-size:.72rem}.stats-grid{gap:5px}.stat-card{padding-inline:4px}}
.min-h-0{min-height:0!important}.py-2.stat-card{justify-content:center}.py-2.stat-card strong{font-size:1rem}

/* Visibilidad pública/privada v2.2 */
.visibility-options{display:grid;grid-template-columns:1fr;gap:.75rem}.visibility-card{position:relative;display:flex;align-items:flex-start;gap:.9rem;padding:1rem;border:1.5px solid #dfe5ef;border-radius:1rem;background:#fff;cursor:pointer;transition:.2s}.visibility-card:has(input:checked){border-color:#0d5af5;background:#f2f7ff;box-shadow:0 0 0 3px rgba(13,90,245,.09)}.visibility-card input{position:absolute;opacity:0}.visibility-card__icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:12px;background:#eaf1ff;color:#0d5af5;font-size:1.2rem}.visibility-card strong,.visibility-card small{display:block}.visibility-card small{margin-top:.2rem;color:#687386;line-height:1.35}.badge-soft--public{background:#eafaf0;color:#168243}.badge-soft--private{background:#f0f2f5;color:#596273}.visibility-mini{font-size:.72rem;color:#687386}.share-panel,.private-notice{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:1rem;border-radius:1rem;background:#fff;box-shadow:0 8px 28px rgba(35,46,74,.06)}.private-notice{justify-content:flex-start;background:#f5f6f8;color:#596273}.private-notice>i{font-size:1.4rem}.public-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:rgba(255,255,255,.95);border-bottom:1px solid #edf0f4;backdrop-filter:blur(12px)}.public-page .app-main{padding-bottom:2rem}.public-privacy-note{display:flex;align-items:flex-start;gap:.65rem;margin-top:1rem;padding:.85rem;border-radius:.85rem;background:#f2f7ff;color:#46607f;font-size:.82rem}.public-page .number-tile{cursor:default}@media(min-width:768px){.visibility-options{grid-template-columns:1fr 1fr}.public-header{padding-left:max(1rem,calc((100vw - 920px)/2));padding-right:max(1rem,calc((100vw - 920px)/2))}}

/* Premios incrementales e imágenes - v2.3 */
.prize-form-list{display:grid;gap:1rem}.prize-form-card{border:1px solid #e5eaf2;border-radius:1rem;padding:1rem;background:#fff}.prize-form-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.prize-position{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#eaf1ff;color:#075af5;font-weight:800;margin-right:.6rem}.prize-image-preview{position:relative;margin-top:.75rem;width:100%;max-width:280px;aspect-ratio:16/10;border-radius:.9rem;overflow:hidden;background:#f4f6fa}.prize-image-preview img{width:100%;height:100%;object-fit:cover}.remove-preview{position:absolute;right:.5rem;top:.5rem;width:2rem;height:2rem;border:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff}.prize-display-grid{display:grid;gap:1rem}.prize-display-card{display:flex;align-items:center;background:#fff;border-radius:1rem;overflow:hidden;box-shadow:0 8px 24px rgba(20,35,70,.08)}.prize-display-card__image,.prize-display-card__placeholder{width:100px;height:90px;flex:0 0 100px;object-fit:cover}.prize-display-card__placeholder{display:grid;place-items:center;background:#eef3ff;color:#075af5;font-size:2rem}.prize-thumb{width:58px;height:58px;object-fit:cover;border-radius:.8rem;flex:0 0 58px}@media(min-width:768px){.prize-display-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prize-form-card{padding:1.25rem}}

/* Sorteo visual adaptativo - v2.4 */
.draw-page{background:radial-gradient(circle at 50% -10%,#e9efff 0,#f5f7fb 36%,#f5f7fb 100%)}
.draw-stage,.draw-results-panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:18px;margin-top:16px}
.draw-stage{overflow:hidden;position:relative}.draw-stage:before{content:"";position:absolute;width:250px;height:250px;border-radius:50%;background:rgba(13,90,245,.06);right:-120px;top:-140px;pointer-events:none}
.draw-stage__header{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.draw-stage__header h2{font-size:1.28rem;font-weight:850;margin:10px 0 3px}.draw-stage__header p{margin:0;color:var(--muted);font-size:.9rem}.draw-live-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#eef3ff;color:var(--primary);font-size:.73rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.draw-counter{white-space:nowrap;background:#f5f7fb;border-radius:13px;padding:9px 12px;color:var(--muted)}.draw-counter strong{color:var(--primary);font-size:1.25rem}
.current-prize{display:flex;align-items:center;gap:12px;margin:18px 0 14px;padding:12px;border:1px solid #e5eaff;border-radius:16px;background:linear-gradient(135deg,#f7f9ff,#fff)}.current-prize__media{width:58px;height:58px;flex:0 0 58px;border-radius:14px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#0d5af5,#7149ed);color:#fff;font-size:1.45rem}.current-prize__media img{width:100%;height:100%;object-fit:cover}.current-prize small,.current-prize strong,.current-prize span{display:block}.current-prize small{font-size:.68rem;color:var(--muted);text-transform:uppercase;font-weight:800}.current-prize strong{font-size:1rem;margin:2px 0}.current-prize span{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.draw-focus{text-align:center;padding:18px 12px;margin-bottom:14px;border-radius:18px;background:linear-gradient(135deg,#0b1730,#172b54);color:#fff;box-shadow:0 14px 30px rgba(13,28,57,.18);transition:.25s}.draw-focus__label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#aab9d7}.draw-focus strong{display:block;font-size:clamp(2.5rem,10vw,5rem);line-height:1;font-variant-numeric:tabular-nums;margin:8px 0}.draw-focus div{color:#dce5f8;font-weight:700;min-height:24px}.draw-focus.is-revealed{transform:scale(1.015);background:linear-gradient(135deg,#0b7d3d,#13ad5b);box-shadow:0 14px 36px rgba(24,169,87,.3)}
.draw-matrix{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:7px;max-height:350px;overflow:auto;padding:4px 2px 12px;scrollbar-width:thin}.draw-number{aspect-ratio:1/1;border:1px solid #dfe5ef;border-radius:11px;background:#f9fafc;color:#526079;font-weight:850;font-size:.78rem;font-variant-numeric:tabular-nums;transition:transform .08s,background .08s,color .08s,box-shadow .08s}.draw-number.is-active{background:#0d5af5;color:#fff;border-color:#0d5af5;transform:scale(1.08);box-shadow:0 0 0 4px rgba(13,90,245,.16),0 8px 20px rgba(13,90,245,.28)}.draw-number.is-winner{background:#18a957;color:#fff;border-color:#18a957;box-shadow:0 0 0 3px rgba(24,169,87,.16)}
.draw-actions{margin-top:16px}.draw-security-note{display:flex;align-items:flex-start;gap:7px;color:var(--muted);font-size:.74rem;line-height:1.35;margin-top:10px}.draw-security-note i{color:var(--green);font-size:1rem}
.draw-results{display:grid;gap:10px}.winner-card{position:relative;display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}.winner-card--new{animation:winnerIn .45s ease both}.winner-card__position{position:absolute;left:4px;top:4px;z-index:2;min-width:25px;height:25px;padding:0 5px;border-radius:8px;background:#0d5af5;color:#fff;display:grid;place-items:center;font-size:.68rem;font-weight:900}.winner-card__image{width:62px;height:62px;flex:0 0 62px;border-radius:13px;object-fit:cover}.winner-card__placeholder{display:grid;place-items:center;background:#eef3ff;color:#0d5af5;font-size:1.4rem}.winner-card__info small,.winner-card__info strong,.winner-card__info span{display:block}.winner-card__info small{color:var(--muted);font-size:.72rem}.winner-card__info strong{font-size:1.15rem;color:var(--ink)}.winner-card__info span{font-size:.82rem;color:#526079;max-width:220px}@keyframes winnerIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:767.98px){.draw-stage,.draw-results-panel{padding:13px;border-radius:18px}.draw-stage__header h2{font-size:1.08rem}.draw-matrix{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-height:310px}.draw-number{font-size:.72rem;border-radius:9px}.draw-focus{padding:15px 10px}.draw-focus strong{font-size:3rem}.current-prize{margin-top:14px}.draw-results-panel{margin-bottom:80px}}
@media(min-width:768px){.draw-results{grid-template-columns:repeat(2,minmax(0,1fr))}.draw-matrix{grid-template-columns:repeat(auto-fill,minmax(68px,1fr))}}

/* Vista pública con estado y ganadores - v2.5 */
.public-raffle-shell{max-width:920px}.public-raffle-hero{margin-top:2px}.public-status-banner{display:flex;align-items:flex-start;gap:14px;padding:17px;border-radius:20px;border:1px solid;box-shadow:var(--shadow)}.public-status-banner__icon{width:46px;height:46px;flex:0 0 46px;border-radius:14px;display:grid;place-items:center;font-size:1.25rem}.public-status-banner__eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:900;margin-bottom:3px}.public-status-banner h2{font-size:1.08rem;font-weight:850;margin:0 0 5px}.public-status-banner p{font-size:.86rem;margin:0 0 8px}.public-status-banner--open{background:linear-gradient(135deg,#effcf4,#fff);border-color:#b7ebc9;color:#116f3a}.public-status-banner--open .public-status-banner__icon{background:#d8f7e4;color:#15934d}.public-status-banner--closed{background:linear-gradient(135deg,#fff8e8,#fff);border-color:#f2d79b;color:#855810}.public-status-banner--closed .public-status-banner__icon{background:#ffebbd;color:#a56900}.public-status-banner--finished{background:linear-gradient(135deg,#f4efff,#fff);border-color:#d9c9ff;color:#5b35a9}.public-status-banner--finished .public-status-banner__icon{background:#e5d9ff;color:#7040cf}.draw-date-chip{display:inline-flex;align-items:center;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.78);font-size:.8rem;color:inherit}.countdown-card{margin-top:12px;padding:14px 16px;background:#0d1b35;color:#fff;border-radius:18px;box-shadow:0 12px 28px rgba(13,27,53,.16)}.countdown-card__label{display:block;color:#b8c5dd;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;margin-bottom:10px}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.countdown-grid div{background:rgba(255,255,255,.08);border-radius:12px;padding:9px 4px;text-align:center}.countdown-grid strong,.countdown-grid span{display:block}.countdown-grid strong{font-size:1.2rem;font-variant-numeric:tabular-nums}.countdown-grid span{font-size:.62rem;color:#b8c5dd;text-transform:uppercase}.public-stats{margin-bottom:0}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.public-winners-section{padding:18px;background:linear-gradient(135deg,#fffdf4,#fff);border:1px solid #f1e1a8;border-radius:20px;box-shadow:var(--shadow)}.badge-soft--winner{background:#fff2bd;color:#896100}.public-winners-grid{display:grid;gap:12px}.public-winner-card{display:flex;align-items:stretch;overflow:hidden;background:#fff;border:1px solid #ece8d6;border-radius:18px;box-shadow:0 8px 24px rgba(51,43,12,.06)}.public-winner-card__image{width:110px;min-height:125px;flex:0 0 110px;object-fit:cover}.public-winner-card__placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#fff4c7,#ffdf73);color:#8c6500;font-size:2rem}.public-winner-card__body{padding:13px 14px;min-width:0;flex:1}.public-winner-card__position{font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#976c00}.public-winner-card h3{font-size:1rem;font-weight:850;margin:3px 0}.public-winner-card p{font-size:.75rem;color:var(--muted);margin:0 0 8px}.public-winning-number{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;padding:8px 10px;background:#f8fafc;border-radius:12px}.public-winning-number span{font-size:.7rem;color:var(--muted)}.public-winning-number strong{font-size:1.2rem;color:var(--primary);font-variant-numeric:tabular-nums}.public-winner-name{font-size:.8rem;font-weight:750;color:#43516a}.public-page .prize-display-card{box-shadow:0 6px 22px rgba(24,39,75,.06)}
@media(max-width:767.98px){.public-status-banner{padding:14px;gap:11px;border-radius:17px}.public-status-banner__icon{width:40px;height:40px;flex-basis:40px;border-radius:12px}.public-status-banner h2{font-size:.98rem}.public-status-banner p{font-size:.78rem}.countdown-card{border-radius:16px;padding:12px}.countdown-grid{gap:5px}.countdown-grid strong{font-size:1.05rem}.public-winners-section{padding:13px;border-radius:18px}.public-winner-card__image{width:88px;flex-basis:88px;min-height:112px}.public-winner-card__body{padding:10px 11px}.public-winning-number strong{font-size:1.08rem}}
@media(min-width:768px){.public-winners-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* =========================================================
   RIFA-GO v2.6 — FUTURE PURPLE UI
   Capa exclusivamente visual. No modifica lógica de negocio.
   ========================================================= */
:root{
  --primary:#7c3aed;--primary-dark:#5b21b6;--primary-light:#a78bfa;
  --ink:#171225;--muted:#746d85;--surface:rgba(255,255,255,.88);--canvas:#f8f6ff;
  --line:#e9e2f7;--purple:#8b5cf6;--purple-soft:#f2edff;
  --green:#10b981;--green-soft:#ecfdf5;--red:#f43f5e;--red-soft:#fff1f4;
  --shadow:0 14px 38px rgba(67,35,120,.10);--radius:22px;
}
html{background:#f8f6ff}body,.app-body{background:radial-gradient(circle at 8% 0%,rgba(139,92,246,.12),transparent 28%),radial-gradient(circle at 96% 8%,rgba(217,70,239,.08),transparent 24%),linear-gradient(180deg,#fbfaff 0%,#f7f4fd 100%);background-attachment:fixed;color:var(--ink)}
::selection{background:#ddd0ff;color:#35126e}
.app-header{background:rgba(250,248,255,.78);border-color:rgba(124,58,237,.10);box-shadow:0 8px 30px rgba(65,35,110,.04)}
.brand__icon{background:linear-gradient(135deg,#6d28d9,#a855f7 62%,#d946ef);box-shadow:0 8px 22px rgba(124,58,237,.28);transition:transform .3s ease,box-shadow .3s ease}.brand:hover .brand__icon{transform:rotate(-6deg) scale(1.08);box-shadow:0 12px 28px rgba(124,58,237,.38)}
.icon-button,.back-button{transition:all .22s ease}.icon-button:hover,.back-button:hover{color:#7c3aed;border-color:#cdb9f6;background:#f4efff;transform:translateY(-2px)}
.user-avatar{background:linear-gradient(135deg,#ede9fe,#fae8ff);color:#6d28d9}.user-chip{background:rgba(255,255,255,.72)}
.raffle-hero,.numbers-panel,.raffle-card,.share-panel,.private-notice,.prize-form-card,.prize-display-card,.winner-card{background:rgba(255,255,255,.86);border-color:rgba(124,58,237,.10);backdrop-filter:blur(16px);box-shadow:var(--shadow)}
.raffle-hero,.numbers-panel,.raffle-card,.stat-card,.prize-display-card,.public-winner-card{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,border-color .25s ease}
.raffle-card:hover{transform:translateY(-5px);border-color:#d7c4ff;box-shadow:0 20px 46px rgba(84,45,145,.15)}
.welcome-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#4c1d95 0%,#7c3aed 48%,#c026d3 100%);box-shadow:0 20px 50px rgba(91,33,182,.25)}.welcome-card:after{content:"";position:absolute;width:190px;height:190px;border-radius:50%;right:-65px;top:-90px;background:rgba(255,255,255,.14);filter:blur(2px)}
.btn{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.97)}
.btn-primary{background:linear-gradient(135deg,#6d28d9,#9333ea);border-color:transparent;box-shadow:0 8px 20px rgba(124,58,237,.22)}.btn-primary:hover,.btn-primary:focus{background:linear-gradient(135deg,#5b21b6,#7e22ce);border-color:transparent;box-shadow:0 12px 26px rgba(124,58,237,.32)}
.btn-soft-primary{color:#6d28d9;background:#f3efff;border-color:#dfd3fa}.btn-soft-primary:hover{color:#4c1d95;background:#e9e0ff;border-color:#cbb7f7}
.progress-soft{background:#eee9f6}.progress-soft span{background:linear-gradient(90deg,#6d28d9,#a855f7,#d946ef);background-size:180% 100%;animation:purpleFlow 3.5s ease infinite}
.filter-pill{transition:all .2s ease}.filter-pill:hover{border-color:#cbb7f7;background:#f7f3ff;color:#6d28d9;transform:translateY(-1px)}.filter-pill.active{background:linear-gradient(135deg,#6d28d9,#9333ea);border-color:transparent;box-shadow:0 7px 18px rgba(124,58,237,.22)}
.search-box{background:rgba(255,255,255,.72);transition:all .22s ease}.search-box:focus-within{background:#fff;border-color:#a78bfa;box-shadow:0 0 0 4px rgba(124,58,237,.10),0 10px 26px rgba(70,35,120,.08);transform:translateY(-1px)}
.stat-card--blue{background:linear-gradient(145deg,#f3efff,#faf8ff)}.stat-card--blue .stat-card__icon{background:#e7ddff;color:#6d28d9}.stat-card--purple{background:linear-gradient(145deg,#f8edff,#fff)}.stat-card--purple .stat-card__icon{background:#eedcff;color:#9333ea}.stat-card:hover{transform:translateY(-3px);box-shadow:0 13px 28px rgba(72,39,120,.10)}
.number-tile{position:relative;overflow:hidden;will-change:transform}.number-tile:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.75) 48%,transparent 76%);transform:translateX(-140%);transition:transform .55s ease}.number-tile:hover:before{transform:translateX(140%)}.number-tile:hover{transform:translateY(-4px) scale(1.025);box-shadow:0 12px 25px rgba(74,39,120,.14)}
.number-tile--available{color:#08795a;border-color:#9ce4ce;background:linear-gradient(160deg,#fff,#ecfdf5)}.number-tile--occupied{color:#d72c4d;border-color:#ffb1c0;background:linear-gradient(160deg,#fff,#fff0f4)}
.mobile-nav{background:rgba(252,250,255,.91);border-color:rgba(124,58,237,.12);backdrop-filter:blur(20px);box-shadow:0 -10px 32px rgba(62,34,104,.08)}.mobile-nav__item{transition:color .2s ease,transform .2s ease}.mobile-nav__item:hover{color:#7c3aed;transform:translateY(-2px)}.mobile-nav__create{background:linear-gradient(135deg,#6d28d9,#a855f7 65%,#d946ef);box-shadow:0 12px 30px rgba(124,58,237,.40);transition:transform .22s ease,box-shadow .22s ease}.mobile-nav__create:hover{transform:translateY(-24px) scale(1.08);box-shadow:0 16px 34px rgba(124,58,237,.48)}
.visibility-card{background:rgba(255,255,255,.82);transition:all .22s ease}.visibility-card:hover{transform:translateY(-3px);border-color:#cdb9f6;box-shadow:0 12px 28px rgba(76,37,135,.10)}.visibility-card:has(input:checked){border-color:#8b5cf6;background:#f6f1ff;box-shadow:0 0 0 3px rgba(124,58,237,.10)}.visibility-card__icon,.prize-position{background:#ede9fe;color:#6d28d9}
.prize-display-card:hover,.public-winner-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(78,43,130,.13)}.prize-display-card__placeholder{background:#f1ecff;color:#7c3aed}
.current-prize{border-color:#dfd3fa;background:linear-gradient(135deg,#f7f3ff,#fff)}.current-prize__media{background:linear-gradient(135deg,#6d28d9,#a855f7)}
.draw-focus{background:radial-gradient(circle at 50% -40%,#9333ea 0%,#35145f 45%,#171022 100%);box-shadow:0 18px 42px rgba(55,21,95,.28)}.draw-number.is-active{background:#7c3aed;color:#fff;border-color:#7c3aed;box-shadow:0 0 0 4px rgba(124,58,237,.18),0 8px 24px rgba(124,58,237,.36)}.winner-card__position{background:linear-gradient(135deg,#6d28d9,#a855f7)}
.public-header{background:rgba(250,248,255,.82);border-color:rgba(124,58,237,.10)}.countdown-card{background:radial-gradient(circle at 50% 0%,#6d28d9,#2b173f 55%,#171022);box-shadow:0 16px 36px rgba(56,25,94,.22)}.public-status-banner--finished{background:linear-gradient(135deg,#f5efff,#fff);border-color:#d8c5ff;color:#54259a}.public-status-banner--finished .public-status-banner__icon{background:#e8ddff;color:#7c3aed}.public-winners-section{background:linear-gradient(135deg,#fffaf0,#fff,#faf5ff);border-color:#ead7aa}.public-winning-number strong{color:#7c3aed}
.form-control,.form-select{transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.form-control:focus,.form-select:focus{border-color:#a78bfa;box-shadow:0 0 0 .25rem rgba(124,58,237,.12)}
.bottom-sheet .modal-content{background:rgba(255,255,255,.96);backdrop-filter:blur(24px);box-shadow:0 -20px 60px rgba(52,25,91,.24)}
.login-page{min-height:100vh;background:radial-gradient(circle at 15% 10%,rgba(168,85,247,.22),transparent 30%),radial-gradient(circle at 90% 85%,rgba(217,70,239,.14),transparent 30%),linear-gradient(145deg,#f9f6ff,#f4effc)}.login-card{width:min(100%,470px);border-radius:28px!important;background:rgba(255,255,255,.86);backdrop-filter:blur(20px);box-shadow:0 28px 70px rgba(70,34,120,.16)!important}.brand-icon{width:72px;height:72px;margin-inline:auto;border-radius:22px;display:grid;place-items:center;font-size:2rem;background:linear-gradient(135deg,#ede9fe,#fae8ff);box-shadow:0 12px 28px rgba(124,58,237,.15);animation:floatIcon 4s ease-in-out infinite}.login-card .form-control{min-height:48px;border-radius:14px;border-color:#e5dcf5}.login-card .btn-primary{min-height:48px;border-radius:14px}
@keyframes purpleFlow{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes floatIcon{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(max-width:767.98px){.raffle-card:hover,.stat-card:hover,.number-tile:hover,.prize-display-card:hover,.public-winner-card:hover{transform:none}.welcome-card{box-shadow:0 14px 34px rgba(91,33,182,.20)}}
/* v2.7 Reservas públicas 24h */
.status-dot--reserved{background:#f59e0b}.number-tile--reserved{color:#9a5b00;border-color:#f7cc72;background:linear-gradient(160deg,#fff,#fff7df)}.number-tile--reserved .number-tile__dot{background:#f59e0b}.status-badge--reserved{background:#fff3cf;color:#955b00}.public-page .number-tile--available:not(:disabled){cursor:pointer}.public-page .number-tile--available:not(:disabled):hover{border-color:#8b5cf6;box-shadow:0 12px 28px rgba(124,58,237,.18)}.public-page .number-tile:disabled{opacity:.88;cursor:default}.reservation-note{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem;border-radius:14px;background:#f5f0ff;color:#5b2b9a;font-size:.86rem}.reservation-note i{font-size:1.2rem;color:#7c3aed}.reservation-success{position:fixed;z-index:1100;left:50%;bottom:24px;transform:translateX(-50%);width:min(92vw,620px);border-radius:16px;box-shadow:0 16px 40px rgba(35,20,70,.18)}

/* ============================================================
   RIFA-GO v3.1 · FUTURE PURPLE GLOBAL UI
   Capa exclusivamente visual. No modifica comportamiento.
   ============================================================ */
:root{
  --primary:#7c3aed;--primary-dark:#5b21b6;--primary-light:#a78bfa;
  --purple:#8b5cf6;--purple-2:#c084fc;--purple-soft:#f5f0ff;
  --ink:#171126;--muted:#746b86;--canvas:#f8f6ff;--surface:#ffffff;
  --line:#e9e1f7;--shadow:0 14px 42px rgba(91,33,182,.10);
  --shadow-hover:0 20px 50px rgba(91,33,182,.20);
  --glow:0 0 0 1px rgba(139,92,246,.10),0 10px 35px rgba(124,58,237,.13);
}
html{scroll-behavior:smooth;background:var(--canvas)}
body,.app-body,.login-page{background:
 radial-gradient(circle at 8% 4%,rgba(192,132,252,.13),transparent 27rem),
 radial-gradient(circle at 92% 16%,rgba(124,58,237,.10),transparent 30rem),var(--canvas);}
.app-header{background:rgba(255,255,255,.82);border-bottom:1px solid rgba(124,58,237,.12);box-shadow:0 5px 25px rgba(91,33,182,.05)}
.brand__icon,.mobile-nav__create{background:linear-gradient(135deg,#a855f7,#7c3aed 55%,#5b21b6);box-shadow:0 10px 26px rgba(124,58,237,.30)}
.icon-button,.back-button{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,color .22s ease;background:rgba(255,255,255,.9)}
.icon-button:hover,.back-button:hover{transform:translateY(-2px) rotate(-2deg);border-color:#c4b5fd;color:#7c3aed;box-shadow:0 9px 22px rgba(124,58,237,.15)}
.raffle-hero,.numbers-panel,.raffle-card,.stat-card,.share-panel,.private-notice,.card,.modal-content,.table-responsive,.welcome-card{border-color:rgba(124,58,237,.13)!important;box-shadow:var(--glow)!important;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease}
.raffle-card:hover,.card:hover{transform:translateY(-4px);border-color:rgba(124,58,237,.30)!important;box-shadow:var(--shadow-hover)!important}
.raffle-hero{position:relative;overflow:hidden}
.raffle-hero:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-75px;top:-95px;background:radial-gradient(circle,rgba(168,85,247,.18),transparent 68%);pointer-events:none}
.welcome-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#4c1d95,#7c3aed 50%,#a855f7)!important;box-shadow:0 18px 45px rgba(91,33,182,.28)!important}
.welcome-card:after{content:"";position:absolute;width:230px;height:230px;border:1px solid rgba(255,255,255,.18);border-radius:50%;right:-80px;top:-115px;box-shadow:0 0 0 28px rgba(255,255,255,.035),0 0 0 58px rgba(255,255,255,.025)}
.btn{transition:transform .18s ease,box-shadow .22s ease,filter .22s ease,border-color .22s ease!important}
.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.97)}
.btn-primary{border:0!important;background:linear-gradient(135deg,#9333ea,#7c3aed 55%,#5b21b6)!important;box-shadow:0 9px 22px rgba(124,58,237,.24)}
.btn-primary:hover{filter:brightness(1.07);box-shadow:0 13px 30px rgba(124,58,237,.34)}
.btn-outline-primary{color:#7c3aed!important;border-color:#a78bfa!important}.btn-outline-primary:hover{color:#fff!important;background:linear-gradient(135deg,#8b5cf6,#6d28d9)!important;box-shadow:0 10px 25px rgba(124,58,237,.22)}
.btn-light,.btn-soft-primary{background:#faf7ff!important;border:1px solid #e5d8fb!important;color:#6d28d9!important}.btn-light:hover,.btn-soft-primary:hover{background:#f1e8ff!important;border-color:#c4b5fd!important;color:#5b21b6!important;box-shadow:0 8px 20px rgba(124,58,237,.12)}
.form-control,.form-select,.search-box{border-color:#e4d9f5!important;background:rgba(255,255,255,.88)!important;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.form-control:focus,.form-select:focus,.search-box:focus-within{border-color:#a78bfa!important;box-shadow:0 0 0 .24rem rgba(124,58,237,.12)!important;transform:translateY(-1px)}
.filter-pill{transition:all .2s ease}.filter-pill:hover{border-color:#c4b5fd;color:#6d28d9;transform:translateY(-1px)}.filter-pill.active{background:linear-gradient(135deg,#8b5cf6,#6d28d9)!important;border-color:transparent!important;box-shadow:0 7px 18px rgba(124,58,237,.20)}
.stat-card--blue{background:linear-gradient(145deg,#f8f5ff,#eee8ff)!important}.stat-card--blue .stat-card__icon{background:#e9ddff!important;color:#7c3aed!important}
.stat-card--purple{background:linear-gradient(145deg,#fbf7ff,#f1e8ff)!important}.stat-card--purple .stat-card__icon{background:#eadcff!important;color:#7c3aed!important}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)!important}
.number-tile{transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,filter .2s ease!important}.number-tile:hover{transform:translateY(-4px) scale(1.035)!important;box-shadow:0 12px 24px rgba(91,33,182,.15)!important;z-index:2}.number-tile:active{transform:scale(.93)!important}
.number-tile--available{border-color:#c4b5fd!important;background:linear-gradient(180deg,#fff,#f6f1ff)!important;color:#5b21b6!important}.number-tile--available .number-tile__dot{background:#8b5cf6!important;box-shadow:0 0 0 4px rgba(139,92,246,.12)}
.mobile-nav{background:rgba(255,255,255,.90)!important;backdrop-filter:blur(20px);border-color:rgba(124,58,237,.12)!important;box-shadow:0 -12px 34px rgba(91,33,182,.10)!important}.mobile-nav__item{transition:color .2s ease,transform .2s ease}.mobile-nav__item:hover,.mobile-nav__item:focus{color:#7c3aed;transform:translateY(-2px)}
.badge-soft{background:#f1e8ff!important;color:#6d28d9!important;border:1px solid #e0d0fb}.draw-date-chip{border-color:#e0d0fb!important;background:linear-gradient(135deg,#faf7ff,#f2ebff)!important;color:#5b21b6!important}
.table{--bs-table-bg:transparent}.table thead th{color:#5b21b6;background:#f5f0ff;border-bottom-color:#e5d8fb}.table tbody tr{transition:background .18s ease,transform .18s ease}.table tbody tr:hover{background:#faf7ff}
.modal-content{background:rgba(255,255,255,.97)!important}.bottom-sheet .modal-content{box-shadow:0 -20px 55px rgba(76,29,149,.22)!important}
.prize-thumb{box-shadow:0 8px 20px rgba(91,33,182,.16);transition:transform .25s ease}.prize-thumb:hover{transform:scale(1.04) rotate(-1deg)}
@keyframes purpleFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes purplePulse{0%,100%{box-shadow:0 8px 22px rgba(124,58,237,.22)}50%{box-shadow:0 10px 34px rgba(168,85,247,.38)}}
.app-main>*,.page-shell>*{animation:purpleFadeUp .45s both}.app-main>*:nth-child(2),.page-shell>*:nth-child(2){animation-delay:.05s}.app-main>*:nth-child(3),.page-shell>*:nth-child(3){animation-delay:.1s}.mobile-nav__create{animation:purplePulse 2.8s ease-in-out infinite}
::selection{background:#ddd0ff;color:#3b0764}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:linear-gradient(#c4b5fd,#8b5cf6);border-radius:20px;border:2px solid #f8f6ff}::-webkit-scrollbar-track{background:#f8f6ff}
@media(max-width:767.98px){.raffle-card:hover,.card:hover,.stat-card:hover{transform:none}.number-tile:hover{transform:none!important}.btn:hover{transform:none}.app-main>*,.page-shell>*{animation-duration:.32s}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* ============================================================
   RIFA-GO v3.2 · BRAND LILAC GRID
   Cambios exclusivamente visuales. Homologa botones y elementos
   de marca al lenguaje visual de brand__icon, conservando la grilla.
   ============================================================ */
:root{
  --brand-lilac-50:#fcfaff;
  --brand-lilac-100:#f6f0ff;
  --brand-lilac-150:#efe5ff;
  --brand-lilac-200:#e8d9ff;
  --brand-lilac-300:#d9b8ff;
  --brand-lilac-400:#c99bff;
  --brand-purple:#5a2b83;
  --brand-purple-strong:#43205f;
  --brand-purple-soft:#7b46a4;
  --brand-pink:#e65383;
  --brand-grid:rgba(92,42,132,.055);
  --brand-border:rgba(118,66,161,.15);
  --brand-shadow:0 12px 30px rgba(89,40,130,.13);
  --brand-shadow-hover:0 18px 38px rgba(89,40,130,.22);
}

/* Patrón de grilla compartido por controles de marca */
.brand__icon,
.user-avatar,
.icon-button,
.back-button,
.btn,
.filter-pill,
.mobile-nav__create,
.visibility-card__icon{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.brand__icon::before,
.user-avatar::before,
.icon-button::before,
.back-button::before,
.btn::before,
.filter-pill::before,
.mobile-nav__create::before,
.visibility-card__icon::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.75;
  background-image:
    linear-gradient(to right,var(--brand-grid) 1px,transparent 1px),
    linear-gradient(to bottom,var(--brand-grid) 1px,transparent 1px);
  background-size:9px 9px;
  mask-image:linear-gradient(to bottom right,#000,rgba(0,0,0,.42));
}

/* Elementos de marca como las referencias adjuntas */
.brand__icon,
.user-avatar,
.visibility-card__icon{
  color:var(--brand-purple)!important;
  background:linear-gradient(145deg,var(--brand-lilac-100),var(--brand-lilac-200))!important;
  border:1px solid rgba(145,91,190,.08);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    0 13px 28px rgba(105,56,145,.13)!important;
}
.brand__icon i{filter:drop-shadow(0 3px 8px rgba(84,38,124,.14))}
.brand:hover .brand__icon{transform:translateY(-2px) rotate(-2deg) scale(1.04);box-shadow:0 16px 34px rgba(101,46,148,.20)!important}
.brand__icon{transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease}

/* Botones principales: mismo lenguaje lilac/purple y efecto grid */
.btn,
.icon-button,
.back-button,
.filter-pill{
  border-radius:14px!important;
  border:1px solid var(--brand-border)!important;
  color:var(--brand-purple)!important;
  background:linear-gradient(145deg,var(--brand-lilac-50),var(--brand-lilac-150))!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    0 8px 19px rgba(91,43,132,.08)!important;
  transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,filter .2s ease,color .2s ease!important;
}
.btn:hover,
.icon-button:hover,
.back-button:hover,
.filter-pill:hover{
  color:var(--brand-purple-strong)!important;
  transform:translateY(-3px) scale(1.015)!important;
  border-color:rgba(125,69,169,.25)!important;
  box-shadow:var(--brand-shadow-hover)!important;
  filter:saturate(1.03);
}
.btn:active,
.icon-button:active,
.back-button:active,
.filter-pill:active{
  transform:translateY(0) scale(.97)!important;
}

/* CTA con un poco más de intensidad pero sin salir de la paleta */
.btn-primary,
.filter-pill.active,
.mobile-nav__create{
  color:#fff!important;
  border-color:transparent!important;
  background:
    linear-gradient(135deg,rgba(255,255,255,.16),transparent 45%),
    linear-gradient(135deg,#9a5bd0,#7b3fae 54%,#5b2d84)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    0 12px 28px rgba(102,48,150,.25)!important;
}
.btn-primary:hover,
.filter-pill.active:hover,
.mobile-nav__create:hover{
  color:#fff!important;
  filter:brightness(1.055) saturate(1.05)!important;
  box-shadow:0 17px 38px rgba(102,48,150,.34)!important;
}

/* Secundarios y outline: misma familia visual */
.btn-light,
.btn-soft-primary,
.btn-outline-primary,
.btn-secondary,
.btn-outline-secondary{
  color:var(--brand-purple)!important;
  border-color:rgba(126,73,170,.16)!important;
  background:linear-gradient(145deg,#fff,var(--brand-lilac-100))!important;
}
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-secondary:hover{
  color:var(--brand-purple-strong)!important;
  background:linear-gradient(145deg,var(--brand-lilac-100),var(--brand-lilac-200))!important;
}

/* Botones de peligro mantienen semántica, pero comparten geometría, grid y motion */
.btn-danger,
.btn-outline-danger{
  color:#b72c58!important;
  border-color:rgba(214,80,123,.22)!important;
  background:linear-gradient(145deg,#fff8fb,#ffeaf1)!important;
}
.btn-danger:hover,
.btn-outline-danger:hover{
  color:#fff!important;
  background:linear-gradient(135deg,#ee6a95,#d94576)!important;
  box-shadow:0 15px 34px rgba(217,69,118,.22)!important;
}

/* Botones iconográficos: formato cuadrado suave como las referencias */
.icon-button,
.back-button{
  background:linear-gradient(145deg,var(--brand-lilac-50),var(--brand-lilac-150))!important;
  color:var(--brand-purple)!important;
}
.icon-button i,.back-button i{filter:drop-shadow(0 2px 5px rgba(90,43,131,.12))}

/* Ajuste de navegación para mantener identidad */
.mobile-nav__item{color:#756385!important}
.mobile-nav__item:hover,.mobile-nav__item:focus{color:var(--brand-purple)!important}
.mobile-nav__item i{transition:transform .2s ease,filter .2s ease}
.mobile-nav__item:hover i,.mobile-nav__item:focus i{transform:translateY(-2px) scale(1.06);filter:drop-shadow(0 5px 8px rgba(92,43,132,.18))}

/* Estados visuales: no se eliminan los colores funcionales de la grilla de números */
.number-tile--available,
.number-tile--reserved,
.number-tile--occupied{
  position:relative;
  overflow:hidden;
}
.number-tile--available::after,
.number-tile--reserved::after,
.number-tile--occupied::after{
  content:"";
  position:absolute;inset:0;pointer-events:none;opacity:.38;
  background-image:
    linear-gradient(to right,rgba(91,43,132,.045) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(91,43,132,.045) 1px,transparent 1px);
  background-size:10px 10px;
}

/* Consistencia visual en formularios */
.form-control,.form-select,.search-box{
  border-color:rgba(123,70,164,.16)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(249,245,255,.94))!important;
}
.form-control:focus,.form-select:focus,.search-box:focus-within{
  border-color:var(--brand-lilac-400)!important;
  box-shadow:0 0 0 .24rem rgba(147,92,201,.12)!important;
}

/* Responsive: se evita hover exagerado en dispositivos táctiles */
@media (hover:none){
  .btn:hover,.icon-button:hover,.back-button:hover,.filter-pill:hover,.brand:hover .brand__icon{transform:none!important}
}
@media(prefers-reduced-motion:reduce){
  .brand__icon,.btn,.icon-button,.back-button,.filter-pill,.mobile-nav__item i{transition:none!important}
}

/* v3.4 · selección múltiple de pagos */
.payment-selection-mode .number-tile--reserved:not(.is-hidden) {
  cursor: pointer;
  outline: 2px dashed rgba(245, 158, 11, .35);
  outline-offset: 2px;
}
.number-tile--selected-payment {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .28), 0 12px 28px rgba(124, 58, 237, .25) !important;
  border-color: #7c3aed !important;
}
.number-tile--selected-payment::after {
  content: "✓";
  position: absolute;
  top: -7px;
  right: -7px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #7c3aed;
  color: #fff;
  font-size: .78rem;
  font-weight: 800;
  box-shadow: 0 6px 16px rgba(124, 58, 237, .35);
}
.number-tile { position: relative; }
.batch-payment-bar {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(82px + env(safe-area-inset-bottom));
  width: min(680px, calc(100% - 24px));
  z-index: 1050;
  margin-top: 16px;
  padding: 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(124,58,237,.16);
  box-shadow: 0 16px 42px rgba(46,16,101,.18);
  backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.batch-payment-bar small { display:block; color: var(--bs-secondary-color); }
@media (max-width: 575.98px) {
  .batch-payment-bar { align-items: stretch; flex-direction: column; }
  .batch-payment-bar .btn { width: 100%; }
}

/* ===== Rifa-Go v3.5: enlace público responsive + CTA sorteo ===== */
.share-panel--public{align-items:flex-start;overflow:hidden}
.share-panel__content{min-width:0;flex:1 1 auto}
.public-link-full{display:block;margin-top:.35rem;color:#6d28d9;text-decoration:none;font-size:.86rem;line-height:1.4;white-space:normal;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
.public-link-full:hover{text-decoration:underline;color:#4c1d95}
.share-panel__actions{display:flex;gap:.5rem;flex:0 0 auto}
.btn-draw-primary{position:relative;isolation:isolate;display:flex!important;align-items:center;gap:.8rem;width:100%;padding:1rem 1.1rem!important;border:0!important;border-radius:18px!important;color:#fff!important;text-decoration:none!important;background:linear-gradient(135deg,#5b21b6 0%,#7c3aed 42%,#a855f7 100%)!important;box-shadow:0 14px 34px rgba(124,58,237,.32),0 0 0 1px rgba(255,255,255,.22) inset!important;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease!important}
.btn-draw-primary::before{content:"";position:absolute;inset:-40%;z-index:-1;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-60%);animation:drawShine 3.4s ease-in-out infinite}
.btn-draw-primary::after{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:18px 18px;opacity:.8}
.btn-draw-primary:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 18px 42px rgba(124,58,237,.42),0 0 26px rgba(168,85,247,.26)!important;filter:saturate(1.08)}
.btn-draw-primary:active{transform:scale(.985)}
.btn-draw-primary__icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.18);font-size:1.35rem;box-shadow:0 0 0 1px rgba(255,255,255,.2) inset}
.btn-draw-primary strong{display:block;font-size:1rem;line-height:1.15;text-align:left}
.btn-draw-primary small{display:block;margin-top:.2rem;color:rgba(255,255,255,.78);font-size:.72rem;font-weight:600;text-align:left}
@keyframes drawShine{0%,58%{transform:translateX(-70%)}78%,100%{transform:translateX(70%)}}
@media(max-width:575.98px){.share-panel--public{display:block!important}.share-panel__actions{margin-top:.8rem;width:100%}.share-panel__actions .btn:last-child{flex:1}.public-link-full{font-size:.82rem}.btn-draw-primary{padding:.9rem!important}.btn-draw-primary__icon{width:44px;height:44px;flex-basis:44px}}
@media(prefers-reduced-motion:reduce){.btn-draw-primary::before{animation:none}}


/* ============================================================
   RIFA-GO v3.5.1 · KPIs FUERTES + MONTO RESPONSIVE
   Recaudado visualmente claro y legible en móviles.
   ============================================================ */
.stats-grid .stat-card{
  border:0!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(64,34,120,.16)!important;
}
.stats-grid .stat-card strong{
  color:#fff!important;
  font-weight:900;
  letter-spacing:-.025em;
  text-shadow:0 1px 2px rgba(0,0,0,.10);
}
.stats-grid .stat-card small{
  color:rgba(255,255,255,.92)!important;
  font-weight:750;
}
.stats-grid .stat-card__icon{
  background:rgba(255,255,255,.18)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.20);
}
.stats-grid .stat-card--blue{background:linear-gradient(145deg,#6d28d9,#7c3aed 58%,#8b5cf6)!important}
.stats-grid .stat-card--green{background:linear-gradient(145deg,#059669,#10b981 58%,#34d399)!important}
.stats-grid .stat-card--red{background:linear-gradient(145deg,#dc2626,#ef4444 58%,#fb7185)!important}
.stats-grid .stat-card--purple{background:linear-gradient(145deg,#4f46e5,#6d28d9 50%,#9333ea)!important}
.stats-grid .stat-card--purple strong{white-space:nowrap;overflow:visible;text-overflow:clip}
@media(max-width:767.98px){
  .stats-grid .stat-card{min-width:0;padding:10px 4px!important}
  .stats-grid .stat-card strong{font-size:clamp(.74rem,3.15vw,1.02rem)!important;white-space:nowrap;overflow:visible!important;text-overflow:clip!important;max-width:none!important}
  .stats-grid .stat-card--purple strong{font-size:clamp(.62rem,2.75vw,.90rem)!important;letter-spacing:-.045em}
  .stats-grid .stat-card small{font-size:.62rem!important}
}
@media(max-width:390px){
  .stats-grid .stat-card--purple strong{font-size:clamp(.58rem,2.6vw,.82rem)!important}
}

/* v3.6 Legal consent */
.legal-consent-box{padding:14px 16px 14px 42px;border:1px solid rgba(124,58,237,.25);border-radius:14px;background:rgba(124,58,237,.06)}
.legal-consent-box .form-check-input{margin-left:-26px;margin-top:.25rem}.legal-consent-box a{font-weight:700}.legal-page article{max-width:900px;margin:auto}.legal-page h2{font-size:1.1rem;font-weight:800;margin-top:1.6rem}.legal-page p{line-height:1.7}
