.home-menu{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:20px;max-width:1100px;margin:40px auto}.home-menu button{min-height:130px;font-size:18px;background:linear-gradient(130deg,#213b49,#15252c);border-color:#607887}.home-menu button:hover{border-color:#c1e38a;background:#2b4958}#home>h1,#home>p{text-align:center}#adminNav{margin-left:auto;position:relative;font-size:12px}#adminNav summary{cursor:pointer;color:#aeb9c1}.admin-links{position:absolute;right:0;top:32px;width:240px;z-index:40;background:#16252e;padding:12px;border:1px solid #6d8794;border-radius:8px;box-shadow:0 12px 25px #0009;display:grid;gap:6px}.admin-links p{font-size:11px}.collection-filters{display:flex;gap:12px;margin-bottom:15px}.collection-layout{display:grid;grid-template-columns:minmax(220px,28%) 1fr;gap:24px;height:70vh}.collection-preview{overflow:auto;background:#192931;padding:16px;border-radius:8px}.collection-preview img{width:100%;max-height:43vh;object-fit:contain}.collection-preview p{white-space:pre-wrap}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(85px,1fr));align-content:start;gap:10px;overflow:auto}.collection-grid button{padding:2px}.collection-grid img{width:100%;display:block}.beginner-rules{max-width:950px;margin:auto;line-height:1.65}.beginner-rules section{padding:16px 22px;margin:16px 0;background:#192931;border-radius:8px}.rules-indice{width:75px;float:right;margin:0 0 12px 20px}#options input[type=checkbox]{width:auto}body:has(.page:not([hidden]) .tactical-board) #adminNav{display:none}@media(max-width:800px){.home-menu{grid-template-columns:1fr 1fr}.collection-layout{grid-template-columns:1fr;height:auto}.collection-preview{max-height:60vh}.collection-filters{flex-wrap:wrap}}
.admin-links .admin-warning{font-size:11.5px;line-height:1.4;color:#ffd9a8;background:#3a2a10;border:1px solid #c99a5a;border-radius:6px;padding:6px 8px;margin:0 0 4px;white-space:normal}#adminNav summary{white-space:nowrap}.admin-links{width:280px}
/* 0.9.5 §10 — échelle de l'interface (voir js/ui/UiScale.js). Le plateau de duel n'est jamais zoomé globalement. */
:root{--ui-zoom:1}
body:not(.in-duel)>header,body:not(.in-duel)>nav,body:not(.in-duel)>main.page,body:not(.in-duel)>footer,body:not(.in-duel)>#message{zoom:var(--ui-zoom)}
.duel-board .duel-leftcol,.duel-board .duel-right,.duel-board .duel-context,.duel-board .match-choice,.duel-board .setup-panel,.duel-board .waiting-choice,.duel-board .duel-end,.duel-board .duel-inspect{zoom:var(--ui-zoom)}
.option-note{font-size:12px;opacity:.8;margin:2px 0 10px}
.collection-grid .catalog-variant{position:relative;outline:1px solid #d8b56a88}
.collection-grid .catalog-variant span{position:absolute;left:3px;top:3px;padding:0 4px;border-radius:5px;background:#d8b56a;color:#1a1204;font:700 9px/13px sans-serif;text-transform:uppercase}
.admin-links .admin-reveal{font-size:12px;border-top:1px solid #2c3f5a;padding-top:6px}.admin-links .admin-reveal button{padding:3px 7px;margin:3px 3px 0 0;font-size:11px}

/* ===== 0.9.6-C — Gestionnaire audio (Paramètres) ===== */
.audio-mgr{max-width:980px;margin:0 0 22px;padding:16px 18px;border:1px solid rgba(157,123,255,.35);border-radius:14px;background:linear-gradient(180deg,rgba(30,24,60,.85),rgba(16,14,32,.9));color:#ece9ff}
.audio-mgr .am-title{margin:0 0 4px;font-size:1.25rem;letter-spacing:.04em}
.audio-mgr .am-desc{margin:4px 0 8px;color:#b9b2e0;font-size:.88rem}
.audio-mgr .am-controls{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding:10px 0 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:10px}
.audio-mgr .am-inline{display:inline-flex;gap:6px;align-items:center;font-size:.92rem}
.audio-mgr .am-range{display:inline-flex;gap:8px;align-items:center;font-size:.9rem}
.audio-mgr .am-range input{width:140px}
.audio-mgr .am-now{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%;font-size:.92rem}
.audio-mgr .am-now-title{color:#ffd36b;margin-right:6px}
.audio-mgr .am-btn{background:#2c2453;color:#fff;border:1px solid rgba(157,123,255,.5);border-radius:8px;padding:4px 9px;cursor:pointer;font:inherit;font-size:.85rem;min-width:30px}
.audio-mgr .am-btn:hover:not(:disabled){background:#3d3270}
.audio-mgr .am-btn:disabled{opacity:.35;cursor:default}
.audio-mgr .am-btn.wide{padding:5px 12px}
.audio-mgr .am-cat{border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:6px 12px;margin:8px 0;background:rgba(0,0,0,.18)}
.audio-mgr .am-cat>summary{cursor:pointer;display:flex;gap:12px;align-items:baseline;padding:4px 0;font-weight:600}
.audio-mgr .am-cat-count{color:#9d94c9;font-weight:400;font-size:.82rem}
.audio-mgr .am-list{list-style:none;margin:4px 0;padding:0}
.audio-mgr .am-track{display:flex;gap:8px;align-items:center;padding:5px 6px;border-radius:8px}
.audio-mgr .am-track:nth-child(odd){background:rgba(255,255,255,.03)}
.audio-mgr .am-track.off .am-name{opacity:.5}
.audio-mgr .am-track.missing .am-name small{color:#ff8f8f}
.audio-mgr .am-name{flex:1;min-width:0;display:flex;flex-direction:column}
.audio-mgr .am-name strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audio-mgr .am-name small{color:#9d94c9;font-size:.78rem}
.audio-mgr .am-empty{color:#9d94c9;font-style:italic;padding:4px 6px}
.audio-mgr .am-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 4px}
.audio-mgr .am-tools select,.audio-mgr .am-inline select{background:#1b1638;color:#fff;border:1px solid rgba(157,123,255,.45);border-radius:8px;padding:4px 6px;max-width:100%}
.audio-mgr .am-status{padding:6px 10px;border-radius:8px;font-size:.9rem}
.audio-mgr .am-status.ok{background:rgba(80,200,140,.15);color:#a8f0c8}
.audio-mgr .am-status.err{background:rgba(255,90,90,.15);color:#ffb3b3}
.audio-mgr .am-status.busy{background:rgba(157,123,255,.15)}
@media (max-width:640px){.audio-mgr .am-range input{width:100px}.audio-mgr .am-track{flex-wrap:wrap}}

/* ===== 0.9.7 — en ligne, compte, administration ===== */
.online-lobby{margin-bottom:18px}
.online-head h2{margin:0 0 6px}
.online-tabs,.online-modes{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.online-tab,.online-mode{padding:6px 14px;border-radius:999px;border:1px solid rgba(157,123,255,.45);background:#1b1638;color:#e9e4ff;cursor:pointer;font:inherit}
.online-tab.on,.online-mode.on{background:#5b3fd6;color:#fff;border-color:#8f78ff}
.online-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.online-row select,.online-row input{max-width:100%}
.online-note{color:#b9b2e0;font-size:.9rem;margin:4px 0}
.online-queue{color:#ffd36b}
.online-code{font-size:1.3rem;letter-spacing:.18em;color:#ffd36b}
.online-invite code{word-break:break-all}
.online-matchbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:6px 10px;border-radius:10px;background:rgba(40,30,80,.85);margin-bottom:6px}
.online-result{padding:4px 10px;border-radius:8px;background:rgba(255,211,107,.15)}
.online-table{border-collapse:collapse;width:100%;max-width:820px;font-size:.92rem}
.online-table th,.online-table td{padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}
.online-matches{padding-left:18px}
.online-tournament{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.nx-signin{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.nx-login-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nx-login-form input{min-width:180px}
.nx-provider-row{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.nx-account-id{font-size:1.05rem}.nx-role{color:#ffd36b;font-style:normal;font-size:.8rem;letter-spacing:.08em}
.nx-welcome{padding:10px 12px;border-radius:10px;background:linear-gradient(90deg,rgba(255,211,107,.22),rgba(157,123,255,.18));margin:8px 0}
.nx-welcome.done{background:rgba(80,200,140,.14)}
.nx-inbox{margin:10px 0;padding:8px 10px;border-radius:10px;background:rgba(0,0,0,.2)}
.nx-gift{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:4px 0}
.adm-form{display:flex;flex-direction:column;gap:6px;max-width:720px;padding:10px 12px;margin:10px 0;border-radius:10px;background:rgba(0,0,0,.22)}
.adm-field{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.adm-field>span{min-width:220px;color:#c7c0ea}
.adm-form li.ok{color:#a8f0c8}.adm-form li.todo{color:#ffb3b3}
.adm-log{max-height:420px;overflow:auto;font-size:.78rem;white-space:pre-wrap;background:rgba(0,0,0,.3);padding:8px;border-radius:8px}
@media (max-width:640px){.adm-field>span{min-width:0;width:100%}}
/* Barre de la partie en ligne : toujours visible au-dessus du plateau plein écran (abandon, résultat). */
body.in-duel .online-matchbar{position:fixed;left:50%;transform:translateX(-50%);bottom:8px;z-index:4000;box-shadow:0 8px 24px #0009;max-width:calc(100vw - 32px)}
.online-matchbar .online-surrender{background:#5a1f2e;border:1px solid #c45a74;color:#fff;border-radius:8px;padding:4px 12px;cursor:pointer}
