/* =========================================================================
   MEETennis — assets/terrain.css
   L'espace Terrain : accueil, groupes d'entraînement, appel, statistiques de match,
   et l'écran de saisie au bord du court (.ms-*, autonome : il ne charge
   pas app.css, pour s'ouvrir vite et hors ligne).
   ========================================================================= */

/* ---- Accueil Terrain ---------------------------------------------------- */
.te-jour{background:var(--surface);border-radius:22px;padding:16px 18px;box-shadow:var(--shadow-soft);margin:16px 0}
.te-jour h2{font-family:'Montserrat',sans-serif;font-weight:900;font-size:18px;margin:0 0 4px;color:var(--ink)}
.te-jour .te-date{font-size:13px;color:var(--ink-soft);font-weight:600;margin:0 0 12px}
.te-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.te-item:first-of-type{border-top:0}
.te-item .te-ic{width:40px;height:40px;border-radius:12px;background:rgba(225,94,1,.10);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.te-item .te-ic svg{width:21px;height:21px}
.te-item .te-b{flex:1;min-width:0}
.te-item .te-b b{display:block;font-family:'Montserrat',sans-serif;font-size:14.5px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.te-item .te-b small{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:600}
.te-item .te-act{display:flex;gap:6px;flex:none}
.te-vide{font-size:14px;color:var(--ink-soft);margin:4px 0 0}
.te-tuiles{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0}
.te-tuile{background:var(--surface);border-radius:20px;padding:16px;box-shadow:var(--shadow-soft);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:6px;min-height:118px;position:relative}
.te-tuile svg{width:24px;height:24px;color:var(--brand)}
.te-tuile b{font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px}
.te-tuile small{font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.35}
.te-tuile .te-n{position:absolute;top:14px;right:16px;font-family:'Montserrat',sans-serif;font-weight:900;font-size:22px;color:var(--ink)}
.te-tuile.pro::after{content:"Pro";position:absolute;bottom:14px;right:14px;font-size:10.5px;font-weight:800;color:#fff;background:var(--ink);border-radius:999px;padding:2px 8px}
@media (min-width:700px){ .te-tuiles{grid-template-columns:repeat(3,1fr)} }
.te-btn{display:inline-flex;align-items:center;gap:6px;font-family:'Montserrat',sans-serif;font-weight:800;font-size:12.5px;padding:8px 12px;border-radius:999px;
  background:var(--brand);color:#fff;border:0;text-decoration:none;cursor:pointer;white-space:nowrap}
.te-btn.ghost{background:rgba(225,94,1,.10);color:var(--brand)}
.te-btn svg{width:15px;height:15px}

/* ---- Groupes d'entraînement --------------------------------------------- */
.en-carte{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:18px;padding:14px 16px;box-shadow:var(--shadow-soft);margin:10px 0;text-decoration:none;color:var(--ink)}
.en-carte .en-j{width:48px;height:48px;border-radius:14px;background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;font-family:'Montserrat',sans-serif;line-height:1}
.en-carte .en-j b{font-size:13px;font-weight:900;text-transform:uppercase}
.en-carte .en-j small{font-size:10.5px;font-weight:700;opacity:.8;margin-top:3px}
.en-carte.auj .en-j{background:var(--brand)}
.en-carte .en-b{flex:1;min-width:0}
.en-carte .en-b b{display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px}
.en-carte .en-b small{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:600}
.en-appel{margin:14px 0}
.en-ligne{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.en-ligne .jo-av{flex:none}
.en-ligne .en-nom{flex:1;min-width:0;font-weight:700;font-size:15px}
.en-ligne .en-nom small{display:block;font-size:12px;color:var(--ink-soft);font-weight:600}
.en-st{display:flex;gap:4px;flex:none}
.en-st label{position:relative}
.en-st input{position:absolute;opacity:0;pointer-events:none}
.en-st span{display:inline-block;min-width:38px;text-align:center;padding:9px 8px;border-radius:12px;background:rgba(0,0,0,.05);font-weight:800;font-size:12.5px;color:var(--ink-soft);cursor:pointer}
.en-st input:checked + span.p{background:#5aa845;color:#fff}
.en-st input:checked + span.a{background:#d94a3d;color:#fff}
.en-st input:checked + span.e{background:#e8871e;color:#fff}
.en-st input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.en-tous{display:flex;gap:8px;margin:6px 0 4px;flex-wrap:wrap}
.en-histo{width:100%;border-collapse:collapse;font-size:13.5px}
.en-histo td,.en-histo th{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left}
.en-histo th{font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft)}
.en-cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0}
.en-case{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.04);font-weight:700;font-size:14px;cursor:pointer}
.en-case input{width:18px;height:18px;accent-color:var(--brand)}
.en-pct{font-family:'Montserrat',sans-serif;font-weight:800;font-size:12.5px;color:var(--ink-soft)}
.en-pct.bas{color:#d94a3d}

/* ---- Matchs : liste et analyse ------------------------------------------ */
.ma-ligne{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:18px;padding:13px 16px;box-shadow:var(--shadow-soft);margin:10px 0;text-decoration:none;color:var(--ink)}
.ma-res{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:900;font-size:15px;flex:none;background:rgba(0,0,0,.06);color:var(--ink-soft)}
.ma-res.victoire{background:rgba(90,168,69,.16);color:#3e7d2e}
.ma-res.defaite{background:rgba(217,74,61,.14);color:#b0372b}
.ma-res.en_cours{background:rgba(225,94,1,.12);color:var(--brand)}
.ma-ligne .ma-b{flex:1;min-width:0}
.ma-ligne .ma-b b{display:block;font-family:'Montserrat',sans-serif;font-weight:800;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ma-ligne .ma-b small{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:600}
.ma-score{font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;white-space:nowrap}
.ma-entete{background:var(--surface);border-radius:22px;padding:18px;box-shadow:var(--shadow-soft);margin:16px 0}
.ma-entete .ma-sc{font-family:'Montserrat',sans-serif;font-weight:900;font-size:28px;letter-spacing:-.5px;margin:4px 0}
.ma-entete .ma-sous{font-size:13px;color:var(--ink-soft);font-weight:600}
.ma-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}
@media (min-width:700px){ .ma-kpis{grid-template-columns:repeat(4,1fr)} }
.ma-kpi{background:var(--surface);border-radius:18px;padding:14px;box-shadow:var(--shadow-soft)}
.ma-kpi b{display:block;font-family:'Montserrat',sans-serif;font-weight:900;font-size:24px;color:var(--ink);letter-spacing:-.4px}
.ma-kpi span{display:block;font-size:12.5px;color:var(--ink-soft);font-weight:600;line-height:1.3;margin-top:2px}
.ma-kpi small{display:block;font-size:11.5px;color:var(--ink-faint);margin-top:4px}
.ma-barres{display:flex;flex-direction:column;gap:12px}
.ma-barre .ma-bl{display:flex;justify-content:space-between;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:5px}
.ma-barre .ma-bl span{color:var(--ink-soft);font-weight:600}
.ma-barre .ma-bt{height:10px;border-radius:10px;background:rgba(0,0,0,.07);overflow:hidden}
.ma-barre .ma-bt i{display:block;height:100%;border-radius:10px;background:var(--brand)}
.ma-barre.court .ma-bt i{background:#e8871e}
.ma-barre.long .ma-bt i{background:#3f6fb5}
.ma-profil{border-left:4px solid var(--brand)}
.ma-profil h3{margin-bottom:6px}
.ma-profil p{margin:0 0 6px;font-size:14px;line-height:1.5}
.ma-table{width:100%;border-collapse:collapse;font-size:13.5px}
.ma-table th,.ma-table td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:right}
.ma-table th:first-child,.ma-table td:first-child{text-align:left}
.ma-table th{font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft)}
.ma-courbe{width:100%;height:auto;display:block}
.ma-legende{font-size:12px;color:var(--ink-soft);margin:6px 0 0}
.ma-axe{border-top:1px solid var(--line);padding:14px 0 4px}
.ma-axe:first-of-type{border-top:0;padding-top:4px}
.ma-axe h4{font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;margin:0 0 4px;color:var(--ink)}
.ma-axe p{margin:0 0 8px;font-size:14px;color:var(--ink-soft);line-height:1.45}
.ma-axe .ma-ex{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.ma-axe .ma-ex a{font-size:12.5px;font-weight:700;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.05);color:var(--ink);text-decoration:none}
.ma-axe .ma-act{display:flex;flex-wrap:wrap;gap:8px}
.ma-partage input{width:100%;font-size:13px}
.ma-partage .ma-copier{margin-top:8px}

/* =========================================================================
   Écran de saisie (autonome)
   ========================================================================= */
.ms-body{
  --ms-bg:#fdf8f4;--ms-surface:#fff;--ms-ink:#1c1814;--ms-soft:#7a716b;--ms-line:rgba(0,0,0,.08);
  --ms-brand:#e15e01;--ms-vert:#3e8e2c;--ms-rouge:#c73d31;--ms-bleu:#3f6fb5;--ms-orange:#e8871e;
  margin:0;background:var(--ms-bg);color:var(--ms-ink);font-family:'Raleway',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
html[data-theme="dark"] .ms-body{--ms-bg:#141210;--ms-surface:#221e1b;--ms-ink:#f5efe9;--ms-soft:#b3a9a1;--ms-line:rgba(255,255,255,.1)}
.ms-body *{box-sizing:border-box}
.ms{max-width:560px;margin:0 auto;min-height:100vh;min-height:100dvh;padding:0 14px calc(92px + env(safe-area-inset-bottom));display:flex;flex-direction:column}
.ms-vide{max-width:460px;margin:18vh auto 0;padding:0 22px;text-align:center}
.ms-vide h1{font-family:'Montserrat',sans-serif;font-weight:900}
.ms-haut{display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 0 10px;position:sticky;top:0;background:var(--ms-bg);z-index:5}
.ms-quitter{width:40px;height:40px;border-radius:50%;background:var(--ms-surface);color:var(--ms-ink);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.08);flex:none}
.ms-titre{flex:1;min-width:0}
.ms-titre b{display:block;font-family:'Montserrat',sans-serif;font-weight:900;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-titre b span{font-weight:600;color:var(--ms-soft);font-size:13px}
.ms-titre small{display:block;font-size:12px;color:var(--ms-soft);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-sync{font-size:11px;font-weight:800;padding:5px 9px;border-radius:999px;background:rgba(0,0,0,.05);color:var(--ms-soft);max-width:44%;text-align:center;line-height:1.2}
.ms-sync.ok{background:rgba(62,142,44,.12);color:var(--ms-vert)}
.ms-sync.horsligne{background:rgba(232,135,30,.16);color:#a85e0c}
.ms-sync.erreur{background:rgba(199,61,49,.12);color:var(--ms-rouge)}
.ms-parent{font-size:12.5px;color:var(--ms-soft);background:var(--ms-surface);border-radius:14px;padding:10px 12px;margin:0 0 10px}

.ms-tableau{background:#1f1b18;color:#fff;border-radius:22px;padding:14px 14px 12px;margin:4px 0 14px}
.ms-ligne{display:flex;align-items:center;gap:6px;padding:7px 0}
.ms-ligne + .ms-ligne{border-top:1px solid rgba(255,255,255,.1)}
.ms-nom{flex:1;min-width:0;font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px}
.ms-balle{width:10px;height:10px;border-radius:50%;background:transparent;flex:none}
.ms-ligne.sert .ms-balle{background:#dfd23a;box-shadow:0 0 0 3px rgba(223,210,58,.25)}
.ms-ligne.gagne .ms-nom::after{content:"✓";color:#8fd67a;margin-left:4px}
.ms-set{width:26px;text-align:center;font-family:'Montserrat',sans-serif;font-weight:700;font-size:17px;color:rgba(255,255,255,.55);position:relative}
.ms-set.pris{color:#fff}
.ms-set.cours{color:#fff;font-weight:900}
.ms-set sup{font-size:9px;position:absolute;top:-4px;right:-2px}
.ms-pts{min-width:52px;text-align:center;font-family:'Montserrat',sans-serif;font-weight:900;font-size:20px;background:#e15e01;border-radius:10px;padding:4px 6px;margin-left:6px}
.ms-info{margin:8px 0 0;text-align:center;font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;color:#ffd36b;letter-spacing:.2px}

.ms-etape h2,.ms-grp{font-family:'Montserrat',sans-serif;font-weight:900;font-size:17px;margin:4px 0 10px}
.ms-grp{margin:18px 0 8px;font-size:15px}
.ms-grp small{font-weight:600;color:var(--ms-soft);font-size:12.5px}
.ms-grille{display:grid;gap:10px}
.ms-grille.trois{grid-template-columns:1fr 1fr 1fr}
.ms-grille.deux{grid-template-columns:1fr 1fr}
.ms-gros{min-height:74px;border:0;border-radius:18px;background:var(--ms-surface);color:var(--ms-ink);font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;
  box-shadow:0 2px 10px rgba(0,0,0,.07);cursor:pointer;padding:10px 8px;line-height:1.2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;touch-action:manipulation}
.ms-gros:active{transform:scale(.97)}
.ms-gros.alerte{color:var(--ms-rouge)}
.ms-gros.plein{background:var(--ms-brand);color:#fff;min-height:56px;margin:14px 0 6px}
.ms-gros b{font-size:18px}
.ms-gros.court{background:#fff4e8;color:#8a4a06}
.ms-gros.long{background:#eaf0fa;color:#244e8f}
html[data-theme="dark"] .ms-gros.court{background:#3a2a17;color:#ffc98a}
html[data-theme="dark"] .ms-gros.long{background:#1d2a40;color:#9ec0f5}
.ms-deux{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ms-col{display:flex;flex-direction:column;gap:8px}
.ms-col h3{margin:0 0 2px;font-family:'Montserrat',sans-serif;font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-col.gagne h3{color:var(--ms-vert)}
.ms-col.perd h3{color:var(--ms-rouge)}
.ms-col .ms-gros{min-height:62px;font-size:14px}
.ms-col.gagne .ms-gros{border-left:5px solid var(--ms-vert)}
.ms-col.perd .ms-gros{border-left:5px solid var(--ms-rouge)}
.ms-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.ms-chip{border:0;border-radius:999px;padding:11px 15px;background:var(--ms-surface);box-shadow:0 1px 6px rgba(0,0,0,.07);font-weight:800;font-size:14px;color:var(--ms-ink);cursor:pointer}
.ms-chip.on{background:var(--ms-ink);color:var(--ms-bg)}
.ms-lien{background:none;border:0;color:var(--ms-brand);font-weight:800;font-size:14px;padding:12px 4px;cursor:pointer}
.ms-bas-etape{display:flex;justify-content:space-between;margin-top:6px}
.ms-fini{text-align:center;padding:16px 0}
.ms-fini p{color:var(--ms-soft);font-size:14px}

.ms-pied{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(560px,100%);display:flex;align-items:center;gap:10px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--ms-surface);box-shadow:0 -6px 24px rgba(0,0,0,.08);z-index:6}
.ms-annuler{display:flex;align-items:center;gap:6px;border:0;border-radius:14px;background:rgba(0,0,0,.06);color:var(--ms-ink);font-weight:800;font-size:13.5px;padding:12px 12px;cursor:pointer}
.ms-annuler:disabled{opacity:.4}
.ms-n{flex:1;font-size:12.5px;color:var(--ms-soft);font-weight:700;text-align:center}
.ms-terminer{border:0;border-radius:14px;background:var(--ms-ink);color:var(--ms-bg);font-family:'Montserrat',sans-serif;font-weight:800;font-size:14px;padding:12px 16px;cursor:pointer}

/* Feuille rapide */
.ms-tableau.rapide{padding:12px 14px}
.ms-setl{display:flex;align-items:center;gap:8px;padding:6px 0}
.ms-setn{flex:1;font-family:'Montserrat',sans-serif;font-weight:800;font-size:13px;color:rgba(255,255,255,.7)}
.ms-step{display:flex;align-items:center;gap:6px}
.ms-step b{min-width:26px;text-align:center;font-family:'Montserrat',sans-serif;font-weight:900;font-size:22px}
.ms-step button{width:38px;height:38px;border-radius:12px;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:20px;font-weight:700;cursor:pointer}
.ms-tiret{color:rgba(255,255,255,.4);font-weight:800}
.ms-tableau .ms-lien{color:#ffb27a;padding:6px 0}
.ms-ratios{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;border-top:1px solid rgba(255,255,255,.1);padding-top:10px}
.ms-ratios span{font-size:11px;color:rgba(255,255,255,.65);font-weight:600;line-height:1.25;text-align:center}
.ms-ratios b{display:block;font-family:'Montserrat',sans-serif;font-size:19px;color:#fff;font-weight:900}
.ms-cpts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ms-cpt{position:relative}
.ms-cpt-plus{width:100%;min-height:86px;border:0;border-radius:18px;background:var(--ms-surface);box-shadow:0 2px 10px rgba(0,0,0,.07);cursor:pointer;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:12px 14px;text-align:left;color:var(--ms-ink);touch-action:manipulation}
.ms-cpt.pos .ms-cpt-plus{border-bottom:4px solid var(--ms-vert)}
.ms-cpt.neg .ms-cpt-plus{border-bottom:4px solid var(--ms-rouge)}
.ms-cpt-plus .ms-l{font-weight:700;font-size:13px;line-height:1.25;padding-right:34px;color:var(--ms-soft)}
.ms-cpt-plus .ms-v{font-family:'Montserrat',sans-serif;font-weight:900;font-size:28px}
.ms-cpt-plus.flash{animation:ms-flash .35s}
@keyframes ms-flash{0%{background:#ffe3cc}100%{background:var(--ms-surface)}}
.ms-cpt-moins{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:10px;border:0;background:rgba(0,0,0,.06);color:var(--ms-ink);font-size:18px;font-weight:800;cursor:pointer}
.ms-res{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ms-res button{min-height:54px;border:0;border-radius:16px;background:var(--ms-surface);font-family:'Montserrat',sans-serif;font-weight:800;font-size:15px;box-shadow:0 2px 10px rgba(0,0,0,.07);color:var(--ms-ink);cursor:pointer}
.ms-res button.on[data-res="victoire"]{background:var(--ms-vert);color:#fff}
.ms-res button.on[data-res="defaite"]{background:var(--ms-rouge);color:#fff}
.ms-aide{font-size:12.5px;color:var(--ms-soft);margin:6px 0 0}

.ms-fin{position:fixed;inset:0;background:rgba(20,16,12,.55);display:flex;align-items:flex-end;justify-content:center;z-index:20}
.ms-fin[hidden]{display:none}
.ms-fin-b{background:var(--ms-surface);width:min(560px,100%);border-radius:24px 24px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom));text-align:center}
.ms-fin-b h2{font-family:'Montserrat',sans-serif;font-weight:900;margin:0 0 8px}
.ms-fin-b p{color:var(--ms-soft);margin:0}
@media (max-width:360px){ .ms-gros{font-size:13.5px} .ms-col .ms-gros{font-size:12.5px;min-height:58px} }

/* L'initiale des joueurs : en ambiance chaleureuse, --avatar-bg est blanc
   (pensé pour l'avatar du bandeau orange) et la lettre, blanche aussi,
   disparaissait dans les listes de joueurs et l'appel. */
.jo-av{background:linear-gradient(135deg,#e15e01,#f2771f)}
.ms-n{white-space:nowrap}

/* Les trois gestes du bord de court, en tête de l'espace Terrain. */
.te-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0 0}
.te-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:78px;padding:10px 6px;border-radius:18px;
  background:var(--surface);box-shadow:var(--shadow-soft);text-decoration:none;color:var(--ink);font-family:'Montserrat',sans-serif;font-weight:800;font-size:12.5px;line-height:1.2;text-align:center}
.te-action svg{width:22px;height:22px;color:var(--brand)}
.te-action.principal{background:#1f1b18;color:#fff}
.te-action.principal svg{color:#f2771f}
@media (min-width:700px){ .te-action{flex-direction:row;min-height:56px;font-size:14px;gap:10px} }
