*,:before,:after{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green:#16a34a;--green-dark:#15803d;--green-darker:#166534;--green-light:#f0fdf4;--green-mid:#dcfce7;--accent:#facc15;--accent-dark:#ca8a04;--text:#111827;--text-2:#374151;--text-muted:#6b7280;--text-faint:#9ca3af;--border:#e5e7eb;--border-dark:#d1d5db;--bg:#f3f4f6;--surface:#fff;--red:#dc2626;--red-bg:#fef2f2;--gold:#f59e0b;--silver:#94a3b8;--bronze:#b45309;--radius-sm:6px;--radius:10px;--radius-lg:16px;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow:0 4px 12px #00000014, 0 1px 3px #0000000d;--shadow-lg:0 20px 48px #0000002e, 0 4px 12px #00000014}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}#root{width:100%;min-height:100vh}.app{flex-direction:column;min-height:100vh;display:flex}.site-header{color:#fff;z-index:50;background:linear-gradient(135deg,#166534 0%,#16a34a 100%);padding:0 20px;position:sticky;top:0;box-shadow:0 2px 12px #0003}.header-inner{justify-content:space-between;align-items:center;max-width:1000px;height:60px;margin:0 auto;display:flex}.logo{align-items:center;gap:10px;display:flex}.logo-icon{font-size:26px;line-height:1}.logo h1{color:#fff;letter-spacing:-.3px;font-size:20px;font-weight:800}.logo-sub{color:#ffffffa6;letter-spacing:.5px;text-transform:uppercase;margin-top:1px;font-size:11px;font-weight:500;line-height:1;display:block}.main-content{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:24px 16px 48px}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:9px 18px;font-size:14px;font-weight:600;line-height:1;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--green);color:#fff}.btn-primary:hover:not(:disabled){background:var(--green-dark)}.btn-outline{color:#fff;background:0 0;border:1.5px solid #ffffff8c}.btn-outline:hover:not(:disabled){background:#ffffff1f}.btn-danger{background:var(--red-bg);color:var(--red);border:1px solid #fca5a5}.btn-danger:hover:not(:disabled){background:#fee2e2}.btn-secondary{color:var(--text-2);border:1px solid var(--border-dark);background:#f3f4f6}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--text);background:#f3f4f6}.btn-sm{min-height:32px;padding:6px 12px;font-size:13px}.btn-xs{border-radius:4px;min-height:28px;padding:4px 10px;font-size:12px}.btn-icon{border-radius:var(--radius-sm);min-width:36px;min-height:36px;padding:8px}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-title{color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.card-title-icon{background:var(--green-mid);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.card-body{padding:20px}.card-body-sm{padding:16px}.tabs-wrap{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);gap:2px;margin-bottom:20px;padding:4px;display:flex}.tab{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);white-space:nowrap;text-align:center;background:0 0;border:none;flex:1;padding:9px 12px;font-size:14px;font-weight:600;line-height:1.3;transition:all .18s}.tab:hover:not(.active){background:var(--green-light);color:var(--green-dark)}.tab.active{background:var(--green);color:#fff;box-shadow:0 2px 8px #16a34a4d}.tab-count{min-width:18px;height:18px;color:inherit;background:#ffffff40;border-radius:20px;justify-content:center;align-items:center;margin-left:5px;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.tab:not(.active) .tab-count{background:var(--border);color:var(--text-muted)}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead th{background:var(--green-darker);color:#fff;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap;padding:11px 12px;font-size:12px;font-weight:700}thead th:first-child{padding-left:16px}thead th:last-child{padding-right:16px}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 12px}tbody td:first-child{padding-left:16px}tbody td:last-child{padding-right:16px}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--green-light)}.rank-cell{text-align:center;width:36px;font-size:13px;font-weight:700}.rank-medal{border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:800;display:inline-flex}.rank-1{color:var(--gold);background:#fef3c7}.rank-2{color:var(--silver);background:#f1f5f9}.rank-3{color:var(--bronze);background:#fef3c7}.rank-n{color:var(--text-faint)}.player-name-cell{color:var(--text);font-weight:600}.num-cell{text-align:center;color:var(--text-2)}.pts-cell{text-align:center;color:var(--green-dark);font-size:15px;font-weight:800}.gd-pos{color:var(--green-dark);font-weight:600}.gd-neg{color:var(--red);font-weight:600}.shots-selectors{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:20px;display:grid}.shots-vs-label{color:var(--text-muted);letter-spacing:.5px;text-align:center;font-size:12px;font-weight:800}.shots-comparison{flex-direction:column;gap:14px;display:flex}.shots-names{color:var(--text);justify-content:space-between;font-size:15px;font-weight:700;display:flex}.shots-numbers{justify-content:space-between;align-items:center;gap:8px;display:flex}.shots-num-a,.shots-num-b{font-size:42px;font-weight:900;line-height:1}.shots-num-a{color:var(--green-dark)}.shots-num-b{color:#1d4ed8}.shots-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.shots-bar-wrap{flex-direction:column;gap:6px;display:flex}.shots-bar{background:var(--border);border-radius:999px;height:10px;display:flex;overflow:hidden}.shots-bar-a{background:var(--green);border-radius:999px 0 0 999px;transition:width .4s}.shots-bar-b{background:#3b82f6;border-radius:0 999px 999px 0;transition:width .4s}.shots-pct{color:var(--text-muted);justify-content:space-between;font-size:12px;font-weight:700;display:flex}.shots-edit-row{justify-content:center;align-items:center;gap:16px;display:flex}.shots-edit-input{text-align:center!important;width:90px!important;padding:8px!important;font-size:26px!important;font-weight:800!important}.shots-edit-sep{font-size:22px}.shots-placeholder{text-align:center;color:var(--text-faint);padding:24px 0 8px;font-size:14px}.shots-admin-list{flex-direction:column;gap:0;display:flex}.shots-admin-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.shots-admin-row:last-child{border-bottom:none}.shots-admin-input-wrap{flex-shrink:0;align-items:center;gap:8px;display:flex}.shots-admin-input{text-align:center!important;width:80px!important;padding:7px 8px!important;font-size:16px!important;font-weight:700!important}.shots-admin-label{color:var(--text-muted);white-space:nowrap;font-size:13px;font-weight:500}.matches-list{flex-direction:column;gap:10px;display:flex}.match-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s;overflow:hidden}.match-card:hover{box-shadow:var(--shadow)}.match-card-inner{align-items:stretch;min-height:68px;display:flex}.match-team-side{flex:1;align-items:center;min-width:0;padding:12px 14px;display:flex}.match-team-side.home{justify-content:flex-end}.match-team-side.away{justify-content:flex-start}.team-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.match-center{border-left:1px solid var(--border);border-right:1px solid var(--border);background:#fafafa;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;min-width:96px;padding:10px 12px;display:flex}.score-display{align-items:center;gap:6px;display:flex}.score-num{background:var(--green);color:#fff;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:800;display:flex}.score-sep{color:var(--text-muted);font-size:14px;font-weight:800}.match-vs{color:var(--text-faint);letter-spacing:.5px;font-size:12px;font-weight:700}.match-round-badge{color:var(--green-dark);background:var(--green-mid);white-space:nowrap;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:700}.match-card-footer{border-top:1px solid var(--border);background:#fafafa;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.match-date-label{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:flex}.match-admin-actions{gap:6px;display:flex}.section-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.section-heading:after{content:"";background:var(--border);flex:1;height:1px}.admin-cols{grid-template-columns:300px 1fr;align-items:start;gap:16px;display:grid}.form-group{margin-bottom:14px}.form-group:last-of-type{margin-bottom:0}.form-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.form-control{border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:var(--surface);appearance:none;outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.form-control:focus{border-color:var(--green);box-shadow:0 0 0 3px #16a34a1f}.player-roster{list-style:none}.player-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.player-row:last-child{border-bottom:none}.player-row-name{align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.player-avatar{background:var(--green-mid);width:32px;height:32px;color:var(--green-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);overflow:hidden}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 0;display:flex}.modal-title{color:var(--text);font-size:18px;font-weight:800}.modal-subtitle{color:var(--text-muted);margin-top:4px;font-size:13px}.modal-body{padding:20px}.modal-footer{gap:10px;padding:0 20px 20px;display:flex}.modal-footer .btn{flex:1}.score-input-row{justify-content:center;align-items:center;gap:12px;margin:16px 0;display:flex}.score-input{text-align:center!important;border-radius:var(--radius-sm)!important;width:72px!important;padding:10px 8px!important;font-size:28px!important;font-weight:800!important}.score-input-sep{color:var(--text-muted);font-size:22px;font-weight:800}.empty-state{text-align:center;color:var(--text-muted);padding:48px 20px}.empty-icon{margin-bottom:12px;font-size:36px}.empty-title{color:var(--text-2);margin-bottom:4px;font-size:15px;font-weight:700}.empty-desc{font-size:13px}.error-msg{background:var(--red-bg);color:var(--red);border-radius:var(--radius-sm);border:1px solid #fca5a5;margin-bottom:12px;padding:8px 12px;font-size:13px;font-weight:500}.loading-spinner{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 20px;font-size:14px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--green);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=680px){.main-content{padding:16px 12px 40px}.logo h1{font-size:17px}.tabs-wrap{padding:3px}.tab{padding:8px;font-size:13px}.admin-cols{grid-template-columns:1fr}.team-name{font-size:14px}.match-center{min-width:80px;padding:8px}.score-num{width:28px;height:28px;font-size:14px}.match-card-inner{flex-direction:column}.match-team-side{padding:10px 14px 4px}.match-team-side.home{order:1;justify-content:center}.match-center{border:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:row;order:2;gap:12px;width:100%;min-width:0;padding:8px 14px}.match-team-side.away{order:3;justify-content:center;padding:4px 14px 10px}table{font-size:13px}thead th{padding:9px 8px;font-size:11px}tbody td{padding:9px 8px}thead th:first-child,tbody td:first-child{padding-left:10px}thead th:last-child,tbody td:last-child{padding-right:10px}.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.modal-overlay{align-items:flex-end;padding:0}}
