:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#f1f6ff;background:#061329;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 82% 3%,#0c3976 0,transparent 33rem),#061329}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #79b7ff;outline-offset:3px}.app{max-width:1180px;margin:auto;padding:0 30px 46px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #375783}.brand{display:flex;gap:12px;align-items:center;font-size:15px;font-weight:700;letter-spacing:.1em}.brand strong{color:#85bdff}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border:2px solid #85bdff;transform:rotate(45deg);color:#85bdff;font-size:22px;line-height:1}.brand-mark::first-letter{transform:rotate(-45deg)}.badge{border:1px solid #385c90;border-radius:30px;padding:8px 14px;color:#d7e7ff;font-size:13px}.intro{display:flex;justify-content:space-between;align-items:end;gap:40px;padding:47px 0 32px}.eyebrow,.timer-label{color:#85bdff;letter-spacing:.16em;font-size:12px;font-weight:800}.intro h1{font-size:clamp(36px,5vw,60px);letter-spacing:-.05em;line-height:1.05;margin:9px 0 0}.intro>p{max-width:310px;color:#c9daf4;line-height:1.5;margin:0 0 5px}.layout{display:grid;grid-template-columns:minmax(300px,.86fr) minmax(390px,1.14fr);gap:18px;align-items:start}.panel{background:#102b55;border:1px solid #355987;border-radius:22px;padding:25px;box-shadow:0 20px 40px #0002}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:25px}.panel h2{font-size:22px;letter-spacing:-.03em;margin:0}.panel h2 span{font-size:14px;vertical-align:middle;background:#1c467c;color:#fff;padding:4px 8px;border-radius:50%;margin-left:4px}.panel-head>span{color:#c7d9f2;font-size:14px}.add-form label{font-size:14px;color:#e6f0ff;font-weight:600}.add-row{display:flex;gap:7px;margin-top:9px}.add-row input,.add-row select,.setup-actions input{background:#091d3d;color:white;border:1px solid #53719c;border-radius:11px;min-height:47px;padding:0 11px}.add-row input{min-width:0;flex:1}.add-row input::placeholder{color:#abc4e7}.add-row select{width:93px;font-size:14px}.add-button{width:47px;border:0;background:#85bdff;color:#08224e;border-radius:11px;font-size:28px;line-height:1}.players-list{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:7px;max-height:280px;overflow:auto}.players-list li{display:flex;align-items:center;gap:11px;background:#173c74;border:1px solid #355f9d;border-radius:10px;padding:7px 9px;min-height:44px}.player-initial{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:7px;background:#244c84;color:#f4f9ff;font-weight:750;font-size:13px}.player-name{flex:1;overflow-wrap:anywhere}.player-gender{color:#bfd3f1;font-size:13px}.remove{border:0;background:transparent;color:#e4f0ff;font-size:23px;line-height:1;padding:2px 6px}.empty{margin:24px 0;color:#aec8e9;font-size:14px}.setup-actions{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #365a89;margin-top:22px;padding-top:21px;gap:12px}.setup-actions label{font-size:15px;font-weight:650}.setup-actions label span{display:block;color:#bad0ed;font-size:13px;font-weight:400;margin-top:2px}.setup-actions input{width:72px;text-align:center}.button{display:block;width:100%;border-radius:12px;padding:15px 20px;font-weight:800;border:1px solid transparent;font-size:16px}.outline{margin-top:20px;background:transparent;color:#fff;border-color:#74b4ff}.outline:hover:not(:disabled){background:#1d5094}.primary{background:#85bdff;color:#08244f;margin-top:18px}.primary:hover{background:#dbedff}.message{min-height:19px;margin:13px 0 0;color:#ffd1c0;font-size:14px}.before-program{text-align:center;display:flex;min-height:420px;align-items:center;justify-content:center;flex-direction:column;color:#bcd3f3;font-size:15px}.court-outline{width:200px;height:123px;border:2px solid #6999d6;position:relative;transform:perspective(300px) rotateX(18deg);opacity:.85}.court-outline:before,.court-outline:after,.court-outline span:before,.court-outline span:after{content:"";position:absolute;background:#6999d6}.court-outline:before{height:2px;width:100%;top:50%;left:0}.court-outline:after{height:100%;width:2px;left:50%;top:0}.court-outline span:before{height:100%;width:2px;left:20%;top:0}.court-outline span:after{height:100%;width:2px;right:20%;top:0}.before-program p{margin:30px 0 0}.round-navigation{display:flex;justify-content:space-between;align-items:center;margin:-6px 0 17px;color:#85bdff;font-weight:750}.round-navigation>div{display:flex;gap:7px}.nav-button{width:36px;height:36px;background:#214b85;border:1px solid #4b76ae;border-radius:9px;color:white;font-size:26px;line-height:1}.games{display:grid;gap:11px}.court{border:1px solid #4777b4;border-radius:14px;overflow:hidden;background:#123568}.court-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#24599e;font-size:14px}.court-head strong{color:#fff}.court-head span{color:#dceaff}.match{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;padding:15px 14px;min-height:92px}.team{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:16px;overflow-wrap:anywhere}.team:last-child{text-align:right}.versus{font-size:12px;color:#aecaee;font-weight:800}.sitting{min-height:26px;margin:14px 0;color:#dae7fb;font-size:14px;line-height:1.5}.sitting strong{color:#fff}.timer-panel{background:#071c3f;border:1px solid #3c649a;border-radius:16px;padding:17px 21px;display:flex;align-items:center;justify-content:space-between}.timer{font-size:clamp(43px,6vw,64px);font-variant-numeric:tabular-nums;font-weight:850;line-height:1.1;letter-spacing:-.06em;margin:5px 0;color:#fff}.timer-note{color:#c2d6f3;font-size:13px}.timer-indicator{width:57px;height:57px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#85bdff var(--progress,0%),#315789 0%)}.timer-indicator span{height:43px;width:43px;border-radius:50%;background:#071c3f}.secondary-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;margin-top:14px}.secondary-actions button{border:0;background:transparent;color:#d6e8ff;text-decoration:underline;text-underline-offset:4px;font-size:14px;min-height:34px}.footnote{max-width:900px;font-size:13px;color:#bed2ee;margin:22px 0 0;line-height:1.5}[hidden]{display:none!important}@media(max-width:770px){.app{padding:0 15px 32px}.topbar{height:64px}.brand{font-size:12px;gap:9px}.brand-mark{width:25px;height:25px}.badge{font-size:12px;padding:6px 9px}.intro{display:block;padding:31px 4px 22px}.intro h1{font-size:39px}.intro>p{max-width:none;margin-top:10px;font-size:14px}.layout{grid-template-columns:1fr;gap:13px}.panel{padding:19px;border-radius:17px}.panel-head{margin-bottom:20px}.before-program{min-height:220px}.players-list{max-height:210px}.footnote{padding:0 4px}}@media(max-width:360px){.badge{display:none}.add-row select{width:79px}.match{padding:13px 10px;gap:6px}.team{font-size:14px}}
:root{color-scheme:dark}
.roster-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px}.roster-heading h3{font-size:16px;margin:0;letter-spacing:-.01em}.roster-heading .text-button{font-size:13px}.visitor-heading{border-top:1px solid #365a89;margin-top:22px;padding-top:20px}.players-list.member-list,.players-list.visitor-list{margin:0;max-height:280px}.players-list.visitor-list:empty{display:none}.add-form{margin-top:14px}.empty{margin:9px 0 13px}.member-choice{display:flex;align-items:center;gap:11px;min-width:0;flex:1;cursor:pointer;padding:3px 0}.member-choice input{accent-color:#85bdff;width:21px;height:21px;flex:none;margin:0}.member-list li:has(input:checked){border-color:#70aef9;background:#214e8b}.member-list .player-gender{white-space:nowrap}.remove{min-width:37px;min-height:37px}.text-button{background:none;border:0;color:#d6e8ff;text-decoration:underline;text-underline-offset:4px;padding:6px 0}.text-button:disabled{opacity:.45}.new-evening{display:block;margin:10px auto 0;font-size:14px}
.roster-tools{display:flex;flex-wrap:wrap;gap:8px 18px;margin:10px 0 18px}.import-label{cursor:pointer}.balance{border:1px solid #4777b4;border-radius:12px;margin:16px 0;padding:12px 14px;color:#e8f1ff}.balance summary{cursor:pointer;font-weight:700;color:#85bdff}.balance p{font-size:13px;line-height:1.4;color:#c5d8f2}.balance-scroll{overflow-x:auto}.balance table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}.balance th,.balance td{padding:8px 7px;border-bottom:1px solid #365a89}.balance th{white-space:normal;min-width:45px}.balance td{text-align:center}.round-alert{background:#c5e0ff;color:#092853;border-radius:13px;padding:15px;font-weight:800;margin:12px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.round-alert button{background:#102f63;color:white;border:0;border-radius:8px;padding:10px 12px;font-weight:700}@media(max-width:490px){.round-alert{flex-direction:column;align-items:stretch}.round-alert button{width:100%}}

/* Identité ESPV21, bleu blanc noir ; grands contrôles tactiles. */
:root{color-scheme:dark;color:#fff;background:#061329}
body{background:radial-gradient(circle at 84% 0%,#1551a5 0,transparent 35rem),#061329}
.topbar{border-bottom-color:#5486ca}.brand strong{color:#fff}.brand-mark{border-color:#8fc4ff;color:#fff}
.eyebrow,.timer-label,.round-navigation,.balance summary{color:#a9d2ff}
.panel{box-shadow:0 18px 42px #0004}.button.primary,.add-button{background:#fff;color:#082a62}
.button.primary:hover,.add-button:hover{background:#d8ebff}.button.outline{border:2px solid #8fc4ff;color:#fff}
.button.outline:hover:not(:disabled){background:#215197}.member-choice input{accent-color:#2184ff}
.round-alert{background:#d7eaff;color:#092853}.round-alert button{background:#0b3671}
.timer-indicator{background:conic-gradient(#67aeff var(--progress,0%),#315789 0%)}
@media(max-width:490px){.topbar{gap:8px}.topbar>a{font-size:13px}.badge{font-size:11px}.intro{padding-top:26px}}
