:root{--color-primary:#fdbd3a;--color-primary-dark:#f47a1f;--color-secondary:#1a9eea;--color-accent:#e93685;--color-success:#65b741;--color-navy:#111827;--color-dark:#0f1323;--color-gray:#6b7280;--color-light-gray:#f3f4f6;--color-white:#fff;--color-info:#38bdf8;--color-warning:#fbbf24;--color-error:#ef4444;--color-success-soft:#dcfce7;--bg-main:#fff8e7;--bg-card:#fff;--border-radius-sm:8px;--border-radius-md:14px;--border-radius-lg:22px;--shadow-card:0 8px 24px #1118271a;--shadow-button:0 6px 0 #d97706;--font-title:"Nunito", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, Arial, sans-serif;color:#18212f;font-family:var(--font-body);background:#eef2f7;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#dbeafe 0,#eef2f7 34%,#f8fafc 100%);min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{gap:20px;margin:0 auto;padding:24px;display:grid}.public-shell{grid-template-columns:minmax(320px,860px);justify-content:center;align-items:start;min-height:100vh}.surface{background:#fff;border:1px solid #d7deea;border-radius:18px;padding:24px;box-shadow:0 18px 40px #0f172a14}.admin-surface{min-width:0}.section-header,.section-subheader{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-header{margin-bottom:20px}.hero-copy{gap:8px;display:grid}.section-subheader{margin-bottom:12px}.eyebrow{color:#4d607c;text-transform:uppercase;margin:0 0 4px;font-size:.82rem;font-weight:600}h1,h2,h3,p{margin:0}h1,h2{font-size:1.45rem}h3{font-size:1rem}.stack-lg,.stack-md{display:grid}.stack-lg{gap:20px}.stack-md{gap:12px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.field-span-full{grid-column:1/-1}.field{color:#334155;gap:6px;font-weight:600;display:grid}.field span{font-size:.9rem}input,select{color:#18212f;background:#fff;border:1px solid #c8d2e1;border-radius:8px;width:100%;min-height:42px;padding:10px 12px}.primary-button,.secondary-button,.table-button,.tab-button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.primary-button{color:#fff;background:#1d4ed8}.secondary-button,.table-button,.tab-button{color:#18212f;background:#f8fafc;border-color:#d7deea}.tab-button.active{background:#e0ecff;border-color:#93b5ff}.primary-button:disabled,.secondary-button:disabled{opacity:.65;cursor:not-allowed}.icon-button svg,.tab-button svg{flex:none}.muted-icon,.muted-text{color:#60738f}.inline-meta,.tab-row{flex-wrap:wrap;gap:8px;display:flex}.public-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;display:flex}.flow-choice-grid,.active-tandas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.flow-choice-button{width:100%;min-height:126px;color:var(--color-navy);text-align:left;cursor:pointer;background:#fff;border:1px solid #d7deea;border-radius:16px;grid-template-columns:auto 1fr;align-items:start;gap:8px 12px;padding:18px;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid;box-shadow:0 14px 30px #0f172a14}.flow-choice-button:hover,.flow-choice-button:focus-visible{border-color:#f59e0b;transform:translateY(-1px);box-shadow:0 18px 36px #f59e0b2e}.flow-choice-button span{overflow-wrap:anywhere;min-width:0;font-size:1.05rem;font-weight:800}.flow-choice-button small{color:#60738f;grid-column:2;font-size:.9rem;line-height:1.4}.flow-subheader{align-items:flex-start}.flow-subheader .secondary-button{width:auto}.active-tandas-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.active-tanda-card{gap:14px;display:grid}.active-tanda-card h3{color:var(--color-navy);overflow-wrap:anywhere;font-size:1.08rem}.active-tanda-actions{grid-template-columns:1fr;gap:10px;display:grid}.empty-active-tandas{text-align:center;justify-items:center;gap:14px;display:grid}.field-inline{min-width:180px}.roulette-stage{place-items:center;padding:24px 16px 16px;display:grid;position:relative}.roulette-shadow{filter:blur(12px);background:radial-gradient(circle,#2563eb2e 0,#2563eb0a 56%,#0000 70%);border-radius:50%;width:min(78vw,420px);height:min(78vw,420px);position:absolute}.roulette-pointer{z-index:3;filter:drop-shadow(0 4px 10px #0f172a33);border-top:18px solid #0000;border-bottom:18px solid #0000;border-left:40px solid #b91c1c;width:0;height:0;position:absolute;top:calc(50% - 14px);left:50%;transform:translate(calc(-1*min(42vw,250px)))}.roulette-wheel{--wheel-size:380px;--wheel-rotation:0deg;width:min(78vw, var(--wheel-size));aspect-ratio:1;transform:rotate(var(--wheel-rotation));border:14px solid #16a34a;border-radius:50%;transition:transform 4.2s cubic-bezier(.1,.9,.18,1);position:relative;overflow:hidden;box-shadow:0 18px 40px #0f172a2e,inset 0 0 0 10px #fef3c7,inset 0 0 0 18px #14532d}.roulette-wheel:before{content:"";pointer-events:none;border:3px dashed #ffffffe6;border-radius:50%;position:absolute;inset:10px}.roulette-wheel:after{content:"";pointer-events:none;border:1px solid #0f172a29;border-radius:50%;position:absolute;inset:26px}.roulette-wheel.is-spinning:before{animation:.55s linear infinite roulette-lights}.roulette-center{z-index:2;background:radial-gradient(circle,#fff 0,#f8fafc 42%,#fecdd3 43%,#be123c 100%);border-radius:50%;position:absolute;inset:calc(50% - 28px);box-shadow:0 0 0 4px #fff,0 0 0 9px #be185d2e}.roulette-label{--label-angle:0deg;transform:rotate(var(--label-angle));pointer-events:none;position:absolute;inset:0}.roulette-label span{color:#0f172a;min-width:52px;min-height:30px;transform:translateX(-50%) rotate(calc(var(--label-angle) * -1));background:#ffffffe6;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:.92rem;font-weight:800;display:inline-flex;position:absolute;top:11%;left:50%;box-shadow:0 4px 10px #0f172a1f}.roulette-label.is-occupied span{color:#475569;background:#e2e8f0f0}.roulette-label.is-reserved span{color:#fff7ed;background:#78350feb}.roulette-status,.occupancy-strip{flex-wrap:wrap;gap:8px;display:flex}.occupancy-pill{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;justify-content:center;align-items:center;min-width:42px;min-height:36px;padding:0 10px;font-weight:700;display:inline-flex}.occupancy-pill.is-occupied{color:#475569;background:#e2e8f0;border-color:#cbd5e1}.occupancy-pill.is-reserved{color:#92400e;background:#fef3c7;border-color:#f59e0b}.occupancy-pill.is-highlighted{color:#166534;background:#dcfce7;border-color:#16a34a}.spin-button{justify-self:start}.meta-chip,.status-pill{border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.85rem;font-weight:600;display:inline-flex}.meta-chip{color:#1e3a8a;background:#eef5ff}.status-pill.ok{color:#166534;background:#dcfce7}.status-pill.warn{color:#92400e;background:#fef3c7}.status-pill.danger{color:#b91c1c;background:#fee2e2}.number-grid{grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:10px;display:grid}.number-pill{border:1px solid #d7deea;border-radius:8px;place-items:center;min-height:52px;font-weight:700;display:grid}.number-pill.is-open{color:#1d4ed8;background:#eff6ff}.number-pill.is-occupied{color:#64748b;background:#e2e8f0;text-decoration:line-through}.notice{border-radius:8px;padding:10px 12px}.public-surface,.identity-card{gap:18px;display:grid}.identity-card{background:linear-gradient(#fff 0%,#f8fbff 100%);border:1px solid #dbe4f0;border-radius:16px;padding:18px}.password-recovery-panel{background:#f8fbff;gap:14px}.public-version-footer{color:#64748b;text-align:center;padding-top:4px;font-size:.76rem;font-weight:800}.identity-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.profile-chip{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;gap:6px;padding:14px;display:grid}.profile-chip span{color:#1d4ed8;text-transform:uppercase;font-size:.82rem;font-weight:700}.profile-chip strong{font-size:1rem}.success-text{color:#166534;background:#dcfce7}.error-text{color:#b91c1c;background:#fee2e2}.warning-text{color:#854d0e;background:#fef9c3}.confirmation-actions{flex-wrap:wrap;gap:12px;margin-top:14px;display:flex}.admin-layout{grid-template-columns:minmax(280px,.9fr) minmax(0,1.4fr);gap:20px;display:grid}.table-wrap{border:1px solid #d7deea;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e8f0;padding:12px}thead th{color:#475569;background:#f8fafc;font-size:.85rem;font-weight:700}tbody tr:last-child td{border-bottom:none}.empty-row{text-align:center;color:#64748b}.detail-panel{gap:16px;min-width:0;display:grid}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.summary-tile{background:#f8fafc;border:1px solid #d7deea;border-radius:8px;gap:4px;min-height:88px;padding:14px;display:grid}.summary-tile strong{font-size:1.35rem}.summary-tile.success{background:#ecfdf5}.summary-tile.danger{background:#fef2f2}@media (width<=1180px){.app-shell,.admin-layout{grid-template-columns:1fr}}@media (width<=860px){.compact-grid,.form-grid,.identity-grid,.summary-grid,.two-columns{grid-template-columns:1fr}.app-shell{padding:16px}.public-toolbar{align-items:stretch}.roulette-pointer{border:18px solid #0000;border-top:38px solid #b91c1c;border-bottom:0;top:4px;left:calc(50% - 18px);transform:none}.spin-button{justify-self:stretch}}.tanda-table-wrap{border:1px solid #d7deea;border-radius:12px;overflow:hidden}.tanda-table{border-collapse:collapse;width:100%}.tanda-table thead th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.04em;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:10px 16px;font-size:.8rem;font-weight:700}.tanda-row{cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .1s}.tanda-row:last-child{border-bottom:none}.tanda-row:hover,.tanda-row:focus{background:#f0f5ff;outline:none}.tanda-row.is-selected{background:#eff6ff;box-shadow:inset 3px 0 #1d4ed8}.tanda-row td{color:#1e293b;padding:14px 16px;font-size:.95rem}.tanda-row td:first-child{font-weight:600}@media (width<=860px){.tanda-table-wrap{border:none;overflow:visible}.tanda-table,.tanda-table tbody,.tanda-table tr,.tanda-table td{display:block}.tanda-table thead{display:none}.tanda-row{box-shadow:none;background:#f8fafc;border:2px solid #d7deea;border-radius:14px;margin-bottom:10px;padding:14px 16px}.tanda-row.is-selected{background:#eff6ff;border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed81f}.tanda-row td{border:none;justify-content:space-between;align-items:center;padding:5px 0;font-size:.9rem;display:flex}.tanda-row td:before{content:attr(data-label);color:#64748b;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;margin-right:12px;font-size:.78rem;font-weight:700}.tanda-row td:first-child{color:#0f172a;border-bottom:1px solid #e2e8f0;margin-bottom:4px;padding-bottom:10px;font-size:1rem;font-weight:700}.tanda-row td:first-child:before{display:none}}.tanda-preview{background:linear-gradient(#eff6ff 0%,#f8fbff 100%);border:1px solid #bfdbfe;border-radius:14px;padding:18px}.tanda-calendar{background:#fff;border:1px solid #d7deea;border-radius:14px;gap:14px;padding:18px;display:grid}.tanda-calendar-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.tanda-calendar-header h3{color:var(--color-navy);font-size:1.08rem}.tanda-preview-title{color:#1d4ed8;text-transform:uppercase;margin-bottom:12px;font-size:.82rem;font-weight:700}.tanda-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.tanda-preview-item{gap:4px;display:grid}.tanda-preview-item span{color:#64748b;text-transform:uppercase;font-size:.8rem;font-weight:600}.tanda-preview-item strong{color:#0f172a;font-size:1rem}@media (width<=860px){.tanda-preview-grid{grid-template-columns:1fr}}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a8c;place-items:center;display:grid;position:fixed;inset:0}.modal-card{text-align:center;background:#fff;border-radius:20px;gap:24px;width:min(420px,100vw - 32px);padding:36px 28px;display:grid;box-shadow:0 28px 64px #0f172a3d}.modal-number{color:#fff;background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);border-radius:50%;place-items:center;width:96px;height:96px;margin:0 auto;font-size:2.6rem;font-weight:900;display:grid;box-shadow:0 8px 28px #16a34a61}.modal-message{color:#1e293b;font-size:1.1rem;line-height:1.6}.modal-tanda-info{text-align:left;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;gap:10px;padding:16px;display:grid}.modal-info-row{justify-content:space-between;align-items:center;gap:12px;font-size:.92rem;display:flex}.modal-info-row span{color:#64748b}.modal-commitment{color:#854d0e;background:#fef9c3;border:1px solid #fde68a;border-radius:10px;padding:12px 14px;font-size:.88rem;line-height:1.55}.modal-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.progress-modal-card{text-align:left;width:min(640px,100vw - 32px);max-height:min(86vh,780px);overflow:auto}.progress-modal-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.progress-modal-header h2{font-size:1.25rem}.progress-close-button{min-width:40px;padding:0}.recovery-modal-card{justify-items:center;gap:18px;width:min(440px,100vw - 32px)}.recovery-modal-icon{border:2px solid var(--color-navy);background:linear-gradient(180deg, #ffd95a 0%, var(--color-primary) 100%);width:74px;height:74px;color:var(--color-navy);border-radius:999px;place-items:center;display:grid;box-shadow:0 8px #d97706}.recovery-modal-card.is-error .recovery-modal-icon{color:#991b1b;background:#fee2e2;box-shadow:0 8px #fecaca}.progress-bar-card{border-radius:var(--border-radius-md);background:#fff8e7;border:1px solid #fdbd3a75;gap:10px;padding:16px;display:grid}.progress-bar-meta{color:var(--color-navy);justify-content:space-between;align-items:center;gap:12px;font-weight:900;display:flex}.progress-bar-meta span{color:var(--color-primary-dark);text-transform:uppercase;font-size:.86rem}.progress-bar-track{background:#fff;border:1px solid #11182729;border-radius:999px;height:12px;overflow:hidden}.progress-bar-track span{border-radius:inherit;background:linear-gradient(90deg, var(--color-primary) 0%, var(--color-success) 100%);height:100%;display:block}.progress-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.progress-card,.number-card{border-radius:var(--border-radius-md);background:#fff;border:1px solid #1118271f;gap:6px;padding:12px;display:grid}.progress-card span,.number-card span{color:#64748b;text-transform:uppercase;font-size:.76rem;font-weight:800}.progress-card strong{color:var(--color-navy);font-size:1rem}.number-card-grid{grid-template-columns:repeat(auto-fit,minmax(94px,1fr));gap:10px;display:grid}.number-card{justify-items:start;min-height:82px}.number-card strong{color:#1d4ed8;background:#eff6ff;border-radius:999px;place-items:center;min-width:42px;min-height:34px;padding:0 8px;font-size:1rem;display:inline-grid}.number-card.is-open{background:#f8fbff;border-color:#bfdbfe}.number-card.is-occupied{background:#f1f5f9}.number-card.is-occupied strong{color:#475569;background:#e2e8f0}.number-card.is-reserved{background:#fff7d7;border-color:#f59e0b}.number-card.is-reserved strong{color:#fff7ed;background:#78350f}.number-card.is-highlighted{background:#ecfdf5;border-color:#16a34a}.number-card.is-highlighted strong{color:#166534;background:#dcfce7}.timeline-track{gap:12px;padding:14px 2px 8px;display:flex;position:relative;overflow-x:auto}.timeline-track:before{content:"";background:#dbe4f0;border-radius:999px;height:4px;position:absolute;top:36px;left:20px;right:20px}.timeline-card{z-index:1;border-radius:var(--border-radius-md);background:#fff;border:1px solid #1118271f;align-content:start;gap:7px;min-width:132px;padding:12px;display:grid;position:relative;box-shadow:0 8px 18px #11182714}.timeline-number{color:#1e3a8a;background:#eef5ff;border-radius:999px;place-items:center;width:38px;min-height:30px;font-size:.82rem;font-weight:900;display:inline-grid}.timeline-card strong{color:var(--color-navy);font-size:.88rem}.timeline-card>span:last-child{color:#64748b;text-transform:uppercase;font-size:.74rem;font-weight:800}.timeline-card.is-completado{background:#f8fafc}.timeline-card.is-completado .timeline-number{color:#475569;background:#e2e8f0}.timeline-card.is-pendiente .timeline-number{color:#075985;background:#e0f2fe}.timeline-card.is-actual{border-color:var(--color-primary-dark);background:#fff7d7;animation:1.6s ease-in-out infinite current-period-pulse;box-shadow:0 0 0 3px #fdbd3a38,0 14px 28px #f47a1f2e}.timeline-card.is-actual .timeline-number{background:linear-gradient(180deg, #ffd95a 0%, var(--color-primary) 100%);color:var(--color-navy);border:2px solid var(--color-navy)}.codigo-input{letter-spacing:.18em;text-transform:uppercase;text-align:center;font-family:Courier New,Courier,monospace;font-size:1.4rem;font-weight:700}body{color:var(--color-navy);background:radial-gradient(circle at 12% 10%, #fdbd3a5c 0, transparent 28%), radial-gradient(circle at 88% 8%, #1a9eea38 0, transparent 26%), linear-gradient(180deg, var(--bg-main) 0%, #fffdf6 58%, #f8fafc 100%)}h1,h2,h3{font-family:var(--font-title);letter-spacing:0;color:var(--color-navy);font-weight:900}.public-shell{grid-template-columns:minmax(320px,920px)}.surface,.identity-card,.tanda-preview,.tanda-calendar,.modal-card{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-card);border:2px solid #11182714}.public-surface{background:linear-gradient(180deg, #fffffff5 0%, #fff8e7e0 100%), var(--bg-card);border-color:#fdbd3a6b}.brand-hero{gap:12px}.brand-lockup{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.brand-logo{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 14px 26px #11182729);flex:none;width:clamp(220px,42vw,360px)}.brand-tagline{color:var(--color-primary-dark);font-family:var(--font-title);margin-top:6px;font-size:clamp(1.25rem,3vw,2rem);font-weight:900;line-height:1.1}.eyebrow{color:var(--color-secondary);font-weight:800}input,select{border-radius:var(--border-radius-sm);border-color:#11182729}input:focus,select:focus,button:focus{outline-offset:2px;outline:3px solid #1a9eea52}.primary-button{background:linear-gradient(180deg, #ffd95a 0%, var(--color-primary) 100%);color:var(--color-navy);border:2px solid var(--color-navy);border-radius:var(--border-radius-md);box-shadow:var(--shadow-button);font-weight:900;transition:transform .15s,box-shadow .15s,opacity .15s}.primary-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px #d97706}.secondary-button,.table-button,.tab-button{background:var(--color-white);color:var(--color-navy);border-radius:var(--border-radius-md);border-color:#11182729;font-weight:800}.secondary-button:hover:not(:disabled),.table-button:hover:not(:disabled),.tab-button:hover:not(:disabled){border-color:var(--color-secondary);color:#075985}.meta-chip,.profile-chip,.occupancy-pill,.tanda-preview,.tanda-calendar{border-radius:var(--border-radius-md)}.meta-chip{color:var(--color-navy);background:#fff2bd;font-weight:800}.meta-chip.muted{color:#075985;background:#e0f2fe}.profile-chip{background:#fff7d7;border-color:#fdbd3a80}.tanda-calendar{background:linear-gradient(#fffffff5 0%,#fff8e7c7 100%);border-color:#fdbd3a6b}.profile-chip span,.tanda-preview-title{color:var(--color-primary-dark)}.roulette-wheel{border-color:var(--color-success);box-shadow:0 18px 40px #1118272e,inset 0 0 0 10px #fff2bd,inset 0 0 0 18px #2f6f20}.roulette-center,.modal-number{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:var(--color-navy)}.success-text,.status-pill.ok{background:var(--color-success-soft);color:#166534}.error-text,.status-pill.danger{color:#991b1b;background:#fee2e2}.warning-text,.status-pill.warn,.modal-commitment{color:#854d0e;background:#fff2bd;border-color:#fbbf248c}@media (width<=860px){.brand-lockup{align-items:center}.brand-logo{width:min(76vw,300px)}}@media (width<=640px){.app-shell{gap:12px;padding:10px}.public-shell{grid-template-columns:minmax(0,1fr)}.surface{border-radius:18px;padding:14px}.section-header{text-align:center;flex-direction:column;align-items:center;gap:12px;margin-bottom:12px}.inline-meta{justify-content:center;width:100%}.brand-logo{width:min(78vw,240px)}.identity-card,.tanda-preview,.tanda-calendar,.modal-card{border-radius:16px;padding:14px}.section-subheader{align-items:flex-start;gap:10px}.section-subheader h2{font-size:1.18rem}.form-grid,.identity-grid,.tanda-preview-grid,.flow-choice-grid,.active-tandas-grid,.active-tanda-actions{grid-template-columns:1fr}.tanda-calendar-header{grid-template-columns:1fr;gap:10px;display:grid}.profile-chip,.tanda-preview-item{background:#fff8e7;border:1px solid #fdbd3a6b;border-radius:14px;padding:12px}.public-toolbar{grid-template-columns:1fr;align-items:stretch;display:grid}.flow-subheader{grid-template-columns:1fr;display:grid}.flow-subheader .secondary-button,.active-tanda-actions .secondary-button,.active-tanda-actions .primary-button{width:100%}.flow-choice-button{min-height:112px}.public-toolbar .secondary-button,.spin-button,.primary-button,.secondary-button{width:100%}.roulette-stage{width:100%;padding:36px 0 12px;overflow:visible}.roulette-shadow{width:min(88vw,310px);height:min(88vw,310px)}.roulette-wheel{border-width:9px;width:min(86vw,310px);box-shadow:0 12px 28px #11182729,inset 0 0 0 6px #fff2bd,inset 0 0 0 12px #2f6f20}.roulette-wheel:before{border-width:2px;inset:7px}.roulette-wheel:after{inset:18px}.roulette-center{inset:calc(50% - 22px)}.roulette-label span{min-width:38px;min-height:24px;padding:0 6px;font-size:.72rem;top:9%}.roulette-pointer{border-top-width:30px;border-left-width:14px;border-right-width:14px;top:8px;left:calc(50% - 14px)}.modal-card{gap:16px;width:min(100%,100vw - 20px);padding:22px 16px}.progress-modal-card{max-height:calc(100vh - 20px);padding:18px 14px}.progress-modal-header{align-items:flex-start}.progress-summary-grid,.number-card-grid{grid-template-columns:1fr}.timeline-track{grid-template-columns:1fr;padding:0;display:grid;overflow:visible}.timeline-track:before{display:none}.timeline-card{grid-template-columns:auto 1fr auto;align-items:center;min-width:0;min-height:76px}.timeline-card strong{font-size:.95rem}.timeline-card>span:last-child{justify-self:end}.progress-card,.number-card{grid-template-columns:1fr auto;align-items:center}.progress-card span,.number-card span{grid-column:1}.progress-card strong,.number-card strong{grid-area:1/2/span 2}.modal-number{width:76px;height:76px;font-size:2rem}.modal-actions{grid-template-columns:1fr;display:grid}}@keyframes roulette-lights{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes current-period-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.piggy-loader{--loader-size:104px;--piggy-scale:.86;color:var(--color-dark);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:inline-flex}.piggy-loader-sm{--loader-size:82px;--piggy-scale:.68}.piggy-loader-lg{--loader-size:140px;--piggy-scale:1.12}.piggy-loader-button{--loader-size:26px;--piggy-scale:.24;gap:0;width:26px;height:26px;display:inline-grid}.piggy-loader-block{justify-content:center;align-items:center;min-height:120px;padding:24px;display:flex}.piggy-orbit{width:var(--loader-size);height:var(--loader-size);place-items:center;animation:1.6s ease-in-out infinite piggy-bounce;display:grid;position:relative}.piggy-orbit:before{content:"";background:radial-gradient(circle,#fdbd3a57,#fdbd3a14 48%,#0000 68%);border-radius:999px;animation:1.6s ease-in-out infinite glow-pulse;position:absolute;inset:5%}.piggy-orbit:after{content:"";filter:blur(1px);background:#0f13231f;border-radius:999px;width:56%;height:11%;animation:1.6s ease-in-out infinite shadow-pulse;position:absolute;bottom:15px}.piggy{width:calc(78px * var(--piggy-scale));height:calc(66px * var(--piggy-scale));z-index:2;animation:1.2s ease-in-out infinite piggy-wiggle;position:relative}.piggy-body{border:calc(3px * var(--piggy-scale)) solid var(--color-dark);width:100%;height:100%;box-shadow:0 calc(6px * var(--piggy-scale)) 0 #0f132326, inset 0 calc(5px * var(--piggy-scale)) 0 #ffffff73;background:linear-gradient(145deg,#ffd5df 0%,#ff8fb0 70%);border-radius:50% 50% 45% 45%;display:block;position:relative}.piggy-slot{top:calc(10px * var(--piggy-scale));width:calc(32px * var(--piggy-scale));height:calc(5px * var(--piggy-scale));background:var(--color-dark);opacity:.85;border-radius:999px;position:absolute;left:50%;transform:translate(-50%)}.piggy-ear{top:calc(-9px * var(--piggy-scale));width:calc(25px * var(--piggy-scale));height:calc(25px * var(--piggy-scale));border:calc(3px * var(--piggy-scale)) solid var(--color-dark);z-index:1;background:#ff9db8;border-radius:55% 55% 20% 20%;position:absolute}.piggy-ear:after{content:"";border-radius:inherit;background:#ff6f9d;position:absolute;inset:28%}.piggy-ear-left{left:calc(6px * var(--piggy-scale));transform:rotate(-28deg)}.piggy-ear-right{right:calc(6px * var(--piggy-scale));transform:rotate(28deg)}.piggy-eye{top:calc(24px * var(--piggy-scale));width:calc(8px * var(--piggy-scale));height:calc(8px * var(--piggy-scale));background:var(--color-dark);border-radius:999px;animation:3s infinite piggy-blink;position:absolute}.piggy-eye-left{left:calc(22px * var(--piggy-scale))}.piggy-eye-right{right:calc(22px * var(--piggy-scale))}.piggy-nose{left:50%;top:calc(34px * var(--piggy-scale));width:calc(28px * var(--piggy-scale));height:calc(20px * var(--piggy-scale));border:calc(3px * var(--piggy-scale)) solid var(--color-dark);justify-content:center;align-items:center;gap:calc(5px * var(--piggy-scale));background:#ff6f9d;border-radius:999px;display:flex;position:absolute;transform:translate(-50%)}.piggy-nose span{width:calc(4px * var(--piggy-scale));height:calc(7px * var(--piggy-scale));background:var(--color-dark);border-radius:999px}.piggy-mouth{left:50%;bottom:calc(7px * var(--piggy-scale));width:calc(18px * var(--piggy-scale));height:calc(8px * var(--piggy-scale));border-bottom:calc(3px * var(--piggy-scale)) solid var(--color-dark);border-radius:0 0 999px 999px;position:absolute;transform:translate(-50%)}.piggy-blush{top:calc(39px * var(--piggy-scale));width:calc(10px * var(--piggy-scale));height:calc(7px * var(--piggy-scale));background:#e9368559;border-radius:999px;position:absolute}.piggy-blush-left{left:calc(9px * var(--piggy-scale))}.piggy-blush-right{right:calc(9px * var(--piggy-scale))}.piggy-loader .coin{width:calc(25px * var(--piggy-scale));height:calc(25px * var(--piggy-scale));background:linear-gradient(145deg, #ffe66d, var(--color-primary) 60%, var(--color-primary-dark));border:calc(2px * var(--piggy-scale)) solid var(--color-dark);color:var(--color-dark);font-weight:950;font-size:calc(13px * var(--piggy-scale));box-shadow:0 calc(4px * var(--piggy-scale)) 0 #0f13232e;z-index:1;border-radius:999px;place-items:center;display:grid;position:absolute}.piggy-loader .coin-1{animation:1.4s linear infinite coin-spin-1;top:2%;left:50%}.piggy-loader .coin-2{animation:1.4s linear infinite coin-spin-2;top:45%;right:2%}.piggy-loader .coin-3{animation:1.4s linear infinite coin-spin-3;top:45%;left:2%}.piggy-loader .spark{background:var(--color-primary);clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%);z-index:1;width:13px;height:13px;animation:1.8s ease-in-out infinite sparkle;position:absolute}.piggy-loader .spark-1{top:22px;right:28px}.piggy-loader .spark-2{background:var(--color-secondary);animation-delay:.35s;bottom:38px;left:22px}.piggy-loader .spark-3{background:var(--color-accent);animation-delay:.7s;top:45px;left:32px}.piggy-loader-text{color:var(--color-dark);font-size:.84rem;font-weight:900}.piggy-loader .dots:after{content:"";animation:1.1s steps(4,end) infinite dots}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%,to{content:"..."}}@keyframes piggy-bounce{0%,to{transform:translateY(0)}45%{transform:translateY(-10px)}}@keyframes piggy-wiggle{0%,to{transform:rotate(-4deg)scale(1)}50%{transform:rotate(4deg)scale(1.04)}}@keyframes piggy-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}@keyframes glow-pulse{0%,to{opacity:.65;transform:scale(.95)}50%{opacity:1;transform:scale(1.12)}}@keyframes shadow-pulse{0%,to{opacity:.16;transform:scaleX(1)}45%{opacity:.08;transform:scaleX(.72)}}@keyframes sparkle{0%,to{opacity:.45;transform:scale(.65)rotate(0)}50%{opacity:1;transform:scale(1.25)rotate(20deg)}}@keyframes coin-spin-1{0%{transform:translate(-50%)rotateY(0)scale(1)}50%{transform:translate(-50%,-8px)rotateY(180deg)scale(1.1)}to{transform:translate(-50%)rotateY(360deg)scale(1)}}@keyframes coin-spin-2{0%{transform:rotateY(0)translateY(0)}50%{transform:rotateY(180deg)translateY(-7px)}to{transform:rotateY(360deg)translateY(0)}}@keyframes coin-spin-3{0%{transform:rotateY(0)translateY(0)}50%{transform:rotateY(180deg)translateY(7px)}to{transform:rotateY(360deg)translateY(0)}}
