Spaces:
Running
Running
| /* =============================== | |
| SET PIECES ANALYSIS STYLES | |
| Corners, Free Kicks, Throw-ins, Goal Kicks | |
| =============================== */ | |
| /* =============================== | |
| CONFIG PANEL | |
| =============================== */ | |
| .config-panel { | |
| background: var(--white); | |
| border: 1px solid var(--gray-200); | |
| border-radius: 16px; | |
| padding: 2rem; | |
| margin-bottom: 2rem; | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .config-title { | |
| font-size: 1.125rem; | |
| font-weight: 600; | |
| color: var(--gray-900); | |
| margin-bottom: 1.5rem; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .config-title::before { | |
| content: ''; | |
| width: 4px; | |
| height: 20px; | |
| background: var(--green-vibrant); | |
| border-radius: 2px; | |
| } | |
| .config-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); | |
| gap: 1.5rem; | |
| margin-bottom: 2rem; | |
| } | |
| /* =============================== | |
| RUN BUTTON | |
| =============================== */ | |
| .run-button { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.75rem; | |
| width: 100%; | |
| padding: 1rem 2rem; | |
| background: linear-gradient(135deg, var(--green-dark) 0%, var(--green-vibrant) 100%); | |
| color: var(--white); | |
| border: none; | |
| border-radius: 12px; | |
| font-size: 1.125rem; | |
| font-weight: 600; | |
| font-family: inherit; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| box-shadow: 0 4px 15px rgba(34, 139, 34, 0.3); | |
| } | |
| .run-button:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 25px rgba(34, 139, 34, 0.4); | |
| } | |
| .run-button:active { | |
| transform: translateY(0); | |
| } | |
| .run-button:disabled { | |
| opacity: 0.7; | |
| cursor: not-allowed; | |
| transform: none; | |
| } | |
| .run-button .spinner { | |
| display: none; | |
| width: 20px; | |
| height: 20px; | |
| border: 2px solid rgba(255,255,255,0.3); | |
| border-top-color: white; | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| } | |
| .run-button.loading .spinner { | |
| display: block; | |
| } | |
| .run-button.loading .btn-text { | |
| display: none; | |
| } | |
| /* =============================== | |
| RESULTS SECTION | |
| =============================== */ | |
| .results-section { | |
| display: none; | |
| } | |
| .results-section.show { | |
| display: block; | |
| } | |
| .results-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 1.5rem; | |
| } | |
| .results-title { | |
| font-size: 1.25rem; | |
| font-weight: 700; | |
| color: var(--gray-900); | |
| } | |
| .results-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| padding: 0.5rem 1rem; | |
| background: var(--green-light); | |
| color: var(--green-dark); | |
| border-radius: 20px; | |
| font-size: 0.875rem; | |
| font-weight: 600; | |
| } | |
| /* =============================== | |
| PLOTS CAROUSEL | |
| =============================== */ | |
| .plots-carousel { | |
| background: white; | |
| border-radius: 16px; | |
| padding: 1.5rem; | |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); | |
| border: 1px solid var(--gray-100); | |
| } | |
| .carousel-main { | |
| display: flex; | |
| align-items: center; | |
| gap: 1rem; | |
| margin-bottom: 1rem; | |
| } | |
| .carousel-image-container { | |
| flex: 1; | |
| position: relative; | |
| background: var(--gray-50); | |
| border-radius: 12px; | |
| overflow: hidden; | |
| min-height: 400px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .carousel-image-container img { | |
| max-width: 100%; | |
| max-height: 550px; | |
| object-fit: contain; | |
| cursor: pointer; | |
| transition: transform 0.2s ease; | |
| } | |
| .carousel-image-container img:hover { | |
| transform: scale(1.02); | |
| } | |
| .carousel-image-title { | |
| position: absolute; | |
| bottom: 0; | |
| left: 0; | |
| right: 0; | |
| background: linear-gradient(transparent, rgba(0,0,0,0.7)); | |
| color: white; | |
| padding: 2rem 1.5rem 1rem; | |
| font-weight: 600; | |
| font-size: 1rem; | |
| } | |
| .carousel-nav-btn { | |
| width: 50px; | |
| height: 50px; | |
| border-radius: 50%; | |
| border: 2px solid var(--gray-200); | |
| background: white; | |
| color: var(--gray-600); | |
| font-size: 1.5rem; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| flex-shrink: 0; | |
| } | |
| .carousel-nav-btn:hover { | |
| background: var(--green-vibrant); | |
| border-color: var(--green-vibrant); | |
| color: white; | |
| transform: scale(1.1); | |
| } | |
| .carousel-counter { | |
| text-align: center; | |
| color: var(--gray-500); | |
| font-size: 0.9rem; | |
| font-weight: 500; | |
| } | |
| .carousel-controls { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 1.5rem; | |
| margin-bottom: 1rem; | |
| } | |
| .export-pdf-btn { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.4rem; | |
| padding: 0.5rem 1rem; | |
| background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%); | |
| color: white; | |
| border: none; | |
| border-radius: 8px; | |
| font-size: 0.85rem; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| box-shadow: 0 2px 6px rgba(220, 38, 38, 0.25); | |
| } | |
| .export-pdf-btn:hover { | |
| transform: translateY(-1px); | |
| box-shadow: 0 4px 12px rgba(220, 38, 38, 0.35); | |
| } | |
| .export-pdf-btn:active { | |
| transform: translateY(0); | |
| } | |
| .export-pdf-btn:disabled { | |
| opacity: 0.6; | |
| cursor: not-allowed; | |
| transform: none; | |
| } | |
| .export-pdf-btn .pdf-icon { | |
| font-size: 1rem; | |
| } | |
| /* PDF Selection Controls */ | |
| .pdf-selection-controls { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| } | |
| .selection-counter { | |
| font-size: 0.8rem; | |
| color: var(--gray-500); | |
| min-width: 90px; | |
| } | |
| .selection-btn { | |
| padding: 0.4rem 0.75rem; | |
| background: var(--gray-100); | |
| color: var(--gray-600); | |
| border: 1px solid var(--gray-200); | |
| border-radius: 6px; | |
| font-size: 0.8rem; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .selection-btn:hover { | |
| background: var(--green-light); | |
| border-color: var(--green-vibrant); | |
| color: var(--green-dark); | |
| } | |
| /* Thumbnail Selection Checkbox */ | |
| .carousel-thumbnail { | |
| position: relative; | |
| } | |
| .carousel-thumbnail .thumb-checkbox { | |
| position: absolute; | |
| top: 4px; | |
| right: 4px; | |
| width: 20px; | |
| height: 20px; | |
| background: rgba(255, 255, 255, 0.9); | |
| border: 2px solid var(--gray-300); | |
| border-radius: 4px; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 12px; | |
| color: transparent; | |
| transition: all 0.15s ease; | |
| z-index: 2; | |
| } | |
| .carousel-thumbnail .thumb-checkbox:hover { | |
| border-color: var(--green-vibrant); | |
| background: white; | |
| } | |
| .carousel-thumbnail.selected .thumb-checkbox { | |
| background: var(--green-vibrant); | |
| border-color: var(--green-vibrant); | |
| color: white; | |
| } | |
| .carousel-thumbnail.selected { | |
| border-color: var(--green-vibrant); | |
| opacity: 1; | |
| } | |
| /* AI Analysis Checkbox */ | |
| .ai-analysis-checkbox { | |
| display: flex; | |
| justify-content: center; | |
| margin: 0.5rem 0; | |
| } | |
| .ai-checkbox-label { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| cursor: pointer; | |
| padding: 0.4rem 0.75rem; | |
| border-radius: 6px; | |
| transition: background 0.2s ease; | |
| } | |
| .ai-checkbox-label:hover { | |
| background: rgba(139, 92, 246, 0.08); | |
| } | |
| .ai-checkbox-input { | |
| display: none; | |
| } | |
| .ai-checkbox-custom { | |
| width: 18px; | |
| height: 18px; | |
| border: 2px solid var(--gray-300); | |
| border-radius: 4px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| transition: all 0.2s ease; | |
| flex-shrink: 0; | |
| } | |
| .ai-checkbox-custom::after { | |
| content: "✓"; | |
| color: white; | |
| font-size: 12px; | |
| font-weight: bold; | |
| opacity: 0; | |
| transform: scale(0); | |
| transition: all 0.15s ease; | |
| } | |
| .ai-checkbox-input:checked + .ai-checkbox-custom { | |
| background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%); | |
| border-color: #7c3aed; | |
| } | |
| .ai-checkbox-input:checked + .ai-checkbox-custom::after { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| .ai-checkbox-text { | |
| font-size: 0.8rem; | |
| color: var(--gray-600); | |
| font-weight: 500; | |
| } | |
| .carousel-thumbnails-wrapper { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .thumb-nav-btn { | |
| width: 36px; | |
| height: 36px; | |
| border-radius: 50%; | |
| border: 1px solid var(--gray-200); | |
| background: white; | |
| color: var(--gray-500); | |
| font-size: 1.2rem; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| flex-shrink: 0; | |
| } | |
| .thumb-nav-btn:hover { | |
| background: var(--green-light); | |
| border-color: var(--green-vibrant); | |
| color: var(--green-dark); | |
| } | |
| .carousel-thumbnails { | |
| flex: 1; | |
| display: flex; | |
| gap: 0.5rem; | |
| overflow-x: auto; | |
| padding: 0.5rem 0; | |
| scroll-behavior: smooth; | |
| scrollbar-width: thin; | |
| scrollbar-color: var(--green-vibrant) var(--gray-100); | |
| } | |
| .carousel-thumbnails::-webkit-scrollbar { | |
| height: 6px; | |
| } | |
| .carousel-thumbnails::-webkit-scrollbar-track { | |
| background: var(--gray-100); | |
| border-radius: 3px; | |
| } | |
| .carousel-thumbnails::-webkit-scrollbar-thumb { | |
| background: var(--green-vibrant); | |
| border-radius: 3px; | |
| } | |
| .carousel-thumbnail { | |
| width: 100px; | |
| height: 70px; | |
| flex-shrink: 0; | |
| border-radius: 8px; | |
| overflow: hidden; | |
| cursor: pointer; | |
| border: 3px solid transparent; | |
| transition: all 0.2s ease; | |
| opacity: 0.6; | |
| } | |
| .carousel-thumbnail:hover { | |
| opacity: 1; | |
| border-color: var(--gray-300); | |
| } | |
| .carousel-thumbnail.active { | |
| border-color: var(--green-vibrant); | |
| opacity: 1; | |
| box-shadow: 0 0 0 3px var(--green-glow); | |
| } | |
| .carousel-thumbnail img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| } | |
| /* =============================== | |
| MULTI-SELECT & CHECKBOXES | |
| =============================== */ | |
| .multiselect-container { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.5rem; | |
| padding: 0.5rem; | |
| border: 2px solid var(--gray-200); | |
| border-radius: 10px; | |
| background: var(--white); | |
| min-height: 42px; | |
| align-items: center; | |
| } | |
| .multiselect-placeholder { | |
| color: var(--gray-500); | |
| font-size: 0.9rem; | |
| } | |
| .multiselect-tag { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.25rem; | |
| padding: 0.25rem 0.5rem; | |
| background: var(--green-light); | |
| color: var(--green-dark); | |
| border-radius: 6px; | |
| font-size: 0.8rem; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .multiselect-tag:hover { | |
| background: var(--green-vibrant); | |
| color: white; | |
| } | |
| .multiselect-tag.active { | |
| background: var(--green-vibrant); | |
| color: white; | |
| } | |
| .form-group-wide { | |
| grid-column: 1 / -1; | |
| margin-top: 0.5rem; | |
| } | |
| .form-group-wide label { | |
| display: block; | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| color: var(--gray-700); | |
| margin-bottom: 0.5rem; | |
| } | |
| .checkbox-grid { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.75rem; | |
| padding: 0.75rem; | |
| border: 2px solid var(--gray-200); | |
| border-radius: 10px; | |
| background: var(--white); | |
| } | |
| .checkbox-item { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.4rem; | |
| padding: 0.4rem 0.75rem; | |
| background: var(--gray-50); | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-size: 0.85rem; | |
| transition: all 0.2s ease; | |
| user-select: none; | |
| } | |
| .checkbox-item:hover { | |
| background: var(--green-light); | |
| } | |
| .checkbox-item:has(input:checked) { | |
| background: var(--green-vibrant); | |
| color: white; | |
| } | |
| .checkbox-item input[type="checkbox"] { | |
| accent-color: var(--green-dark); | |
| width: 16px; | |
| height: 16px; | |
| } | |
| .clear-btn { | |
| font-size: 0.7rem; | |
| color: var(--gray-500); | |
| cursor: pointer; | |
| margin-left: 0.5rem; | |
| padding: 0.2rem 0.4rem; | |
| background: var(--gray-100); | |
| border-radius: 4px; | |
| transition: all 0.2s ease; | |
| } | |
| .clear-btn:hover { | |
| background: #fef2f2; | |
| color: #dc2626; | |
| } | |
| /* =============================== | |
| SECTION TITLE | |
| =============================== */ | |
| .section-title { | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| color: var(--gray-700); | |
| margin: 1.5rem 0 1rem 0; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .stats-card-title { | |
| font-size: 1rem; | |
| font-weight: 600; | |
| color: var(--green-dark); | |
| margin-bottom: 1rem; | |
| padding-bottom: 0.5rem; | |
| border-bottom: 2px solid var(--green-light); | |
| } | |
| /* =============================== | |
| STATS CARD | |
| =============================== */ | |
| .stats-card { | |
| background: linear-gradient(135deg, var(--green-light) 0%, var(--white) 100%); | |
| border: 2px solid var(--green-vibrant); | |
| border-radius: 16px; | |
| padding: 1.5rem; | |
| margin-bottom: 2rem; | |
| box-shadow: var(--shadow); | |
| } | |
| .stats-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); | |
| gap: 1rem; | |
| } | |
| .stat-item { | |
| text-align: center; | |
| padding: 1rem; | |
| background: var(--white); | |
| border-radius: 12px; | |
| box-shadow: var(--shadow-sm); | |
| transition: transform 0.2s ease; | |
| } | |
| .stat-item:hover { | |
| transform: translateY(-2px); | |
| } | |
| .stat-value { | |
| font-size: 1.75rem; | |
| font-weight: 700; | |
| color: var(--green-dark); | |
| font-family: 'Space Mono', monospace; | |
| } | |
| .stat-value.highlight { | |
| color: var(--orange); | |
| } | |
| .stat-label { | |
| font-size: 0.8rem; | |
| color: var(--gray-500); | |
| margin-top: 0.25rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.05em; | |
| } | |
| .stat-item.goal { | |
| background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); | |
| border: 1px solid var(--green-vibrant); | |
| } | |
| .stat-item.goal .stat-value { | |
| color: var(--green-vibrant); | |
| } | |
| .stat-item.danger { | |
| background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%); | |
| border: 1px solid #f44336; | |
| } | |
| .stat-item.danger .stat-value { | |
| color: #d32f2f; | |
| } | |
| .stat-item.danger .stat-label { | |
| color: #c62828; | |
| } | |
| /* Goal kicks extended table */ | |
| /* Rival filters styling */ | |
| .table-filter.rival-filter label { | |
| color: #f44336; | |
| } | |
| .table-filter.rival-filter select { | |
| border-color: rgba(244, 67, 54, 0.5); | |
| } | |
| .table-filter.rival-filter select:focus { | |
| border-color: #f44336; | |
| box-shadow: 0 0 0 2px rgba(244, 67, 54, 0.2); | |
| } | |
| .goalkicks-extended th.rival-col, | |
| .goalkicks-extended td.rival-col { | |
| background: rgba(244, 67, 54, 0.1); | |
| border-left: 2px solid #f44336; | |
| } | |
| .goalkicks-extended th.rival-col { | |
| color: #f44336; | |
| font-size: 0.75rem; | |
| } | |
| .goalkicks-extended td.shot-yes { | |
| color: #f44336; | |
| font-weight: bold; | |
| } | |
| .goalkicks-extended td.shot-no { | |
| color: #4CAF50; | |
| } | |
| .goalkicks-extended td.high-xg { | |
| color: #f44336; | |
| font-weight: bold; | |
| } | |
| .result-badge.rival-end { | |
| background: #ffebee; | |
| color: #c62828; | |
| font-size: 0.7rem; | |
| padding: 0.15rem 0.4rem; | |
| } | |
| /* =============================== | |
| GOAL KICK SEQUENCE GALLERY | |
| =============================== */ | |
| .gallery-container { | |
| background: #1a1a2e; | |
| border-radius: 12px; | |
| padding: 1rem; | |
| margin: 0.5rem 0; | |
| } | |
| .gallery-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 1rem; | |
| padding-bottom: 0.5rem; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .gallery-title { | |
| font-size: 1rem; | |
| font-weight: bold; | |
| color: #00BCD4; | |
| } | |
| .gallery-counter { | |
| font-size: 0.9rem; | |
| color: #aaa; | |
| background: rgba(255, 255, 255, 0.1); | |
| padding: 0.25rem 0.75rem; | |
| border-radius: 20px; | |
| } | |
| .gallery-viewer { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .gallery-nav { | |
| background: linear-gradient(135deg, #2196F3, #1976D2); | |
| color: white; | |
| border: none; | |
| padding: 0.75rem 1rem; | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-size: 0.85rem; | |
| font-weight: bold; | |
| transition: all 0.2s ease; | |
| min-width: 100px; | |
| } | |
| .gallery-nav:hover:not(:disabled) { | |
| background: linear-gradient(135deg, #1976D2, #1565C0); | |
| transform: translateY(-2px); | |
| } | |
| .gallery-nav:disabled { | |
| cursor: not-allowed; | |
| } | |
| .gallery-image-container { | |
| flex: 1; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| background: rgba(0, 0, 0, 0.3); | |
| border-radius: 8px; | |
| overflow: hidden; | |
| } | |
| .gallery-image-container img { | |
| max-width: 100%; | |
| max-height: 500px; | |
| cursor: pointer; | |
| transition: transform 0.2s ease; | |
| } | |
| .gallery-image-container img:hover { | |
| transform: scale(1.02); | |
| } | |
| .gallery-progress { | |
| height: 4px; | |
| background: rgba(255, 255, 255, 0.1); | |
| border-radius: 2px; | |
| margin: 1rem 0 0.75rem; | |
| overflow: hidden; | |
| } | |
| .gallery-progress-bar { | |
| height: 100%; | |
| background: linear-gradient(90deg, #00BCD4, #4CAF50); | |
| transition: width 0.3s ease; | |
| border-radius: 2px; | |
| } | |
| .gallery-dots { | |
| display: flex; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| flex-wrap: wrap; | |
| } | |
| .gallery-dot { | |
| width: 10px; | |
| height: 10px; | |
| border-radius: 50%; | |
| background: rgba(255, 255, 255, 0.2); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .gallery-dot:hover { | |
| background: rgba(255, 255, 255, 0.5); | |
| transform: scale(1.2); | |
| } | |
| .gallery-dot.active { | |
| background: #00BCD4; | |
| transform: scale(1.3); | |
| } | |
| /* Responsive gallery */ | |
| @media (max-width: 768px) { | |
| .gallery-viewer { | |
| flex-direction: column; | |
| } | |
| .gallery-nav { | |
| width: 100%; | |
| min-width: auto; | |
| } | |
| .gallery-image-container img { | |
| max-height: 300px; | |
| } | |
| } | |
| /* =============================== | |
| CORNERS TABLE | |
| =============================== */ | |
| .corners-table-section { | |
| margin-top: 2rem; | |
| background: white; | |
| border-radius: 16px; | |
| padding: 1.5rem; | |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); | |
| border: 1px solid var(--gray-100); | |
| } | |
| .table-controls { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 1rem; | |
| flex-wrap: wrap; | |
| gap: 1rem; | |
| } | |
| .table-info { | |
| color: var(--gray-500); | |
| font-size: 0.9rem; | |
| } | |
| .table-info span { | |
| font-weight: 600; | |
| color: var(--green-dark); | |
| } | |
| .table-search input { | |
| padding: 0.5rem 1rem; | |
| border: 1px solid var(--gray-200); | |
| border-radius: 8px; | |
| font-size: 0.9rem; | |
| width: 220px; | |
| transition: all 0.2s ease; | |
| } | |
| .table-search input:focus { | |
| outline: none; | |
| border-color: var(--green-vibrant); | |
| box-shadow: 0 0 0 3px var(--green-glow); | |
| } | |
| .table-filters { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 0.75rem; | |
| padding: 1rem; | |
| background: var(--gray-50); | |
| border-radius: 10px; | |
| margin-bottom: 1rem; | |
| } | |
| .table-filter { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.25rem; | |
| } | |
| .table-filter label { | |
| font-size: 0.75rem; | |
| font-weight: 500; | |
| color: var(--gray-600); | |
| } | |
| .table-filter select { | |
| padding: 0.4rem 0.6rem; | |
| border: 1px solid var(--gray-200); | |
| border-radius: 6px; | |
| font-size: 0.8rem; | |
| min-width: 120px; | |
| background: white; | |
| cursor: pointer; | |
| } | |
| .table-filter select:focus { | |
| outline: none; | |
| border-color: var(--green-vibrant); | |
| } | |
| .table-wrapper { | |
| overflow-x: auto; | |
| border-radius: 12px; | |
| border: 1px solid var(--gray-100); | |
| } | |
| .corners-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 0.85rem; | |
| } | |
| .corners-table thead { | |
| background: linear-gradient(135deg, var(--green-dark) 0%, var(--green-vibrant) 100%); | |
| color: white; | |
| position: sticky; | |
| top: 0; | |
| } | |
| .corners-table th { | |
| padding: 0.9rem 0.7rem; | |
| text-align: left; | |
| font-weight: 600; | |
| cursor: pointer; | |
| white-space: nowrap; | |
| user-select: none; | |
| transition: background 0.2s ease; | |
| } | |
| .corners-table th:hover { | |
| background: rgba(255, 255, 255, 0.1); | |
| } | |
| .corners-table th::after { | |
| content: ' ↕'; | |
| opacity: 0.4; | |
| font-size: 0.7rem; | |
| } | |
| .corners-table td { | |
| padding: 0.75rem 0.7rem; | |
| border-bottom: 1px solid var(--gray-100); | |
| white-space: nowrap; | |
| } | |
| .corners-table tbody tr { | |
| transition: background 0.15s ease; | |
| } | |
| .corners-table tbody tr:nth-child(odd) { | |
| background: var(--gray-50); | |
| } | |
| .corners-table tbody tr:nth-child(even) { | |
| background: white; | |
| } | |
| .corners-table tbody tr:hover { | |
| background: var(--green-light) ; | |
| } | |
| .corners-table tbody tr.data-row { | |
| cursor: pointer; | |
| } | |
| .corners-table tbody tr.data-row td:first-child::before { | |
| content: '▶'; | |
| margin-right: 0.5rem; | |
| font-size: 0.7rem; | |
| color: var(--gray-400); | |
| transition: transform 0.2s ease; | |
| display: inline-block; | |
| } | |
| .corners-table tbody tr.data-row.expanded td:first-child::before { | |
| transform: rotate(90deg); | |
| color: var(--green-primary); | |
| } | |
| .corners-table tbody tr.detail-row { | |
| background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%) ; | |
| } | |
| .corners-table tbody tr.detail-row td { | |
| padding: 1rem; | |
| border-bottom: 2px solid var(--green-primary); | |
| } | |
| /* Sequence Plot Container */ | |
| .sequence-plot-container { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 0.75rem; | |
| } | |
| .sequence-plot-container .loading-spinner { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| color: var(--gray-600); | |
| font-size: 0.9rem; | |
| /* Override generic .loading-spinner styles - don't spin the whole container */ | |
| width: auto; | |
| height: auto; | |
| border: none; | |
| animation: none; | |
| } | |
| .sequence-plot-container .loading-spinner::before { | |
| content: ''; | |
| width: 20px; | |
| height: 20px; | |
| border: 2px solid var(--gray-300); | |
| border-top-color: var(--green-vibrant); | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| flex-shrink: 0; | |
| } | |
| /* Plots loading indicator */ | |
| .plots-loading-indicator { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 2rem; | |
| } | |
| .plots-loading-indicator .loading-spinner { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| color: var(--gray-600); | |
| font-size: 1rem; | |
| width: auto; | |
| height: auto; | |
| border: none; | |
| animation: none; | |
| margin-bottom: 0; | |
| } | |
| .plots-loading-indicator .loading-spinner::before { | |
| content: ''; | |
| width: 24px; | |
| height: 24px; | |
| border: 3px solid var(--gray-300); | |
| border-top-color: var(--green-vibrant); | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| flex-shrink: 0; | |
| } | |
| .sequence-plot-container img { | |
| max-width: 700px; | |
| width: 100%; | |
| border-radius: 12px; | |
| box-shadow: 0 4px 20px rgba(0,0,0,0.15); | |
| cursor: pointer; | |
| transition: transform 0.2s ease; | |
| } | |
| .sequence-plot-container img:hover { | |
| transform: scale(1.02); | |
| } | |
| /* Result badges in table */ | |
| .result-badge { | |
| display: inline-block; | |
| padding: 0.25rem 0.6rem; | |
| border-radius: 20px; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| text-transform: capitalize; | |
| } | |
| .result-badge.goal { | |
| background: #dcfce7; | |
| color: #166534; | |
| } | |
| .result-badge.corner { | |
| background: #dbeafe; | |
| color: #1e40af; | |
| } | |
| .result-badge.perdida_posesion { | |
| background: #fef2f2; | |
| color: #991b1b; | |
| } | |
| .result-badge.third_exit { | |
| background: #fef3c7; | |
| color: #92400e; | |
| } | |
| .result-badge.other { | |
| background: var(--gray-100); | |
| color: var(--gray-600); | |
| } | |
| /* State badges */ | |
| .state-badge { | |
| display: inline-block; | |
| padding: 0.2rem 0.5rem; | |
| border-radius: 12px; | |
| font-size: 0.7rem; | |
| font-weight: 500; | |
| } | |
| .state-badge.winning { | |
| background: #dcfce7; | |
| color: #166534; | |
| } | |
| .state-badge.drawing { | |
| background: #fef3c7; | |
| color: #92400e; | |
| } | |
| .state-badge.losing { | |
| background: #fef2f2; | |
| color: #991b1b; | |
| } | |
| /* Pagination */ | |
| .table-pagination { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 0.5rem; | |
| margin-top: 1.2rem; | |
| flex-wrap: wrap; | |
| } | |
| .pagination-btn { | |
| padding: 0.5rem 1rem; | |
| background: white; | |
| border: 1px solid var(--gray-200); | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-size: 0.85rem; | |
| color: var(--gray-700); | |
| transition: all 0.2s ease; | |
| } | |
| .pagination-btn:hover:not(:disabled) { | |
| background: var(--green-light); | |
| border-color: var(--green-vibrant); | |
| color: var(--green-dark); | |
| } | |
| .pagination-btn:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| } | |
| .pagination-pages { | |
| display: flex; | |
| gap: 0.3rem; | |
| } | |
| .page-btn { | |
| width: 36px; | |
| height: 36px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| background: white; | |
| border: 1px solid var(--gray-200); | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-size: 0.85rem; | |
| color: var(--gray-700); | |
| transition: all 0.2s ease; | |
| } | |
| .page-btn:hover { | |
| background: var(--green-light); | |
| border-color: var(--green-vibrant); | |
| } | |
| .page-btn.active { | |
| background: var(--green-vibrant); | |
| border-color: var(--green-vibrant); | |
| color: white; | |
| font-weight: 600; | |
| } | |
| .page-btn.ellipsis { | |
| border: none; | |
| background: transparent; | |
| cursor: default; | |
| } | |
| /* =============================== | |
| PITCH ZONE SELECTOR | |
| =============================== */ | |
| .pitch-selector-container { | |
| margin: 1.5rem 0; | |
| padding: 1rem; | |
| background: var(--gray-50); | |
| border-radius: 12px; | |
| border: 2px solid var(--gray-200); | |
| } | |
| .pitch-selector-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 0.75rem; | |
| } | |
| .pitch-selector-header label { | |
| font-size: 0.875rem; | |
| font-weight: 500; | |
| color: var(--gray-700); | |
| } | |
| .pitch-selector-info { | |
| font-size: 0.8rem; | |
| color: var(--gray-500); | |
| font-family: 'Space Mono', monospace; | |
| } | |
| .pitch-selector-info .distance { | |
| color: var(--green-dark); | |
| font-weight: 600; | |
| } | |
| .pitch-svg { | |
| width: 100%; | |
| height: auto; | |
| display: block; | |
| border-radius: 8px; | |
| box-shadow: 0 2px 8px rgba(0,0,0,0.1); | |
| } | |
| .pitch-reset-btn { | |
| font-size: 0.75rem; | |
| color: var(--gray-500); | |
| background: var(--gray-100); | |
| border: 1px solid var(--gray-300); | |
| padding: 0.25rem 0.5rem; | |
| border-radius: 4px; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .pitch-reset-btn:hover { | |
| background: #fef2f2; | |
| color: #dc2626; | |
| border-color: #fca5a5; | |
| } | |
| .pitch-slider-container { | |
| margin-bottom: 1rem; | |
| padding: 0 0.5rem; | |
| } | |
| .pitch-slider { | |
| width: 100%; | |
| height: 8px; | |
| border-radius: 4px; | |
| background: linear-gradient(to right, #4ade80 0%, #fbbf24 50%, #ef4444 100%); | |
| outline: none; | |
| -webkit-appearance: none; | |
| appearance: none; | |
| cursor: pointer; | |
| } | |
| .pitch-slider::-webkit-slider-thumb { | |
| -webkit-appearance: none; | |
| appearance: none; | |
| width: 24px; | |
| height: 24px; | |
| border-radius: 50%; | |
| background: white; | |
| border: 3px solid var(--green-dark); | |
| cursor: grab; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.2); | |
| transition: transform 0.15s ease; | |
| } | |
| .pitch-slider::-webkit-slider-thumb:hover { | |
| transform: scale(1.15); | |
| } | |
| .pitch-slider::-webkit-slider-thumb:active { | |
| cursor: grabbing; | |
| transform: scale(1.1); | |
| border-color: var(--green-vibrant); | |
| } | |
| .pitch-slider::-moz-range-thumb { | |
| width: 24px; | |
| height: 24px; | |
| border-radius: 50%; | |
| background: white; | |
| border: 3px solid var(--green-dark); | |
| cursor: grab; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.2); | |
| } | |
| .pitch-slider-labels { | |
| display: flex; | |
| justify-content: space-between; | |
| margin-top: 0.5rem; | |
| font-size: 0.7rem; | |
| color: var(--gray-500); | |
| } | |
| .pitch-svg-wrapper { | |
| position: relative; | |
| width: 100%; | |
| max-width: 500px; | |
| margin: 0 auto; | |
| } | |
| /* =============================== | |
| DUAL RANGE SLIDERS | |
| =============================== */ | |
| .zone-range-group { | |
| margin-bottom: 1rem; | |
| } | |
| .zone-range-label { | |
| display: block; | |
| font-size: 0.8rem; | |
| font-weight: 500; | |
| color: var(--gray-600); | |
| margin-bottom: 0.5rem; | |
| } | |
| .dual-slider-wrapper { | |
| position: relative; | |
| height: 32px; | |
| margin-bottom: 0.5rem; | |
| } | |
| .dual-slider-track { | |
| position: absolute; | |
| top: 50%; | |
| left: 0; | |
| right: 0; | |
| height: 8px; | |
| background: var(--gray-200); | |
| border-radius: 4px; | |
| transform: translateY(-50%); | |
| pointer-events: none; | |
| } | |
| .dual-slider { | |
| position: absolute; | |
| top: 50%; | |
| left: 0; | |
| width: 100%; | |
| height: 8px; | |
| background: transparent; | |
| pointer-events: none; | |
| -webkit-appearance: none; | |
| appearance: none; | |
| transform: translateY(-50%); | |
| z-index: 1; | |
| } | |
| .dual-slider::-webkit-slider-thumb { | |
| -webkit-appearance: none; | |
| appearance: none; | |
| width: 20px; | |
| height: 20px; | |
| border-radius: 50%; | |
| background: white; | |
| border: 3px solid var(--green-dark); | |
| cursor: grab; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.2); | |
| pointer-events: auto; | |
| transition: transform 0.15s ease, border-color 0.15s ease; | |
| } | |
| .dual-slider::-webkit-slider-thumb:hover { | |
| transform: scale(1.15); | |
| border-color: var(--green-vibrant); | |
| } | |
| .dual-slider::-webkit-slider-thumb:active { | |
| cursor: grabbing; | |
| transform: scale(1.1); | |
| } | |
| .dual-slider::-moz-range-thumb { | |
| width: 20px; | |
| height: 20px; | |
| border-radius: 50%; | |
| background: white; | |
| border: 3px solid var(--green-dark); | |
| cursor: grab; | |
| box-shadow: 0 2px 6px rgba(0,0,0,0.2); | |
| pointer-events: auto; | |
| } | |
| .dual-slider-min::-webkit-slider-thumb { | |
| border-color: #3b82f6; | |
| } | |
| .dual-slider-max::-webkit-slider-thumb { | |
| border-color: #ef4444; | |
| } | |
| .dual-slider-min::-moz-range-thumb { | |
| border-color: #3b82f6; | |
| } | |
| .dual-slider-max::-moz-range-thumb { | |
| border-color: #ef4444; | |
| } | |
| .range-input-row { | |
| display: flex; | |
| gap: 1rem; | |
| justify-content: space-between; | |
| } | |
| .range-input-group { | |
| flex: 1; | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .range-input-group label { | |
| font-size: 0.75rem; | |
| color: var(--gray-500); | |
| min-width: 30px; | |
| } | |
| .range-input { | |
| width: 70px; | |
| padding: 0.375rem 0.5rem; | |
| font-size: 0.85rem; | |
| font-family: 'Space Mono', monospace; | |
| border: 1px solid var(--gray-300); | |
| border-radius: 6px; | |
| background: white; | |
| color: var(--gray-800); | |
| text-align: center; | |
| transition: border-color 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .range-input:focus { | |
| outline: none; | |
| border-color: var(--green-dark); | |
| box-shadow: 0 0 0 3px rgba(34, 139, 34, 0.1); | |
| } | |
| .range-input::-webkit-inner-spin-button, | |
| .range-input::-webkit-outer-spin-button { | |
| opacity: 1; | |
| } | |
| /* =============================== | |
| MAIN TABS NAVIGATION | |
| =============================== */ | |
| .main-tabs { | |
| display: flex; | |
| gap: 0; | |
| background: var(--white); | |
| border-radius: 16px 16px 0 0; | |
| overflow: hidden; | |
| box-shadow: var(--shadow); | |
| margin-bottom: 0; | |
| } | |
| .main-tab { | |
| flex: 1; | |
| padding: 1.25rem 1.5rem; | |
| border: none; | |
| background: var(--gray-100); | |
| font-size: 1rem; | |
| font-weight: 600; | |
| font-family: inherit; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| color: var(--gray-500); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 0.5rem; | |
| border-bottom: 3px solid transparent; | |
| position: relative; | |
| } | |
| .main-tab:hover:not(:disabled) { | |
| background: var(--gray-50); | |
| color: var(--gray-700); | |
| } | |
| .main-tab.active { | |
| background: var(--white); | |
| color: var(--green-dark); | |
| border-bottom-color: var(--green-vibrant); | |
| } | |
| .main-tab:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| background: var(--gray-200); | |
| } | |
| .main-tab .tab-icon { | |
| font-size: 1.25rem; | |
| } | |
| .main-tab .coming-soon { | |
| position: absolute; | |
| top: 0.25rem; | |
| right: 0.5rem; | |
| font-size: 0.6rem; | |
| background: var(--orange); | |
| color: white; | |
| padding: 0.15rem 0.4rem; | |
| border-radius: 4px; | |
| text-transform: uppercase; | |
| } | |
| .tab-content { | |
| display: none; | |
| } | |
| .tab-content.active { | |
| display: block; | |
| } | |
| .config-panel.tabbed { | |
| border-radius: 0 0 16px 16px; | |
| margin-top: 0; | |
| } | |
| /* =============================== | |
| COMPARATIVE MODE | |
| =============================== */ | |
| .compare-toggle-container { | |
| display: flex; | |
| align-items: center; | |
| justify-content: flex-end; | |
| padding: 0.75rem 1rem; | |
| background: var(--gray-50); | |
| border-bottom: 1px solid var(--gray-200); | |
| } | |
| .compare-toggle { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| cursor: pointer; | |
| font-size: 0.9rem; | |
| color: var(--gray-700); | |
| user-select: none; | |
| } | |
| .compare-toggle input { | |
| display: none; | |
| } | |
| .compare-toggle .toggle-switch { | |
| width: 44px; | |
| height: 24px; | |
| background: var(--gray-300); | |
| border-radius: 12px; | |
| position: relative; | |
| transition: background 0.3s ease; | |
| } | |
| .compare-toggle .toggle-switch::after { | |
| content: ''; | |
| position: absolute; | |
| width: 18px; | |
| height: 18px; | |
| background: white; | |
| border-radius: 50%; | |
| top: 3px; | |
| left: 3px; | |
| transition: transform 0.3s ease; | |
| box-shadow: 0 2px 4px rgba(0,0,0,0.2); | |
| } | |
| .compare-toggle input:checked + .toggle-switch { | |
| background: var(--green-vibrant); | |
| } | |
| .compare-toggle input:checked + .toggle-switch::after { | |
| transform: translateX(20px); | |
| } | |
| .compare-toggle .toggle-label { | |
| font-weight: 500; | |
| } | |
| /* Dual panel layout */ | |
| .dual-panel-container { | |
| display: none; | |
| } | |
| .dual-panel-container.active { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 1.5rem; | |
| } | |
| .single-panel-container { | |
| display: block; | |
| } | |
| .single-panel-container.hidden { | |
| display: none; | |
| } | |
| /* Dual container for compare mode */ | |
| .dual-container.dual-panel-active, | |
| .dual-results-container.dual-panel-active { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 1.5rem; | |
| margin-top: 1.5rem; | |
| width: 100%; | |
| max-width: 100%; | |
| overflow-x: hidden; | |
| } | |
| .dual-container.dual-panel-active { | |
| margin-top: 0; | |
| } | |
| .panel-wrapper { | |
| min-width: 0; | |
| max-width: 100%; | |
| overflow: hidden; | |
| } | |
| .panel-wrapper .config-panel.tabbed { | |
| border-radius: 16px; | |
| } | |
| .panel-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 0.75rem; | |
| } | |
| .panel-label { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| color: var(--white); | |
| padding: 0.35rem 0.75rem; | |
| border-radius: 6px; | |
| } | |
| .panel-label.panel-a { | |
| background: linear-gradient(135deg, #3b82f6, #1d4ed8); | |
| } | |
| .panel-label.panel-b { | |
| background: linear-gradient(135deg, #f59e0b, #d97706); | |
| } | |
| /* Compact config for compare mode */ | |
| .dual-container .config-grid, | |
| .dual-container.dual-panel-active .config-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 0.75rem; | |
| } | |
| .dual-container .config-panel, | |
| .dual-container.dual-panel-active .config-panel { | |
| padding: 1rem; | |
| max-width: 100%; | |
| overflow: hidden; | |
| box-sizing: border-box; | |
| } | |
| /* Extra compact styles for side-by-side panels */ | |
| .dual-container.dual-panel-active .form-group select, | |
| .dual-container.dual-panel-active .form-group input { | |
| padding: 0.4rem 0.5rem; | |
| font-size: 0.85rem; | |
| } | |
| .dual-container.dual-panel-active .form-group label { | |
| font-size: 0.75rem; | |
| } | |
| .dual-container.dual-panel-active .checkbox-grid { | |
| gap: 0.25rem; | |
| } | |
| .dual-container.dual-panel-active .checkbox-item { | |
| font-size: 0.75rem; | |
| padding: 0.2rem 0.4rem; | |
| } | |
| .dual-container.dual-panel-active .run-button { | |
| padding: 0.6rem 0.8rem; | |
| font-size: 0.9rem; | |
| } | |
| .dual-container .config-title { | |
| font-size: 1rem; | |
| margin-bottom: 1rem; | |
| } | |
| .dual-container .form-group label { | |
| font-size: 0.8rem; | |
| } | |
| .dual-container .form-group select, | |
| .dual-container .form-group input { | |
| padding: 0.5rem 0.75rem; | |
| font-size: 0.9rem; | |
| } | |
| .dual-container .run-button { | |
| padding: 0.75rem 1rem; | |
| font-size: 0.95rem; | |
| } | |
| .dual-container .checkbox-grid { | |
| gap: 0.35rem; | |
| } | |
| .dual-container .checkbox-item { | |
| font-size: 0.8rem; | |
| padding: 0.25rem 0.5rem; | |
| } | |
| /* Compact results for compare mode */ | |
| .dual-results-container { | |
| margin-top: 1rem; | |
| } | |
| .dual-results-container.dual-panel-active { | |
| max-width: 100%; | |
| overflow-x: hidden; | |
| } | |
| .dual-results-container .results-section { | |
| display: block ; | |
| max-width: 100%; | |
| overflow: hidden; | |
| box-sizing: border-box; | |
| } | |
| .dual-results-container .stats-card { | |
| padding: 1rem; | |
| margin-bottom: 1rem; | |
| max-width: 100%; | |
| box-sizing: border-box; | |
| } | |
| .dual-results-container .stats-grid { | |
| grid-template-columns: repeat(2, 1fr) ; | |
| gap: 0.6rem; | |
| } | |
| .dual-results-container .stat-value { | |
| font-size: 1.25rem; | |
| } | |
| .dual-results-container .stat-label { | |
| font-size: 0.7rem; | |
| } | |
| /* Carousel compact for compare mode */ | |
| .dual-results-container .plots-carousel { | |
| padding: 0.75rem; | |
| max-width: 100%; | |
| overflow: hidden; | |
| } | |
| .dual-results-container .carousel-image-container { | |
| min-height: 250px; | |
| } | |
| .dual-results-container .carousel-image-container img { | |
| max-height: 350px; | |
| } | |
| .dual-results-container .carousel-nav-btn { | |
| padding: 0.5rem; | |
| font-size: 1.25rem; | |
| } | |
| .dual-results-container .carousel-thumbnails-wrapper { | |
| display: none; /* Hide thumbnails in compare mode to save space */ | |
| } | |
| .dual-results-container .results-header { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| gap: 0.5rem; | |
| } | |
| .dual-results-container .results-title { | |
| font-size: 1rem; | |
| } | |
| /* Hide sequence tables in compare mode */ | |
| .dual-results-container .corners-table-section, | |
| .dual-results-container .table-controls, | |
| .dual-results-container .table-pagination { | |
| display: none ; | |
| } | |
| /* Responsive stacking for compare mode - only stack on small screens */ | |
| @media (max-width: 1024px) { | |
| .dual-container.dual-panel-active, | |
| .dual-results-container.dual-panel-active { | |
| grid-template-columns: 1fr; | |
| gap: 1rem; | |
| } | |
| .panel-wrapper { | |
| max-width: 100%; | |
| } | |
| .dual-container, | |
| .dual-results-container { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .config-panel { | |
| padding: 1.5rem; | |
| } | |
| .stats-grid { | |
| grid-template-columns: repeat(2, 1fr); | |
| } | |
| .main-tabs { | |
| flex-direction: column; | |
| } | |
| .main-tab { | |
| border-bottom: none; | |
| border-left: 3px solid transparent; | |
| } | |
| .main-tab.active { | |
| border-left-color: var(--green-vibrant); | |
| } | |
| } | |
| /* ======================================== | |
| LEAGUE COMPARISON DEVIATION COLORS | |
| ======================================== */ | |
| /* Excellent: +10% or more */ | |
| .stat-item.deviation-excellent { | |
| background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); | |
| border: 2px solid #4CAF50; | |
| position: relative; | |
| } | |
| .stat-item.deviation-excellent .stat-value { | |
| color: #2e7d32; | |
| } | |
| .stat-item.deviation-excellent .stat-deviation { | |
| color: #4CAF50; | |
| } | |
| /* Normal: -10% to +10% */ | |
| .stat-item.deviation-normal { | |
| background: linear-gradient(135deg, #fffde7 0%, #fff9c4 100%); | |
| border: 2px solid #FFC107; | |
| position: relative; | |
| } | |
| .stat-item.deviation-normal .stat-value { | |
| color: #f57f17; | |
| } | |
| .stat-item.deviation-normal .stat-deviation { | |
| color: #FF9800; | |
| } | |
| /* Below: -10% to -30% */ | |
| .stat-item.deviation-below { | |
| background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%); | |
| border: 2px solid #FF9800; | |
| position: relative; | |
| } | |
| .stat-item.deviation-below .stat-value { | |
| color: #e65100; | |
| } | |
| .stat-item.deviation-below .stat-deviation { | |
| color: #FF5722; | |
| } | |
| /* Critical: less than -30% */ | |
| .stat-item.deviation-critical { | |
| background: linear-gradient(135deg, #ffebee 0%, #ffcdd2 100%); | |
| border: 2px solid #f44336; | |
| position: relative; | |
| } | |
| .stat-item.deviation-critical .stat-value { | |
| color: #c62828; | |
| } | |
| .stat-item.deviation-critical .stat-deviation { | |
| color: #d32f2f; | |
| } | |
| /* Deviation label styling */ | |
| .stat-deviation { | |
| font-size: 0.7rem; | |
| font-weight: 600; | |
| margin-top: 0.25rem; | |
| padding: 0.15rem 0.4rem; | |
| border-radius: 3px; | |
| background: rgba(0, 0, 0, 0.05); | |
| display: inline-block; | |
| } | |
| /* Tooltip styling */ | |
| .stat-item[data-tooltip] { | |
| cursor: help; | |
| } | |
| .stat-item[data-tooltip]:hover::after { | |
| content: attr(data-tooltip); | |
| position: absolute; | |
| bottom: 100%; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| background: #1a1a2e; | |
| color: white; | |
| padding: 0.5rem 0.75rem; | |
| border-radius: 4px; | |
| font-size: 0.75rem; | |
| white-space: nowrap; | |
| z-index: 100; | |
| margin-bottom: 5px; | |
| box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); | |
| } | |
| .stat-item[data-tooltip]:hover::before { | |
| content: ''; | |
| position: absolute; | |
| bottom: 100%; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| border: 6px solid transparent; | |
| border-top-color: #1a1a2e; | |
| margin-bottom: -7px; | |
| z-index: 100; | |
| } | |
| /* =============================== | |
| ZONE EXPLORER - Interactive Transitions | |
| =============================== */ | |
| .zone-explorer-section { | |
| background: var(--white); | |
| border: 1px solid var(--gray-200); | |
| border-radius: 16px; | |
| padding: 1.5rem; | |
| margin-bottom: 2rem; | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .zone-explorer-header { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 1.5rem; | |
| padding-bottom: 1rem; | |
| border-bottom: 1px solid var(--gray-200); | |
| } | |
| .zone-explorer-header .section-title { | |
| margin: 0; | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| color: var(--gray-900); | |
| } | |
| .zone-reset-btn { | |
| padding: 0.5rem 1rem; | |
| background: var(--gray-100); | |
| border: 1px solid var(--gray-300); | |
| border-radius: 6px; | |
| font-size: 0.85rem; | |
| font-weight: 500; | |
| color: var(--gray-700); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| } | |
| .zone-reset-btn:hover { | |
| background: var(--gray-200); | |
| border-color: var(--gray-400); | |
| } | |
| .zone-explorer-container { | |
| display: grid; | |
| grid-template-columns: 1fr 300px; | |
| gap: 1.5rem; | |
| } | |
| @media (max-width: 900px) { | |
| .zone-explorer-container { | |
| grid-template-columns: 1fr; | |
| } | |
| } | |
| /* Pitch Container */ | |
| .zone-pitch-container { | |
| background: #1a1a2e; | |
| border-radius: 12px; | |
| padding: 0.5rem; | |
| min-height: 400px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| position: relative; | |
| } | |
| .zone-pitch-img { | |
| width: 100%; | |
| max-width: 500px; | |
| height: auto; | |
| border-radius: 8px; | |
| transition: opacity 0.3s ease; | |
| } | |
| .zone-loading { | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| transform: translate(-50%, -50%); | |
| color: white; | |
| font-size: 1rem; | |
| background: rgba(0,0,0,0.7); | |
| padding: 1rem 2rem; | |
| border-radius: 8px; | |
| display: none; | |
| } | |
| /* Info Panel */ | |
| .zone-info-panel { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1.25rem; | |
| } | |
| .zone-sequence-display { | |
| background: var(--gray-50); | |
| border-radius: 10px; | |
| padding: 1rem; | |
| } | |
| .zone-sequence-display h4 { | |
| margin: 0 0 0.75rem 0; | |
| font-size: 0.85rem; | |
| font-weight: 600; | |
| color: var(--gray-600); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| .sequence-path { | |
| display: flex; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| gap: 0.5rem; | |
| font-size: 0.9rem; | |
| } | |
| .sequence-start { | |
| background: linear-gradient(135deg, var(--green-vibrant), var(--green-light)); | |
| color: white; | |
| padding: 0.35rem 0.75rem; | |
| border-radius: 20px; | |
| font-weight: 600; | |
| font-size: 0.8rem; | |
| } | |
| .sequence-arrow { | |
| color: var(--gray-400); | |
| font-weight: bold; | |
| } | |
| .sequence-zone { | |
| background: var(--gray-200); | |
| color: var(--gray-800); | |
| padding: 0.3rem 0.6rem; | |
| border-radius: 6px; | |
| font-size: 0.8rem; | |
| font-weight: 500; | |
| } | |
| /* Zone Stats */ | |
| .zone-stats { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 0.75rem; | |
| } | |
| .zone-stat-item { | |
| background: var(--gray-50); | |
| border-radius: 10px; | |
| padding: 1rem; | |
| text-align: center; | |
| } | |
| .zone-stat-item .stat-label { | |
| display: block; | |
| font-size: 0.75rem; | |
| color: var(--gray-500); | |
| margin-bottom: 0.35rem; | |
| font-weight: 500; | |
| } | |
| .zone-stat-item .stat-value { | |
| display: block; | |
| font-size: 1.25rem; | |
| font-weight: 700; | |
| color: var(--gray-900); | |
| } | |
| .zone-stat-item.absorption { | |
| background: linear-gradient(135deg, #fff5f5, #fee); | |
| border: 1px solid #fdd; | |
| } | |
| .zone-stat-item.absorption .stat-value { | |
| color: #c53030; | |
| } | |
| /* Legend */ | |
| .zone-legend { | |
| background: var(--gray-50); | |
| border-radius: 10px; | |
| padding: 1rem; | |
| } | |
| .zone-legend h4 { | |
| margin: 0 0 0.75rem 0; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| color: var(--gray-600); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| .legend-gradient { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.5rem; | |
| } | |
| .legend-low, .legend-high { | |
| font-size: 0.75rem; | |
| color: var(--gray-500); | |
| font-weight: 500; | |
| } | |
| .gradient-bar { | |
| flex: 1; | |
| height: 12px; | |
| border-radius: 6px; | |
| background: linear-gradient(90deg, | |
| rgba(50, 80, 50, 0.4) 0%, | |
| rgba(100, 150, 80, 0.6) 25%, | |
| rgba(150, 180, 100, 0.7) 50%, | |
| rgba(200, 180, 80, 0.8) 75%, | |
| rgba(210, 180, 80, 0.9) 100% | |
| ); | |
| } | |
| /* Instructions */ | |
| .zone-instructions { | |
| background: var(--gray-50); | |
| border-radius: 10px; | |
| padding: 1rem; | |
| border-left: 3px solid var(--green-vibrant); | |
| } | |
| .zone-instructions p { | |
| margin: 0 0 0.5rem 0; | |
| font-size: 0.8rem; | |
| color: var(--gray-600); | |
| line-height: 1.4; | |
| } | |
| .zone-instructions p:last-child { | |
| margin-bottom: 0; | |
| } | |
| /* Zone Clickable List */ | |
| .zone-clickable-list { | |
| background: var(--gray-50); | |
| border-radius: 10px; | |
| padding: 1rem; | |
| max-height: 300px; | |
| overflow-y: auto; | |
| } | |
| .zone-clickable-list h4 { | |
| margin: 0 0 0.75rem 0; | |
| font-size: 0.8rem; | |
| font-weight: 600; | |
| color: var(--gray-600); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| } | |
| .zone-buttons { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.4rem; | |
| } | |
| .zone-btn { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding: 0.6rem 0.8rem; | |
| border: 1px solid var(--gray-300); | |
| border-radius: 6px; | |
| background: var(--gray-100); | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| font-size: 0.85rem; | |
| } | |
| .zone-btn:hover { | |
| border-color: var(--green-vibrant); | |
| transform: translateX(3px); | |
| } | |
| .zone-btn-name { | |
| font-weight: 500; | |
| color: var(--gray-800); | |
| } | |
| .zone-btn-prob { | |
| font-weight: 700; | |
| color: var(--green-vibrant); | |
| font-size: 0.9rem; | |
| } | |
| .no-zones { | |
| color: var(--gray-500); | |
| font-size: 0.85rem; | |
| text-align: center; | |
| padding: 1rem; | |
| margin: 0; | |
| } | |
| /* Zone Tooltip */ | |
| .zone-tooltip { | |
| position: fixed; | |
| background: #1a1a2e; | |
| color: white; | |
| padding: 0.6rem 1rem; | |
| border-radius: 6px; | |
| font-size: 0.8rem; | |
| z-index: 10000; | |
| pointer-events: none; | |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); | |
| display: none; | |
| } | |
| /* SVG Zone Styles */ | |
| .zone-rect { | |
| transition: all 0.2s ease; | |
| } | |
| .zone-rect:hover { | |
| stroke: white ; | |
| stroke-width: 1px ; | |
| filter: brightness(1.2); | |
| } | |
| .zone-label { | |
| text-shadow: 0 0 3px rgba(0, 0, 0, 0.8); | |
| } | |