:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1a1a2e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}.summary-card{background:#ffffff1a;border-radius:15px;padding:25px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);transition:transform .3s ease}.summary-card:hover{transform:translateY(-5px)}.summary-card.highlight{border-left:4px solid #e74c3c;background:#e74c3c1a}.card-title{color:#888;font-size:.9rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;font-weight:500}.card-value{font-size:2rem;font-weight:700;color:#fff}.card-value.positive{color:#2ecc71}.card-value.negative{color:#e74c3c}.card-subtitle{margin-top:10px;font-size:.9rem;color:#666}@media(max-width:768px){.card-value{font-size:1.5rem}}.selector{display:flex;flex-direction:column;gap:10px}.selector label{color:#888;font-size:.9rem;text-transform:uppercase;letter-spacing:1px}.day-buttons{display:flex;flex-wrap:wrap;gap:8px}.day-btn{padding:10px 18px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#ffffff0d;color:#fff;cursor:pointer;transition:all .3s ease;font-size:.9rem}.day-btn:hover:not(.disabled){background:#ffffff26;border-color:#ffffff4d}.day-btn.selected{background:linear-gradient(90deg,#e74c3c,#c0392b);border-color:transparent;font-weight:600}.day-btn.disabled{opacity:.3;cursor:not-allowed}.studio-select{padding:12px 16px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:#ffffff1a;color:#fff;font-size:.95rem;cursor:pointer;min-width:200px}.studio-select:focus{outline:none;border-color:#e74c3c}.studio-select option{background:#1a1a2e;color:#fff}@media(max-width:768px){.day-btn{padding:8px 14px;font-size:.85rem}}.comparison-table{padding:20px;background:#ffffff0d;border-radius:15px}.comparison-table h3{color:#e74c3c;margin-bottom:10px}.table-note{color:#666;font-size:.9rem;margin-bottom:15px}.totals-row{font-weight:700;background:#ffffff1a!important}.totals-row td{border-top:2px solid rgba(255,255,255,.2)}.customer-data{padding:20px 0}.customer-filters{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:25px;padding:20px;background:#ffffff0d;border-radius:15px}.filter-group{display:flex;flex-direction:column;gap:8px;min-width:200px}.filter-group label{color:#888;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.filter-select,.search-input{padding:10px 15px;background:#1a1a2e;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.95rem;transition:all .3s ease}.filter-select{cursor:pointer}.filter-select option{background:#1a1a2e;color:#fff;padding:10px}.filter-select:focus,.search-input:focus{outline:none;border-color:#e74c3c;box-shadow:0 0 0 2px #e74c3c33}.search-input{flex:1;min-width:250px}.search-input::placeholder{color:#666}.customer-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px;margin-bottom:25px}.stat-card{background:#ffffff0d;border-radius:12px;padding:20px;text-align:center;border:1px solid rgba(255,255,255,.1)}.stat-value{display:block;font-size:1.8rem;font-weight:600;color:#e74c3c;margin-bottom:5px}.stat-label{display:block;font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:.5px}.customer-table-container{background:#ffffff0d;border-radius:15px;overflow:hidden;max-height:600px;overflow-y:auto}.customer-table{width:100%;border-collapse:collapse}.customer-table thead{position:sticky;top:0;background:#1e1e32f2;z-index:10}.customer-table th{padding:15px 12px;text-align:left;font-weight:600;color:#e74c3c;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid rgba(231,76,60,.3)}.customer-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.1);font-size:.9rem}.customer-table tbody tr:hover{background:#e74c3c1a}.email-cell{color:#888;font-size:.85rem}.money-cell{font-weight:500;color:#4ade80}.center-cell{text-align:center}.no-data{text-align:center;color:#666;padding:40px!important}.status-badges{display:flex;gap:5px;flex-wrap:wrap}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500;text-transform:uppercase}.badge.returning{background:#a855f733;color:#a855f7}.badge.active{background:#4ade8033;color:#4ade80}.badge.new{background:#3b82f633;color:#3b82f6}.badge.lapsed{background:#fb923c33;color:#fb923c}.pack-cell{font-size:.85rem;max-width:250px;word-wrap:break-word;white-space:normal}.select-studio-prompt{text-align:center;padding:80px 20px;color:#888;font-size:1.2rem;background:#ffffff0d;border-radius:15px}.loading-state{text-align:center;padding:60px 20px;color:#888;font-size:1.1rem}.error-message{background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:10px;padding:15px 20px;color:#e74c3c;margin-bottom:20px}.view-mode-selector{display:flex;gap:0;margin-bottom:20px;background:#ffffff0d;border-radius:12px;padding:4px;width:fit-content}.view-mode-btn{padding:10px 24px;border:none;background:transparent;color:#888;font-size:.95rem;font-weight:500;cursor:pointer;border-radius:10px;transition:all .3s ease}.view-mode-btn:hover{color:#fff;background:#ffffff0d}.view-mode-btn.active{background:linear-gradient(90deg,#e74c3c,#c0392b);color:#fff;box-shadow:0 4px 15px #e74c3c4d}.date-input{padding:10px 15px;background:#1a1a2e;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.95rem;cursor:pointer;transition:all .3s ease}.date-input:focus{outline:none;border-color:#e74c3c;box-shadow:0 0 0 2px #e74c3c33}.date-input::-webkit-calendar-picker-indicator{filter:invert(1);cursor:pointer}.stat-card.highlight{border-color:#e74c3c;background:#e74c3c1a}.class-view-container{display:flex;flex-direction:column;gap:25px}.class-list h4,.reservations-section h4{color:#e74c3c;margin-bottom:15px;font-size:1.1rem}.class-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px}.class-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:15px;cursor:pointer;transition:all .3s ease}.class-card:hover{background:#ffffff14;border-color:#fff3;transform:translateY(-2px)}.class-card.selected{background:#e74c3c26;border-color:#e74c3c;box-shadow:0 4px 15px #e74c3c33}.class-time{font-size:1.2rem;font-weight:600;color:#e74c3c;margin-bottom:5px}.class-name{font-size:1rem;font-weight:500;color:#fff;margin-bottom:5px}.class-instructor{font-size:.85rem;color:#888;margin-bottom:8px}.class-capacity{font-size:.9rem;color:#4ade80;font-weight:500}.reservations-section{margin-top:10px}.loading-inline{font-weight:400;font-size:.9rem;color:#888}.status-cell{text-align:center}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.booked{background:#3b82f633;color:#3b82f6}.status-badge.checked-in{background:#4ade8033;color:#4ade80}@media(max-width:768px){.customer-filters{flex-direction:column}.filter-group{min-width:100%}.customer-stats{grid-template-columns:repeat(2,1fr)}.customer-table-container{overflow-x:auto}.customer-table{min-width:800px}.class-cards{grid-template-columns:1fr}}.dashboard{padding:20px 0}.main-tabs{display:flex;gap:0;margin-bottom:25px;background:#ffffff0d;border-radius:15px;padding:5px;width:fit-content}.main-tab{padding:12px 30px;border:none;background:transparent;color:#888;font-size:1rem;font-weight:500;cursor:pointer;border-radius:12px;transition:all .3s ease}.main-tab:hover{color:#fff;background:#ffffff0d}.main-tab.active{background:linear-gradient(90deg,#e74c3c,#c0392b);color:#fff;box-shadow:0 4px 15px #e74c3c4d}.filters{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:25px;padding:20px;background:#ffffff0d;border-radius:15px}.view-toggle{display:flex;justify-content:center;gap:10px;margin-bottom:25px}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-bottom:30px}.cumulative-section{margin-top:30px;padding:20px;background:#ffffff0d;border-radius:15px}.cumulative-section h3{color:#e74c3c;margin-bottom:20px;text-align:center}.studio-performance{margin-top:30px;padding:20px;background:#ffffff0d;border-radius:15px}.studio-performance h3{color:#e74c3c;margin-bottom:15px}.refresh-section{display:flex;align-items:center;gap:15px;margin-left:auto}.refresh-btn{padding:10px 20px;background:linear-gradient(90deg,#e74c3c,#c0392b);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.9rem;transition:all .3s ease}.refresh-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #e74c3c66}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.last-refresh{color:#888;font-size:.8rem}.goals-section{padding:20px;background:#ffffff0d;border-radius:15px}.goals-section h3{color:#e74c3c;margin-bottom:20px;text-align:center}.goals-summary{display:flex;justify-content:center;gap:40px;margin-bottom:25px;padding:20px;background:#0003;border-radius:12px}.goal-stat{display:flex;flex-direction:column;align-items:center;gap:5px}.goal-stat .stat-value{font-size:2rem;font-weight:700;color:#e74c3c}.goal-stat .stat-label{font-size:.85rem;color:#888;text-transform:uppercase;letter-spacing:1px}.goals-table{width:100%}.goals-refresh{justify-content:center;margin-bottom:20px}.leaderboard-section{padding:20px;background:#ffffff0d;border-radius:15px}.leaderboard-section h3{color:#e74c3c;margin-bottom:20px;text-align:center}.leaderboard-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.filter-group{display:flex;align-items:center;gap:10px}.filter-group label{color:#888;font-size:.9rem}.leaderboard-select{padding:10px 15px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.9rem;cursor:pointer;min-width:180px}.leaderboard-select:focus{outline:none;border-color:#e74c3c}.leaderboard-select option{background:#1a1a2e;color:#fff}.leaderboard-summary{display:flex;justify-content:center;gap:40px;margin-bottom:25px;padding:20px;background:#0003;border-radius:12px}.leaderboard-table{width:100%}.leaderboard-table .rank{font-weight:700;color:#e74c3c;text-align:center;width:50px}.market-badge{display:inline-block;font-size:.7rem;padding:2px 6px;border-radius:4px;margin-left:8px;text-transform:uppercase;font-weight:600}.market-badge.multi{background:#3498db33;color:#3498db}.market-badge.single{background:#9b59b633;color:#9b59b6}.goals-table tr.goal-met{background:#2ecc711a}.goals-table .local-currency{font-size:.8rem;color:#888;display:block}.progress-cell{display:flex;align-items:center;gap:10px}.progress-bar-container{flex:1;height:20px;background:#ffffff1a;border-radius:10px;overflow:hidden;position:relative;min-width:100px}.progress-bar{height:100%;border-radius:10px;transition:width .5s ease}.progress-bar.low{background:linear-gradient(90deg,#e74c3c,#c0392b)}.progress-bar.medium{background:linear-gradient(90deg,#f39c12,#e67e22)}.progress-bar.high{background:linear-gradient(90deg,#27ae60,#2ecc71)}.progress-bar.complete{background:linear-gradient(90deg,#2ecc71,#27ae60)}.stretch-marker{position:absolute;right:0;top:0;bottom:0;width:3px;background:gold}.progress-pct{font-weight:600;min-width:55px;text-align:right}.progress-pct.complete{color:#2ecc71}.leaderboard-days{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:15px;background:#0003;border-radius:12px}.leaderboard-days .day-btn{padding:8px 16px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#888;font-size:.9rem;cursor:pointer;border-radius:8px;transition:all .3s ease}.leaderboard-days .day-btn:hover{background:#ffffff1a;color:#fff}.leaderboard-days .day-btn.selected{background:linear-gradient(90deg,#e74c3c,#c0392b);border-color:transparent;color:#fff}.export-buttons{display:flex;gap:10px}.export-btn{padding:8px 16px;background:#3498db33;border:1px solid rgba(52,152,219,.4);border-radius:8px;color:#3498db;font-size:.85rem;cursor:pointer;transition:all .3s ease}.export-btn:hover{background:#3498db4d;border-color:#3498db}.studio-link{background:none;border:none;color:#3498db;cursor:pointer;font-size:inherit;font-family:inherit;padding:0;text-decoration:none;transition:all .2s ease}.studio-link:hover{color:#e74c3c;text-decoration:underline}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-header h3{margin:0}.goals-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}@media(max-width:768px){.filters{flex-direction:column}.summary-cards{grid-template-columns:1fr}.refresh-section{margin-left:0;flex-direction:column;align-items:flex-start}.goals-summary{flex-direction:column;gap:15px}.progress-bar-container{min-width:60px}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#0f0f1a)}.login-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;gap:30px;background:#ffffff0d;border-radius:20px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:450px;width:90%}.login-title{font-size:2rem;font-weight:700;background:linear-gradient(90deg,#e74c3c,#c0392b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-align:center;margin:0}.login-subtitle{color:#888;font-size:1rem;margin:0}.login-button{background:linear-gradient(90deg,#e74c3c,#c0392b);color:#fff;border:none;padding:15px 40px;border-radius:25px;font-size:18px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #e74c3c4d}.login-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #e74c3c66}.login-button:active{transform:translateY(0)}@media(max-width:768px){.login-title{font-size:1.5rem}.login-content{padding:40px 30px}}.callback-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#0f0f1a);gap:20px}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top-color:#e74c3c;border-radius:50%;animation:spin 1s linear infinite}.callback-text{color:#fff;font-size:16px}.flip-ticker-container{display:flex;flex-direction:column;align-items:center;gap:8px}.flip-ticker-label{font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:2px;font-weight:600}.flip-ticker{display:flex;gap:2px;perspective:1000px}.flip-card{width:32px;height:48px;position:relative}.flip-card.symbol{width:20px}.flip-card-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d}.flip-card-front,.flip-card-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;font-family:SF Mono,Consolas,Monaco,monospace;font-size:1.8rem;font-weight:700;border-radius:4px}.flip-card.number .flip-card-front,.flip-card.number .flip-card-back{background:linear-gradient(180deg,#1a1a2e,#0d0d1a 50%,#1a1a2e 50%,#0d0d1a);color:#e74c3c;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff1a,inset 0 -1px #0000004d;border:1px solid rgba(255,255,255,.1)}.flip-card.number .flip-card-front:after,.flip-card.number .flip-card-back:after{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#0006}.flip-card.symbol .flip-card-front,.flip-card.symbol .flip-card-back{background:transparent;color:#e74c3c}.flip-card-back{transform:rotateX(180deg)}.flip-card.flipping .flip-card-inner{animation:flip .6s ease-in-out}@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg)}to{transform:rotateX(0)}}.flip-ticker-container{padding:12px 20px;background:#0000004d;border-radius:10px;border:1px solid rgba(231,76,60,.3);box-shadow:0 0 20px #e74c3c1a}@media(max-width:768px){.flip-card{width:24px;height:36px}.flip-card.symbol{width:14px}.flip-card-front span,.flip-card-back span{font-size:1.3rem}}.fireworks-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:1000}.firework{position:absolute;width:0;height:0}.particle{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--color, #ffd700);box-shadow:0 0 6px var(--color, #ffd700),0 0 12px var(--color, #ffd700);animation:explode 1.2s ease-out forwards}@keyframes explode{0%{transform:translate(0) scale(1);opacity:1}50%{opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}.particle:after{content:"";position:absolute;width:100%;height:100%;background:inherit;border-radius:50%;animation:sparkle .3s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh;color:#fff}.app{max-width:1400px;margin:0 auto;padding:20px}.app.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:20px}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.1);border-top-color:#e74c3c;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:#ffffff1a;border-radius:15px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-header h1{font-size:2rem;background:linear-gradient(90deg,#e74c3c,#c0392b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.header-title-gif{height:180px;width:auto;object-fit:contain}.header-right{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.ticker-row{display:flex;gap:20px}.advisory-banner{background:linear-gradient(90deg,#e74c3c,#c0392b);color:#fff;text-align:center;padding:12px 20px;font-weight:700;font-size:.95rem;letter-spacing:.5px;border-radius:8px;margin-bottom:20px;box-shadow:0 4px 15px #e74c3c66;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 4px 15px #e74c3c66}50%{box-shadow:0 4px 25px #e74c3cb3}}.subtitle{color:#888;font-size:.9rem;margin:0}.logout-btn{padding:8px 20px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:20px;color:#fff;font-size:.9rem;cursor:pointer;transition:all .3s ease}.logout-btn:hover{background:#e74c3c4d;border-color:#e74c3c}.btn{padding:10px 24px;border:none;border-radius:25px;cursor:pointer;font-size:.95rem;transition:all .3s ease;margin:5px}.btn-primary{background:linear-gradient(90deg,#e74c3c,#c0392b);color:#fff}.btn-primary:hover{transform:scale(1.05);box-shadow:0 4px 15px #e74c3c66}.btn-secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.btn-secondary:hover{background:#fff3}.btn.active{background:linear-gradient(90deg,#e74c3c,#c0392b);color:#fff}.positive{color:#2ecc71!important}.negative{color:#e74c3c!important}.data-table{width:100%;border-collapse:collapse;margin-top:15px}.data-table th,.data-table td{padding:12px 15px;text-align:right;border-bottom:1px solid rgba(255,255,255,.1)}.data-table th{background:#ffffff1a;color:#e74c3c;font-weight:600;text-transform:uppercase;font-size:.85rem}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table tr:hover{background:#ffffff0d}.data-table tr.has-data{background:#e74c3c1a}.data-table tfoot tr{font-weight:700;background:#ffffff1a}@media(max-width:768px){.app-header h1{font-size:1.8rem}.data-table th,.data-table td{padding:8px 10px;font-size:.85rem}}
