.dancer-search{width:100%;max-width:1200px;margin:0 auto;padding:20px;box-sizing:border-box}.dancer-search h2{text-align:center;color:#333;margin-bottom:20px}.search-container{position:relative;max-width:600px;margin:0 auto 20px}.search-box{position:relative;display:flex;gap:10px}.search-box input{flex:1;padding:12px 40px 12px 16px;border:2px solid #ddd;border-radius:8px;font-size:16px;transition:border-color .2s}.search-box input:focus{outline:none;border-color:#86b6f6}.clear-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:4px 8px;border-radius:50%;transition:color .2s,background .2s}.clear-btn:hover{color:#333;background:#f0f0f0}.loading-spinner{position:absolute;right:40px;top:50%;transform:translateY(-50%);font-size:20px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #86B6F6;border-radius:8px;margin-top:4px;max-height:400px;overflow-y:auto;box-shadow:0 4px 12px #00000026;z-index:1000}.suggestions-header{padding:12px 16px;background:#e3f2fd;font-weight:600;color:#2c3e50;border-bottom:1px solid #86B6F6;position:sticky;top:0;z-index:1}.suggestion-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;transition:background-color .2s;border-bottom:1px solid #f0f0f0}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover{background-color:#f8fbfd}.suggestion-name{flex:1;font-size:15px}.suggestion-name .last-name{font-weight:600;color:#2c3e50}.suggestion-name .first-name{color:#5a9fef}.suggestion-name .suggestion-extra{margin-left:6px;font-size:12px;color:#888;font-weight:400}.suggestion-counts{display:flex;gap:8px;align-items:center}.suggestion-counts .count{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600}.suggestion-counts .count.registration{background:#e8f5e9;color:#4caf50}.suggestion-counts .count.result{background:#fff9c4;color:#f57c00}.hint{text-align:center;padding:10px;color:#999;font-size:14px;background:#f5f5f5;border-radius:6px;margin-top:10px}.error{background:#ffebee;color:#c62828;padding:12px 16px;border-radius:8px;margin-bottom:15px;text-align:center}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;margin:10px 0;background:#ffebee;border-radius:12px;border:1px solid #FFCDD2}.error-container .error-icon{font-size:36px;margin-bottom:10px}.error-container .error-text{color:#c62828;font-size:16px;font-weight:600;margin-bottom:6px;text-align:center}.error-container .error-hint{color:#e57373;font-size:13px}.loading-message{text-align:center;padding:40px 20px;color:#666}.loading-message .spinner{font-size:48px;margin-bottom:15px;animation:spin 2s linear infinite}.loading-message p{font-size:16px}.dancer-results-container{margin-top:10px;width:100%}.back-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#e3f2fd;border:1px solid #86B6F6;border-radius:6px;color:#1976d2;cursor:pointer;font-size:14px;font-weight:500;margin-bottom:15px;transition:background .2s}.back-btn:hover{background:#bbdefb}.dancer-info-header{background:linear-gradient(135deg,#e3f2fd,#f3e5f5);padding:12px 20px;border-radius:12px 12px 0 0;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.dancer-info-header h3{margin:0;font-size:20px;color:#2c3e50}.dancer-summary-row{display:flex;align-items:center;gap:8px;margin-left:auto}.dancer-summary-row .favorite-star{background:none;border:none;cursor:pointer;font-size:28px;color:#ccc;transition:color .2s,transform .2s;padding:4px 8px;line-height:1;flex-shrink:0}.dancer-summary-row .favorite-star:hover{transform:scale(1.2);color:#f0c040}.dancer-summary-row .favorite-star.active{color:#f0c040}.dancer-club{font-size:13px;font-weight:400;color:#7b8d9e}.dancer-summary{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.summary-badge.registrations{background:#e8f5e9;color:#2e7d32}.summary-badge.results{background:#fff9c4;color:#f57c00}.summary-badge.empty{background:#f5f5f5;color:#9e9e9e}.tabs{display:flex;gap:4px;margin-bottom:20px;background:#f0f0f0;border-radius:0 0 12px 12px;padding:4px}.tab{flex:1;padding:12px 20px;border:none;background:transparent;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;color:#666}.tab:hover:not(:disabled){background:#e0e0e0}.tab.active{background:#fff;color:#1976d2;box-shadow:0 1px 3px #0000001a}.tab:disabled{opacity:.4;cursor:not-allowed}.section-title{display:flex;align-items:center;gap:10px;margin:0 0 20px;color:#2c3e50;font-size:18px}.section-count{font-size:13px;font-weight:400;color:#7e8ba3;background:#f5f5f5;padding:4px 12px;border-radius:12px}.tournament-card{background:#fafbfc;border:1px solid #E8EDF2;border-radius:12px;padding:20px;margin-bottom:20px}.tournament-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.tournament-header h4{margin:0;font-size:17px;color:#2c3e50;flex:1}.tournament-number{font-size:12px;color:#999;background:#f5f5f5;padding:4px 10px;border-radius:12px}.tournament-meta{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:15px;font-size:13px;color:#5a6b7d}.meta-item{display:flex;align-items:center;gap:4px}.judges-section{margin-bottom:15px}.judges-toggle{display:flex;align-items:center;gap:8px;padding:8px 14px;background:#f5f5f5;border:1px solid #E0E0E0;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:#555;width:100%;text-align:left;transition:background .2s}.judges-toggle:hover{background:#eee}.toggle-arrow{margin-left:auto;font-size:10px;transition:transform .2s}.toggle-arrow.expanded{transform:rotate(90deg)}.judges-list{padding:12px;background:#fff;border:1px solid #E0E0E0;border-top:none;border-radius:0 0 6px 6px}.judge-group-title{font-weight:600;font-size:13px;color:#1976d2;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #E3F2FD}.judge-item{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.judge-name{color:#333}.judge-city{color:#999;font-size:12px}.category-section{background:#f8fafe;border:1px solid #E3EDF7;border-radius:8px;padding:15px;margin-bottom:15px}.category-section.results-category{background:#fff9e6;border-color:#f5e6b8}.category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px;background:#e3f2fd;border-radius:6px}.results-cat-header{background:#fff3cd}.category-name{font-size:16px;font-weight:600;color:#2c3e50}.category-info{font-size:14px;color:#5a9fef;display:flex;align-items:center;gap:6px}.category-count-badge{background:#1976d2;color:#fff;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;margin-left:auto;flex-shrink:0}.participant-row{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:12px;border-radius:8px;background:#fff;border:1px solid #F0F0F0}.participant-row.highlighted{background:#fff9c4;border:2px solid #FBC02D}.participant-row .lp{font-size:14px;color:#7e8ba3;text-align:center;font-weight:500}.right-column{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.dancer-names{display:flex;flex-direction:column;gap:4px}.dancer-link{background:transparent;border:none;padding:0;cursor:pointer;text-align:left;color:#1976d2;text-decoration:underline;transition:color .2s;font-size:14px}.couple{display:flex;flex-direction:row;gap:12px;flex-wrap:wrap}.badges{display:flex;gap:8px}.badge{display:flex;flex-direction:column;align-items:center;padding:6px 10px;border-radius:6px;min-width:70px}.badge.points{background:#e8f5e9}.badge.class{background:#e3f2fd}.badge-label{font-size:10px;font-weight:600;text-transform:uppercase}.badge.points .badge-label{color:#4caf50}.badge.class .badge-label{color:#2196f3}.badge-value{font-size:14px;font-weight:700;margin-top:2px}.badge.points .badge-value{color:#2e7d32}.badge.class .badge-value{color:#1565c0}.badge.score{background:#fff8e1;cursor:pointer;transition:transform .1s,box-shadow .1s}.badge.score:hover{transform:scale(1.05);box-shadow:0 2px 8px #00000026}.badge.score-ocs{background:#fff3e0}.badge.score-perf{background:#f3e5f5}.badge.score-cons{background:#e0f7fa}.badge.score-comp{background:#fff8e1}.badge.score .badge-label{color:#e65100}.badge.score-perf .badge-label{color:#7b1fa2}.badge.score-cons .badge-label{color:#00838f}.badge.score-comp .badge-label{color:#f57f17}.badge.score .badge-value{color:#bf360c}.badge.score-perf .badge-value{color:#6a1b9a}.badge.score-cons .badge-value{color:#006064}.badge.score-comp .badge-value{color:#e65100}.dancer-search .participant-row .club{font-size:11px;color:#7e8ba3;text-align:left}.result-details{padding:10px;background:#fff;border-radius:6px}.partner-info{margin-bottom:10px;padding:8px 12px;background:#e3f2fd;border-radius:6px;color:#2c3e50;font-size:14px}.result-stats{display:flex;gap:15px;flex-wrap:wrap;align-items:center}.result-item{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:6px;font-size:14px}.result-item.place{background:gold;color:#b8860b;font-weight:700;font-size:16px}.participants-count{font-size:13px;font-weight:400;opacity:.7;margin-left:4px}.result-item.premium{background:#e3f2fd;color:#2196f3}.result-item.total{background:#e8f5e9;color:#4caf50}.result-item.promotion{background:#f3e5f5;color:#7b1fa2;font-weight:700;font-size:16px;border:2px solid #CE93D8;padding:8px 16px}.dancer-search .tournament-card:hover{transform:none;box-shadow:none;border-color:#e8edf2;cursor:default}.tab-content-wrapper,.tab-content{width:100%}@media(max-width:1024px){.tournament-number,.hide-on-small,.badge .badge-label{display:none}.badge .badge-value{margin-top:0}.dancer-search .tournament-meta{display:grid;grid-template-columns:1fr auto;gap:2px 12px;margin-bottom:8px;font-size:12px;flex-direction:unset}.dancer-search .tournament-meta .meta-item:nth-child(1){grid-column:1;grid-row:1}.dancer-search .tournament-meta .meta-item:nth-child(2){grid-column:1 / -1;grid-row:2}.dancer-search .tournament-meta .meta-item:nth-child(3){grid-column:2;grid-row:1;text-align:right}.tournament-card{padding:12px;margin-bottom:12px}.tournament-header{margin-bottom:6px}.tournament-header h4{font-size:15px}.category-section{padding:10px;margin-bottom:8px}.dancer-search .category-header{flex-direction:row;align-items:center;margin-bottom:8px;padding:6px 10px}.category-name{font-size:14px}.result-details{padding:6px}.partner-info{margin-bottom:6px;padding:6px 10px;font-size:13px}.result-stats{gap:6px}.result-item{padding:5px 8px;font-size:13px}.result-item.place{font-size:14px}.result-item.promotion{font-size:14px;padding:5px 10px}.section-title{margin:0 0 12px;font-size:16px}.block-header{padding:6px 12px;margin-bottom:6px;font-size:13px}.block-section,.judges-section{margin-bottom:8px}.dancer-search .category-header.results-cat-header{flex-direction:row;align-items:center;gap:8px}.dancer-search .results-cat-header .category-name{flex:1;min-width:0}}@media(max-width:768px){.dancer-search{padding:10px}.tournament-header{flex-direction:column;align-items:flex-start;gap:6px}.dancer-search .category-header{flex-direction:row;align-items:center;gap:8px}.participant-row{grid-template-columns:30px 1fr;gap:8px}.right-column{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center}.badges{flex-direction:row;width:100%;gap:6px;flex-wrap:wrap}.badge{flex:0 1 auto;min-width:40px;padding:5px 10px}.badge .badge-value{font-size:13px}.tabs{flex-direction:column}.dancer-info-header{flex-direction:column;align-items:flex-start}.dancer-info-header h3{width:100%}.dancer-club{display:block;margin-top:2px}.dancer-summary-row{margin-left:0;width:100%}}.clickable-header{cursor:pointer;transition:color .2s}h4.clickable-header:hover,.category-name.clickable-header:hover{color:#1976d2}.category-header .voting-icon-btn{margin-left:auto;flex-shrink:0}.popup-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.popup-content{background:#fff;border-radius:12px;max-width:900px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.popup-content.popup-voting{max-width:min(80vw,fit-content);width:fit-content;min-width:400px}.popup-content.popup-score-info{max-width:600px}.score-info-body{padding:20px 24px;font-size:14px;line-height:1.7;color:#2c3e50}.score-info-body .score-intro{font-size:15px;margin-bottom:16px;color:#34495e}.score-info-body h4{margin:18px 0 8px;font-size:14px;font-weight:700;color:#5b4a9e}.score-info-body ul{margin:0 0 10px;padding-left:20px}.score-info-body ul li{margin-bottom:3px}.score-info-body p{margin:6px 0}.score-info-body em{color:#5b4a9e;font-style:italic}.score-note{margin-top:16px;padding:10px 14px;background:#fff8e1;border-left:3px solid #F9A825;border-radius:6px;font-size:13px;color:#5d4037}.popup-content.popup-loading{max-width:300px;text-align:center;padding:40px}.popup-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0;flex-shrink:0}.popup-header h3{margin:0;font-size:18px;color:#fff;font-weight:600}.popup-close{background:#fff3;border:none;font-size:20px;color:#fff;cursor:pointer;padding:4px 10px;border-radius:6px;transition:background .2s}.popup-close:hover{background:#ffffff59}.popup-body{padding:24px;overflow-y:auto;flex:1;background:#fafbfc}.popup-body h4{margin:0 0 10px;font-size:17px;color:#2c3e50;font-weight:600}.popup-meta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:15px;font-size:13px;color:#5a6b7d;background:#fff;padding:10px 14px;border-radius:8px;border:1px solid #E8EDF2}.popup-organizer{font-size:13px;color:#7e8ba3;margin:0 0 15px}.popup-section{margin-bottom:20px}.popup-section h5{margin:0 0 10px;font-size:15px;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);padding:10px 14px;border-radius:6px}.popup-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.popup-list li{padding:8px 12px;font-size:13px;color:#555;border-radius:4px;background:#fff;border:1px solid #F0F0F0}.popup-list li:nth-child(2n){background:#f8fafe}.clubs-list li{display:flex;justify-content:space-between;align-items:center}.club-count{background:#e3f2fd;color:#1976d2;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.popup-category-info{font-size:14px;color:#5a9fef;margin-bottom:15px}.voting-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#e3f2fd;border:1px solid #86B6F6;border-radius:6px;color:#1976d2;cursor:pointer;font-size:14px;font-weight:500;margin-bottom:20px;transition:background .2s}.voting-btn:hover{background:#bbdefb}.popup-participants h5{margin:0 0 10px;font-size:15px;color:#2c3e50}.participants-table{width:100%;border-collapse:collapse;font-size:13px}.participants-table th{background:#f5f5f5;padding:8px 10px;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #E0E0E0}.participants-table td{padding:6px 10px;border-bottom:1px solid #F0F0F0;vertical-align:top}.participants-table tr:hover{background:#fafafa}.participants-table .col-place{font-weight:600;text-align:center;width:35px}.participants-table .col-name{width:50%}.participants-table .col-name .dancer-link{font-size:13px}.participants-table .couple-names{display:flex;gap:10px;flex-wrap:wrap}.participants-table .col-club{font-size:12px;color:#7e8ba3}.participants-table .col-premium,.participants-table .col-total{text-align:center}.participants-table .col-promotion.has-promotion{color:#7b1fa2;font-weight:700;background:#f3e5f5}.voting-judges-list,.voting-dances-list{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px}.voting-judge-item,.voting-dance-item{font-size:13px;color:#555;background:#f5f5f5;padding:4px 10px;border-radius:4px}.no-voting-data{text-align:center;color:#999;padding:20px;font-style:italic}.voting-round{margin-bottom:24px}.round-title{margin:0 0 12px;font-size:16px;font-weight:600;color:#fff;background:linear-gradient(135deg,#42a5f5,#1976d2);padding:10px 16px;border-radius:8px}.voting-table-wrapper{overflow-x:auto;margin-bottom:10px}.voting-table{width:auto;border-collapse:separate;border-spacing:2px;font-size:13px}.voting-table th,.voting-table td{padding:6px 8px;text-align:center;border:none;border-radius:3px}.voting-table th{background:#e3f2fd;font-weight:600;font-size:12px;color:#1976d2}.voting-table .dance-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:13px;padding:8px 12px;cursor:help}.voting-table .judge-col{font-size:11px;color:#5a6b7d;background:#f0f4fa;cursor:help}.voting-table .col-nr{font-weight:700;background:#ffd54f;min-width:40px;color:#f57f17;cursor:default;position:sticky;left:0;z-index:2}.voting-table .col-nr-header{font-weight:700;background:#e3f2fd;color:#1976d2;min-width:40px;vertical-align:middle;position:sticky;left:0;z-index:3}.vote-cell{min-width:22px;background:#f8f8f8;font-size:13px}.vote-cell.has-vote{background:#c8e6c9;color:#1b5e20;font-weight:700}.col-dance-sum-val{font-weight:700;background:#fff9c4;color:#f57f17;min-width:28px;text-align:center;font-size:12px}.col-dance-sum{font-size:11px!important;color:#f57f17!important;background:#fff9c4!important}.voting-table .col-sum,.voting-table .col-sum-header{font-weight:700;background:#fff9c4;min-width:50px;color:#f57f17;vertical-align:middle}.voting-table .col-place-vote,.voting-table .col-place-header{font-weight:700;background:#c8e6c9;color:#2e7d32;min-width:40px;vertical-align:middle}.voting-legend{display:flex;flex-wrap:wrap;gap:8px;padding:8px;background:#fafafa;border-radius:6px;font-size:12px}.legend-item{color:#555}.voting-icon-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:4px 8px;border-radius:4px;opacity:.6;transition:opacity .2s,background .2s;title:"Dokumentacja glosowania"}.voting-icon-btn:hover{opacity:1;background:#e3f2fd}.result-stats-row{display:flex;align-items:center;gap:8px}.col-club-inline{display:none}@media(max-width:768px){.popup-content{max-width:100%;max-height:95vh;margin:10px;border-radius:8px}.popup-content.popup-voting{max-width:100%}.participants-table .col-club,.participants-table .col-club-header{display:none}.col-club-inline{display:block;font-size:11px;color:#7e8ba3;margin-top:2px}}.dancer-search-panel{display:flex;align-items:center;background:#fff;border-radius:8px;box-shadow:0 4px 16px #0003;padding:8px 12px;gap:8px;animation:fab-slide-up .2s ease-out}@keyframes fab-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.participant-row.fab-search-match{background:#fff9c4;border-color:#ffa726}.participant-row.fab-search-current{background:#ffe0b2;border-color:#ff7043;box-shadow:0 0 6px #ff70434d}.category-section.fab-search-match{border:2px solid #FFA726;background:#fff8e1;border-radius:8px}.category-section.fab-search-current{border:2px solid #FF7043;background:#fff3e0;border-radius:8px;box-shadow:0 0 8px #ff70434d}.dancer-name-link{cursor:pointer;color:#6b46c1;text-decoration:underline dotted;transition:color .15s}.dancer-name-link:hover{color:#553c9a;text-decoration:underline}.popup-content.popup-dancer-profile{max-width:580px}.dancer-profile-body{display:flex;flex-direction:column;gap:20px;padding:20px 24px;overflow-y:auto;font-size:16px}.profile-basic-info{display:flex;flex-wrap:wrap;gap:12px 24px}.profile-info-item{display:flex;gap:6px;align-items:center}.profile-label{font-weight:600;color:#7e8ba3;font-size:16px}.profile-value{font-size:16px;color:#2d3748}.profile-section{border-top:1px solid #E2E8F0;padding-top:14px}.profile-section h4{margin:0 0 12px;font-size:18px;color:#6b46c1;font-weight:600}.profile-status-grid{display:flex;flex-wrap:wrap;gap:8px}.profile-status-grid.compact{margin-top:6px}.profile-status-item{display:flex;align-items:center;gap:8px;background:#f7fafc;border:1px solid #E2E8F0;border-radius:6px;padding:6px 12px;font-size:15px}.style-label{font-weight:700;color:#6b46c1;font-size:15px;min-width:36px}.class-badge{background:#ebf4ff;color:#2b6cb0;padding:4px 14px;border-radius:5px;font-weight:700;font-size:18px}.points-badge{color:#38a169;font-weight:600;font-size:15px}.profile-start-count{margin-top:8px;font-size:15px;color:#718096}.profile-scores{margin-top:8px}.profile-score-badges{display:flex;flex-direction:column;gap:8px}.profile-score-style{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.profile-style-tag{font-weight:700;color:#6b46c1;font-size:15px;min-width:40px}.profile-badge{display:flex;flex-direction:column;align-items:center;padding:5px 10px;border-radius:6px;min-width:60px}.profile-badge.score-ocs{background:#fff3e0}.profile-badge.score-perf{background:#f3e5f5}.profile-badge.score-cons{background:#e0f7fa}.profile-badge.score-comp{background:#fff8e1}.profile-badge-label{font-size:10px;font-weight:600;text-transform:uppercase}.profile-badge.score-ocs .profile-badge-label{color:#e65100}.profile-badge.score-perf .profile-badge-label{color:#7b1fa2}.profile-badge.score-cons .profile-badge-label{color:#00838f}.profile-badge.score-comp .profile-badge-label{color:#f57f17}.profile-badge-value{font-size:15px;font-weight:700;margin-top:1px}.profile-badge.score-ocs .profile-badge-value{color:#bf360c}.profile-badge.score-perf .profile-badge-value{color:#6a1b9a}.profile-badge.score-cons .profile-badge-value{color:#006064}.profile-badge.score-comp .profile-badge-value{color:#e65100}@media(max-width:768px){.profile-badge-label{display:none}.profile-badge{min-width:44px;padding:4px 6px}}.profile-partner-card{background:#f7fafc;border:1px solid #E2E8F0;border-radius:8px;padding:12px 14px;margin-bottom:10px}.profile-partner-card.active{border-color:#38a169;border-width:2px;background:#e6ffed}.profile-partner-header{display:flex;justify-content:space-between;align-items:center}.profile-partner-name{font-weight:600;font-size:17px;color:#2d3748;display:flex;align-items:center;gap:8px}.active-badge{background:#38a169;color:#fff;font-size:13px;padding:2px 10px;border-radius:10px;font-weight:600}.profile-partner-starts{font-size:16px;color:#718096;white-space:nowrap}.profile-partner-club{font-size:15px;color:#718096;margin-top:4px}.tournament-search{max-width:1200px;margin:0 auto;padding:20px}.tournament-search h2{text-align:center;color:#333;margin-bottom:30px}.search-form{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.filter-group{margin-bottom:15px}.filter-group.guest-disabled{opacity:.45;pointer-events:none}.filter-group label{display:block;font-weight:600;margin-bottom:5px;color:#555}.filter-group select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:16px;background-color:#fff}.filter-group input[type=text]{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:16px;background-color:#fff;box-sizing:border-box}.filter-group input[type=text]:focus{outline:none;border-color:#86b6f6}.filter-group select:focus{outline:none;border-color:#86b6f6}.radio-group{display:flex;gap:20px}.radio-group label{display:flex;align-items:center;gap:5px;font-weight:400;cursor:pointer}.radio-group input[type=radio]{cursor:pointer}.button-group{display:flex;gap:10px;margin-top:20px}.button-group button{flex:1;padding:10px 20px;border:none;border-radius:4px;font-size:16px;cursor:pointer;transition:background-color .2s;font-weight:600}.button-group button:first-child{background-color:#86b6f6;color:#fff}.button-group button:first-child:hover:not(:disabled){background-color:#5a9fef}.button-group button:last-child{background-color:#f44336;color:#fff}.button-group button:last-child:hover:not(:disabled){background-color:#da190b}.button-group button:disabled{opacity:.6;cursor:not-allowed}.error{background-color:#ffebee;color:#c62828;padding:15px;border-radius:4px;margin-bottom:20px;text-align:center}.results-summary{text-align:center;padding:15px;background:#e3f2fd;border-radius:4px;margin-bottom:20px;font-size:16px}.results{display:grid;gap:20px}.tournament-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .2s}.tournament-card:hover{box-shadow:0 4px 12px #00000026}.tournament-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:15px;border-bottom:2px solid #86B6F6;margin-bottom:15px}.tournament-info h3{margin:0 0 10px;color:#2c3e50;font-size:20px}.tournament-meta{display:flex;gap:15px;margin-bottom:8px;color:#5a9fef;font-size:14px;flex-wrap:wrap}.tournament-organizer{font-size:13px;color:#7e8ba3}.tournament-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.expand-button{background:#86b6f6;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;transition:background-color .2s;white-space:nowrap}.expand-button:hover{background:#5a9fef}.judges-toggle-btn{background:#f3e5f5;color:#6a1b9a;border:1px solid #CE93D8;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:background .2s;white-space:nowrap}.judges-toggle-btn:hover{background:#e1bee7}.judges-panel{background:#f3e5f5;border:1px solid #CE93D8;border-radius:8px;padding:15px;margin-bottom:15px}.judges-panel-title{font-size:16px;font-weight:700;color:#6a1b9a;margin-bottom:10px}.judge-group{margin-bottom:10px}.judge-group:last-child{margin-bottom:0}.judge-group-title{font-weight:600;font-size:13px;color:#8e24aa;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid #E1BEE7}.judge-item{display:flex;gap:15px;padding:4px 10px;font-size:13px;background:#f8f0fc;border-radius:4px;margin-bottom:2px}.judge-name{color:#2c3e50;flex:1}.judge-category,.judge-city{color:#7e8ba3;font-size:12px}.block-section{margin-bottom:15px}.block-header{background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600;font-size:14px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.categories{display:flex;flex-direction:column;gap:12px;margin-top:15px}.category-card{background:#f8fbfd;border-radius:8px;padding:15px;border:1px solid #E0E0E0}.category-header{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#e3f2fd;border-radius:6px}.category-info{flex:1}.category-name{font-size:16px;font-weight:600;color:#2c3e50;display:block;margin-bottom:5px}.category-details{font-size:14px;color:#5a9fef}.expand-button-small{background:transparent;border:2px solid #86B6F6;color:#86b6f6;padding:6px 12px;border-radius:4px;cursor:pointer;font-weight:700;font-size:16px;min-width:40px;transition:all .2s}.expand-button-small:hover{background:#86b6f6;color:#fff}.participants{margin-top:12px;padding-top:12px;border-top:1px solid #E0E0E0}.participants-list{display:flex;flex-direction:column;gap:8px}.participant-row{display:grid;grid-template-columns:40px 1fr auto;gap:15px;align-items:center;padding:10px;background:#fff;border-radius:6px;border:1px solid #E0E0E0}.participant-row .lp{font-size:12px;color:#7e8ba3;text-align:center;font-weight:600}.participant-row .club{font-size:12px;color:#7e8ba3;text-align:right}.dancer-link{background:transparent;border:none;padding:0;cursor:pointer;text-align:left;color:#1976d2;text-decoration:underline;transition:color .2s;font-size:14px;display:inline}.dancer-link:hover{color:#0d47a1}.dancer-link .last-name{font-weight:600}.dancer-link .first-name{font-weight:400}.dancer-link.partner{font-size:13px;opacity:.9}.couple-row{grid-template-columns:40px 1fr auto}.couple-names{display:flex;flex-direction:column;gap:4px}@media(max-width:768px){.tournament-search{padding:10px}.search-form{padding:15px}.radio-group{flex-direction:column;gap:10px}.button-group{flex-direction:column}.tournament-header{flex-direction:column;gap:15px}.tournament-actions{flex-direction:row;width:100%}.expand-button{flex:1}.tournament-meta{flex-direction:column;gap:8px}.category-header{flex-direction:column;align-items:flex-start;gap:10px}.expand-button-small{align-self:flex-start}.participant-row{grid-template-columns:1fr;gap:8px}.participant-row .lp{display:none}.participant-row .club{text-align:left}}.dancer-search-fab{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:1000}.dancer-search-fab-btn{width:52px;height:52px;border-radius:50%;border:none;background:#86b6f6;color:#fff;cursor:pointer;box-shadow:0 4px 12px #00000040;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}.dancer-search-fab-btn:hover{background:#5a9fef;transform:scale(1.05)}.dancer-search-fab-btn svg{width:24px;height:24px}.dancer-search-panel{display:flex;align-items:center;background:#fff;border-radius:8px;box-shadow:0 4px 16px #0003;padding:8px 12px;gap:8px;animation:dancer-search-slide-up .2s ease-out}@keyframes dancer-search-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dancer-search-input{border:1px solid #ddd;border-radius:4px;padding:8px 12px;font-size:14px;width:200px;outline:none;transition:border-color .2s}.dancer-search-input:focus{border-color:#86b6f6}.dancer-search-nav{display:flex;align-items:center;gap:4px}.dancer-search-info{font-size:13px;color:#555;min-width:36px;text-align:center;font-weight:600}.dancer-search-nav-btn{background:transparent;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:4px 8px;font-size:12px;color:#555;transition:background .2s,color .2s}.dancer-search-nav-btn:hover:not(:disabled){background:#86b6f6;color:#fff;border-color:#86b6f6}.dancer-search-nav-btn:disabled{opacity:.4;cursor:not-allowed}.category-card.dancer-search-match{border:2px solid #FFA726;background:#fff8e1}.category-card.dancer-search-current{border:2px solid #FF7043;background:#fff3e0;box-shadow:0 0 8px #ff70434d}.participant-row.participant-match{background:#fff9c4;border-color:#ffa726}@media(max-width:768px){.dancer-search-fab{bottom:16px;right:16px}.dancer-search-fab-btn{width:46px;height:46px}.dancer-search-fab-btn svg{width:20px;height:20px}.dancer-search-input{width:150px;font-size:13px}.dancer-search-panel{padding:6px 8px;gap:6px}}.school-search{width:100%;max-width:1200px;margin:0 auto;padding:20px;box-sizing:border-box}.school-search h2{text-align:center;color:#333;margin-bottom:20px}.school-search .search-container{position:relative;max-width:600px;margin:0 auto 20px}.school-search .search-box{position:relative;display:flex;gap:10px}.school-search .search-box input{flex:1;padding:12px 40px 12px 16px;border:2px solid #ddd;border-radius:8px;font-size:16px;transition:border-color .2s}.school-search .search-box input:focus{outline:none;border-color:#86b6f6}.school-search .clear-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:4px 8px;border-radius:50%}.school-search .clear-btn:hover{color:#333;background:#f0f0f0}.school-search .loading-spinner{position:absolute;right:40px;top:50%;transform:translateY(-50%);font-size:20px}.school-search .suggestions-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:2px solid #86B6F6;border-radius:8px;margin-top:4px;max-height:400px;overflow-y:auto;box-shadow:0 4px 12px #00000026;z-index:1000}.school-search .suggestions-header{padding:12px 16px;background:#e3f2fd;font-weight:600;color:#2c3e50;border-bottom:1px solid #86B6F6;position:sticky;top:0}.school-search .suggestion-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;transition:background-color .2s;border-bottom:1px solid #f0f0f0}.school-search .suggestion-item:hover{background-color:#f8fbfd}.school-search .suggestion-name{font-size:15px;font-weight:500;color:#2c3e50}.school-search .suggestion-counts{display:flex;gap:8px}.school-search .suggestion-counts .count{padding:3px 8px;border-radius:12px;font-size:12px;font-weight:600}.school-search .suggestion-counts .count.pairs{background:#e3f2fd;color:#1976d2}.school-search .suggestion-counts .count.soloists{background:#f3e5f5;color:#7b1fa2}.school-search .hint{text-align:center;padding:10px;color:#999;font-size:14px;background:#f5f5f5;border-radius:6px;margin-top:10px}.school-search .error{background:#ffebee;color:#c62828;padding:12px 16px;border-radius:8px;margin-bottom:15px;text-align:center}.school-search .error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;margin:10px 0;background:#ffebee;border-radius:12px;border:1px solid #FFCDD2}.school-search .error-container .error-icon{font-size:36px;margin-bottom:10px}.school-search .error-container .error-text{color:#c62828;font-size:16px;font-weight:600;margin-bottom:6px;text-align:center}.school-search .error-container .error-hint{color:#e57373;font-size:13px}.school-search .loading-message{text-align:center;padding:40px 20px;color:#666}.school-search .loading-message .spinner{font-size:48px;margin-bottom:15px}.school-header{background:linear-gradient(135deg,#e3f2fd,#f3e5f5);padding:16px 20px;border-radius:12px;margin-bottom:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.school-header h3{margin:0;font-size:20px;color:#2c3e50}.school-summary-row{display:flex;align-items:center;gap:8px;margin-left:auto}.school-summary-row .favorite-star{background:none;border:none;cursor:pointer;font-size:28px;color:#ccc;transition:color .2s,transform .2s;padding:4px 8px;line-height:1;flex-shrink:0}.school-summary-row .favorite-star:hover{transform:scale(1.2);color:#f0c040}.school-summary-row .favorite-star.active{color:#f0c040}.school-summary{display:flex;gap:8px}.summary-badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.summary-badge.pairs-badge{background:#e3f2fd;color:#1976d2}.summary-badge.soloists-badge{background:#f3e5f5;color:#7b1fa2}.school-section{margin-bottom:24px}.school-section h4{margin:0 0 12px;font-size:17px;color:#2c3e50;padding:10px 16px;background:#f5f5f5;border-radius:8px}.school-members-list{display:flex;flex-direction:column;gap:8px}.school-member-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fafbfc;border:1px solid #E8EDF2;border-radius:8px;flex-wrap:wrap;gap:8px}.school-member-names{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.school-member-names .dancer-link{background:transparent;border:none;padding:0;cursor:pointer;text-align:left;color:#1976d2;text-decoration:underline;font-size:14px;font-weight:500}.school-member-names .dancer-link:hover{color:#0d47a1}.pair-separator{color:#999;font-size:13px}.school-member-stats{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stat-badge{padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600}.stat-badge.registrations{background:#e8f5e9;color:#2e7d32}.stat-badge.results{background:#fff9c4;color:#f57c00}.last-start{font-size:11px;color:#7e8ba3}.no-results{text-align:center;color:#999;padding:40px;font-style:italic}@media(max-width:768px){.school-member-row,.school-header{flex-direction:column;align-items:flex-start}.school-summary-row{margin-left:0;width:100%}}.activity-logs{max-width:1200px;margin:0 auto;padding:20px}.activity-logs h2{text-align:center;color:#333;margin-bottom:30px}.active-sessions-panel{background:#fff;border-radius:8px;padding:16px 20px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.active-sessions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.active-sessions-header h3{margin:0;font-size:16px;color:#333}.refresh-sessions-btn{background:none;border:1px solid #ddd;border-radius:6px;padding:4px 10px;font-size:16px;cursor:pointer;color:#555;transition:background .2s,transform .2s}.refresh-sessions-btn:hover:not(:disabled){background:#f0f0f0;transform:rotate(90deg)}.refresh-sessions-btn:disabled{opacity:.5;cursor:not-allowed}.sessions-loading,.sessions-empty{font-size:13px;color:#888;padding:4px 0}.sessions-list{display:flex;flex-direction:column;gap:6px}.session-item{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#f0fdf4;border-radius:6px;font-size:13px}.session-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;flex-shrink:0}.session-username{font-weight:600;color:#333}.session-ip{color:#666;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:12px}.session-time{color:#888;font-size:12px;margin-left:auto}.activity-logs .search-form{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.activity-logs .filter-group{margin-bottom:15px}.activity-logs .filter-group label{display:block;font-weight:600;margin-bottom:5px;color:#555}.activity-logs .filter-group select{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:16px;background-color:#fff}.activity-logs .filter-group select:focus{outline:none;border-color:#86b6f6}.activity-logs .button-group{display:flex;gap:10px;margin-top:20px}.activity-logs .button-group button{flex:1;padding:10px 20px;border:none;border-radius:4px;font-size:16px;cursor:pointer;transition:background-color .2s;font-weight:600}.activity-logs .button-group button:first-child{background-color:#86b6f6;color:#fff}.activity-logs .button-group button:first-child:hover:not(:disabled){background-color:#5a9fef}.activity-logs .button-group button:last-child{background-color:#f44336;color:#fff}.activity-logs .button-group button:last-child:hover:not(:disabled){background-color:#da190b}.activity-logs .button-group button:disabled{opacity:.6;cursor:not-allowed}.activity-logs .results-summary{text-align:center;padding:15px;background:#e3f2fd;border-radius:4px;margin-bottom:20px;font-size:16px}.activity-logs .error{background-color:#ffebee;color:#c62828;padding:15px;border-radius:4px;margin-bottom:20px;text-align:center}.activity-logs .error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;margin:10px 0;background:#ffebee;border-radius:12px;border:1px solid #FFCDD2}.activity-logs .error-container .error-icon{font-size:36px;margin-bottom:10px}.activity-logs .error-container .error-text{color:#c62828;font-size:16px;font-weight:600;margin-bottom:6px;text-align:center}.activity-logs .error-container .error-hint{color:#e57373;font-size:13px}.activity-logs-empty{text-align:center;padding:40px 20px;color:#666;font-size:15px}.activity-logs-content{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.log-lines{max-height:70vh;overflow-y:auto;padding:8px 0;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:13px;line-height:1.6}.log-line{padding:3px 16px;white-space:pre-wrap;word-break:break-all;border-left:3px solid transparent;transition:background .15s}.log-line:hover{background:#f8f9fa}.log-line-login{border-left-color:#22c55e;background:#f0fdf4}.log-line-logout{border-left-color:#3b82f6;background:#eff6ff}.log-line-search{border-left-color:#a855f7;background:#faf5ff}.log-line-error{border-left-color:#ef4444;background:#fef2f2}.log-line-separator{border-left-color:#86b6f6;background:#e3f2fd;font-weight:600;color:#333;padding:6px 16px;margin-top:4px}@media(max-width:600px){.activity-logs{padding:10px}.session-item{flex-wrap:wrap;gap:4px 10px}.session-time{margin-left:18px}.log-lines{font-size:11px}.log-line{padding:3px 10px}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;padding:40px;box-shadow:0 12px 40px #667eea33;width:100%;max-width:420px}.login-header{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:14px}.login-icon{height:90px;width:auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:600;color:#555}.form-group input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background:#f5f5f5}.login-error{padding:10px 14px;background:#fff0f0;color:#c33;border-radius:8px;font-size:14px;border:1px solid #ffcccc}.login-button{padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 16px #667eea66}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-button.guest-button{background:linear-gradient(135deg,#78909c,#546e7a)}.login-button.guest-button:hover:not(:disabled){box-shadow:0 4px 16px #78909c66}.login-divider{display:flex;align-items:center;gap:12px;margin:-4px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e0e0e0}.login-divider span{font-size:13px;color:#999}@media(max-width:480px){.login-card{padding:24px}.login-icon{height:64px}}.login-version{position:fixed;bottom:8px;right:12px;font-size:13px;color:#888;pointer-events:none}html{overflow-x:clip}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#e0e7ff,#ead5f5);min-height:100vh;overflow-x:clip}.App{max-width:1400px;margin:0 auto;padding:0 20px 20px}.App-header{position:sticky;top:0;z-index:100;text-align:center;color:#fff;margin-bottom:50px;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#8ca0f5eb;border-radius:0 0 12px 12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.header-brand{display:flex;align-items:center;gap:12px}.brand-title-wrapper{display:flex;align-items:center;position:relative}.brand-title-part{font-size:2.6rem;font-weight:700;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.25);letter-spacing:2px;position:relative;z-index:1}.app-icon{height:120px;width:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35));margin:0 -12px -50px;position:relative;z-index:2}.brand-web-icon{position:absolute;right:-12px;bottom:-32px;height:45px;width:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.3));z-index:3;pointer-events:none}.menu-toggle-icon{display:none;font-size:26px;color:#fff;-webkit-user-select:none;user-select:none;line-height:1}.nav-menu{display:flex;gap:12px;align-items:center}@media(max-width:1024px){.App-header{flex-wrap:wrap;padding:12px 16px;gap:0;margin-bottom:30px}.header-brand{width:100%;justify-content:center;cursor:pointer;position:relative}.menu-toggle-icon{display:block;position:absolute;right:0}.brand-title-part{font-size:1.6rem}.app-icon{height:80px;margin-bottom:-34px}.brand-web-icon{height:36px;bottom:-22px;right:-6px}.nav-menu{max-height:0;opacity:0;overflow:hidden;flex-direction:column;width:100%;gap:8px;pointer-events:none;transition:max-height .3s ease,opacity .3s ease,margin .3s ease}.nav-menu.nav-open{max-height:600px;opacity:1;pointer-events:auto;margin-top:12px}.nav-menu.nav-open>:first-child{margin-top:28px}.nav-button{width:100%;font-size:14px;padding:10px 16px}.nav-button.logout-button{width:100%;height:auto;border-radius:8px;padding:10px 16px;margin-left:0;margin-top:8px;font-size:14px;background:#ff505040;border-color:#ff787866}.nav-button.logout-button svg{width:18px;height:18px}.logout-label{display:inline}}.nav-button{padding:10px 20px;font-size:15px;background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;transition:all .3s;font-weight:500}.nav-button:hover{background:#ffffff4d;transform:translateY(-2px)}.nav-button.active{background:#fff;color:#667eea;border-color:#fff;font-weight:600}.nav-button.logout-button{display:flex;align-items:center;justify-content:center;gap:8px;width:40px;height:40px;padding:0;margin-left:12px;background:#ff505040;border:2px solid rgba(255,120,120,.4);border-radius:50%;color:#fff;cursor:pointer;transition:all .3s;flex-shrink:0}.nav-button.logout-button svg{width:20px;height:20px;flex-shrink:0}.nav-button.logout-button:hover{background:#ff505080;transform:translateY(-2px);box-shadow:0 2px 8px #ff50504d}.logout-label{display:none}.content{display:flex;flex-direction:column;gap:40px}.upcoming-section,.archive-section{background:#fff;border-radius:12px;padding:30px;box-shadow:0 8px 32px #0000001a}.upcoming-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.upcoming-header h2{margin:0}.group-checkbox{display:flex;align-items:center;gap:6px;font-size:14px;color:#5a6b7f;cursor:pointer;-webkit-user-select:none;user-select:none}.group-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#667eea;cursor:pointer}.tournament-okreg-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;color:#667eea;background:#eef0ff}.archive-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:20px}.filters{display:flex;gap:12px}.search-input,.year-select{padding:10px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .3s}.search-input:focus,.year-select:focus{outline:none;border-color:#667eea}.tournament-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.tournament-card{padding:20px;border:2px solid #f0f0f0;border-radius:10px;transition:all .3s;cursor:pointer}.tournament-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #667eea4d;border-color:#667eea}.tournament-card h3{margin:0 0 12px;color:#333;font-size:1.2rem}.tournament-card p{margin:8px 0;color:#666;font-size:.95rem}.tournament-number{font-weight:600;color:#667eea;margin-top:12px}.category-count{font-weight:600;color:#764ba2}.showing-info{text-align:center;margin-top:20px;color:#666;font-style:italic}.okreg-group{margin-bottom:24px}.okreg-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #E0E0E0}.okreg-badge{display:inline-block;padding:6px 16px;border-radius:20px;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);text-transform:capitalize}.okreg-count{font-size:13px;color:#7e8ba3}.upcoming-card{border-left:4px solid #667eea;background:linear-gradient(135deg,#fafbff,#f5f0ff)}.upcoming-card:hover{border-left-color:#764ba2}.upcoming-card.pending{border-left-color:silver;background:linear-gradient(135deg,#f8f8f8,#f0f0f0);opacity:.7;cursor:default}.upcoming-card.pending:hover{border-left-color:silver;transform:none;box-shadow:none}.upcoming-card.pending .tournament-date{color:#999}.pending-badge{font-size:.75rem;color:#999;font-style:italic}.upcoming-card.clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.upcoming-card.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea40}.upcoming-card .tournament-date{color:#667eea;font-weight:600}.upcoming-card .tournament-organizer{font-size:.85rem;color:#888;font-style:italic}.tournament-footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid #f0f0f0}.view-toggles{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.tournament-table-wrapper{overflow-x:auto}.tournament-table{width:100%;border-collapse:collapse;font-size:.9rem}.tournament-table th,.tournament-table td{padding:8px 12px;text-align:left;border-bottom:1px solid #e8e8e8;white-space:nowrap}.tournament-table th{background:#f5f6fa;font-weight:600;color:#5a6b7f;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0}.tournament-table td:nth-child(2){white-space:normal;min-width:200px}.tournament-table tbody tr:hover{background:#f8f9ff}.tournament-table tbody tr.row-pending{opacity:.6}.tournament-table tbody tr.row-pending:hover{background:#fafafa}.table-name-link{background:none;border:none;padding:0;color:#667eea;font:inherit;cursor:pointer;text-align:left}.table-name-link:hover{color:#764ba2;text-decoration:underline}.table-name-pending{color:#999}.loading,.error{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.5rem;color:#fff}.error{color:#f44;background:#fff;padding:20px;border-radius:12px;margin:20px}@media(max-width:1024px){.archive-header{flex-direction:column;align-items:stretch}.filters{flex-direction:column}.tournament-list{grid-template-columns:1fr}}.nav-button.refresh-button{display:flex;align-items:center;justify-content:center;gap:6px;background:#28a74540;border:2px solid rgba(40,167,69,.4)}.nav-button.refresh-button:hover:not(:disabled){background:#28a74573;box-shadow:0 2px 8px #28a7454d}.nav-button.refresh-button:disabled{opacity:.7;cursor:wait}.nav-button.refresh-button.refreshing{background:#ffc1074d;border-color:#ffc10780}.refresh-icon{width:18px;height:18px;flex-shrink:0}.refresh-icon.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.refresh-label{display:none}.nav-button.info-button{display:flex;align-items:center;justify-content:center;gap:6px;width:40px;height:40px;padding:0;background:#17a2b840;border:2px solid rgba(23,162,184,.4);border-radius:50%;flex-shrink:0}.nav-button.info-button:hover{background:#17a2b873;box-shadow:0 2px 8px #17a2b84d}.nav-button.info-button svg{width:20px;height:20px;flex-shrink:0}.info-label{display:none}.refresh-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#000000d9;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:200;box-shadow:0 4px 16px #0000004d;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.info-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:300;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.info-modal{background:#fff;border-radius:16px;padding:36px 40px;max-width:400px;width:90%;text-align:center;position:relative;box-shadow:0 16px 48px #0003}.info-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:28px;color:#999;cursor:pointer;line-height:1}.info-close:hover{color:#333}.info-icon{height:80px;width:auto;margin-bottom:12px}.info-modal h2{margin:0 0 8px;color:#333;font-size:1.6rem}.info-description{color:#888;margin:0 0 20px;font-size:.95rem}.info-details{text-align:left;margin:0 auto 20px;max-width:280px}.info-details p{margin:8px 0;color:#555;font-size:.95rem}.info-details a{color:#667eea;text-decoration:none}.info-details a:hover{text-decoration:underline}.info-copyright{color:#aaa;font-size:.82rem;margin:0;padding-top:16px;border-top:1px solid #eee}.info-version{color:#999;font-size:.85rem;margin:4px 0 8px}.expiry-warning-modal{text-align:center}.expiry-warning-icon{font-size:48px;margin-bottom:8px}.expiry-warning-text{font-size:1.1rem;color:#333}.expiry-warning-subtext{font-size:.9rem;color:#888;margin-top:4px}@media(max-width:1024px){.nav-button.refresh-button{width:100%;height:auto;border-radius:8px;padding:10px 16px}.refresh-label{display:inline}.nav-button.info-button{width:100%;height:auto;border-radius:8px;padding:10px 16px}.info-label{display:inline}}.refresh-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:400;animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.refresh-overlay-content{display:flex;flex-direction:column;align-items:center;gap:12px;background:#fff;padding:32px 36px;border-radius:16px;box-shadow:0 16px 48px #00000040;max-width:520px;width:90vw}.refresh-spinner{width:52px;height:52px;border:5px solid #e0e7ff;border-top:5px solid #667eea;border-radius:50%;animation:spin .9s linear infinite}.refresh-overlay-text{margin:0;font-size:1.15rem;font-weight:600;color:#333}.refresh-overlay-subtext{margin:0;font-size:.9rem;color:#888}.refresh-cancel-button{margin-top:16px;padding:8px 24px;border:1px solid #e53935;background:transparent;color:#e53935;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s}.refresh-cancel-button:hover{background:#e53935;color:#fff}.refresh-overlay-elapsed{margin:4px 0 0;font-size:.85rem;color:#666;font-variant-numeric:tabular-nums}.refresh-live-log{margin-top:12px;max-height:220px;width:100%;overflow-y:auto;background:#1a1a2e;border-radius:8px;padding:10px 12px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.72rem;line-height:1.5;text-align:left;color:#ccc}.refresh-log-line{white-space:pre-wrap;word-break:break-all}.refresh-log-line.log-success{color:#66bb6a}.refresh-log-line.log-error{color:#ef5350}.info-refresh-date{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#e8f5e9,#e0f2f1);padding:10px 16px;border-radius:8px;margin-bottom:16px;font-size:.88rem;color:#2e7d32}.info-refresh-date svg{width:18px;height:18px;flex-shrink:0;color:#2e7d32}.info-refresh-date strong{color:#1b5e20}@media(max-width:480px){.App{padding:0 8px 12px}.App-header{padding:8px 12px;margin-bottom:16px}.brand-title-part{font-size:1.3rem}.app-icon{height:60px;margin-bottom:-26px}.brand-web-icon{height:28px;bottom:-16px;right:-4px}.upcoming-section,.archive-section{padding:14px;border-radius:8px}.upcoming-header h2,.archive-header h2{font-size:1.1rem}.tournament-card{padding:12px}.tournament-card h3{font-size:1rem}.tournament-card p{font-size:.85rem}.content{gap:16px}.search-input,.year-select{padding:8px 12px;font-size:16px}.info-modal{padding:24px 20px}}
