:root{--color-primary:#004a7c;--color-primary-dark:#003257;--color-bg:#f5f7f9;--color-surface:#fff;--color-text:#16212d;--color-muted:#5f6c7c;--color-border:#dde3e9;--color-danger:#c0392b;--color-success:#2e8b57;--color-warning:#d9a441;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-primary:#5a9bd4;--color-primary-dark:#7db2e0;--color-bg:#10161c;--color-surface:#1a232c;--color-text:#eef2f5;--color-muted:#93a2b2;--color-border:#2b3846;--color-danger:#e2685a;--color-success:#4fb37f;--color-warning:#dba24c}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);margin:0}button,input{font:inherit}a{color:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;position:sticky;top:0}.topbar-row{justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.brand-logo{height:48px;display:block}.brand-logo-dark{display:none}.brand-logo-dark-text,.brand-logo-dark-crest{width:100%;height:100%;position:absolute;inset:0}.brand-logo-dark-text{object-fit:contain;object-position:left center}.brand-logo-dark-crest{object-fit:contain;object-position:left center;clip-path:inset(0 38.79%)}@media (prefers-color-scheme:dark){.brand-logo-light{display:none}.brand-logo-dark{width:181px;display:block;position:relative}}.topbar-actions{align-items:center;gap:12px;display:flex}.link-button{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px;font-size:.8rem;font-weight:600}.team-switcher{background:var(--color-bg);border-top:1px solid var(--color-border);gap:8px;padding:10px 12px;display:flex}.team-tab{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-primary);border-radius:var(--radius);cursor:pointer;flex:1;padding:8px 10px;font-weight:600}.team-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.content{flex:1;width:100%;max-width:720px;margin:0 auto;padding:16px 16px 80px}.bottom-nav{background:var(--color-surface);border-top:1px solid var(--color-border);padding:8px 0;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{text-align:center;color:var(--color-muted);flex:1;padding:6px 2px;font-size:.72rem;font-weight:600;line-height:1.2;text-decoration:none}.bottom-nav a.active{color:var(--color-primary)}.roster-subtabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:16px;display:flex}.roster-subtab{color:var(--color-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-right:16px;padding:8px 4px;font-size:.9rem;font-weight:600;text-decoration:none}.roster-subtab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.empty-state{text-align:center;color:var(--color-muted);padding:40px 10px}.empty-state .ic{margin-bottom:8px;font-size:1.8rem}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header h2{margin:0;font-size:1.2rem}.button,button{background:var(--color-primary);color:#fff;border-radius:var(--radius);cursor:pointer;text-align:center;border:none;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-block}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}button.danger{background:var(--color-danger);width:100%;margin-top:20px}.hint{color:var(--color-muted)}.error{color:var(--color-danger);font-size:.9rem}.player-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.player-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.player-number{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex}.player-name{flex:1;font-weight:600}.player-age{color:var(--color-muted);font-size:.85rem}.player-number.small{width:24px;height:24px;margin-right:8px;font-size:.75rem}.player-avatar{background:var(--color-border);color:var(--color-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex;overflow:hidden}.player-avatar img{object-fit:cover;width:100%;height:100%}.player-avatar-sm{width:36px;height:36px;font-size:.8rem}.player-avatar-lg{width:60px;height:60px;font-size:1.3rem}.team-logo-preview{background:var(--color-border);border-radius:10px;justify-content:center;align-items:center;width:60px;height:60px;font-size:1.5rem;display:flex;overflow:hidden}.team-logo-preview img{object-fit:cover;width:100%;height:100%}.scoreboard{grid-template-columns:1fr auto 1fr;place-items:center;gap:8px 14px;margin:8px 0 16px;display:grid}.scoreboard-team{justify-content:center;align-items:center;width:100%;min-width:0;display:flex}.scoreboard-name{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.85rem;font-weight:700;overflow:hidden}.scoreboard-center{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;padding:0 4px;display:flex}.scoreboard-date{color:var(--color-muted);white-space:nowrap;font-size:.72rem;font-weight:600}.scoreboard-score{letter-spacing:-.02em;white-space:nowrap;font-size:1.8rem;font-weight:800}.scoreboard-status{color:var(--color-muted);background:var(--color-border);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700}.scoreboard-status.result-victoire{background:var(--color-success);color:#fff}.scoreboard-status.result-defaite{background:var(--color-danger);color:#fff}.scoreboard-status.result-nul{background:var(--color-muted);color:#fff}.scoreboard-venues{flex-direction:column;align-items:center;gap:8px;margin:0 0 48px;display:flex}.scoreboard-venue{text-align:center;margin:0}.venue-pill{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:999px;align-items:center;padding:6px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.team-logo-big{background:0 0;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:76px;height:76px;font-size:2.2rem;display:flex;overflow:hidden}.team-logo-big img{object-fit:contain;width:100%;height:100%}.player-detail-heading{align-items:center;gap:12px;display:flex}.player-detail-heading h2{margin:0}.avatar-edit-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;position:relative}.avatar-edit-badge{background:var(--color-primary);border:2px solid var(--color-surface);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;display:flex;position:absolute;bottom:-2px;right:-2px}.photo-picker{flex-direction:column;align-items:center;gap:6px;margin-bottom:8px;display:flex}.training-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.training-card-main{flex-direction:column;gap:2px;display:flex}.training-date{text-transform:capitalize;font-weight:600}.training-heure,.training-lieu{color:var(--color-muted);font-size:.85rem}.training-icon{margin-right:4px}.training-meta{gap:14px;margin-bottom:48px;display:flex}.match-meta{margin-bottom:48px}.training-meta-item{align-items:center;display:inline-flex}.training-summary{gap:6px;display:flex}.badge{color:#fff;border-radius:11px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.75rem;font-weight:700;display:flex}.badge-presente{background:var(--color-success)}.badge-excusee{background:var(--color-warning)}.badge-absente{background:var(--color-danger)}.section-title{margin:24px 0 10px;font-size:1rem}.attendance-summary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:16px;padding:14px 18px;display:flex}.taux-presence{color:var(--color-primary);font-size:1.8rem;font-weight:800}.attendance-breakdown{color:var(--color-muted);flex-direction:column;gap:2px;font-size:.85rem;display:flex}.attendance-list{flex-direction:column;gap:10px;margin:0 0 24px;padding:0;list-style:none;display:flex}.attendance-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 14px}.attendance-name{align-items:center;gap:8px;margin-bottom:10px;font-weight:600;display:flex}.attendance-options{align-items:flex-end;gap:8px;display:flex}.attendance-fullname{display:block}.attendance-licence{color:var(--color-muted);font-size:.75rem;font-weight:500;display:block}.add-player-row{gap:8px;margin-bottom:14px;display:flex}.add-player-row select{border:1px solid var(--color-border);border-radius:var(--radius);flex:1;padding:10px 12px;font-size:.95rem}.remove-btn{background:var(--color-danger);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:1.1rem;font-weight:700;line-height:1;display:flex}.jersey-badge{flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-right:8px;display:inline-flex;position:relative}.jersey-badge-icon{width:100%;height:100%;fill:var(--color-primary)}.jersey-badge-number{color:#fff;font-size:.9rem;font-weight:800;line-height:1;position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)}.status-btn{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);flex:1;padding:10px 4px;font-size:.8rem;font-weight:600}.status-btn.status-presente.active{background:var(--color-success);color:#fff;border-color:var(--color-success)}.status-btn.status-excusee.active{background:var(--color-warning);color:#fff;border-color:var(--color-warning)}.status-btn.status-absente.active{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.bilan-row{gap:10px;margin-bottom:8px;display:flex}.bilan-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 8px;display:flex}.bilan-value{font-size:1.6rem;font-weight:800}.bilan-tile.bilan-v .bilan-value{color:var(--color-success)}.bilan-tile.bilan-d .bilan-value{color:var(--color-danger)}.bilan-tile.bilan-n .bilan-value{color:var(--color-muted)}.bilan-label{color:var(--color-muted);font-size:.75rem}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 4px 4px}.stats-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.stats-field{color:var(--color-muted);flex-direction:column;align-items:center;gap:3px;font-size:.7rem;font-weight:600;display:flex}.stats-field input{text-align:center;border:1px solid var(--color-border);border-radius:6px;width:100%;padding:6px 2px;font-size:.9rem}.stats-table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;font-size:.85rem;overflow:hidden}.stats-table th,.stats-table td{text-align:center;border-bottom:1px solid var(--color-border);padding:10px 6px}.stats-table th{color:var(--color-muted);font-size:.75rem;font-weight:600}.stats-table td:first-child,.stats-table th:first-child{text-align:left;font-weight:600}.stats-table tr:last-child td{border-bottom:none}.player-form,.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:20px;display:flex}.player-form label,.login-card label{color:var(--color-muted);margin-top:10px;font-size:.85rem;font-weight:600}.player-form input,.player-form select,.login-card input{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:10px 12px;font-size:1rem}.result-badge{color:#fff;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:700}.result-badge.result-victoire{background:var(--color-success)}.result-badge.result-defaite{background:var(--color-danger)}.result-badge.result-nul{background:var(--color-muted)}.checkbox-row{color:var(--color-text);align-items:center;gap:8px;margin-top:8px;font-size:.95rem;font-weight:400;display:flex}.checkbox-row input{width:18px;height:18px}.form-actions{gap:10px;margin-top:20px;display:flex}.form-actions button{flex:1}.player-detail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:0;padding:16px 20px}.player-detail dt{color:var(--color-muted);margin-top:12px;font-size:.8rem}.player-detail dd{margin:2px 0 0;font-size:1.05rem}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{width:100%;max-width:360px}.login-card .login-logo{align-self:center;width:96px;height:96px}.login-card .subtitle{color:var(--color-muted);text-align:center;margin:4px 0 10px}.login-card button{margin-top:20px}@media (width>=640px){.content{padding:24px}.bottom-nav{display:none}}
