:root{--navy:#10213a;--navy-dark:#0a192b;--blue:#176ec7;--blue-hover:#1157a1;--cyan:#37c4d5;--ink:#192b44;--muted:#687990;--pale:#f4f7fb;--white:#fff;--line:#e3eaf2;--shadow:0 10px 26px rgba(21,49,86,.055);--radius:14px;--train:#1467c9;--match:#d07622;--other:#7b61b6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--pale);color:var(--ink);font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.52;font-size:14px}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,select,input,textarea{outline-offset:3px}.shell{width:min(1440px,calc(100% - 68px));margin-inline:auto}.skip-link{position:absolute;top:-80px;left:10px;padding:10px 16px;background:white;z-index:100}.skip-link:focus{top:8px}.site-header{background:var(--navy-dark);color:white;border-bottom:3px solid var(--cyan)}.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:14px;color:white}.brand:hover{text-decoration:none}.brand-mark{width:35px;height:35px;display:grid;grid-template-columns:repeat(2,1fr);gap:4px;transform:rotate(-9deg)}.brand-mark span{background:#fff;border-radius:2px}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){background:var(--cyan)}.brand-wordmark{display:flex;flex-direction:column;line-height:1.1;letter-spacing:.12em}.brand-wordmark strong{font-size:16px;font-weight:850}.brand-wordmark small{color:#8fa6c4;letter-spacing:.135em;font-size:9px;margin-top:5px;font-weight:700}.public-label{color:#e5eefb;font-size:12px;font-weight:700;display:flex;gap:8px;align-items:center}.public-label-muted{font-weight:400;color:#95a7c0}.live-dot{width:7px;height:7px;border-radius:50%;background:#37d6a4;box-shadow:0 0 0 5px rgba(55,214,164,.12)}.header-links{display:flex;align-items:center;flex-wrap:wrap;gap:15px}.header-links a,.header-logout{color:#e8f0fc;font-size:12px;font-weight:650}.header-links a:hover,.header-logout:hover{color:white}.header-logout{border:1px solid #51647d;border-radius:7px;background:transparent;cursor:pointer;padding:8px 10px}.inline-form{display:inline}.main-content{min-height:65vh;padding-top:38px;padding-bottom:52px}.page-intro{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:29px}.eyebrow{color:#4b82b7;font-size:10px;font-weight:850;letter-spacing:.18em;margin:0 0 12px}.page-intro h1,.subhead h1,.admin-page-heading h1{font-size:clamp(26px,3vw,42px);letter-spacing:-.045em;line-height:1.17;margin:0 0 10px;font-weight:810}.accent-dot{color:var(--cyan)}.lead{color:var(--muted);font-size:14px;max-width:720px;margin:0}.date-card{min-width:236px;background:white;border:1px solid var(--line);border-radius:var(--radius);padding:16px 22px;box-shadow:var(--shadow);display:flex;flex-direction:column}.date-card span{color:#7e91a7;font-size:9px;letter-spacing:.13em;font-weight:850}.date-card strong{font-weight:800;font-size:16px;margin-top:4px}.date-card small{color:var(--muted);font-size:12px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;background:white;border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px;margin-bottom:15px;box-shadow:var(--shadow);flex-wrap:wrap}.week-controls{display:flex;align-items:center;gap:7px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:8px;padding:10px 16px;min-height:39px;font-weight:720;font-size:12px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .14s,transform .14s}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--blue);color:white}.btn-primary:hover{background:var(--blue-hover);color:white}.btn-quiet{background:#f0f5fa;color:#2b4563;border-color:#e5ecf5}.btn-quiet:hover{background:#e4ecf5}.btn-warning{background:#fff3e5;color:#965012;border-color:#f4d9b5}.btn-danger{background:#b72a35;color:white}.btn-danger:hover{background:#911c27;color:white}.btn-wide{width:100%}.btn-small{padding:7px 11px;min-height:31px}.btn:disabled{opacity:.5;cursor:not-allowed}.arrow-btn{font-size:19px;padding:7px 14px}.filter-form{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.filter-label{font-weight:730;font-size:11px;color:#5a6f88;margin-left:6px}.filter-form select{min-height:39px;max-width:230px;min-width:142px;border:1px solid #dce5ef;border-radius:8px;padding:8px 9px;background:white;color:var(--ink);font-size:12px}.kpi-row{display:grid;grid-template-columns:1fr 1fr 1fr 1.8fr;gap:13px;margin:0 0 28px}.kpi{background:white;border:1px solid var(--line);border-radius:11px;padding:14px 18px;display:flex;flex-direction:column;gap:3px}.kpi>span{color:#7d8ea4;font-size:10px;font-weight:740}.kpi strong{font-weight:830;font-size:25px;letter-spacing:-.04em;line-height:1.1}.legend-card{justify-content:center;gap:10px}.legend-card>span{letter-spacing:.08em;font-size:9px}.legend{display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#61738a;font-size:10px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.legend-dot.training{background:var(--train)}.legend-dot.match{background:var(--match)}.legend-dot.other{background:var(--other)}.gym-section{margin:0 0 30px;border:1px solid #dfe8f2;background:white;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.gym-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 19px;border-bottom:1px solid var(--line)}.gym-heading .eyebrow{margin:0 0 4px;color:#7795b7;font-size:9px}.gym-heading h2{font-size:20px;margin:0;letter-spacing:-.03em;font-weight:800}.gym-address{margin:4px 0 0;color:var(--muted);font-size:11px}.gym-counter{min-width:102px;text-align:right;display:flex;flex-direction:column}.gym-counter strong{font-size:27px;line-height:1.1;font-weight:830}.gym-counter small{color:#7d8da2;font-size:10px}.week-scroll{overflow-x:auto;overscroll-behavior-x:contain}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(149px,1fr));min-width:1043px}.day-column{border-right:1px solid var(--line);min-height:218px}.day-column:last-child{border-right:0}.day-head{border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;padding:13px 11px 11px;background:#fafcfe}.day-head>span{font-size:10px;color:#657a93;font-weight:840;letter-spacing:.09em}.day-head strong{font-size:18px;color:#314a66;font-weight:830}.day-head .day-month{font-weight:600;color:#98a7b8;font-size:10px}.is-today .day-head{background:#e5f5fb}.is-today .day-head>span,.is-today .day-head strong{color:#116a93}.day-body{padding:10px 8px;display:flex;flex-direction:column;gap:8px}.event{border-radius:7px;padding:10px 10px 11px;background:#edf5ff;border-left:3px solid var(--train);min-width:0}.event-competition{background:#fff3e7;border-color:var(--match)}.event-autre{background:#f1edfa;border-color:var(--other)}.event-time{font-size:11px;font-weight:820;color:#18487f;letter-spacing:.01em}.event-time span{opacity:.5}.event-competition .event-time{color:#98500e}.event-autre .event-time{color:#654598}.event-kind{display:inline-block;color:#4e7aab;font-size:8px;font-weight:780;text-transform:uppercase;letter-spacing:.065em;margin-top:5px}.event-competition .event-kind{color:#a36a2a}.event-autre .event-kind{color:#8060a8}.event h3{font-size:11px;line-height:1.31;font-weight:820;overflow-wrap:anywhere;margin:5px 0 3px}.event-club{font-size:10px;line-height:1.4;color:#62758e;font-weight:600;overflow-wrap:anywhere;margin:0}.event-note{margin:7px 0 0;border-top:1px solid #d8e6f6;padding-top:6px;color:#647c93;font-size:10px;overflow-wrap:anywhere;white-space:pre-wrap}.day-empty{color:#a7b4c4;font-size:10px;text-align:center;padding:20px 4px}.end-note{text-align:center;color:#8190a1;font-size:11px;margin-top:22px}.site-footer{padding:20px 0 35px;border-top:1px solid #e1e8ef;color:#8290a2;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px}.empty-setup{padding:60px 26px;text-align:center;border:1px dashed #c7d5e3;border-radius:14px;background:white;color:var(--muted)}.empty-setup h2{color:var(--ink);font-size:22px;margin:0 0 9px}.empty-setup p{margin:0 0 16px}.empty-icon{font-size:39px;color:var(--cyan)}.admin-intro{margin-bottom:25px}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.stat-card{padding:23px 25px;background:white;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:7px}.stat-card span{font-size:12px;color:var(--muted)}.stat-card strong{font-size:36px;line-height:1.1;font-weight:840}.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.action-card{background:white;border:1px solid var(--line);border-radius:13px;padding:27px;box-shadow:var(--shadow);display:block}.action-card:hover{text-decoration:none;border-color:#9bc6ea}.action-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:#e8f4ff;color:#216daf;font-size:25px}.action-card h2{font-size:17px;color:var(--ink);margin:20px 0 7px}.action-card p{color:var(--muted);font-size:12px;margin:0 0 20px}.action-link{font-weight:780;font-size:12px}.admin-page-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.table-wrap{overflow-x:auto;background:white;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.data-table{width:100%;border-collapse:collapse;min-width:780px}.data-table th{text-align:left;color:#72849a;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:#f7fafe;padding:16px 18px;white-space:nowrap}.data-table td{padding:16px 18px;border-top:1px solid #edf0f5;color:#3f5066;vertical-align:middle;font-size:12px}.data-table td strong{color:var(--ink);font-size:12px}.data-table tbody tr:hover{background:#fafcff}.row-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-weight:750;font-size:11px}.danger-link{color:#b4434e}.nowrap{white-space:nowrap}.muted-small{font-size:10px;color:#8796a9}.micro-label{font-size:9px;font-weight:800;color:#176abf;text-transform:uppercase}.kind-competition{color:#ae712b}.kind-autre{color:#7860af}.subhead{margin-bottom:24px}.subhead .back-link{margin-bottom:24px}.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:30px}.form-panel{max-width:860px}.narrow-panel{max-width:570px}.form-panel h2{font-size:18px}.form-stack{display:flex;flex-direction:column;gap:19px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:12px;font-weight:770;color:#30425a}.field label em{font-style:normal;color:#c4474f}.field input,.field select,.field textarea{border:1px solid #d3deea;border-radius:8px;width:100%;padding:11px 12px;background:white;color:var(--ink);min-height:43px;outline-color:var(--blue)}.field textarea{resize:vertical}.field small{font-size:10px;color:#8694a8}.form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:22px;margin-top:5px;flex-wrap:wrap}.form-section-title{padding-top:10px;border-top:1px solid var(--line);margin:4px 0 -5px!important;font-size:15px!important}.alert{padding:13px 16px;border-radius:9px;font-size:12px;margin-bottom:20px;border:1px solid}.alert ul{margin:8px 0 0;padding-left:22px}.alert p{margin-bottom:0}.alert.error{background:#fff2f2;border-color:#f4caca;color:#96313b}.alert.warning{background:#fff8ee;border-color:#f1dbbd;color:#915510}.alert.success{background:#f0faf5;border-color:#c8eada;color:#246c4c}.checkbox-line{background:#fff8ee;border:1px solid #e9c99d;padding:12px 14px;border-radius:8px;font-size:12px}.checkbox-line input{vertical-align:middle;accent-color:var(--blue)}.auth-container{display:flex;justify-content:center;padding:36px 0 65px}.auth-panel{width:min(480px,100%);padding:38px}.auth-avatar{width:44px;height:44px;display:grid;place-items:center;background:#eaf4ff;color:var(--blue);font-weight:850;font-size:26px;border-radius:12px;margin-bottom:20px}.danger-avatar{background:#ffeeef;color:#b12d35}.auth-panel h1{font-size:31px;letter-spacing:-.035em;margin:0 0 10px}.panel-description{color:var(--muted);font-size:13px;margin:0 0 22px}.auth-panel .back-link{margin-top:25px}.back-link{display:inline-block;color:#587393;font-size:12px;font-weight:720}.auth-panel .form-actions{margin-top:22px}.mini-heading{font-size:14px;margin:28px 0 12px}.date-chip-list{display:flex;flex-wrap:wrap;gap:7px}.date-chip{font-size:10px;background:#f0f6ff;border:1px solid #dee9f8;border-radius:20px;padding:6px 10px;color:#326391}.date-chip.cancelled{background:#fff0f0;border-color:#efcccc;text-decoration:line-through;color:#aa6262}.exception-list{border:1px solid var(--line);border-radius:9px}.exception-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.exception-item:last-child{border-bottom:0}.align-end{justify-content:flex-end;align-items:flex-start}.align-end .btn{margin-top:25px}@media(max-width:1080px){.kpi-row{grid-template-columns:repeat(3,1fr)}.legend-card{grid-column:1/-1}.toolbar{align-items:stretch}.filter-form{flex:1}.header-links{gap:9px}.header-links a{font-size:11px}.shell{width:min(1440px,calc(100% - 38px))}}@media(max-width:690px){.shell{width:calc(100% - 26px)}.header-inner{min-height:67px}.brand-wordmark strong{font-size:13px}.brand-wordmark small{font-size:8px}.public-label-muted{display:none}.main-content{padding-top:23px}.page-intro{align-items:flex-start;flex-direction:column;gap:15px}.date-card{min-width:0;width:100%}.toolbar,.filter-form{flex-direction:column;align-items:stretch}.filter-form select{max-width:none}.filter-label{margin-left:0}.kpi-row{grid-template-columns:repeat(3,1fr);gap:7px}.kpi{padding:12px 9px}.kpi>span{font-size:9px}.kpi strong{font-size:21px}.legend-card{grid-column:1/-1}.gym-heading{padding:17px 14px}.gym-heading h2{font-size:17px}.gym-counter strong{font-size:21px}.gym-counter{min-width:70px}.site-footer{align-items:flex-start;flex-direction:column}.admin-stats,.action-grid{grid-template-columns:1fr}.admin-page-heading{align-items:flex-start;flex-direction:column}.form-two,.form-three{grid-template-columns:1fr}.panel{padding:18px}.header-links{justify-content:flex-end}.header-links a:nth-child(1),.header-links a:nth-child(2){display:none}.subhead h1{font-size:26px}.auth-container{padding-top:10px}.form-actions{justify-content:stretch}.form-actions .btn{flex:1}}@media print{body{background:white}.site-header{background:white;color:black;border-bottom:2px solid #ccc}.brand,.brand-wordmark small{color:black}.brand-mark span{background:#333!important}.header-links,.public-label,.toolbar,.site-footer,.end-note,.skip-link{display:none}.shell{width:100%}.main-content{padding:10px 0}.gym-section{box-shadow:none;break-inside:avoid}.week-scroll{overflow:visible}.week-grid{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}.day-body{padding:4px}.day-column{min-height:100px}.day-head{padding:5px}.day-head strong{font-size:12px}.event{padding:4px}.event-time,.event h3,.event-club{font-size:8px}.event-kind{font-size:6px}.kpi-row,.date-card{display:none}}
