/* Les appels et jeux restent utilisables au doigt et sur petits écrans. */
.meeting-panel,.leisure-panel{position:fixed;z-index:95;right:16px;bottom:16px;width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 110px);overflow:auto;padding:18px;background:#fff8ebf5;color:#302e25;border:1px solid #d8c5a3;border-radius:22px;box-shadow:0 18px 60px #251f1b55;backdrop-filter:blur(14px)}
.meeting-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.meeting-head h3{font-family:Georgia,serif;font-size:23px;margin:0}.meeting-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.meeting-tile{position:relative;aspect-ratio:16/10;background:#254f43;border-radius:14px;overflow:hidden}.meeting-tile video{width:100%;height:100%;object-fit:cover}.meeting-tile span{position:absolute;bottom:7px;left:7px;color:#fff;padding:3px 8px;border-radius:12px;background:#183529cc;font-size:12px}.meeting-controls,.leisure-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.meeting-controls .btn,.leisure-controls .btn{min-height:44px}.leisure-panel{width:min(860px,calc(100vw - 32px))}.leisure-board{width:100%;height:auto;display:block;border-radius:16px;touch-action:none;margin:12px 0}.leisure-score{font-size:19px;font-weight:700;text-align:center}.leisure-controls label{display:flex;flex:1;min-width:100px;flex-direction:column;gap:5px}.leisure-controls input[type=range]{width:100%;min-height:44px;accent-color:#37664d}.leisure-board:focus-visible{outline:3px solid #c69a4b;outline-offset:3px}.place-label:focus-visible{outline:3px solid #d1a352}
@media(max-width:520px){.meeting-panel,.leisure-panel{right:8px;bottom:8px;width:calc(100vw - 16px);padding:12px;border-radius:17px;max-height:calc(100dvh - 110px)}.meeting-head h3{font-size:20px}.meeting-grid{gap:6px}.leisure-controls{gap:6px}.leisure-score{font-size:15px}}
@media(prefers-reduced-motion:reduce){.meeting-panel,.leisure-panel{backdrop-filter:none}}
/* Billard et baby-foot : choix « Jouer seul » ou « Jouer à deux », deux grands boutons faciles au doigt. */
.leisure-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.leisure-option{display:flex;flex-direction:column;gap:6px}.leisure-option .btn{width:100%;min-height:56px;font-size:18px}.leisure-option .btn.active{border-color:var(--gold);box-shadow:inset 0 0 0 2px var(--gold)}.leisure-duo{border-top:1px solid var(--panel-line);padding-top:12px}.leisure-duo .btn{min-height:44px}.leisure-duo-open{display:flex;justify-content:flex-end}.leisure-opponent{margin:4px 0 0;text-align:center}
@media(max-width:520px){.leisure-choice{grid-template-columns:1fr}.leisure-duo-open .btn{width:100%}}
/* Annexe : mini-bowling et fléchettes. Piste ou cible bornée à la hauteur de l'écran, réglages et feuille de marque à
   côté sur grand écran, en dessous au téléphone ; contrôles d'au moins 44 px. */
.annex-layout{display:grid;gap:10px}.annex-view{display:flex;justify-content:center;min-width:0}.annex-side{min-width:0}
.leisure-board.bowling-board{width:min(100%,400px,calc((100dvh - 330px)*.91));margin:6px auto}.leisure-board.darts-board{width:min(100%,420px,calc(100dvh - 360px));margin:6px auto}
.leisure-status{font-weight:700;margin:4px 0}.leisure-last{min-height:1.3em;margin:2px 0 8px;color:#5b4224}
.bowling-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.bowling-controls .btn,.darts-controls .btn.primary{grid-column:1/-1;flex:1}.leisure-controls label small{font-weight:400;color:#6c5c45}
.leisure-card{overflow-x:auto;margin-top:10px}.leisure-card table{width:100%;border-collapse:collapse;font-size:14px;background:#fffdf6}.leisure-card caption{text-align:left;font-weight:700;padding-bottom:4px}
.leisure-card th,.leisure-card td{border:1px solid #dcc9a6;padding:3px 4px;text-align:center;vertical-align:middle}.leisure-card td small{display:block;font-weight:700}.leisure-card .marks{white-space:nowrap}
.leisure-card .name{text-align:left;max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.leisure-card .total{font-weight:800;font-size:16px}
.leisure-card tr.current{background:#f6e3b4}.leisure-card tr.gone{opacity:.55}.leisure-card .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:middle}
.leisure-panel .meeting-head .btn{min-height:44px}.annex-side>.leisure-controls>.btn.primary{flex:1;min-height:48px;font-size:17px}
.leisure-settings{margin-top:8px;border:1px solid #dcc9a6;border-radius:12px;padding:0 10px}.leisure-settings summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:600}.leisure-settings[open]{padding-bottom:8px}
.leisure-settings summary:focus-visible{outline:3px solid #c69a4b;outline-offset:2px;border-radius:8px}.leisure-roster{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}.leisure-roster li{padding:10px 12px;border:1px solid #dcc9a6;border-radius:12px;background:#fffdf6}
@media(min-width:760px){.annex-game{width:min(900px,calc(100vw - 32px))}.annex-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
@media(max-width:520px){.leisure-card table{font-size:12.5px}.leisure-card th,.leisure-card td{padding:2px 3px}.leisure-status{font-size:15px}}

@media(max-width:520px){.in-apartment .nearby{top:auto;bottom:12px}.in-apartment .apt-bar{gap:6px;padding:7px;min-width:245px}.in-apartment .apt-bar .hint{flex-basis:100%;text-align:center}}
