*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--secondary:#64748b;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--bg:#f1f5f9;--surface:#fff;--bg-card:#fff;--text:#1e293b;--text-light:#64748b;--border:#e2e8f0;--sidebar-width:260px;--header-height:60px}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}.app-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--text);color:#fff;height:100vh;transition:width .3s;position:fixed;overflow-y:auto}.sidebar.closed{width:60px}.sidebar-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:1rem;display:flex}.sidebar-header h2{white-space:nowrap;font-size:1.1rem;overflow:hidden}.sidebar.closed .sidebar-header h2{display:none}.toggle-btn,.menu-toggle{color:#fff;cursor:pointer;background:0 0;border:none;padding:.5rem;font-size:1.2rem}.sidebar-nav{padding:1rem 0}.nav-link{color:#fffc;align-items:center;padding:.75rem 1rem;text-decoration:none;transition:all .2s;display:flex}.nav-link:hover,.nav-link.active{color:#fff;background:#ffffff1a}.nav-icon{margin-right:.75rem;font-size:1.2rem}.sidebar.closed .nav-label{display:none}.main-content{margin-left:var(--sidebar-width);flex:1;transition:margin-left .3s}.top-header{height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:0 1.5rem;display:flex;position:sticky;top:0}.header-right{align-items:center;gap:1rem;display:flex}.user-info{font-weight:500}.user-role-badge{background:var(--primary);color:#fff;border-radius:20px;padding:.25rem .75rem;font-size:.75rem}.logout-btn{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem}.content-wrapper{padding:1.5rem}.page{background:var(--surface);border-radius:8px;padding:1.5rem}.page-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.page-header h1{font-size:1.5rem}.dashboard-header{margin-bottom:2rem}.dashboard-header h1{font-size:1.75rem}.user-role{color:var(--text-light)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.stat-card h3{margin-bottom:.5rem}.stat-number{color:var(--primary);font-size:2rem;font-weight:700}.data-table{border-collapse:collapse;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem 1rem}.data-table th{background:var(--bg);font-weight:600}.data-table tr:hover{background:var(--bg)}.data-table tr.top3{background:#fef9c3;font-weight:500}.data-table tr.top3:first-child td:first-child{color:#b45309;font-size:1.1rem}.badge{border-radius:20px;padding:.25rem .75rem;font-size:.75rem;font-weight:500;display:inline-block}.badge-approved,.badge-paid{color:#166534;background:#dcfce7}.badge-pending,.badge-scheduled{color:#92400e;background:#fef3c7}.badge-rejected,.badge-cancelled{color:#991b1b;background:#fee2e2}.badge-provisional{color:#3730a3;background:#e0e7ff}.badge-confirmed,.badge-registration_open{color:#166534;background:#dcfce7}.badge-registration_closed{color:#92400e;background:#fef3c7}.badge-in_progress,.badge-draft{color:#3730a3;background:#e0e7ff}.badge-completed{color:#374151;background:#f3f4f6}.badge-pending{color:#991b1b;background:#fee2e2}.badge-inactive{color:#374151;background:#e5e7eb}.rejection-banner{color:#7f1d1d;background:#fee2e2;border:1px solid #fecaca;border-left:4px solid #dc2626;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.rejection-banner strong{margin-bottom:.25rem;display:block}.rejection-banner p{margin:.25rem 0}.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:6px;padding:.5rem 1rem;font-size:.875rem;text-decoration:none;display:inline-block}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.btn-sm{cursor:pointer;border:none;border-radius:4px;margin-right:.5rem;padding:.25rem .5rem;font-size:.75rem}.modal-overlay{z-index:1000;background:#0f172ab3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;width:90%;max-width:500px;padding:24px;box-shadow:0 10px 30px #0000004d}.form-actions{gap:8px;margin-top:16px;display:flex}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.form-card{background:var(--bg);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.25rem;font-size:.875rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);border-radius:6px;width:100%;padding:.5rem .75rem;font-size:.875rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #2563eb33}.form-row{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.checkbox-group{background:var(--bg);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem;padding:1rem;display:grid}.checkbox-group label{background:var(--surface);cursor:pointer;border-radius:4px;align-items:center;gap:.5rem;padding:.5rem;transition:background .2s;display:flex}.checkbox-group label:hover{background:var(--bg-secondary)}.checkbox-group label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.tournament-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.tournament-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.tournament-card h3{margin-bottom:.5rem}.tournament-status{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.tournament-status .status-select{padding:.3rem .5rem}.tournament-actions{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.tournament-btn{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;padding:.5rem .875rem;font-size:.8125rem;line-height:1.2;text-decoration:none;display:inline-flex}.tournament-btn.btn-primary{background:var(--primary);color:#fff}.tournament-btn.btn-primary:hover{background:var(--primary-dark)}.tournament-btn.btn-secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}.tournament-btn.btn-danger{background:var(--danger);color:#fff}.tournament-location{color:var(--text-light);margin-bottom:1rem}.tournament-info{margin-bottom:1rem}.tournament-info p{margin-bottom:.25rem;font-size:.875rem}.tournament-detail{flex-direction:column;gap:1.5rem;display:flex}.detail-section{border:1px solid var(--border);border-radius:8px;padding:1rem}.detail-section h2{margin-bottom:1rem;font-size:1.1rem}.info-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;display:grid}.tags{flex-wrap:wrap;gap:.5rem;display:flex}.tag{background:var(--bg);border-radius:20px;padding:.25rem .75rem;font-size:.75rem}.profile-card{background:var(--bg);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.profile-card h2{margin-bottom:1rem}.register-form{align-items:center;gap:1rem;display:flex}.register-form select{border:1px solid var(--border);border-radius:6px;flex:1;padding:.5rem}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-container{background:var(--surface);border-radius:12px;width:100%;max-width:450px;padding:2rem;box-shadow:0 4px 6px #0000001a}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h1{margin-bottom:.5rem;font-size:1.75rem}.auth-header p{color:var(--text-light)}.auth-form .form-group{margin-bottom:1rem}.auth-form .btn-primary{width:100%;padding:.75rem}.auth-links{text-align:center;justify-content:center;gap:.5rem;margin-top:1.5rem;display:flex}.auth-links a{color:var(--primary);text-decoration:none}.auth-links a:hover{text-decoration:underline}.error-message{color:#991b1b;background:#fee2e2;border-radius:6px;margin-bottom:1rem;padding:.75rem}.public-page{background:var(--bg);min-height:100vh}.public-header{background:var(--text);color:#fff;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.public-header a{color:#fff;text-decoration:none}.public-content{max-width:1400px;margin:0 auto;padding:2rem}.public-content .tournament-grid{grid-template-columns:1fr;gap:1.5rem}.public-content .tournament-card{box-sizing:border-box;width:100%}.results-filters{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin:.5rem 0 1.25rem;padding:1rem;display:flex}.results-filters div{flex-direction:column;gap:.25rem;display:flex}.results-filters label{color:var(--text-light);font-size:.8rem;font-weight:600}.results-filters select{border:1px solid var(--border);background:#fff;border-radius:6px;min-width:180px;padding:.45rem .75rem;font-size:.9rem}.hint{color:var(--text-light);font-size:.8rem;font-weight:400}.public-nav{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.nav-btn{color:#fff;white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff40;border-radius:8px;align-items:center;gap:.35rem;padding:.5rem .9rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.nav-btn:hover{color:#fff;background:#ffffff38}.nav-btn-primary{background:var(--primary);border-color:var(--primary)}.nav-btn-primary:hover{background:var(--primary-dark)}.nav-link-plain{font-size:.85rem;color:#ffffffe6!important;text-decoration:underline!important}.auth-actions{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-top:1.25rem;display:grid}.action-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:10px;align-items:center;gap:.75rem;padding:.85rem 1rem;text-decoration:none;transition:all .2s;display:flex}.action-btn:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 10px #00000014}.action-icon{border:1px solid var(--border);background:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.6rem;display:flex}.action-text{flex-direction:column;line-height:1.3;display:flex}.action-text strong{font-size:.9rem}.action-text small{color:var(--text-light);font-size:.75rem}.auth-register-link{color:var(--primary);font-weight:600;text-decoration:none}.auth-register-link:hover{text-decoration:underline}.records-filters-actions{align-items:center;gap:.5rem;flex-direction:row!important;display:flex!important}.records-grid{grid-template-columns:1fr;gap:1.25rem;margin-top:1rem;display:grid}.record-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem;box-shadow:0 1px 3px #0000000a}.record-card-header{margin-bottom:.75rem}.record-card-header h3{margin-bottom:.4rem;font-size:1.05rem}.record-card-tags{flex-wrap:wrap;gap:.35rem;display:flex}.record-card-tags .tag{background:var(--bg);border-radius:20px;padding:.2rem .6rem;font-size:.72rem}.tag-sex{color:#3730a3;background:#e0e7ff!important}.tag-class{color:#166534;font-weight:600;background:#dcfce7!important}.record-row{transition:background .2s}.record-row a{color:var(--primary);font-weight:600}.record-1 td,.record-1{background:#fef9c3!important}.record-1 .record-pos{color:#b45309;font-size:1.05rem}.record-2 td,.record-2{background:#f3f4f6!important}.record-3 td,.record-3{background:#fde9d4!important}.record-best td,.record-best{background:#dcfce7!important}.record-pos{white-space:nowrap;font-weight:700}.record-more{margin-top:.5rem}.best-card{border:1px solid var(--warning);border-left:5px solid var(--warning);box-shadow:0 2px 8px #f59e0b1f}.best-card h2{color:#b45309}.pb-row td{background:#dcfce7}.error-page{text-align:center;padding:4rem 2rem}.error-page h1{color:var(--danger);font-size:4rem}.loading{min-height:100vh;color:var(--text-light);justify-content:center;align-items:center;font-size:1.25rem;display:flex}.recent-section{margin-top:2rem}.recent-section h2{margin-bottom:1rem}.status-select{border:1px solid var(--border);background:var(--bg);border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.combo-preview{text-align:center;background:#e0e7ff;border:1px solid #93a5c2;border-radius:6px;margin-bottom:1rem;padding:1rem}.combo-preview p{color:var(--text-light);margin-top:.25rem;font-size:.875rem}@media (width<=768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.form-row,.info-grid{grid-template-columns:1fr}}
