body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.app{min-height:100vh}.header{background:linear-gradient(135deg,#1e40af,#3b82f6);box-shadow:0 4px 12px #0000001a;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{gap:2rem;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1.5rem}.header-content,.header-left{align-items:center;display:flex}.header-left{gap:1rem}.logo{align-items:center;background:#fff;border-radius:50%;color:#1e40af;display:flex;font-size:1.2rem;font-weight:700;height:48px;justify-content:center;width:48px}.header-text h1{font-size:1.75rem;font-weight:700;margin:0}.header-text p{color:#bfdbfe;font-size:.95rem}.header-center{display:flex;flex:1 1;justify-content:center}.main-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:25px;padding:8px}.main-nav,.nav-link{display:flex;gap:8px}.nav-link{align-items:center;border-radius:18px;color:#fff;font-size:15px;font-weight:500;padding:12px 20px;text-decoration:none;transition:all .3s ease;white-space:nowrap}.nav-link:hover{background:#fff3;box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.nav-link.active{background:#ffffff40;font-weight:600}.header-right{text-align:right}.powered-by{color:#bfdbfe;font-size:.85rem}.website{font-size:1rem;font-weight:600}.container{margin:0 auto;max-width:1200px;padding:2rem 1rem}.filters-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem;padding:1.5rem}.filters-section h2{color:#374151;font-size:1.25rem;font-weight:700;margin-bottom:1rem}.filters-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.filter-group label{color:#374151;display:block;font-size:.9rem;font-weight:500;margin-bottom:.5rem}.filter-group input,.filter-group select{border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;padding:.75rem;transition:border-color .2s;width:100%}.filter-group input:focus,.filter-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.reset-btn{background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem;transition:background-color .2s;width:100%}.reset-btn:hover{background:#4b5563}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;text-align:center}.stat-card h3{color:#6b7280;font-size:1rem;font-weight:600;margin-bottom:.5rem}.stat-number{font-size:2.5rem;margin:0}.stat-number.total{color:#3b82f6}.stat-number.men{color:#10b981}.stat-number.women{color:#ec4899}.loading{padding:3rem;text-align:center}.spinner{border:4px solid #e5e7eb;border-top-color:#3b82f6;height:48px;margin:0 auto 1rem;width:48px}.loading p{color:#6b7280;font-size:1.1rem}.rankings{display:flex;flex-direction:column;gap:2rem}.ranking-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.men-section{border-top:4px solid #3b82f6}.women-section{border-top:4px solid #ec4899}.section-header{border-bottom:1px solid #e5e7eb;padding:1.5rem}.section-header h2{font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.men-section .section-header h2{color:#3b82f6}.women-section .section-header h2{color:#ec4899}.section-header p{color:#6b7280;font-size:.95rem}.table-container{overflow-x:auto}.players-table{background:#fff;border-collapse:collapse;width:100%}.players-table th{background:#f9fafb;border-bottom:1px solid #e5e7eb;color:#374151;font-size:.85rem;font-weight:600;letter-spacing:.05em;padding:1rem;text-align:left;text-transform:uppercase}.players-table td{border-bottom:1px solid #f3f4f6;padding:1rem;vertical-align:middle}.players-table tr:hover{background:#f9fafb}.players-table tr.top-three{background:#fefce8}.players-table tr.top-three:hover{background:#fef3c7}.rank-badge{align-items:center;border:2px solid;border-radius:20px;display:inline-flex;font-size:.85rem;font-weight:600;padding:.5rem .75rem}.rank-badge.rank-1{background:#fef3c7;border-color:#fbbf24;color:#92400e}.rank-badge.rank-2{background:#f3f4f6;border-color:#9ca3af;color:#374151}.rank-badge.rank-3{background:#fed7aa;border-color:#fb923c;color:#c2410c}.rank-badge.rank-other{background:#dbeafe;border-color:#60a5fa;color:#1d4ed8}.player-info{align-items:center;display:flex;gap:1rem}.player-avatar{border:2px solid #e5e7eb;border-radius:50%;height:60px!important;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;object-fit:cover;width:60px!important}.player-details{flex:1 1}.player-name{color:#111827;font-size:.95rem}.player-subname{color:#6b7280;font-size:.85rem}.country-info{align-items:center;display:flex;gap:.5rem}.flag{border:1px solid #d1d5db;border-radius:2px;height:24px!important;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;object-fit:cover;width:32px!important}.country-code{color:#374151;font-size:.9rem;font-weight:500}.points{color:#111827;font-size:.95rem;font-weight:600}.level-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:.25rem .75rem;text-transform:uppercase}.level-badge.level-advanced{background:#fee2e2;color:#dc2626}.level-badge.level-intermediate{background:#fef3c7;color:#d97706}.level-badge.level-beginner{background:#d1fae5;color:#059669}.level-badge.level-default{background:#f3f4f6;color:#6b7280}.download-btn{align-items:center;background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:.25rem;padding:.5rem 1rem;transition:background-color .2s}.download-btn:hover{background:#2563eb}.download-btn:active{background:#1d4ed8}@media (max-width:1024px){.header-content{flex-direction:column;gap:1.5rem;text-align:center}.header-center{order:-1;width:100%}.main-nav{justify-content:center;margin:0 auto;width:-webkit-fit-content;width:fit-content}}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem;padding:1rem;text-align:center}.main-nav{flex-direction:column;gap:4px;padding:6px;width:100%}.nav-link{font-size:14px;justify-content:center;padding:10px 16px}.container{padding:1rem}.filters-grid,.stats-grid{grid-template-columns:1fr}.players-table{font-size:.85rem}.players-table td,.players-table th{padding:.75rem .5rem}.player-info{flex-direction:column;gap:.5rem;text-align:center}.player-avatar{height:45px!important;width:45px!important}.flag{height:18px!important;width:24px!important}}@media (max-width:480px){.header-text h1{font-size:1.5rem}.main-nav{padding:4px}.nav-link{font-size:13px;padding:8px 12px}.section-header{padding:1rem}.section-header h2{font-size:1.25rem}}.calendario-manager{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.message{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.header{border-bottom:2px solid #e9ecef;padding-bottom:15px}.header h2{color:#2c3e50;font-size:28px;font-weight:600;margin:0}.btn-primary:hover{background-color:#0056b3}.btn-secondary:hover{background-color:#545b62}.btn-accent:hover{background-color:#138496}.btn:disabled{cursor:not-allowed;opacity:.5}.tournaments-list .header{margin-bottom:20px}.empty-state{color:#6c757d;padding:60px 20px;text-align:center}.empty-state p{font-size:18px;margin:0}.tournaments-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.tournament-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px;transition:all .2s ease}.tournament-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.tournament-card h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 15px}.tournament-info{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.info-item{align-items:center;color:#6c757d;display:flex;font-size:14px;gap:8px}.status{border-radius:20px;font-size:12px;font-weight:500;padding:4px 12px;text-transform:uppercase}.status.draft{background-color:#fff3cd;color:#856404}.status.in_progress{background-color:#d1ecf1;color:#0c5460}.status.completed{background-color:#d4edda;color:#155724}.tournament-actions{display:flex;gap:10px}.tournament-form{max-width:500px}.form-group{margin-bottom:20px}.form-group label{color:#2c3e50;display:block;font-weight:500;margin-bottom:8px}.form-group input,.form-group select{border:1px solid #dee2e6;border-radius:6px;transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group select:focus{box-shadow:0 0 0 2px #007bff40}.form-row{grid-template-columns:1fr 1fr}.tournament-info-bar{background-color:#f8f9fa;border-radius:8px;display:flex;gap:20px;margin-bottom:30px;padding:15px}.tournament-info-bar span{align-items:center;color:#495057;display:flex;font-weight:500;gap:8px}.groups-container{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.group-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px}.group-card h3{background-color:#f8f9fa;border-radius:8px;color:#2c3e50;font-size:20px;font-weight:600;margin:0 0 20px;padding:10px;text-align:center}.existing-players{margin-bottom:25px}.existing-players h4{color:#495057;font-size:16px;margin:0 0 15px}.players-list{margin-bottom:15px}.player-item{align-items:center;background-color:#f8f9fa;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:10px}.partner-name{color:#6c757d;margin-left:5px}.player-stats{color:#6c757d;font-size:12px}.add-players h4{color:#495057;font-size:16px;margin:0 0 15px}.players-input{margin-bottom:15px}.player-input-row{display:flex;gap:10px;margin-bottom:10px}.player-input-row input{border:1px solid #dee2e6;border-radius:6px;flex:1 1;font-size:14px;padding:10px}.group-actions{display:flex;gap:10px;margin-top:15px}.loading-overlay{background-color:#fffc}@media (max-width:768px){.calendario-manager{padding:15px}.header{flex-direction:column;gap:15px;text-align:center}.form-row,.groups-container,.tournaments-grid{grid-template-columns:1fr}.tournament-info-bar{gap:10px}.group-actions,.player-input-row,.tournament-actions,.tournament-info-bar{flex-direction:column}}.tournament-tv{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0;min-height:100vh;padding:0}.tv-empty,.tv-error,.tv-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;text-align:center}.tv-spinner{animation:spin 1s linear infinite;border:6px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:60px;margin-bottom:20px;width:60px}.tv-empty h2,.tv-error h2,.tv-loading h2{font-size:32px;margin:0 0 15px}.retry-btn{background-color:#fff;border:none;border-radius:8px;color:#667eea;cursor:pointer;font-size:18px;font-weight:600;padding:15px 30px;transition:all .3s ease}.retry-btn:hover{box-shadow:0 4px 20px #0000004d;transform:scale(1.05)}.tv-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0003;border-bottom:2px solid #ffffff1a;display:flex;justify-content:space-between;padding:20px 40px}.logo-section .edp-logo{align-items:center;display:flex;flex-direction:column}.logo-text{color:#fff;font-size:36px;font-weight:900;letter-spacing:2px;text-shadow:2px 2px 4px #00000080}.logo-subtitle{color:#f8f9fa;font-size:14px;font-weight:600;letter-spacing:3px;margin-top:-5px}.tournament-title{flex:1 1;text-align:center}.tournament-title h1{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,#fff,#e3f2fd);-webkit-background-clip:text;background-clip:text;font-size:42px;font-weight:700;margin:0;text-shadow:2px 2px 4px #00000080}.tournament-subtitle{color:#e3f2fd;font-size:16px;font-weight:500;letter-spacing:1px;margin-top:5px;text-transform:uppercase}.time-section{text-align:right}.current-time{font-family:Courier New,monospace;font-size:32px;font-weight:700;text-shadow:2px 2px 4px #00000080}.current-date{color:#e3f2fd;font-size:14px;margin-top:5px;text-transform:capitalize}.refresh-indicator{align-items:center;color:#b3d4fc;display:flex;font-size:12px;gap:8px;margin-top:8px}.refresh-dot{animation:pulse 2s ease-in-out infinite;border-radius:50%;height:8px;width:8px}.refresh-dot.active{background-color:#28a745}.refresh-dot.inactive{background-color:#dc3545}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.tv-controls{background:#0000001a;display:flex;gap:15px;justify-content:center;padding:15px}.control-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:25px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .3s ease}.control-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.control-btn.active{background:#28a7454d;border-color:#28a74580}.tv-content{margin:0 auto;max-width:1400px;padding:20px 40px}.group-section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:15px;margin-bottom:40px;padding:25px}.group-header{align-items:center;border-bottom:2px solid #fff3;display:flex;justify-content:space-between;margin-bottom:25px;padding-bottom:15px}.group-header h2{color:#fff;font-size:28px;font-weight:700;margin:0;text-shadow:1px 1px 3px #0000004d}.group-stats{display:flex;gap:20px}.day-stat{align-items:center;background:#ffffff1a;border-radius:10px;display:flex;flex-direction:column;min-width:80px;padding:10px 15px}.day-name{color:#e3f2fd;font-size:12px;font-weight:600;text-transform:uppercase}.match-progress{color:#fff;font-size:18px;font-weight:700;margin-top:5px}.days-container{grid-gap:25px;display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.day-section{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;padding:20px}.day-title{background:#ffffff1a;border-radius:8px;font-size:22px;margin:0 0 20px;padding:10px}.matches-grid{display:flex;flex-direction:column}.match-card{background:#ffffffe6;border-left:4px solid #6c757d;border-radius:10px;box-shadow:0 4px 15px #0000001a;color:#2c3e50;padding:20px;transition:all .3s ease}.match-card:hover{box-shadow:0 6px 25px #0003;transform:translateY(-2px)}.match-card.completed{border-left-color:#28a745}.match-card.in_progress{animation:glow 2s ease-in-out infinite alternate;border-left-color:#ffc107}.match-card.pending{border-left-color:#6c757d}.match-header{border-bottom:1px solid #e9ecef;padding-bottom:10px}.match-status-icon{font-size:20px}.match-status-text{border-radius:15px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.match-status-text.completed{background-color:#d4edda;color:#155724}.match-status-text.in_progress{background-color:#fff3cd;color:#856404}.match-status-text.pending{background-color:#f8f9fa;color:#6c757d}.match-players{justify-content:space-between}.player{border-radius:8px;padding:12px;transition:all .3s ease}.player-name{text-align:center}.winner-badge{margin-left:8px}.vs-separator{background-color:#e9ecef;border-radius:50%;color:#495057;font-size:16px;font-weight:700;margin:0 15px;padding:8px 12px}.match-score{text-align:center}.score-display{background:linear-gradient(135deg,#28a745,#20c997);border-radius:8px;color:#fff;font-weight:600;padding:12px}.score-placeholder{background-color:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;padding:12px}.pending-text{color:#6c757d;font-size:14px;font-style:italic}.tv-footer{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000004d;border-top:2px solid #ffffff1a;display:flex;justify-content:space-between;margin-top:40px;padding:20px 40px}.footer-left .edp-branding{display:flex;flex-direction:column}.edp-text{color:#fff;font-size:18px;font-weight:700}.website{color:#b3d4fc;font-size:12px}.legend{display:flex;gap:20px}.legend-item{align-items:center;color:#e3f2fd;display:flex;font-size:14px;gap:8px}.legend-icon{font-size:16px}.last-update{color:#b3d4fc;font-family:Courier New,monospace;font-size:12px}@media print{.tv-controls{display:none}.tournament-tv{background:#fff;color:#000}.match-card{break-inside:avoid;page-break-inside:avoid}}@media (max-width:1200px){.tv-header{padding:15px 20px}.tournament-title h1{font-size:32px}.logo-text{font-size:28px}.tv-content{padding:15px 20px}.days-container{grid-template-columns:1fr}}@media (max-width:768px){.tv-header{flex-direction:column;gap:15px;text-align:center}.current-time,.tournament-title h1{font-size:24px}.group-header{flex-direction:column;gap:15px}.group-stats{flex-wrap:wrap;justify-content:center}.match-players{flex-direction:column;gap:10px}.vs-separator{transform:rotate(90deg)}.tv-footer{flex-direction:column;gap:15px;text-align:center}}.risultati-manager{background-color:#f8f9fa;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.risultati-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:50vh}.spinner{border:4px solid #f3f3f3;height:40px;margin-bottom:15px;width:40px}.header h1{color:#2c3e50;font-size:28px;font-weight:600;margin:0}.main-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:350px 1fr}.standings-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;height:-webkit-fit-content;height:fit-content;padding:25px;position:-webkit-sticky;position:sticky;top:20px}.standings-section h2{color:#2c3e50;font-size:20px;font-weight:600;margin:0 0 20px;text-align:center}.standings-table{display:flex;flex-direction:column}.table-header{border-bottom:2px solid #e9ecef;color:#495057;font-size:14px;font-weight:600;padding:12px 0}.table-header,.table-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:60px 1fr 40px 40px 60px}.table-row{align-items:center;border-bottom:1px solid #f1f3f4;padding:15px 0;transition:all .2s ease}.table-row:hover{background-color:#f8f9fa;transform:translateX(5px)}.table-row.first-place{background:linear-gradient(135deg,gold,#ffed4e);border-radius:8px;color:#333;font-weight:600;margin-bottom:5px;padding:15px 10px}.position{align-items:center;display:flex;font-size:16px;font-weight:600;gap:5px}.crown{font-size:18px}.player-names{color:#2c3e50;font-weight:500}.partner{color:#6c757d;font-weight:400}.losses,.points,.wins{font-weight:600;text-align:center}.wins{color:#28a745}.losses{color:#dc3545}.points{color:#007bff;font-size:16px}.calendar-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:25px}.calendar-section h2{color:#2c3e50;font-size:24px;font-weight:600;margin:0 0 25px}.empty-calendar{color:#6c757d;font-style:italic;padding:40px;text-align:center}.days-container{display:flex;flex-direction:column;gap:25px}.day-section{border:1px solid #e9ecef;border-radius:10px;overflow:hidden}.day-title{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:18px;font-weight:600;margin:0;padding:15px 20px;text-align:center}.matches-list{gap:12px;padding:15px}.match-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:10px;cursor:pointer;display:flex;justify-content:space-between;padding:20px;transition:all .2s ease}.match-item:hover{border-color:#007bff;box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.match-item.completed{border-left:4px solid #28a745}.match-item.in_progress{animation:glow 2s ease-in-out infinite alternate;border-left:4px solid #ffc107}.match-item.pending{border-left:4px solid #6c757d}@keyframes glow{0%{box-shadow:0 2px 8px #ffc1074d}to{box-shadow:0 4px 15px #ffc10799}}.match-info{flex:1 1}.match-header{gap:15px;margin-bottom:12px}.match-icon{font-size:20px}.match-number{color:#495057}.match-status{border-radius:15px;padding:4px 12px}.match-status.in_progress{background-color:#fff3cd;color:#856404}.match-status.pending{background-color:#f8f9fa;color:#6c757d}.match-players{align-items:center;gap:15px;margin-bottom:10px}.player{background-color:#f8f9fa;flex:1 1;font-weight:500;gap:8px;justify-content:center;padding:10px;text-align:center;transition:all .2s ease}.player.winner{background:linear-gradient(135deg,gold,#ffed4e);color:#333;font-weight:700;transform:scale(1.02)}.winner-badge{font-size:16px}.vs{background-color:#e9ecef;border-radius:50%;color:#495057;font-size:14px;font-weight:700;padding:8px 12px}.match-score{margin-top:10px}.score-text{color:#2c3e50;font-family:Courier New,monospace;font-size:16px;font-weight:600}.match-actions{margin-left:20px}.edit-btn{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.edit-btn.edit{background-color:#ffc107;color:#212529}.edit-btn.add{background-color:#28a745;color:#fff}.edit-btn:hover{transform:scale(1.05)}.modal-overlay{background-color:#000000b3}.modal-content{border-radius:15px;box-shadow:0 10px 30px #0000004d;max-width:600px}.modal-header h3{font-size:20px}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .2s ease;width:30px}.close-btn:hover{background-color:#f8f9fa;color:#333}.match-info-modal{margin-bottom:25px}.player-vs{align-items:center;background-color:#f8f9fa;border-radius:10px;display:flex;gap:20px;justify-content:center;padding:20px;text-align:center}.player-name{font-weight:600}.vs-text{background-color:#fff;border-radius:50%;color:#007bff;font-size:14px;font-weight:700;padding:8px 12px}.score-form,.sets-grid{display:flex;flex-direction:column;gap:20px}.set-section{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:20px}.set-section h4{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 15px;text-align:center}.optional{color:#6c757d;font-size:14px;font-weight:400}.score-inputs{align-items:center;justify-content:center}.player-score{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:8px}.player-score label{color:#495057;font-size:14px;font-weight:500}.player-score input{border:2px solid #dee2e6;border-radius:8px;font-size:18px;font-weight:600;padding:12px;text-align:center;transition:border-color .2s ease;width:80px}.player-score input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff40;outline:none}.score-separator{color:#495057;font-size:24px;font-weight:700;margin:0 10px}.modal-actions{border-top:1px solid #e9ecef;display:flex;gap:15px;justify-content:flex-end;margin-top:25px;padding-top:20px}.loading-overlay{z-index:3000}.loading-overlay p{margin-top:15px}@media (max-width:1200px){.main-content{gap:20px;grid-template-columns:1fr}.standings-section{position:static}}@media (max-width:768px){.risultati-manager{padding:15px}.header{flex-direction:column;gap:15px;text-align:center}.header h1{font-size:24px}.header-actions{flex-direction:column;width:100%}.table-header,.table-row{font-size:13px;gap:8px;grid-template-columns:40px 1fr 30px 30px 50px}.match-item{flex-direction:column;gap:15px}.match-actions{margin-left:0;width:100%}.edit-btn{width:100%}.match-players{flex-direction:column;gap:10px}.vs{transform:rotate(90deg)}.modal-content{margin:10px;width:95%}.player-vs{flex-direction:column;gap:10px}.vs-text{transform:rotate(90deg)}.score-inputs{flex-direction:column;gap:10px}.player-score,.player-score input{width:100%}.score-separator{transform:rotate(90deg)}.modal-actions{flex-direction:column}}@media (max-width:480px){.calendar-section h2{font-size:20px}.day-title{font-size:16px;padding:12px 15px}.match-item{padding:15px}.sets-grid{gap:15px}.set-section{padding:15px}}@media (prefers-color-scheme:dark){.risultati-manager{background-color:#1a1a1a;color:#e9ecef}.calendar-section,.header,.standings-section{background-color:#2d3748;color:#e9ecef}.match-item{background-color:#2d3748;border-color:#4a5568}.match-item:hover{border-color:#63b3ed}.player,.vs{background-color:#4a5568;color:#e9ecef}.modal-content{background-color:#2d3748;color:#e9ecef}.player-score input,.set-section{background-color:#4a5568;border-color:#718096}.player-score input{color:#e9ecef}.player-score input:focus{border-color:#63b3ed;box-shadow:0 0 0 3px #63b3ed40}}@media print{.edit-btn,.header-actions,.match-actions,.modal-overlay{display:none!important}.risultati-manager{background:#fff;color:#000}.match-item{margin-bottom:10px}.day-section,.match-item{break-inside:avoid;page-break-inside:avoid}.day-section{margin-bottom:20px}}.tournament-bracket{background-color:#f8f9fa;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.message{align-items:center;animation:slideInRight .3s ease-out;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;gap:10px;padding:12px 20px;position:fixed;right:20px;top:20px;z-index:1000}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.message button{background:none;border:none;color:inherit;cursor:pointer;font-size:18px}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.header h1,.header h2{color:#2c3e50;font-size:28px;font-weight:600;margin:0}.header-actions{display:flex;gap:10px}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;text-decoration:none;transition:all .2s ease}.btn:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-1px)}.btn-primary{background-color:#007bff;color:#fff}.btn-secondary{background-color:#6c757d;color:#fff}.btn-accent{background-color:#17a2b8;color:#fff}.btn-outline{background-color:initial;border:1px solid #007bff;color:#007bff}.btn-outline:hover{background-color:#007bff;color:#fff}.btn-large{font-size:16px;font-weight:600;padding:15px 30px}.btn-sm{font-size:12px;padding:6px 12px}.categories-container{display:flex;flex-direction:column;gap:40px}.gender-section h2{align-items:center;border-bottom:3px solid #e9ecef;color:#2c3e50;display:flex;font-size:24px;font-weight:600;gap:10px;margin:0 0 25px;padding-bottom:15px}.categories-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.category-card{background:#fff;border-radius:12px;border-top:4px solid #007bff;border-top:4px solid var(--category-color,#007bff);box-shadow:0 2px 8px #0000001a;overflow:hidden;padding:25px;position:relative;transition:all .3s ease}.category-card:before{background:linear-gradient(90deg,#007bff,#0000);background:linear-gradient(90deg,var(--category-color,#007bff),#0000);content:"";height:4px;left:0;opacity:.7;position:absolute;right:0;top:0}.category-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.category-card.men{border-top-color:#007bff}.category-card.women{border-top-color:#e91e63}.category-header{align-items:center;display:flex;gap:12px;margin-bottom:20px}.category-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:28px}.category-card h3{color:#2c3e50;font-size:20px;font-weight:600;margin:0}.category-stats{display:flex;gap:20px;margin-bottom:20px}.stat{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;flex:1 1;flex-direction:column;padding:10px}.stat-number{color:#007bff;color:var(--category-color,#007bff);font-size:24px;font-weight:700;line-height:1}.stat-label{color:#6c757d;font-size:12px;font-weight:500;margin-top:4px;text-transform:uppercase}.more-tournaments{background:#f8f9fa;border-radius:6px;color:#6c757d;font-size:12px;font-style:italic;margin-top:8px;padding:8px;text-align:center}.tournaments-list{margin-bottom:20px}.tournament-item{align-items:center;background-color:#f8f9fa;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:10px}.tournament-name{color:#2c3e50;font-weight:500}.tournament-status{border-radius:12px;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.tournament-status.draft{background-color:#fff3cd;color:#856404}.no-tournaments{color:#6c757d;font-style:italic;margin-bottom:15px}.tournament-form{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-width:1000px;padding:30px}.form-section{margin-bottom:40px}.form-section h3{border-bottom:2px solid #e9ecef;color:#2c3e50;font-size:20px;font-weight:600;margin:0 0 20px;padding-bottom:10px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group input,.form-group select{border:2px solid #e9ecef;border-radius:8px;font-size:14px;padding:12px;transition:all .2s ease}.form-group input:focus,.form-group select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.seeding-info{background:#e3f2fd;border-left:4px solid #1976d2;border-radius:8px;color:#1565c0;font-size:14px;margin-bottom:20px;padding:12px 16px}.seeding-controls{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:25px}.seeding-controls .btn{align-items:center;display:flex;font-size:14px;gap:8px;padding:10px 16px}.players-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.players-grid.seeding{gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.player-input-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:12px;padding:15px;position:relative;transition:all .3s ease}.player-input-card:hover{border-color:#007bff;box-shadow:0 4px 12px #007bff26;transform:translateY(-2px)}.player-input-card.top-seed{background:linear-gradient(135deg,#fff8e1,#f8f9fa);border-color:#ffb300;box-shadow:0 2px 8px #ffb30033}.seed-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.seed-number{background:#007bff;border-radius:20px;color:#fff;font-size:14px;font-weight:700;min-width:40px;padding:6px 12px;text-align:center}.top-seed .seed-number{box-shadow:0 2px 8px #ffb3004d}.top-seed .seed-number,.top-seed-badge{background:linear-gradient(135deg,#ffb300,#ff8f00)}.top-seed-badge{border-radius:12px;box-shadow:0 2px 4px #ffb3004d;color:#fff;font-size:11px;font-weight:600;letter-spacing:.5px;padding:4px 8px;text-transform:uppercase}.seed-controls{display:flex;gap:8px;justify-content:center;margin-top:12px}.seed-controls button{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;min-width:36px;padding:6px 10px;transition:all .2s ease}.seed-controls button:hover:not(:disabled){background:#495057;transform:scale(1.1)}.seed-controls button:disabled{background:#dee2e6;color:#6c757d;cursor:not-allowed;transform:none}.player-inputs{display:flex;flex-direction:column;gap:8px;margin-top:8px}.player-inputs input{border:1px solid #dee2e6;border-radius:6px;font-size:14px;padding:8px 12px}.player-inputs input:focus{border-color:#007bff;outline:none}.player-inputs input::placeholder{color:#6c757d;font-style:italic}.bracket-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;min-height:600px;padding:30px}.bracket-display{display:flex;flex-direction:column;gap:30px}.round-section{border:1px solid #e9ecef;border-radius:8px;padding:20px}.round-section h3{border-bottom:2px solid #007bff;color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 20px;padding-bottom:10px}.matches-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.match-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:15px;transition:all .2s ease}.match-card:hover{border-color:#007bff;box-shadow:0 2px 8px #007bff1a}.match-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.match-number{color:#2c3e50;font-weight:600}.match-status{border-radius:12px;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.match-status.scheduled{background-color:#fff3cd;color:#856404}.match-status.in_progress{background-color:#d1ecf1;color:#0c5460}.match-status.completed{background-color:#d4edda;color:#155724}.match-players{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.player{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.player.winner{background:#d4edda;border-color:#c3e6cb;font-weight:600}.player-name{flex:1 1;font-size:14px}.score{font-size:12px;font-weight:500}.score,.vs{color:#6c757d}.vs{font-weight:600;margin:5px 0;text-align:center}.match-schedule{border-top:1px solid #e9ecef;color:#6c757d;display:flex;font-size:12px;justify-content:space-between;padding-top:10px}.bracket-placeholder{align-items:center;color:#6c757d;display:flex;flex-direction:column;font-size:18px;height:400px;justify-content:center}.results-container{grid-gap:30px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:grid;gap:30px;grid-template-columns:1fr 1fr;padding:30px}.results-container h3{border-bottom:2px solid #e9ecef;color:#2c3e50;font-size:20px;font-weight:600;margin:0 0 20px;padding-bottom:10px}.matches-list{display:flex;flex-direction:column;gap:15px}.match-result-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:12px;padding:20px;transition:all .3s ease}.match-result-card:hover{border-color:#007bff;box-shadow:0 4px 12px #007bff1a;transform:translateY(-2px)}.match-info{margin-bottom:15px}.round-badge{background:#007bff;border-radius:20px;color:#fff;display:inline-block;font-size:12px;font-weight:600;margin-bottom:10px;padding:4px 12px;text-transform:uppercase}.match-details{display:flex;flex-direction:column;gap:8px}.player-line{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:8px 12px}.player-name{color:#2c3e50;font-weight:500}.completed-match-card{background:#f8f9fa;border:1px solid #d4edda;border-radius:8px;margin-bottom:10px;padding:15px}.result-summary{display:flex;flex-direction:column;gap:8px;margin-top:10px}.player-result{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:6px;display:flex;justify-content:space-between;padding:6px 10px}.player-result.winner{background:#d4edda;border-color:#c3e6cb;font-weight:600}.no-matches{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;font-style:italic;padding:40px 20px;text-align:center}.schedule-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#6c757d;font-size:18px;min-height:400px;padding:30px}.loading-overlay,.schedule-container{align-items:center;display:flex;justify-content:center}.loading-overlay{background-color:#ffffffe6;bottom:0;flex-direction:column;left:0;position:fixed;right:0;top:0;z-index:2000}.spinner{animation:spin 1s linear infinite;border:5px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:50px;margin-bottom:20px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-overlay p{color:#6c757d;font-size:18px;font-weight:500}.form-group label{align-items:center;color:#495057;display:flex;font-size:14px;font-weight:600;gap:8px}.form-group input[type=checkbox]{margin-right:8px;width:auto}.form-group small{color:#6c757d;font-size:12px;font-style:italic;margin-top:4px}@media (max-width:1024px){.categories-container{gap:30px}.categories-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.players-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.results-container{gap:25px;grid-template-columns:1fr}}@media (max-width:768px){.tournament-bracket{padding:15px}.header{flex-direction:column;gap:15px;text-align:center}.header-actions{flex-direction:column;width:100%}.categories-grid,.form-row,.players-grid{grid-template-columns:1fr}.seeding-controls{flex-direction:column}.seeding-controls .btn{justify-content:center;width:100%}.category-stats{flex-direction:column;gap:10px}.results-container{grid-template-columns:1fr;padding:20px}.tournament-item{flex-direction:column;gap:10px;text-align:center}}@media (max-width:480px){.header h1,.header h2{font-size:24px}.category-card,.tournament-form{padding:20px}.form-section h3{font-size:18px}}@media (prefers-color-scheme:dark){.tournament-bracket{background-color:#1a1a1a;color:#e9ecef}.bracket-container,.category-card,.header,.tournament-form{background-color:#2d3748;color:#e9ecef}.player-input-card{background-color:#4a5568;border-color:#718096}.form-group input,.form-group select,.player-inputs input{background-color:#4a5568;border-color:#718096;color:#e9ecef}.tournament-item{background-color:#4a5568}}.modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.modal-content{animation:slideInUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 25px #00000040;max-height:90vh;max-width:500px;overflow-y:auto;padding:0;width:90%}.modal-header{align-items:center;background-color:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:20px 25px}.modal-header h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:all .2s ease;width:30px}.modal-close:hover{background-color:#e9ecef;color:#495057}.modal-body{padding:25px}.match-players-modal{align-items:center;background-color:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:25px;padding:15px}.player-modal{flex:1 1;text-align:center}.player-modal h4{color:#2c3e50;font-size:16px;font-weight:600;margin:0 0 5px}.player-modal p{color:#6c757d;font-size:14px;margin:0}.vs-modal{color:#007bff;font-size:18px;font-weight:700;margin:0 15px}.score-inputs{display:flex;flex-direction:column;gap:15px}.set-row{align-items:center;background-color:#f8f9fa;border-radius:8px;display:flex;gap:10px;padding:10px}.set-row label{color:#495057;font-size:14px;font-weight:600;min-width:80px}.set-row input{border:2px solid #e9ecef;border-radius:6px;font-size:16px;font-weight:600;padding:8px;text-align:center;transition:border-color .2s ease;width:60px}.set-row input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.set-row span{color:#6c757d;font-weight:700}.modal-footer{background-color:#f8f9fa;border-radius:0 0 12px 12px;border-top:1px solid #e9ecef;display:flex;gap:10px;justify-content:flex-end;padding:20px 25px}.modal-footer .btn{min-width:100px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.modal-content{margin:10px;width:95%}.match-players-modal{flex-direction:column;gap:10px;text-align:center}.vs-modal{margin:10px 0}.set-row{flex-wrap:wrap;gap:8px;justify-content:center}.set-row label{min-width:60px}}.tournament-status.scheduled{background-color:#fff3cd;color:#856404}.tournament-status.in_progress{background-color:#d1ecf1;color:#0c5460}.tournament-status.completed{background-color:#d4edda;color:#155724}
/*# sourceMappingURL=main.6f0133ad.css.map*/