:root{background:#07111f;color:#eef5ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{align-items:center;background:radial-gradient(circle at 12% 10%,rgb(44 107 168 / 30%),transparent 34%),linear-gradient(135deg,#07111f,#0b1f35 58%,#102b48);display:grid;min-height:100vh;padding:24px}.login-panel{background:#0a182aeb;border:1px solid rgb(149 178 211 / 22%);border-radius:8px;box-shadow:0 24px 70px #00000059;margin:0 auto;max-width:470px;padding:32px;width:100%}.brand-mark{align-items:center;background:linear-gradient(135deg,#48a8ff,#1e6bff);border-radius:8px;color:#fff;display:grid;font-weight:900;height:42px;justify-content:center;width:42px}.eyebrow{color:#7fb6ff;font-size:.78rem;font-weight:900;letter-spacing:.04em;margin:0 0 10px;text-transform:uppercase}h1,h2,p{margin-top:0}.login-panel h1{font-size:clamp(2.4rem,8vw,4.3rem);line-height:.95;margin:14px 0 16px}.login-intro{color:#b7c6d8;line-height:1.6;margin-bottom:24px}form{display:grid;gap:16px}label{color:#dceaff;display:grid;font-weight:800;gap:8px}input,select,textarea{background:#0f2138;border:1px solid #294765;border-radius:8px;color:#fff;outline:none;padding:13px 14px}input:focus,select:focus,textarea:focus{border-color:#5fb4ff;box-shadow:0 0 0 3px #5fb4ff2e}button[type=submit],.logout-button,.primary-button{background:#2f8cff;border:0;border-radius:8px;color:#fff;font-weight:900;padding:13px 16px}button:disabled{cursor:wait;opacity:.65}.error{background:#ff52701f;border:1px solid rgb(255 82 112 / 35%);border-radius:8px;color:#ffb8c6;font-weight:800;margin:0;padding:12px}.success{background:#50d2961f;border:1px solid rgb(80 210 150 / 35%);border-radius:8px;color:#98f0c6;font-weight:800;margin:0;padding:12px}.field-error{color:#ffb8c6;display:block;font-size:.78rem;font-weight:800;margin-top:6px}.ghost-button,.danger-button{border-radius:8px;font-weight:900;padding:12px 14px}.ghost-button{background:transparent;border:1px solid rgb(149 178 211 / 22%);color:#dceaff}.danger-button{background:#ff52701f;border:1px solid rgb(255 82 112 / 35%);color:#ffb8c6}.app-layout{background:#081321;display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:#07101c;border-right:1px solid rgb(149 178 211 / 14%);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;padding:22px;position:sticky;top:0}.sidebar-brand{align-items:center;display:flex;gap:12px;margin-bottom:30px}.sidebar-brand strong{display:block;font-size:1.1rem}.sidebar-brand span,.user-card small,.muted{color:#8fa4bc}nav{display:grid;gap:8px}.nav-item{background:transparent;border:1px solid transparent;border-radius:8px;color:#b7c6d8;font-weight:800;padding:12px 13px;text-align:left}.nav-item:hover,.nav-item.active{background:#10233a;border-color:#7fb6ff3d;color:#fff}.sidebar-footer{display:grid;gap:12px}.user-card{background:#0d1d31;border:1px solid rgb(149 178 211 / 16%);border-radius:8px;display:grid;gap:5px;padding:14px}.user-card span{color:#7fb6ff;font-size:.74rem;font-weight:900}.content-shell{min-width:0;padding:34px clamp(20px,4vw,48px)}.page-header{align-items:center;display:flex;gap:18px;justify-content:space-between;margin-bottom:26px}.page-header h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1;margin:0}.season-pill,.type-badge{background:#2f8cff24;border:1px solid rgb(127 182 255 / 24%);border-radius:999px;color:#b9dcff;font-weight:900;padding:9px 13px;white-space:nowrap}.dashboard-grid,.metric-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.panel,.metric-card,.wide-card,.event-card,.announcement-card{background:#0d1d31;border:1px solid rgb(149 178 211 / 16%);border-radius:8px;box-shadow:0 16px 40px #0000002e}.panel{padding:22px}.metric-card,.wide-card,.event-card,.announcement-card{padding:20px}.metric-card{display:grid;gap:8px}.metric-card span{color:#87a6c8;font-size:.78rem;font-weight:900;text-transform:uppercase}.metric-card strong{color:#fff;font-size:1.8rem;line-height:1.1}.metric-card p,.wide-card p,.event-card p,.announcement-card p{color:#aebed1;line-height:1.55;margin-bottom:0}.wide-card{grid-column:1 / -1}.wide-card h2,.section-title h2,.event-card h2,.announcement-card h2{margin-bottom:10px}.list-stack{display:grid;gap:14px}.event-card{align-items:center;display:flex;gap:18px;justify-content:space-between}.event-card.active,.callup-card.active{border-color:#7fb6ff73;box-shadow:0 0 0 3px #2f8cff1a}.callup-card{align-items:stretch}.callup-main{flex:1 1 auto;min-width:0}.callup-actions{align-content:flex-start;display:flex;flex:0 0 220px;flex-wrap:wrap;gap:10px;justify-content:flex-end}.announcements-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) minmax(330px,.82fr)}.announcements-list-panel,.announcement-detail{min-height:460px}.announcement-list{display:grid;gap:12px}.announcement-row{background:#10233a;border:1px solid rgb(149 178 211 / 12%);border-radius:8px;color:#dceaff;display:grid;gap:8px;padding:15px;text-align:left}.announcement-row.active,.announcement-row:hover{border-color:#7fb6ff73;box-shadow:0 0 0 3px #2f8cff1a}.announcement-row.urgent,.announcement-preview.urgent,.announcement-detail.urgent{border-color:#ff52707a}.announcement-row.change,.announcement-preview.change,.announcement-detail.change{border-color:#ffbe5f75}.announcement-row strong{color:#fff;font-size:1.05rem}.announcement-row span:not(.type-badge),.announcement-row small{color:#aebed1;line-height:1.45}.announcement-badge.urgent{background:#ff52702e;border-color:#ff52706b;color:#ffb8c6}.announcement-badge.change{background:#ffbe5f29;border-color:#ffbe5f61;color:#ffd7a1}.announcement-badge.event{background:#50d29624;border-color:#50d29647;color:#98f0c6}.announcement-content,.announcement-preview{background:#10233a;border:1px solid rgb(149 178 211 / 12%);border-radius:8px;color:#dceaff;line-height:1.65;margin-bottom:14px;padding:16px;white-space:pre-wrap}.announcement-preview{display:grid;gap:8px;margin-bottom:0}.announcement-preview span{color:#7fb6ff;font-size:.78rem;font-weight:900;text-transform:uppercase}.announcement-preview strong{color:#fff}.announcement-preview p{color:#aebed1;margin-bottom:0}.compact-metrics{gap:10px;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));margin:14px 0}.compact-metrics .metric-card{padding:13px}.compact-metrics .metric-card strong{font-size:1.35rem}.event-meta{color:#aebed1;display:grid;gap:8px;min-width:230px}.type-badge{display:inline-flex;font-size:.75rem;margin-bottom:12px;padding:7px 10px}.type-badge.match{background:#50d29624;border-color:#50d29647;color:#98f0c6}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:760px;width:100%}th,td{border-bottom:1px solid rgb(149 178 211 / 12%);padding:14px 12px;text-align:left}th{color:#7fb6ff;font-size:.78rem;text-transform:uppercase}td{color:#dceaff}.settings-panel{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.players-layout{display:grid;gap:16px;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.attendance-layout{display:grid;gap:16px;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr)}.stats-layout{display:grid;gap:16px}.stats-hero{align-items:center;display:flex;gap:16px;justify-content:space-between}.stats-hero h2{margin-bottom:8px}.stats-section{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.stats-table-wrap{margin-top:8px}.stats-table td{vertical-align:middle}.result-pill{background:#95b2d31f;border:1px solid rgb(149 178 211 / 18%);border-radius:999px;color:#dceaff;display:inline-flex;font-size:.75rem;font-weight:900;padding:6px 10px;white-space:nowrap}.result-pill.victoire{background:#50d29624;border-color:#50d29647;color:#98f0c6}.result-pill.défaite{background:#ff527029;border-color:#ff527057;color:#ffb8c6}.result-pill.nul{background:#ffbe5f24;border-color:#ffbe5f4d;color:#ffd7a1}.attendance-side,.attendance-main{min-height:420px}.attendance-table-wrap{overflow-x:auto;margin-top:16px}.attendance-table td{vertical-align:top}.attendance-table td strong,.attendance-table td small{display:block}.attendance-table td small{color:#8fa4bc;margin-top:5px}.attendance-table select,.attendance-table textarea{min-width:170px;width:100%}.players-main,.player-detail{min-height:420px}.panel-toolbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.panel-toolbar h2{margin-bottom:0}.empty-state{border:1px dashed rgb(149 178 211 / 22%);border-radius:8px;color:#aebed1;padding:24px}.empty-state h3{color:#fff;margin-top:0}.player-list{display:grid;gap:10px}.player-row{align-items:center;background:#10233a;border:1px solid rgb(149 178 211 / 12%);border-radius:8px;color:#dceaff;display:grid;gap:14px;grid-template-columns:62px minmax(0,1fr) auto;padding:14px;text-align:left}.player-row.active,.player-row:hover{border-color:#7fb6ff73;box-shadow:0 0 0 3px #2f8cff1a}.player-row strong{display:block}.player-row small{color:#8fa4bc}.event-row{align-items:center;display:flex;gap:18px;justify-content:flex-start;width:100%}.event-row-type{align-items:center;box-sizing:border-box;flex:0 0 132px;justify-content:center;margin-bottom:0;max-width:132px}.event-row-content{display:grid;flex:1 1 0;gap:5px;min-width:0}.event-row-content strong,.event-row-content small{overflow-wrap:anywhere}.event-row-status{color:#dceaff;flex:0 0 auto;font-weight:900;margin-left:auto;min-width:max-content;white-space:nowrap}.jersey{align-items:center;background:#2f8cff29;border:1px solid rgb(127 182 255 / 24%);border-radius:8px;color:#b9dcff;display:grid;font-weight:900;height:42px;justify-content:center;width:48px}.jersey.large{font-size:1.25rem;height:56px;width:64px}.detail-head{align-items:center;display:flex;gap:14px;margin-bottom:20px}.detail-head h2{margin-bottom:0}.detail-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.detail-grid div,.notes-box{background:#10233a;border:1px solid rgb(149 178 211 / 12%);border-radius:8px;padding:13px}dt,.notes-box span{color:#7fb6ff;font-size:.74rem;font-weight:900;text-transform:uppercase}dd{color:#fff;margin:6px 0 0;overflow-wrap:anywhere}.notes-box{margin-top:14px}.notes-box p{color:#dceaff;margin-bottom:0}.invitation-box{background:#10233a;border:1px solid rgb(149 178 211 / 12%);border-radius:8px;display:grid;gap:14px;margin-top:14px;padding:14px}.invitation-toolbar{margin-bottom:0}.invitation-toolbar h3{color:#fff;margin-bottom:0}.invitation-form{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.invitation-link-box{display:grid;gap:8px}.invitation-link-box span{color:#7fb6ff;font-size:.74rem;font-weight:900;text-transform:uppercase}.invitation-link-box small{color:#8fa4bc}.invitation-list{display:grid;gap:10px}.invitation-row{align-items:center;background:#0d1d31;border:1px solid rgb(149 178 211 / 12%);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px}.invitation-row strong,.invitation-row small{display:block}.invitation-row small{color:#8fa4bc;margin-top:4px}.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.inline-actions{justify-content:flex-end;margin-top:0}.modal-backdrop{align-items:center;background:#020810b8;display:grid;top:0;right:0;bottom:0;left:0;justify-items:center;padding:24px;position:fixed;z-index:20}.player-modal{background:#0d1d31;border:1px solid rgb(149 178 211 / 20%);border-radius:8px;box-shadow:0 24px 80px #00000073;margin:0 auto;max-height:min(860px,92vh);max-width:920px;overflow:auto;padding:22px;width:100%}.announcement-modal{background:#0d1d31;border:1px solid rgb(149 178 211 / 20%);border-radius:8px;box-shadow:0 24px 80px #00000073;display:grid;grid-template-rows:auto minmax(0,1fr);max-height:90vh;max-width:960px;overflow:hidden;width:min(960px,calc(100vw - 48px))}.announcement-modal-header{align-items:center;border-bottom:1px solid rgb(149 178 211 / 12%);display:flex;gap:16px;justify-content:space-between;padding:20px 22px}.announcement-modal-header h2{margin-bottom:0}.announcement-form{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;overflow:hidden}.announcement-modal-body{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;overflow-x:hidden;overflow-y:auto;padding:18px 22px}.announcement-modal-body>*{min-width:0}.announcement-modal-footer{background:#0d1d31;border-top:1px solid rgb(149 178 211 / 12%);display:flex;gap:10px;justify-content:flex-end;padding:14px 22px}.player-form{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-wide,.form-actions{grid-column:1 / -1}.form-actions{display:flex;gap:10px;justify-content:flex-end}@media(max-width:860px){.app-layout{grid-template-columns:1fr}.sidebar{min-height:auto;position:static}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header,.event-card{align-items:stretch;flex-direction:column}.players-layout,.attendance-layout{grid-template-columns:1fr}.stats-hero{align-items:flex-start;flex-direction:column}.stats-section,.announcements-layout{grid-template-columns:1fr}.callup-card{align-items:stretch;flex-direction:column}.callup-actions{flex-basis:auto;justify-content:flex-start}.season-pill{width:fit-content}}@media(max-width:520px){nav{grid-template-columns:1fr}.content-shell{padding:24px 16px}.login-panel{padding:24px}.modal-backdrop{padding:12px}.announcement-modal{max-height:92vh;width:min(100%,calc(100vw - 24px))}.announcement-modal-header,.announcement-modal-footer{align-items:stretch;flex-direction:column}.announcement-modal-body{grid-template-columns:1fr;padding:16px}.player-form,.invitation-form,.detail-grid,.player-row{grid-template-columns:1fr}.event-row{align-items:flex-start;flex-direction:column;gap:10px}.event-row-type{flex-basis:auto;max-width:100%;width:fit-content}.event-row-status{align-self:flex-start;margin-left:0}.form-actions{justify-content:stretch}}*{box-sizing:border-box}html,body,#root{max-width:100%;overflow-x:hidden}input,select,textarea,button{max-width:100%}.player-detail,.player-details,.player-detail-panel,.detail-panel,.details-panel,.sidebar-detail,.card,.panel{min-width:0}.invitation,.invitations,.invitation-card,.invitation-panel,.invitation-form,.invitations-form{min-width:0;max-width:100%}.invitation-form,.invitations-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.invitation-form input,.invitation-form select,.invitations-form input,.invitations-form select{width:100%;min-width:0}.invitation-card,.invitation-item,.invitation-row{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.invitation-card a,.invitation-item a,.invitation-row a{overflow-wrap:anywhere;word-break:break-word}@media(max-width:1200px){.invitation-form,.invitations-form{grid-template-columns:1fr}}
