:root{--court-blue: #0066b3;--court-blue-dark: #004d8a;--court-green: #2d8c3c;--ball-yellow: #ccff00;--ball-yellow-dark: #a8d600;--white-lines: #ffffff;--glass-bg: rgba(255, 255, 255, .95);--shadow: 0 8px 32px rgba(0, 102, 179, .15)}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:#0a1929;color:#e2e8f0;margin:0;min-height:100vh;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:140vmax;height:140vmax;background:linear-gradient(90deg,transparent calc(50% - 2px),rgba(255,255,255,.15) calc(50% - 2px),rgba(255,255,255,.15) calc(50% + 2px),transparent calc(50% + 2px)),linear-gradient(0deg,transparent calc(50% - 2px),rgba(255,255,255,.15) calc(50% - 2px),rgba(255,255,255,.15) calc(50% + 2px),transparent calc(50% + 2px)),linear-gradient(90deg,transparent calc(25% - 1px),rgba(255,255,255,.08) calc(25% - 1px),rgba(255,255,255,.08) calc(25% + 1px),transparent calc(25% + 1px)),linear-gradient(90deg,transparent calc(75% - 1px),rgba(255,255,255,.08) calc(75% - 1px),rgba(255,255,255,.08) calc(75% + 1px),transparent calc(75% + 1px)),linear-gradient(0deg,transparent calc(20% - 1px),rgba(255,255,255,.06) calc(20% - 1px),rgba(255,255,255,.06) calc(20% + 1px),transparent calc(20% + 1px)),linear-gradient(0deg,transparent calc(80% - 1px),rgba(255,255,255,.06) calc(80% - 1px),rgba(255,255,255,.06) calc(80% + 1px),transparent calc(80% + 1px)),radial-gradient(ellipse at center,#1a3a52,#142d42 40%,#0f2536,#0a1929);pointer-events:none;z-index:0}body:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.02) 3%,transparent 6%),linear-gradient(270deg,rgba(255,255,255,.05) 0%,rgba(255,255,255,.02) 3%,transparent 6%),linear-gradient(180deg,rgba(0,0,0,.3) 0%,transparent 8%),linear-gradient(0deg,rgba(0,0,0,.2) 0%,transparent 5%),linear-gradient(90deg,transparent 49%,rgba(0,0,0,.15) 49.5%,rgba(0,0,0,.2) 50%,rgba(0,0,0,.15) 50.5%,transparent 51%);pointer-events:none;z-index:0}.app:before{content:"";position:fixed;top:15%;right:8%;width:60px;height:60px;background:radial-gradient(circle at 30% 30%,#e8ff4a,#c4e600 40%,#9fba00);border-radius:50%;box-shadow:inset -8px -8px 20px #0003,inset 5px 5px 15px #fff6,0 4px 20px #0000004d;z-index:0;opacity:.8;animation:float 6s ease-in-out infinite}.app:after{content:"";position:fixed;bottom:20%;left:5%;width:40px;height:40px;background:radial-gradient(circle at 30% 30%,#e8ff4a,#c4e600 40%,#9fba00);border-radius:50%;box-shadow:inset -5px -5px 12px #0003,inset 3px 3px 10px #fff6,0 3px 15px #0000004d;z-index:0;opacity:.6;animation:float 8s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(10deg)}}.app{max-width:1100px;margin:0 auto;padding:24px 16px;position:relative;z-index:1}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--glass-bg);padding:16px 24px;border-radius:16px;box-shadow:var(--shadow);border:3px solid var(--white-lines)}.topbar h1{margin:0;font-size:28px;color:var(--court-blue);display:flex;align-items:center;gap:12px}.topbar h1:before{content:"🎾";font-size:32px}.subtitle{margin:0;color:#475569;font-size:13px;background:linear-gradient(90deg,var(--court-blue),var(--court-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:500}.main{display:grid;grid-template-columns:360px 1fr;gap:18px;margin-top:18px}.card{background:#142d42f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px;box-shadow:0 8px 32px #0000004d;border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--court-blue),var(--ball-yellow),var(--court-green))}.card h2{color:var(--ball-yellow);margin:0 0 12px;font-size:18px;display:flex;align-items:center;gap:8px}.left .card+.card{margin-top:14px}.add-fine-card{background:linear-gradient(145deg,#1e3a5ff2,#142846fa)!important;border:1px solid rgba(204,255,0,.2)!important;box-shadow:0 4px 20px #0000004d,0 0 40px #ccff000d,inset 0 1px #ffffff1a!important;overflow:hidden}.add-fine-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid rgba(204,255,0,.15)}.add-fine-header h2{margin:0;font-size:20px;font-weight:600;background:linear-gradient(135deg,#fff,#cf0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.add-fine-icon{font-size:28px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.add-form input{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.2);border-radius:10px;margin-top:8px;box-sizing:border-box;font-size:14px;transition:border-color .2s,box-shadow .2s;background:#ffffff1a;color:#fff}.add-form input::placeholder{color:#ffffff80}.add-form input:focus{outline:none;border-color:var(--ball-yellow);box-shadow:0 0 0 3px #ccff0026}.add-form .row{display:flex;gap:12px}.add-form .row input{flex:1}.add-form .row select{flex:2}.player-select{width:100%;margin-top:8px;padding:12px 36px 12px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;background:#ffffff1a;color:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ccff00' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.player-select:focus{outline:none;border-color:var(--ball-yellow);box-shadow:0 0 0 3px #ccff0026}.player-select option{padding:8px;background:#1e3a5f;color:#fff}.reason-input-wrapper{display:flex;flex-direction:column;gap:8px}.reason-input{width:100%;padding:14px 16px;border:1px solid rgba(255,255,255,.15);border-radius:12px;font-size:14px;box-sizing:border-box;transition:all .25s ease;background:#ffffff14;color:#fff;margin-top:12px}.reason-input::placeholder{color:#ffffff80}.reason-input:focus{outline:none;border-color:var(--ball-yellow);box-shadow:0 0 0 3px #ccff0026}.reason-suggestions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.reason-suggestions .label{font-size:12px;color:#fff9;margin-right:4px}.suggestion-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px!important;background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:20px!important;font-size:12px!important;cursor:pointer;transition:all .2s;color:#fff!important}.suggestion-chip:hover{background:#fff3!important;border-color:var(--ball-yellow)!important;transform:none!important}.suggestion-chip .chip-amount{color:var(--ball-yellow);font-weight:600}.fine-type-select-wrapper{display:flex;align-items:center;gap:12px}.fine-type-select-wrapper .or-text{font-size:12px;color:#fff9;white-space:nowrap}.card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-header-row h2{margin:0}.toggle-btn{padding:8px 16px!important;font-size:13px!important;background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;border-radius:8px!important;color:#fff!important}.fine-types-list{list-style:none;padding:0;margin:0 0 20px}.fine-type-item{display:flex;align-items:center;gap:16px;padding:16px;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d;border-radius:10px;margin-bottom:8px}.fine-type-item:last-child{margin-bottom:0}.fine-type-reason{flex:1;font-weight:500;color:#fff;font-size:15px}.fine-type-amount{font-weight:700;color:var(--ball-yellow);min-width:100px;text-align:right;font-size:16px}.fine-type-actions{display:flex;gap:8px}.fine-type-actions button{padding:6px 10px!important;font-size:16px!important;background:transparent!important;border:none!important}.fine-type-actions button:hover{transform:scale(1.15)!important}.fine-type-edit{display:flex;gap:10px;width:100%;align-items:center}.fine-type-edit .edit-input{padding:10px 12px;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:14px;background:#ffffff1a;color:#fff}.fine-type-edit .edit-input:first-child{flex:1}.fine-type-edit .edit-input.amount{width:100px}.fine-type-edit .save-btn{padding:8px 12px!important;background:#16a34a!important;color:#fff!important;border:none!important}.fine-type-edit .cancel-btn{padding:8px 12px!important;background:#dc2626!important;color:#fff!important;border:none!important}.add-fine-type-form{display:flex;gap:12px;padding-top:16px;border-top:1px solid #e2e8f0;margin-top:8px}.add-fine-type-form input{padding:12px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:14px}.add-fine-type-form input:first-child{flex:1;min-width:0}.add-fine-type-form input[type=number]{width:100px}.add-fine-type-form button{white-space:nowrap;padding:12px 20px!important}.form-actions{margin-top:14px;display:flex;gap:10px}button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:10px 16px;border-radius:10px;cursor:pointer;color:#fff;font-weight:500;transition:all .2s}button:hover{background:#fff3;transform:translateY(-1px)}button.primary{background:linear-gradient(135deg,var(--ball-yellow),var(--ball-yellow-dark));color:#1e293b;border:none;box-shadow:0 4px 12px #ccff004d}button.primary:hover{background:linear-gradient(135deg,var(--ball-yellow-dark),var(--ball-yellow));box-shadow:0 6px 16px #cf06}button:disabled{opacity:.6;cursor:default;transform:none}.error{color:#fca5a5;margin-top:10px;padding:8px 12px;background:#dc262633;border-radius:8px;font-size:13px}.muted{color:#ffffff80;font-style:italic}.team-stats{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.team-total{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(135deg,var(--court-blue),var(--court-blue-dark));border-radius:12px;color:#fff}.team-total .label{font-weight:500;font-size:14px;opacity:.9}.team-total .amount{font-size:20px;font-weight:700}.team-total .amount.outstanding{color:#fbbf24}.team-total .amount.paid{color:#86efac}.team-total.grand-total{background:linear-gradient(135deg,#1e293b,#334155)}.mobilepay-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:16px 24px;background:linear-gradient(135deg,#5a78ff,#7b68ee);color:#fff;font-size:16px;font-weight:600;text-decoration:none;border-radius:12px;margin-top:16px;transition:all .2s;box-shadow:0 4px 12px #5a78ff4d}.mobilepay-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #5a78ff66;background:linear-gradient(135deg,#4a68ef,#6b58de)}.mobilepay-btn .mp-icon{font-size:20px}.personal-summary{background:linear-gradient(135deg,#ccff0026,#ccff000d);border:2px solid var(--ball-yellow);box-shadow:0 8px 32px #ccff0026}.personal-summary h2{color:var(--ball-yellow)}.personal-stats{text-align:center}.personal-outstanding{padding:20px;border-radius:12px;margin-bottom:12px}.personal-outstanding.owes{background:linear-gradient(135deg,#fbbf244d,#fbbf2426)}.personal-outstanding.clear{background:linear-gradient(135deg,#22c55e4d,#22c55e26)}.personal-outstanding .label{display:block;font-size:14px;color:#ffffffb3;margin-bottom:8px}.personal-outstanding .amount{display:block;font-size:32px;font-weight:800;color:#fff}.personal-outstanding.owes .amount{color:#fbbf24}.personal-outstanding.clear .amount{color:#86efac}.personal-paid,.personal-clean{padding:8px}.personal-paid .small-label,.personal-clean .small-label{font-size:13px;color:#fff9}.mobilepay-fab{position:fixed;top:90px;right:24px;display:flex;align-items:center;gap:12px;padding:18px 28px;background:linear-gradient(135deg,#5a31f4,#9b59b6);color:#fff;font-size:18px;font-weight:700;text-decoration:none;border-radius:50px;transition:all .3s ease;box-shadow:0 8px 32px #5a31f480,0 0 0 4px #ffffff4d;z-index:1000;animation:mobilepay-pulse 2s ease-in-out infinite;border:3px solid rgba(255,255,255,.4)}.mobilepay-fab:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 12px 40px #5a31f499,0 0 0 6px #fff6;background:linear-gradient(135deg,#4a21e4,#8b49a6)}.mobilepay-fab .mp-icon{font-size:26px}.mobilepay-fab .mp-text{white-space:nowrap;text-shadow:0 2px 4px rgba(0,0,0,.2)}@keyframes mobilepay-pulse{0%,to{box-shadow:0 8px 32px #5a31f480,0 0 0 4px #ffffff4d}50%{box-shadow:0 12px 48px #5a31f4b3,0 0 0 8px #fff3}}@media (max-width: 600px){.mobilepay-fab{padding:14px 20px;font-size:15px;top:16px;right:16px}.mobilepay-fab .mp-icon{font-size:22px}}.leaderboard{list-style:none;padding:0;margin:0}.leaderboard-item{display:flex;align-items:center;gap:12px;padding:14px 12px;border-bottom:1px solid rgba(255,255,255,.1);transition:background .2s}.leaderboard-item:last-child{border-bottom:none}.leaderboard-item:hover{background:#ffffff0d}.leaderboard-item.paid-up{opacity:.6}.leaderboard-item .rank{font-size:18px;min-width:32px;text-align:center;font-weight:600;color:#ffffffb3}.leaderboard-item .name{flex:1;font-weight:600;color:#fff}.leaderboard-item .stats{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.leaderboard-item .outstanding{font-weight:700;font-size:15px}.leaderboard-item .outstanding.owes{color:#fbbf24}.leaderboard-item .outstanding.clear{color:#86efac;font-size:13px}.leaderboard-item .total-small{font-size:12px;color:#ffffff80}.totals-list{list-style:none;padding:0;margin:0}.totals-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:2px dashed rgba(255,255,255,.1)}.totals-item:last-child{border-bottom:none}.totals-item strong{color:var(--ball-yellow)}.totals-values{text-align:right;font-size:13px;color:#fff9}.outstanding{color:#fbbf24;font-weight:600}.total{color:var(--ball-yellow);margin-left:10px;font-weight:500}.list-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.filters label{margin-left:10px;font-size:13px;color:#fffc;cursor:pointer}.filters input[type=radio]{accent-color:var(--ball-yellow)}.fines{width:100%;border-collapse:separate;border-spacing:0;margin-top:14px;font-size:14px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.15)}.fines th,.fines td{text-align:left;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.1);color:#fff;font-size:15px}.fines thead th{color:var(--ball-yellow);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.5px;background:#ccff0026;border-bottom:2px solid rgba(204,255,0,.3)}.fines tbody tr{background:#ffffff08}.fines tbody tr:nth-child(2n){background:#ffffff0f}.fines tbody tr:hover td{background:#ffffff1a}.fines tr.paid td{background:linear-gradient(90deg,#2d8c3c40,#2d8c3c1a)}.fines tbody tr:last-child td{border-bottom:none}.reason{color:#ffffffe6;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.small{font-size:13px;color:#fff9}.footer{margin-top:24px;color:#ffffffb3;font-size:13px;text-align:center;padding:16px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;z-index:1}.login-container{width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:24px;color:#fff}.login-header h1{font-size:32px;margin:0 0 8px;text-shadow:0 2px 10px rgba(0,0,0,.3)}.login-header p{margin:0;opacity:.9}.login-card{background:var(--glass-bg);border-radius:20px;padding:32px;box-shadow:var(--shadow)}.login-tabs{display:flex;gap:8px;margin-bottom:24px}.login-tabs button{flex:1;padding:12px;border:none;background:#f1f5f9;border-radius:10px;cursor:pointer;font-weight:500;color:#64748b;transition:all .2s}.login-tabs button.active{background:var(--court-blue);color:#fff}.form-group{margin-bottom:16px}.form-group label{display:block;font-weight:500;margin-bottom:6px;color:#334155}.form-group small.form-hint{display:block;font-size:12px;color:#64748b;margin-top:4px}.form-group input{width:100%;padding:12px 14px;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;box-sizing:border-box;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--court-blue)}.login-card button[type=submit]{width:100%;padding:14px;margin-top:8px}.login-footer{text-align:center;margin-top:20px;color:#fffc}.login-footer button.link{background:none;border:none;color:var(--ball-yellow);text-decoration:underline;cursor:pointer;padding:0}.app-layout{display:flex;min-height:100vh;position:relative;z-index:1}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.loading-spinner{font-size:48px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar{width:280px;background:linear-gradient(180deg,#1e3a5f,#0d2137);display:flex;flex-direction:column;box-shadow:4px 0 20px #0003;z-index:10}.sidebar-header{padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header h1{font-size:20px;margin:0;color:var(--ball-yellow)}.sidebar-user{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1)}.user-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--court-blue),var(--court-green));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px}.user-info{display:flex;flex-direction:column}.user-name{font-weight:600;color:#fff}.user-email{font-size:12px;color:#fff9}.sidebar-nav{flex:1;padding:16px 0;overflow-y:auto}.nav-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#ffffff80;margin:0 0 8px 20px}.team-list{list-style:none;padding:0;margin:0 0 16px}.team-item{width:100%;padding:12px 20px;border:none;background:none;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:background .2s}.team-item:hover{background:#ffffff1a}.team-item.active{background:linear-gradient(90deg,rgba(204,255,0,.2),transparent);border-left:3px solid var(--ball-yellow)}.team-item .team-name{font-weight:500;color:#fff}.badge{font-size:10px;padding:3px 8px;border-radius:10px;background:var(--ball-yellow);color:#1f2937;font-weight:600}.badge.formand{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.badge.member{background:#e2e8f0;color:#64748b}.team-actions{padding:0 12px;display:flex;gap:8px}.small-btn{flex:1;padding:8px 12px;font-size:12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;transition:all .2s;color:#fff}.small-btn:hover{background:#fff3}.small-btn.danger-btn{background:#dc26264d;border-color:#dc262680;color:#fca5a5}.small-btn.danger-btn:hover{background:#dc262680}.sidebar-footer{padding:16px 20px;border-top:1px solid rgba(255,255,255,.1)}.logout-btn{width:100%;padding:10px;background:#dc262633;color:#fca5a5;border:1px solid rgba(220,38,38,.3);border-radius:8px;cursor:pointer;font-weight:500;transition:background .2s}.logout-btn:hover{background:#dc26264d;color:#fecaca}.main-content{flex:1;display:flex;flex-direction:column;overflow-y:auto}.page-nav{display:flex;gap:8px;padding:16px 24px;background:linear-gradient(135deg,#1a3a52,#0f2a3d);border-bottom:1px solid rgba(255,255,255,.1);align-items:center}.page-nav button{padding:10px 20px;background:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:10px;cursor:pointer;font-weight:500;color:#fffc;transition:all .2s;box-shadow:0 1px 3px #0003}.page-nav button:hover{background:#ffffff26;border-color:#ffffff4d;color:#fff}.page-nav button.active{background:var(--ball-yellow);border-color:var(--ball-yellow);color:#1e293b}.current-team-name{margin-left:auto;font-weight:600;color:var(--ball-yellow);background:#ffffff1a;padding:8px 16px;border-radius:20px}.fines-page{padding:24px;flex:1}.fines-page.empty{display:flex;align-items:center;justify-content:center}.empty-state{text-align:center;padding:48px;background:var(--glass-bg);border-radius:20px}.empty-state h2{margin:0 0 8px;color:var(--court-blue)}.empty-state p{color:#64748b;margin:0}.fines-grid{display:grid;grid-template-columns:360px 1fr;gap:20px}.fines-page .left .card+.card{margin-top:16px}.fines-page .actions{display:flex;gap:8px}.fines-page .actions button.danger{background:#fee2e2;color:#dc2626;border:none}.fines-page .actions button.danger:hover{background:#fecaca}.fine-types-page{padding:24px;flex:1;max-width:900px}.fine-types-page.empty{display:flex;align-items:center;justify-content:center}.fine-types-page .page-header{margin-bottom:24px}.fine-types-page .page-header h1{margin:0 0 8px;font-size:28px;color:var(--ball-yellow)}.page-header{margin-bottom:24px}.page-header h1{margin:0 0 8px;font-size:28px;color:var(--ball-yellow)}.page-header p{margin:0;color:#ffffffb3;font-size:15px}.page-header p .team-name{color:var(--ball-yellow);font-weight:600}.error-banner{background:#dc262633;border:1px solid rgba(220,38,38,.4);color:#fca5a5;padding:12px 16px;border-radius:10px;margin-bottom:16px}.add-fine-type-card{margin-bottom:24px;background:#142d42f2;border:1px solid rgba(255,255,255,.15)}.add-fine-type-form-large{margin-top:16px}.add-fine-type-form-large .form-row,.add-fine-type-row{display:flex;gap:16px;align-items:flex-end}.add-fine-type-form-large .form-group{flex:1}.add-fine-type-form-large .form-group:nth-child(2){flex:0 0 150px}.add-fine-type-form-large .form-group label{display:block;font-weight:500;margin-bottom:8px;color:#fffc}.add-fine-type-form-large .form-group input{width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;box-sizing:border-box}.add-fine-type-form-large .form-group input:focus{outline:none;border-color:var(--court-blue)}.add-fine-type-form-large button{padding:14px 28px!important;white-space:nowrap}@media (max-width: 640px){.add-fine-type-row{flex-direction:column;align-items:stretch}}.empty-fine-types{text-align:center;padding:48px 24px;color:#64748b}.empty-fine-types .icon{font-size:48px;display:block;margin-bottom:16px}.empty-fine-types p{margin:0;font-size:16px}.empty-fine-types .hint{margin-top:8px;font-size:14px;color:#94a3b8}.fine-types-grid{display:grid;gap:12px}.fine-type-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}.fine-type-card .fine-type-info{display:flex;justify-content:space-between;align-items:center}.fine-type-card .fine-type-reason{font-size:16px;font-weight:600;color:#fff}.fine-type-card .fine-type-amount{font-size:20px;font-weight:700;color:var(--ball-yellow)}.fine-type-card .fine-type-actions{display:flex;gap:8px;justify-content:flex-end}.fine-type-card .edit-btn,.fine-type-card .delete-btn{padding:6px 12px!important;font-size:12px!important;border-radius:6px!important;opacity:.6;transition:opacity .2s}.fine-type-card .edit-btn:hover,.fine-type-card .delete-btn:hover{opacity:1}.fine-type-card .edit-btn{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;color:#fffc!important}.fine-type-card .delete-btn{background:transparent!important;border:1px solid rgba(255,255,255,.15)!important;color:#ffffff80!important}.fine-type-edit-mode{display:flex;flex-direction:column;gap:12px}.fine-type-edit-mode .edit-input{padding:12px 14px;border:1px solid rgba(255,255,255,.2);border-radius:8px;font-size:15px;background:#ffffff1a;color:#fff}.fine-type-edit-mode .edit-input:focus{outline:none;border-color:var(--ball-yellow)}.fine-type-edit-mode .edit-actions{display:flex;gap:8px}.fine-type-edit-mode .save-btn,.fine-type-edit-mode .cancel-btn{flex:1;padding:10px 16px!important;font-size:14px!important;border-radius:8px!important}.fine-type-edit-mode .save-btn{background:#16a34a!important;color:#fff!important;border:none!important}.fine-type-edit-mode .cancel-btn{background:#ffffff1a!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important}.team-page{padding:24px;flex:1}.team-page.empty{display:flex;align-items:center;justify-content:center}.team-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;background:linear-gradient(135deg,var(--court-blue),var(--court-blue-dark));padding:24px 28px;border-radius:16px;flex-wrap:wrap;gap:16px;box-shadow:0 4px 20px #1e406426}.team-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.team-header h2{margin:0 0 4px;color:#fff;font-size:24px}.team-role{color:#fffc;font-size:14px;display:flex;align-items:center;gap:6px}.invite-code-box{display:flex;align-items:center;gap:12px;background:#fffffff2;padding:12px 16px;border-radius:10px;box-shadow:0 2px 8px #0000001a}.invite-code-box .label{font-size:13px;color:#64748b}.invite-code{font-family:monospace;font-size:18px;font-weight:600;color:var(--court-blue);letter-spacing:2px}.copy-btn{padding:8px 12px;font-size:12px;background:var(--court-blue);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.copy-btn:hover{background:var(--court-blue-dark);transform:scale(1.02)}.settings-btn{padding:10px 16px;font-size:14px;background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:10px;cursor:pointer;transition:all .2s;font-weight:500}.settings-btn:hover{background:#ffffff4d;border-color:#ffffff80}.members-list{list-style:none;padding:0;margin:0}.member-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}.member-item:last-child{border-bottom:none}.member-avatar{width:36px;height:36px;background:linear-gradient(135deg,var(--court-blue),var(--court-green));color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px}.member-info{flex:1;display:flex;flex-direction:column}.member-name{font-weight:600;color:#fff;font-size:15px}.member-email{font-size:13px;color:#ffffffb3}.member-role{margin-right:8px}.team-info{margin-top:24px}.team-info p{margin:8px 0;padding:12px 16px;background:#fffc;border-radius:10px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:16px;padding:24px;width:100%;max-width:400px;margin:20px}.modal h2{margin:0 0 20px;color:var(--court-blue-dark)}.modal h3{margin:0 0 8px;color:var(--court-blue-dark);font-size:20px}.modal-subtitle{margin:0 0 16px;color:#64748b;font-size:14px}.modal .player-select{width:100%;padding:12px;font-size:16px}.modal-actions{display:flex;gap:10px;margin-top:20px}.modal-actions button{flex:1}.modal-note{margin-top:16px;font-size:13px;color:#64748b;text-align:center}.modal-divider{border:none;border-top:1px solid #e2e8f0;margin:24px 0}.danger-zone{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:16px}.danger-zone h3{margin:0 0 8px;font-size:14px;color:#dc2626}.danger-zone .muted{font-size:13px;margin-bottom:12px}.danger-btn{background:#dc2626!important;color:#fff!important}.danger-btn:hover{background:#b91c1c!important}.full-width{width:100%}.wheel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.wheel-modal{background:linear-gradient(145deg,#1e3a5f,#14283f);border-radius:24px;padding:32px;text-align:center;max-width:420px;width:90%;box-shadow:0 25px 50px #00000080,0 0 100px #ccff001a;border:1px solid rgba(204,255,0,.2);position:relative}.wheel-modal h2{margin:0 0 8px;font-size:28px;color:#fff}.wheel-subtitle{color:#ffffffb3;margin:0 0 24px;font-size:14px}.wheel-subtitle strong{color:var(--ball-yellow)}.wheel-close{position:absolute;top:16px;right:16px;background:#ffffff1a;border:none;color:#fff;font-size:24px;width:36px;height:36px;border-radius:50%;cursor:pointer;transition:all .2s}.wheel-close:hover{background:#fff3}.wheel-close:disabled{opacity:.5;cursor:not-allowed}.wheel-container{position:relative;width:280px;height:280px;margin:0 auto 16px;display:flex;justify-content:center;align-items:center}.current-segment{text-align:center;font-size:14px;font-weight:600;color:var(--ball-yellow);padding:8px;background:#0000004d;border-radius:8px;margin-bottom:12px}.wheel-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;padding:12px;background:#0003;border-radius:12px}.legend-item{display:flex;align-items:center;gap:8px}.legend-color{width:16px;height:16px;border-radius:4px;flex-shrink:0}.legend-text{font-size:12px;color:#ffffffe6}.spin-button{background:linear-gradient(135deg,var(--ball-yellow),#a8cc00)!important;color:#1e3a5f!important;font-size:20px!important;font-weight:700!important;padding:16px 48px!important;border-radius:50px!important;border:none!important;cursor:pointer;transition:all .3s!important;box-shadow:0 4px 20px #cf06}.spin-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 30px #ccff0080}.spin-button:disabled{opacity:.7;cursor:not-allowed}.wheel-result{background:#ffffff1a;border-radius:16px;padding:20px;margin-top:16px}.wheel-result.good{background:#22c55e33;border:1px solid rgba(34,197,94,.3)}.wheel-result.bad{background:#ef444433;border:1px solid rgba(239,68,68,.3)}.wheel-result p{font-size:18px;font-weight:600;color:#fff;margin:0 0 8px}.wheel-result .auto-close{font-size:12px;color:#ffffff80}.wheel-btn{background:linear-gradient(135deg,#fbbf24,#f59e0b)!important;color:#1e3a5f!important;font-size:14px!important;padding:6px 10px!important;border-radius:6px!important;border:none!important;cursor:pointer;transition:all .2s!important}.wheel-btn:hover{transform:scale(1.1);box-shadow:0 2px 10px #fbbf2480}@media (max-width: 900px){.fines-grid{grid-template-columns:1fr}.app-layout{flex-direction:column}.sidebar{width:100%;max-height:60vh}.team-header{flex-direction:column;gap:16px}.invite-code-box{width:100%;justify-content:center}}.league-page{padding:24px;position:relative;max-width:1200px;margin:0 auto}.league-page.empty{display:flex;align-items:center;justify-content:center;min-height:60vh}.league-settings-btn{position:absolute;top:24px;right:24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:8px 12px;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s;font-size:16px}.league-settings-btn:hover{background:#ffffff26;transform:translateY(-1px)}.league-setup-card{max-width:500px;background:linear-gradient(135deg,#ffffff14,#ffffff0a);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:28px}.league-setup-card h2{margin-top:0;margin-bottom:20px;font-size:20px}.league-setup-card .setup-description{color:#ffffffb3;margin-bottom:24px}.league-setup-card .field-hint{display:block;margin-top:6px;font-size:12px;color:#ffffff80}.league-setup-card .button-row{display:flex;gap:12px;margin-top:24px}.league-page .page-header{margin-bottom:20px}.league-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.league-page .page-header h1{font-size:28px;margin-bottom:4px}.league-page .page-header p{color:#fff9;margin:0;font-size:15px}.standings-card{margin-bottom:24px;background:linear-gradient(135deg,#ffffff14,#ffffff0a);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:24px}.standings-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.standings-card h2{margin:0;font-size:18px;font-weight:600}.standings-table-wrapper{overflow-x:auto;margin:0;border-radius:12px;background:#0003}.standings-table{width:100%;border-collapse:collapse;font-size:14px}.standings-table th{text-align:left;padding:14px 12px;background:#0000004d;color:#fff9;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.standings-table th:first-child{border-radius:12px 0 0}.standings-table th:last-child{border-radius:0 12px 0 0}.standings-table td{padding:14px 12px;border-bottom:1px solid rgba(255,255,255,.06);color:#ffffffe6}.standings-table tbody tr:last-child td{border-bottom:none}.standings-table tbody tr{transition:background .2s}.standings-table tbody tr:hover{background:#ffffff08}.standings-table .pos{width:40px;font-weight:700;color:#ffffff80;font-size:13px}.standings-table .team{font-weight:500}.standings-table .team-marker{color:var(--ball-yellow);margin-right:8px}.standings-table .pts{font-weight:700;color:var(--ball-yellow);font-size:16px}.standings-table .played,.standings-table .wins,.standings-table .sets{color:#ffffffb3;text-align:center}.standings-table th.played,.standings-table th.wins,.standings-table th.sets{text-align:center}.standings-table tr.current-team{background:#ffcc001a}.standings-table tr.current-team td{color:#fff}.standings-table tr.current-team .team{color:var(--ball-yellow);font-weight:600}.standings-table tr.current-team .pos{color:var(--ball-yellow)}.last-updated{font-size:12px;color:#fff6;text-align:right;margin-top:16px}.matches-card{margin-bottom:24px;background:linear-gradient(135deg,#ffffff14,#ffffff0a);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:24px}.matches-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.matches-card h2{margin:0;font-size:18px;font-weight:600}.matches-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}.match-item{background:#0003;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;transition:all .2s}.match-item:hover{background:#00000040;border-color:#ffffff1f}.match-item.clickable{cursor:pointer}.match-item.clickable:hover{border-color:#ffcc004d;transform:translateY(-1px)}.add-match-btn{padding:6px 14px;font-size:13px;background:linear-gradient(135deg,#fc03,#ffcc001a);border:1px solid rgba(255,204,0,.3);border-radius:8px;color:#fc0;cursor:pointer;transition:all .2s;font-weight:500}.add-match-btn:hover{background:linear-gradient(135deg,#ffcc004d,#fc03);transform:translateY(-1px)}.match-item.our-match{border-color:#fc06;background:#ffcc0014}.match-item.our-match:hover{background:#ffcc001f}.match-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.match-datetime{display:flex;flex-direction:row;align-items:center;gap:8px}.match-round{font-size:11px;font-weight:700;color:#60a5fa;background:#3b82f64d;padding:5px 12px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.match-date{font-size:13px;font-weight:600;color:#ffffffe6}.match-time{font-size:13px;font-weight:600;color:#93c5fd}.match-teams{display:flex;align-items:center;justify-content:center;gap:16px;font-size:15px;font-weight:500}.match-teams .home-team,.match-teams .away-team{flex:1;color:#ffffffe6}.match-teams .home-team{text-align:right}.match-teams .away-team{text-align:left}.match-teams .our-team{color:var(--ball-yellow);font-weight:700}.match-teams .vs{color:#ffffff4d;font-size:12px;font-weight:400}.match-teams .match-result{background:linear-gradient(135deg,var(--court-green) 0%,#0d9488 100%);color:#fff;padding:6px 14px;border-radius:8px;font-weight:700;font-size:14px;box-shadow:0 2px 8px #10b9814d}.match-location{margin-top:12px;font-size:12px;color:#ffffffb3;text-align:center}.match-location:before{content:"📍 "}.played-matches .match-item{opacity:.7}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px;gap:16px}.loading-state .loading-spinner{font-size:40px;animation:spin 1s linear infinite}@media (max-width: 768px){.league-page,.standings-card,.matches-card{padding:16px}.standings-table{font-size:13px}.standings-table th,.standings-table td{padding:10px 8px}.standings-table .wins,.standings-table .sets{display:none}.match-teams{flex-direction:column;gap:8px}.match-teams .home-team,.match-teams .away-team{text-align:center}.league-settings-btn{padding:8px 12px;font-size:14px}.league-grid{grid-template-columns:1fr}}.rankedin-link{display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;padding:12px 20px;background:linear-gradient(135deg,#3b82f64d,#3b82f633);border:1px solid rgba(59,130,246,.5);border-radius:10px;color:#60a5fa;text-decoration:none;font-weight:600;transition:all .2s}.rankedin-link:hover{background:linear-gradient(135deg,#3b82f666,#3b82f64d);transform:translateY(-1px);color:#93c5fd}.small-btn{padding:8px 16px;font-size:13px;background:linear-gradient(135deg,#ffffff1f,#ffffff14);border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;cursor:pointer;transition:all .2s;font-weight:500}.small-btn:hover{background:linear-gradient(135deg,#fff3,#ffffff26);transform:translateY(-1px)}.delete-btn-small{background:transparent;border:none;padding:6px 10px;cursor:pointer;opacity:.4;transition:all .2s;border-radius:6px}.delete-btn-small:hover{opacity:1;background:#ef444433}.form-row-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin-bottom:16px}.checkbox-label{display:flex;align-items:center;gap:12px;margin:20px 0;cursor:pointer;color:#ffffffe6;font-weight:500}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--ball-yellow)}.empty-state.small{padding:40px 30px;background:#00000026;border-radius:12px;margin-top:8px}.empty-state.small p{margin:0;color:#ffffff80}.matches-section-title{font-size:13px;font-weight:700;color:#fffc;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.15);text-transform:uppercase;letter-spacing:.5px}.matches-section-title:first-child{margin-top:0}.match-item.played{opacity:.6}.standings-table td.editable{cursor:pointer;transition:background .15s}.standings-table td.editable:hover{background:#ffffff14}.inline-edit-input{background:#0000004d;border:1px solid var(--ball-yellow);border-radius:4px;color:#fff;padding:4px 8px;font-size:14px;width:100%;box-sizing:border-box}.inline-edit-input.small{width:50px;text-align:center}.inline-edit-input:focus{outline:none;box-shadow:0 0 0 2px #ffcc004d}.add-row-btn{width:100%;padding:12px;margin-top:8px;background:transparent;border:1px dashed rgba(255,255,255,.2);border-radius:8px;color:#ffffff80;cursor:pointer;transition:all .2s;font-size:14px}.add-row-btn:hover{background:#ffffff0d;border-color:#ffffff4d;color:#fffc}.adding-row{background:#ffcc000d}.adding-row td{padding:8px 4px!important}.standing-actions{display:flex;align-items:center;gap:4px}.move-buttons{display:flex;flex-direction:column;gap:2px;margin-right:4px}.move-btn{background:transparent;border:none;padding:2px 4px;cursor:pointer;color:#fff6;font-size:12px;line-height:1;border-radius:3px;transition:all .2s}.move-btn:hover{background:#ffffff1f;color:var(--ball-yellow)}.star-btn{background:transparent;border:none;padding:4px 6px;cursor:pointer;color:#ffffff4d;font-size:16px;transition:all .2s}.star-btn:hover,.star-btn.active{color:var(--ball-yellow)}.save-btn{background:var(--court-green);border:none;color:#fff;padding:4px 10px;border-radius:4px;cursor:pointer;font-weight:600;transition:all .2s}.save-btn:hover:not(:disabled){background:#0d9488}.save-btn:disabled{opacity:.5;cursor:not-allowed}.cancel-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#ffffffb3;padding:4px 10px;border-radius:4px;cursor:pointer;transition:all .2s;margin-left:4px}.cancel-btn:hover{background:#ffffff1a}.card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-header-row h2{margin:0;font-size:18px}.matches-card .match-item{padding:12px}.matches-card .match-teams{font-size:14px}.matches-card .match-round{font-size:10px;padding:3px 8px}.matches-card .match-date{font-size:12px}.match-form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.match-form-card{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:28px;width:100%;max-width:380px;position:relative;box-shadow:0 25px 50px #00000080}.match-form-card .close-btn{position:absolute;top:12px;right:12px;background:#ffffff1a;border:none;width:32px;height:32px;border-radius:50%;color:#fff9;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.match-form-card .close-btn:hover{background:#fff3;color:#fff}.match-form-card h2{margin:0 0 24px;font-size:20px;text-align:center;color:#fff}.match-form-teams{display:flex;align-items:center;gap:10px;margin-bottom:20px}.match-form-teams .team-select{flex:1;background:#0006;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:12px 10px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;text-align-last:center}.match-form-teams .team-select:focus{outline:none;border-color:var(--ball-yellow)}.match-form-teams .team-select option{background:#1e293b;color:#fff}.match-form-teams .vs-badge{background:linear-gradient(135deg,var(--court-green) 0%,#0d9488 100%);color:#fff;padding:8px 10px;border-radius:6px;font-size:11px;font-weight:700;flex-shrink:0}.match-form-row-group{display:grid;grid-template-columns:auto 1fr 1fr 1fr;column-gap:12px;align-items:center;margin-bottom:16px}.round-label-inline{font-size:15px;color:#93c5fd;margin-right:4px;min-width:54px}.round-input-inline,.date-input-inline,.time-input-inline{background:#101726;color:#fff;border:none;border-radius:14px;font-size:17px;padding:12px 18px;height:48px;box-sizing:border-box;font-weight:600;outline:none;transition:box-shadow .2s;box-shadow:0 2px 8px #0002;width:100%;min-width:0}.round-input-inline{max-width:90px}.round-input-inline:focus,.date-input-inline:focus,.time-input-inline:focus{box-shadow:0 0 0 2px #93c5fd}.date-input-inline::-webkit-calendar-picker-indicator,.time-input-inline::-webkit-calendar-picker-indicator{filter:invert(1) brightness(2);opacity:1}.date-input-inline::-webkit-input-placeholder,.time-input-inline::-webkit-input-placeholder{color:#fff;opacity:.7}.match-form-location{margin-bottom:12px}.match-form-location input{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 14px;color:#fff;font-size:14px}.match-form-location input:focus{outline:none;border-color:#ffffff4d}.match-form-location input::placeholder{color:#ffffff80}.match-form-result{margin-bottom:20px}.match-form-result input{width:100%;background:#0000004d;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 14px;color:#fff;font-size:14px;text-align:center}.match-form-result input:focus{outline:none;border-color:#ffffff4d}.match-form-result input::placeholder{color:#fff6;font-size:13px}button.full-width{width:100%;padding:14px;font-size:15px;font-weight:600;border-radius:10px}@media (max-width: 480px){.match-form-card{padding:20px}.match-form-teams{flex-direction:column}.match-form-teams .team-select{width:100%}.match-form-teams .vs-badge{padding:6px 24px}}
