@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;600;700;800&display=swap";:root{--bg-primary:#0a0b0e;--bg-secondary:#111319;--panel-bg:#141821a6;--panel-border:#ffffff0f;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--accent-color:#39ff14;--accent-glow:#39ff1459;--danger-color:#ef4444;--danger-glow:#ef44444d;--felt-bg:#0c3823;--felt-border:#4d3319}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);background-image:radial-gradient(at 10% 20%,#39ff1408 0,#0000 50%),radial-gradient(at 90% 80%,#39ff1405 0,#0000 50%);min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;font-family:Outfit,sans-serif;font-weight:700}a{color:var(--accent-color);text-decoration:none;transition:all .2s}a:hover{text-shadow:0 0 8px var(--accent-glow)}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--panel-border);border-radius:16px;padding:24px;transition:transform .3s,border-color .3s;box-shadow:0 8px 32px #0000005e}.border-accent-glow{border-color:#39ff144d;box-shadow:0 0 20px #39ff141a}.app-header{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--panel-border);background:#0a0b0ecc;position:sticky;top:0}.navbar{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.brand{color:var(--text-primary);align-items:center;gap:10px;font-family:Outfit,sans-serif;font-size:1.4rem;font-weight:800;display:flex}.brand-emoji{font-size:1.8rem}.brand-logo{object-fit:contain;width:32px;height:32px}.nav-links{gap:8px;list-style:none;display:flex}.nav-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 16px;font-weight:500;transition:all .2s}.nav-btn:hover,.nav-btn.active{color:var(--text-primary);background:#ffffff0d}.nav-btn.active{border-bottom:2px solid var(--accent-color);border-radius:8px 8px 0 0}.user-session-badge{align-items:center;gap:12px;display:flex}.session-name{color:var(--text-secondary);font-size:.9rem}.logout-link{color:var(--danger-color);cursor:pointer;font-size:.85rem}.app-container{max-width:1200px;margin:0 auto;padding:32px 24px}.btn{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:10px 20px;font-size:.95rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background-color:var(--accent-color);color:#000}.btn-primary:hover{background-color:#5cff1a;transform:translateY(-2px)}.btn-accent{color:var(--accent-color);background-color:#39ff141a;border-color:#39ff144d}.btn-accent:hover{background-color:var(--accent-color);color:#000;transform:translateY(-2px)}.btn-glow{box-shadow:0 0 15px var(--accent-glow)}.btn-glow:hover{box-shadow:0 0 25px var(--accent-color)}.btn-ghost{color:var(--text-primary);background:0 0;border-color:#ffffff1a}.btn-ghost:hover{background:#ffffff0d}.btn-outline{color:var(--text-secondary);background:0 0;border-color:#ffffff26}.btn-outline:hover{color:var(--text-primary);border-color:var(--text-primary)}.btn-danger{background:var(--danger-color);color:var(--text-primary)}.btn-danger:hover{box-shadow:0 0 15px var(--danger-glow);background:#ff5c5c}.btn-danger-outline{color:var(--danger-color);background:0 0;border-color:#ef44444d}.btn-danger-outline:hover{background:#ef44441a}.btn-block{width:100%;display:flex}.btn-sm{padding:6px 12px;font-size:.85rem}.btn-xs{padding:4px 8px;font-size:.75rem}.badge{text-transform:uppercase;border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:600;display:inline-block}.badge-accent{color:var(--accent-color);background:#39ff1426;border:1px solid #39ff144d}.badge-outline{color:var(--text-secondary);background:0 0;border:1px solid #ffffff26}.badge-danger{color:var(--danger-color);background:#ef444426;border:1px solid #ef44444d}.form-group{margin-bottom:20px}.form-label{color:var(--text-secondary);margin-bottom:8px;font-size:.9rem;font-weight:600;display:block}.form-control{width:100%;color:var(--text-primary);background:#0a0b0e99;border:1px solid #ffffff1a;border-radius:8px;padding:12px 16px;font-size:1rem;transition:all .2s}.form-control:focus{border-color:var(--accent-color);box-shadow:0 0 10px var(--accent-glow);outline:none}select.form-control{cursor:pointer}select.form-control option{background-color:var(--bg-secondary);color:var(--text-primary)}.login-wrapper{justify-content:center;align-items:center;min-height:70vh;display:flex}.login-card{text-align:center;width:100%;max-width:440px}.login-logo-area{margin-bottom:32px}.login-logo{filter:drop-shadow(0 8px 16px #00000080);width:90px;height:90px;margin:0 auto 20px;display:block}.dashboard-banner-logo{object-fit:contain;width:48px;height:48px}.pool-8-ball-logo{background:radial-gradient(circle at 35% 35%,#67ff30 0%,#1b8509 45%,#9e1b1b 85%,#5e0808 100%);border:4px solid #333;border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;margin:0 auto 20px;display:inline-flex;position:relative;box-shadow:0 8px 24px #0009,0 0 15px #ffffff0d}.pool-8-ball-inner{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:flex;transform:translate(-4px,-4px);box-shadow:inset -2px -2px 6px #0003}.pool-8-ball-number{color:#000;font-family:Outfit,sans-serif;font-size:1.6rem;font-weight:900}.subtitle{color:var(--text-secondary);font-size:.95rem}.team-banner-card{background-image:linear-gradient(135deg,#0c382366 0%,#141821cc 100%)}.team-banner-header{justify-content:center;align-items:center;gap:12px;display:flex}.banner-emoji{font-size:2rem}.team-stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stat-box{background:#ffffff05;border:1px solid #ffffff0a;border-radius:12px;padding:16px}.stat-num{color:var(--accent-color);text-shadow:0 0 10px var(--accent-glow);font-family:Outfit,sans-serif;font-size:1.8rem;font-weight:800;display:block}.stat-lbl{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.schedule-row{background:#ffffff05;border-left:4px solid #0000;transition:all .2s}.schedule-row.week-active{border-left-color:var(--accent-color);background:#39ff140a}.schedule-row.week-completed{border-left-color:var(--text-secondary)}.schedule-row.week-scheduled{border-left-color:#ffffff14}.week-badge{background:#ffffff0d;border-radius:6px;padding:4px 8px;font-size:.85rem;font-weight:700;display:inline-block}.result-badge{border-radius:6px;margin-right:8px;padding:4px 8px;font-size:.85rem;font-weight:700;display:inline-block}.result-badge.win{color:var(--accent-color);background:#39ff1426}.result-badge.loss{color:var(--danger-color);background:#ef444426}.standout-item{background:#ffffff05;border:1px solid #ffffff0a}.standout-badge{text-transform:uppercase;color:var(--text-secondary);font-size:.8rem;font-weight:700}.avatar-sm{background:linear-gradient(135deg, var(--accent-color), #052214);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:700;display:flex}.avatar-lg{background:linear-gradient(135deg, var(--accent-color), #0a3823);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.4rem;font-weight:700;display:flex;box-shadow:0 0 10px #39ff1433}.standout-stat{font-size:.85rem;font-weight:600}.player-card{transition:transform .2s,border-color .2s}.player-card:hover{border-color:#39ff1433;transform:translateY(-4px)}.player-stats-mini{text-align:center;background:#0003;border-radius:12px;justify-content:space-around;padding:12px;display:flex}.mini-stat{flex-direction:column;display:flex}.mini-val{font-family:Outfit,sans-serif;font-size:1.2rem;font-weight:700}.mini-lbl{color:var(--text-secondary);font-size:.75rem}.detail-stat-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;padding:8px 0;display:flex}.run-stats-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.run-box{text-align:center;background:#ffffff05;border:1px solid #ffffff0a;border-radius:8px;padding:12px}.run-num{font-size:2rem;font-weight:800;display:block}.run-label{color:var(--text-secondary);font-size:.75rem}.live-score-display{gap:20px}.team-score-block{flex-direction:column;align-items:center;display:flex}.score-team-name{font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700}.score-number{font-family:Outfit,sans-serif;font-size:3.2rem;font-weight:900}.score-vs{color:var(--text-secondary);font-size:2.2rem}.progress-bar-container{background:#ffffff0d;border-radius:6px;height:10px;position:relative;overflow:hidden}.progress-bar-fill{background:var(--accent-color);height:100%;box-shadow:0 0 10px var(--accent-color);transition:width .4s ease-out}.game-dots-grid{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.game-dot{width:32px;height:32px;color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border-radius:6px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;transition:all .2s;display:flex}.game-dot:hover{background:#ffffff26;transform:scale(1.1)}.game-dot.dot-win{background:var(--accent-color);color:#000;box-shadow:0 0 8px var(--accent-glow)}.game-dot.dot-loss{background:var(--danger-color);color:#fff}.scorecard-table-wrapper{overflow-x:auto}.scorecard-table{border-collapse:collapse;text-align:left;width:100%}.scorecard-table th{color:var(--text-secondary);text-transform:uppercase;border-bottom:2px solid #ffffff14;padding:12px 16px;font-size:.85rem}.scorecard-table td{border-bottom:1px solid #ffffff0d;padding:16px}.scorecard-table tr.row-scored{background:#ffffff03}.status-badge{border-radius:4px;padding:4px 8px;font-size:.75rem;font-weight:700;display:inline-block}.status-badge.win{color:var(--accent-color);background:#39ff1426}.status-badge.loss{color:var(--danger-color);background:#ef444426}.status-badge.pending{color:var(--text-secondary);background:#ffffff0d}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;background:#000000bf;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-card{background:var(--bg-secondary);width:90%;max-width:650px;max-height:90vh;overflow-y:auto}.bg-felt{background:radial-gradient(circle, var(--felt-bg) 40%, #03140c 100%);border:12px solid var(--felt-border);box-shadow:inset 0 0 20px #000c,0 4px 15px #00000080}.text-felt-header{color:#fff;text-shadow:0 2px 4px #00000080;font-family:Outfit,sans-serif}.text-felt-subheader{color:#fff9}.text-felt-meta{color:#fff6}.pool-rack-canvas{flex-wrap:wrap;place-content:center;width:170px;height:170px;display:flex;position:relative}.pool-ball{color:#000;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin:3px;font-size:.8rem;font-weight:800;transition:all .2s cubic-bezier(.175,.885,.32,1.275);display:flex;box-shadow:2px 2px 4px #0006,inset -2px -2px 6px #0000004d}.pool-ball:hover{transform:scale(1.15)}.pool-ball.pocketed{opacity:.15;box-shadow:none;transform:scale(.85)}.ball-1{color:#000;background-color:#ffd60a}.ball-2{color:#fff;background-color:#0077b6}.ball-3{color:#fff;background-color:#d90429}.ball-4{color:#fff;background-color:#7209b7}.ball-5{color:#fff;background-color:#f77f00}.ball-6{color:#fff;background-color:green}.ball-7{color:#fff;background-color:#8b0000}.ball-8{color:#fff;background-color:#000;border:1px solid #fff3}.ball-9{color:#000;background-color:#fdf0d5;border:4px solid #ffd60a;line-height:24px}.ball-10{color:#000;background-color:#fdf0d5;border:4px solid #0077b6;line-height:24px}.ball-11{color:#000;background-color:#fdf0d5;border:4px solid #d90429;line-height:24px}.ball-12{color:#000;background-color:#fdf0d5;border:4px solid #7209b7;line-height:24px}.ball-13{color:#000;background-color:#fdf0d5;border:4px solid #f77f00;line-height:24px}.ball-14{color:#000;background-color:#fdf0d5;border:4px solid green;line-height:24px}.ball-15{color:#000;background-color:#fdf0d5;border:4px solid #8b0000;line-height:24px}.score-player-item{background:#ffffff05;border:1px solid #0000;border-radius:8px;flex:1;padding:12px}.score-player-item.winner-active{background:#39ff140d;border-color:#39ff144d}.winner-buttons-toggle button{font-weight:700}.btn-outline-accent{color:var(--text-secondary);background:0 0;border-color:#ffffff1a}.btn-outline-accent.active{color:var(--accent-color);border-color:var(--accent-color);background:#39ff1426}.btn-outline-danger{color:var(--text-secondary);background:0 0;border-color:#ffffff1a}.btn-outline-danger.active{color:var(--danger-color);border-color:var(--danger-color);background:#ef444426}.stepper-box,.safety-stepper{background:#0003;border:1px solid #ffffff0d}.match-log-card{transition:transform .2s}.match-log-card:hover{transform:scale(1.005)}.match-log-card.border-accent{border-left:6px solid var(--accent-color)}.match-log-card.border-danger{border-left:6px solid var(--danger-color)}.match-log-score{font-family:Outfit,sans-serif;font-size:1.1rem}.score-val{font-size:1.5rem;font-weight:800}.score-divider{color:var(--text-secondary);padding:0 4px}.score-team{color:var(--text-secondary);padding:0 4px;font-size:.85rem}.match-details-panel{max-height:0;transition:max-height .3s ease-out;overflow:hidden}.match-details-panel.active{max-height:5000px;transition:max-height .4s ease-in}.clickable{cursor:pointer}.animate-fade-in{animation:.4s cubic-bezier(.16,1,.3,1) fadeIn}.animate-slide-in{animation:.35s cubic-bezier(.16,1,.3,1) slideIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(30px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=768px){.team-stats-grid{grid-template-columns:repeat(2,1fr)}.live-score-display{gap:10px}.score-number{font-size:2.4rem}.nav-links{display:none}.scoreboard-header .col-md-4{margin-bottom:12px}}.text-accent{color:var(--accent-color)!important}.text-danger{color:var(--danger-color)!important}.text-muted{color:var(--text-secondary)!important}.d-none{display:none!important}
