*,*:before,*:after{box-sizing:border-box}:root{--primary-50: #eef2ff;--primary-100: #e0e7ff;--primary-500: #6366f1;--primary-600: #4f46e5;--primary-700: #4338ca;--success-50: #ecfdf5;--success-100: #d1fae5;--success-500: #10b981;--success-700: #047857;--warning-50: #fffbeb;--warning-500: #f59e0b;--danger-50: #fff1f2;--danger-500: #f43f5e;--violet-50: #f5f3ff;--violet-100: #ede9fe;--violet-200: #ddd6fe;--violet-500: #8b5cf6;--violet-600: #7c3aed;--violet-700: #6d28d9;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-700: #334155;--slate-800: #1e293b;--slate-900: #0f172a;--white: #ffffff;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--font-sans: "Inter", system-ui, -apple-system, sans-serif}html{font-size:15px}body{margin:0;font-family:var(--font-sans);background-color:var(--slate-50);color:var(--slate-700);-webkit-font-smoothing:antialiased;line-height:1.35}h1,h2,h3,h4,h5,h6{color:var(--slate-900);margin:0;font-weight:600;letter-spacing:-.025em}a{text-decoration:none;color:inherit;transition:color .2s}.material-symbols-rounded{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle;font-size:18px;-webkit-user-select:none;user-select:none}.card{background:var(--white);border:1px solid var(--slate-200);border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-sm);transition:all .2s ease-in-out}button{font-family:var(--font-sans)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .85rem;border-radius:var(--radius-md);font-weight:500;font-size:.78rem;cursor:pointer;transition:all .2s;border:1px solid transparent}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-600);color:var(--white);box-shadow:0 1px 2px #4f46e54d}.btn-primary:hover:not(:disabled){background-color:var(--primary-700);transform:translateY(-1px)}.btn-secondary{background-color:var(--white);color:var(--slate-700);border-color:var(--slate-200)}.btn-secondary:hover:not(:disabled){background-color:var(--slate-50);border-color:var(--slate-300)}input[type=text],input[type=number],input[type=password],select,textarea{display:block;width:100%;padding:.45rem .65rem;font-family:var(--font-sans);font-size:.78rem;color:var(--slate-900);background-color:var(--white);border:1px solid var(--slate-200);border-radius:var(--radius-md);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input[type=text]::placeholder,input[type=number]::placeholder,input[type=password]::placeholder,select::placeholder,textarea::placeholder{color:var(--slate-400)}input[type=text]:focus,input[type=number]:focus,input[type=password]:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.container{max-width:1400px;margin:0 auto;padding:1.25rem}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.font-bold{font-weight:600}.text-muted{color:var(--slate-400)}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1}.badge-primary{background:var(--primary-50);color:var(--primary-700)}.badge-success{background:var(--success-50);color:var(--success-700)}.badge-warning{background:var(--warning-50);color:var(--warning-500)}.badge-danger{background:var(--danger-50);color:var(--danger-500)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--slate-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--slate-400)}app-dashboard,app-players,app-player-detail,app-settings,app-manual-matches,app-virtual-lineup,app-compare-teams,app-admin,app-teams-admin,app-players-admin,app-matches-admin,app-leagues-admin,app-seasons-admin,app-transitivity-admin,app-scraper-admin,app-users-admin,app-geo-admin,app-match-detail-dialog,app-player-detail-dialog,app-squad-comparison-view,app-path-explorer,app-create-manual-match-dialog,app-add-unknown-player-dialog,app-player-import-dialog,app-find-similar-dialog{font-size:.88rem}app-dashboard .dashboard-container,app-settings .settings-container,app-players .players-container,app-player-detail .player-detail-container,app-manual-matches .manual-matches-container,app-virtual-lineup .virtual-lineup-container,app-compare-teams .h2h-wrapper,app-admin .admin-container,app-teams-admin .admin-panel-content,app-players-admin .admin-panel-content{padding:1rem!important;gap:.85rem!important}app-dashboard .header-section,app-settings .settings-header,app-manual-matches .page-header,app-virtual-lineup .page-header,app-compare-teams .view-placeholder,app-players .header-section{margin-bottom:.85rem!important;padding:.75rem!important}app-dashboard h1,app-settings h1,app-players h1,app-manual-matches h1,app-virtual-lineup h1,app-admin h1{font-size:1.15rem!important;letter-spacing:0!important}app-dashboard h2,app-dashboard h3,app-settings h2,app-settings h3,app-players h2,app-players h3,app-manual-matches h2,app-manual-matches h3,app-virtual-lineup h2,app-virtual-lineup h3,app-compare-teams h2,app-compare-teams h3,app-admin h2,app-admin h3,app-teams-admin h2,app-teams-admin h3,app-players-admin h2,app-players-admin h3{font-size:.95rem!important;letter-spacing:0!important}app-dashboard p,app-settings p,app-players p,app-manual-matches p,app-virtual-lineup p,app-compare-teams p,app-admin p{font-size:.75rem!important}app-dashboard .card,app-dashboard .kpi-card,app-dashboard .panel-card,app-settings .card,app-settings .panel-card,app-manual-matches .card,app-manual-matches .panel-card,app-virtual-lineup .card,app-virtual-lineup .panel-card,app-compare-teams .table-card,app-compare-teams .analysis-controls,app-admin .panel-card,app-teams-admin .scan-controls-card,app-teams-admin .suggestions-container,app-teams-admin .merge-tool-card,app-players-admin .suggestions-container,app-players-admin .merge-tool-card{border-radius:var(--radius-md)!important;padding:.75rem!important}app-dashboard .panel-header,app-admin .panel-header,app-matches-admin .panel-header,app-seasons-admin .panel-header,app-transitivity-admin .panel-header,app-teams-admin .container-header,app-players-admin .container-header,app-teams-admin .card-header,app-players-admin .card-header{padding:.65rem .85rem!important}app-dashboard .filters-bar,app-settings .filters-bar,app-players .filters-bar,app-manual-matches .filters-bar,app-virtual-lineup .filters-bar,app-teams-admin .filter-row,app-players-admin .filter-row,app-matches-admin .header-actions,app-transitivity-admin .actions-bar{gap:.65rem!important;padding:.65rem!important}app-dashboard .modern-table,app-settings .modern-table,app-players .modern-table,app-manual-matches .modern-table,app-virtual-lineup .modern-table,app-compare-teams .modern-table,app-admin .modern-table,app-matches-admin .modern-table{font-size:.72rem!important}app-dashboard .modern-table th,app-dashboard .modern-table td,app-settings .modern-table th,app-settings .modern-table td,app-players .modern-table th,app-players .modern-table td,app-manual-matches .modern-table th,app-manual-matches .modern-table td,app-virtual-lineup .modern-table th,app-virtual-lineup .modern-table td,app-compare-teams .modern-table th,app-compare-teams .modern-table td,app-admin .modern-table th,app-admin .modern-table td,app-matches-admin .modern-table th,app-matches-admin .modern-table td{padding:.42rem .6rem!important}app-virtual-lineup .sidebar,app-manual-matches .sidebar{width:260px!important}app-virtual-lineup .sidebar-header,app-virtual-lineup .sidebar-content,app-virtual-lineup .sidebar-footer,app-manual-matches .sidebar-header,app-manual-matches .sidebar-content,app-manual-matches .sidebar-footer{padding:.85rem!important;gap:.85rem!important}app-virtual-lineup .content,app-manual-matches .content,app-squad-comparison .content{padding:1rem!important}app-compare-teams .comparison-grid,app-compare-teams .analysis-viewport,app-virtual-lineup .main-layout,app-manual-matches .main-layout,app-dashboard .dashboard-grid,app-dashboard .content-grid,app-squad-comparison-view .comparison-layout{gap:.85rem!important}app-compare-teams .analysis-controls,app-squad-comparison-view .summary-card,app-squad-comparison-view .comparison-card,app-path-explorer .path-card{padding:.75rem!important;gap:.65rem!important}app-match-detail-dialog .dialog-card,app-player-detail-dialog .dialog-card,app-create-manual-match-dialog .dialog-card,app-add-unknown-player-dialog .dialog-card,app-player-import-dialog .dialog-card,app-find-similar-dialog .dialog-card,app-matches-admin .modal-card,app-teams-admin .modal-card,app-players-admin .modal-card{border-radius:var(--radius-md)!important}app-match-detail-dialog .dialog-header,app-match-detail-dialog .dialog-body,app-match-detail-dialog .dialog-footer,app-player-detail-dialog .dialog-header,app-player-detail-dialog .dialog-body,app-player-detail-dialog .dialog-footer,app-create-manual-match-dialog .dialog-header,app-create-manual-match-dialog .dialog-body,app-create-manual-match-dialog .dialog-footer,app-add-unknown-player-dialog .dialog-header,app-add-unknown-player-dialog .dialog-body,app-add-unknown-player-dialog .dialog-footer,app-player-import-dialog .dialog-header,app-player-import-dialog .dialog-body,app-player-import-dialog .dialog-footer,app-find-similar-dialog .dialog-header,app-find-similar-dialog .dialog-body,app-find-similar-dialog .dialog-footer,app-matches-admin .modal-header,app-matches-admin .modal-body,app-matches-admin .modal-footer,app-teams-admin .modal-header,app-teams-admin .modal-body,app-teams-admin .modal-footer,app-players-admin .modal-header,app-players-admin .modal-body,app-players-admin .modal-footer{padding:.75rem .9rem!important;gap:.65rem!important}app-match-detail-dialog .score,app-match-detail-dialog .team-name,app-player-detail-dialog .player-name,app-player-detail-dialog .stat-value,app-players .player-name,app-dashboard .stat-value{font-size:.95rem!important}app-dashboard .empty-state,app-dashboard .loading-state,app-players .empty-state,app-settings .empty-state,app-manual-matches .empty-state,app-manual-matches .loading-state,app-virtual-lineup .empty-state,app-virtual-lineup .loading-state,app-compare-teams .view-placeholder,app-compare-teams .loading-state,app-admin .empty-state,app-admin .loading-state{padding:1.5rem!important;gap:.75rem!important}
