:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#47355c;background:#fff6ff;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 10%,rgba(255,162,196,.48) 0,transparent 27%),radial-gradient(circle at 88% 15%,rgba(117,196,255,.42) 0,transparent 28%),radial-gradient(circle at 80% 78%,rgba(182,128,255,.30) 0,transparent 26%),radial-gradient(circle at 18% 88%,rgba(255,225,120,.28) 0,transparent 24%),linear-gradient(180deg,#fff7ff 0%,#f6f8ff 45%,#fffaf1 100%)}button{font:inherit;cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #ffda6e;outline-offset:4px}.ambient{position:fixed;width:220px;height:220px;border-radius:50%;filter:blur(85px);opacity:.17;pointer-events:none}.ambient-one{background:#ff79b5;top:10%;left:0;opacity:.22}.ambient-two{background:#5ac8ff;bottom:0;right:0;opacity:.2}.shell{position:relative;max-width:1250px;padding:32px 28px 15px;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.identity{display:flex;align-items:center;gap:14px}.logo{width:58px;height:58px;display:grid;place-items:center;font-size:31px;background:linear-gradient(135deg,#ff8fa8,#ffc66e,#75c9ff,#b17cff);border-radius:18px;box-shadow:0 10px 28px rgba(167,112,255,.20)}.brand{font-size:25px;font-weight:950;letter-spacing:-1px}.brand span{color:#ff8fab}.brand-sub{margin:1px 0;color:#8d79a8;font-size:12px}.top-tag{border:1px solid #e6d6f4;border-radius:30px;background:rgba(255,255,255,.75);padding:11px 17px;font-size:13px;color:#6a4f8b;box-shadow:0 8px 22px rgba(164,138,198,.12)}.intro{text-align:center;padding:85px 0 70px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:850;color:#ff8c8c}.intro h1{font-size:clamp(38px,6vw,63px);letter-spacing:-2px;margin:15px 0 8px}.intro h1 em{font-style:normal;background:linear-gradient(90deg,#ff7ca8,#6cbcff,#b878ff,#ffc861);background-clip:text;color:transparent}.intro>p{color:#7f6e98;margin:0 0 39px}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,350px));gap:25px;justify-content:center}.mode-card{display:flex;flex-direction:column;align-items:center;gap:12px;border:1px solid #ead8fb;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(250,245,255,.96));border-radius:25px;color:inherit;padding:30px 28px 24px;box-shadow:0 14px 34px rgba(155,132,193,.14);transition:transform .18s,border-color .18s,box-shadow .18s}.mode-card:hover{transform:translateY(-5px);border-color:#ffb7db;box-shadow:0 18px 36px rgba(155,132,193,.22)}.mode-icon{display:grid;place-items:center;width:82px;height:82px;border-radius:22px;font-size:38px}.mode90{background:linear-gradient(135deg,rgba(255,143,168,.26),rgba(255,203,116,.22))}.mode75{background:linear-gradient(135deg,rgba(117,201,255,.24),rgba(181,120,255,.18))}.mode-title{font-size:25px;font-weight:850}.mode-subtitle{color:#8e7fa5;font-size:14px}.mode-preview{display:flex;align-items:center;justify-content:center;gap:9px;height:62px;font-weight:900;font-size:16px}.mode-preview:not(.bingo-preview) b{display:grid;place-items:center;background:linear-gradient(135deg,#ffd57c,#ff9fb0);color:#5a3354;width:34px;height:34px;border-radius:50%}.bingo-preview b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-size:19px}.letter-b{background:#35b873}.letter-i{background:#3189e8}.letter-n{background:#ee575d}.letter-g{background:#f5c74d;color:#332b20}.letter-o{background:#9e65e8}.mode-action{width:100%;border-radius:14px;background:linear-gradient(90deg,#ff9fbc,#ffd57c,#84cbff);color:#47355c;padding:13px;font-weight:800;margin-top:10px;display:flex;justify-content:center;gap:12px}.hidden{display:none!important}.game{padding-top:45px}.game-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.game-top h1{margin:6px 0 0;font-size:34px;letter-spacing:-1px}.ghost-button{color:#6a4e87;background:rgba(255,255,255,.78);border:1px solid #e1d1f1;border-radius:12px;padding:12px 17px;box-shadow:0 8px 18px rgba(155,132,193,.10)}.dashboard{display:grid;grid-template-columns:minmax(290px,405px) 1fr;gap:20px}.draw-panel,.board-panel,.history-panel{background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(251,247,255,.96));border:1px solid #eadcf9;border-radius:22px;padding:25px;box-shadow:0 14px 32px rgba(153,126,189,.13)}.panel-heading,.timer-top,.board-head,.history-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-heading{font-weight:750}.status{font-size:12px;font-weight:700;border-radius:30px;padding:6px 11px}.ready{background:#efe4ff;color:#7554a3}.running{background:#dff7e9;color:#209458}.paused{background:#fff4d7;color:#bb8a14}.finished{background:#ffe1e8;color:#c84c70}.current-ball{margin:22px auto 12px;width:min(225px,64vw);height:min(225px,64vw);border-radius:50%;background:radial-gradient(circle at 28% 23%,#fff,#ffeaa8 42%,#ffb5cf 72%,#8bc6ff 100%);color:#49345e;box-shadow:inset -13px -17px 28px rgba(167,112,255,.18),0 16px 30px rgba(120,130,200,.18);display:flex;align-items:center;justify-content:center;font-size:clamp(65px,8vw,105px);font-weight:950;letter-spacing:-3px}.current-ball.empty{opacity:.65;filter:saturate(.55)}.current-ball.bingo-ball{flex-direction:column;gap:0;line-height:1}.current-ball.bingo-ball .ball-letter{font-size:43px;letter-spacing:0}.current-ball.bingo-ball .ball-number{font-size:94px;letter-spacing:-3px}.current-ball.bingo-b{background:radial-gradient(circle at 28% 23%,#e6ffe9,#65df9a 45%,#189758)}.current-ball.bingo-i{background:radial-gradient(circle at 28% 23%,#ecf7ff,#78baff 45%,#1865bf)}.current-ball.bingo-n{background:radial-gradient(circle at 28% 23%,#fff2f2,#ff9895 45%,#db364d)}.current-ball.bingo-g{background:radial-gradient(circle at 28% 23%,#fffbe3,#ffe174 45%,#eda72d)}.current-ball.bingo-o{background:radial-gradient(circle at 28% 23%,#f8ebff,#ca94ff 45%,#8044c8)}.current-descriptor{text-align:center;color:#7f6e98;font-size:14px;min-height:24px}.timer-box{background:linear-gradient(180deg,#fff4fb,#f7f7ff);border:1px solid #e9dcf7;border-radius:15px;margin-top:21px;padding:17px}.timer-top{font-size:13px;color:#8d7aa9}.timer-top strong{font-size:26px;color:#5a4377;font-variant-numeric:tabular-nums}.timer-track{height:9px;border-radius:20px;overflow:hidden;background:#e7daf4;margin-top:12px}.timer-fill{height:100%;width:100%;background:linear-gradient(90deg,#ff98b9,#ffd16f,#7cc8ff,#b77dff);transition:width .35s linear}.timer-box p{font-size:11px;margin:8px 0 0;color:#8f7da9}.controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:19px}.controls button,.dialog-actions button{border:0;border-radius:11px;padding:13px 16px;font-size:13px;font-weight:850}.primary-button{color:#4c365f;background:linear-gradient(90deg,#ffafc8,#ffd777,#86ccff);flex:1}.secondary-button{color:#fff;background:#7d63b0}.danger-button{color:#fff4f6;background:#cf6488}.voice-setting{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #eadcf9;margin-top:24px;padding-top:19px}.switch-row{display:flex;align-items:center;gap:10px;font-size:12px;cursor:pointer}.switch-row input{position:absolute;opacity:0}.switch-ui{display:block;flex:0 0 auto;width:36px;height:21px;background:#c7b3e6;border-radius:20px;position:relative}.switch-ui:after{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;background:#fff;border-radius:50%;transition:transform .15s}.switch-row input:checked+.switch-ui{background:#5ecb95}.switch-row input:checked+.switch-ui:after{transform:translateX(15px)}.switch-row input:focus-visible+.switch-ui{outline:3px solid #ffda6e;outline-offset:3px}.voice-test{font-size:12px;border:1px solid #d8c5ee;border-radius:9px;background:#fff;color:#684f87;padding:8px;white-space:nowrap}.notice{color:#a06fa5;min-height:13px;font-size:11px;margin:10px 0 0}.board-head{align-items:flex-start}.board-head h2,.history-head h2{font-size:19px;margin:0 0 6px}.board-head p{margin:0;color:#8f7da8;font-size:12px}.counter{white-space:nowrap}.counter strong{font-size:32px;color:#ff8fab}.counter span{font-size:15px;color:#8f7da8}.number-board{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:7px;margin-top:25px}.number-board.bingo-board{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.board-ball{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:1px solid #e5d8f4;border-radius:50%;background:#faf6ff;color:#947fae;font-weight:800;font-size:clamp(11px,1.3vw,17px);font-variant-numeric:tabular-nums}.board-ball.is-drawn{background:linear-gradient(145deg,#ffd57c,#ff9fb0,#7bc8ff);color:#4e355f;border-color:transparent;box-shadow:0 4px 12px rgba(255,183,129,.28)}.bingo-board .board-ball{border-radius:10px;aspect-ratio:auto;min-height:36px;font-size:clamp(11px,1.15vw,15px)}.bingo-board .board-ball.is-drawn.b{background:#43c681;color:#0c3923}.bingo-board .board-ball.is-drawn.i{background:#4c9af5;color:#082951}.bingo-board .board-ball.is-drawn.n{background:#f66c73;color:#561b24}.bingo-board .board-ball.is-drawn.g{background:#f7d65b;color:#473715}.bingo-board .board-ball.is-drawn.o{background:#b983f2;color:#3d1b67}.bingo-header{font-size:19px;font-weight:1000;text-align:center;border-radius:8px;padding:6px 0;color:#fff}.bingo-header.g{color:#33250d}.bingo-header.b{background:#30ad6b}.bingo-header.i{background:#2a7dde}.bingo-header.n{background:#e34c57}.bingo-header.g{background:#eec13a}.bingo-header.o{background:#914ed8}.board-legend{display:flex;gap:20px;justify-content:flex-end;font-size:11px;color:#8f7da8;margin-top:19px}.board-legend span{display:flex;gap:7px;align-items:center}.legend-dot{height:10px;width:10px;border-radius:50%;display:inline-block}.legend-dot.drawn{background:#ffadbf}.legend-dot.pending{background:#d7c8ea}.history-panel{margin-top:20px}.history-head span{font-size:12px;color:#8f7da8}.history-items{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px;min-height:40px}.history-empty{font-size:13px;color:#8f7da8}.history-ball{display:grid;place-items:center;min-width:47px;height:47px;padding:0 8px;border-radius:50%;background:linear-gradient(135deg,#ffd57c,#ff9fb0);color:#4a355b;font-weight:900;font-size:14px;box-shadow:0 6px 14px rgba(154,132,193,.15)}.history-ball.b{background:#43c681}.history-ball.i{background:#4c9af5}.history-ball.n{background:#f66c73}.history-ball.g{background:#f7d65b}.history-ball.o{background:#b983f2}.history-ball.latest{outline:3px solid white;outline-offset:2px}footer{text-align:center;color:#8a79a6;padding:45px 0 20px;font-size:12px}dialog{border:1px solid #eadcf9;border-radius:19px;padding:0;background:#fff;color:#4a355e;max-width:390px;width:calc(100% - 30px);box-shadow:0 22px 80px rgba(88,61,115,.22)}dialog::backdrop{background:rgba(66,45,95,.22)}.dialog-content{padding:25px}.dialog-content h2{margin:0 0 10px}.dialog-content p{color:#7e6d97;font-size:14px;line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media(max-width:850px){.dashboard{grid-template-columns:1fr}.draw-panel{max-width:none}.number-board{gap:5px}.board-ball{font-size:14px}.bingo-board .board-ball{font-size:14px}.current-ball{width:190px;height:190px}.current-ball.bingo-ball .ball-number{font-size:80px}}@media(max-width:600px){.shell{padding:20px 14px 10px}.brand{font-size:19px}.brand-sub{font-size:10px}.logo{width:46px;height:46px;font-size:25px}.top-tag{display:none}.intro{padding:60px 0 35px}.mode-grid{grid-template-columns:1fr}.mode-card{padding:23px}.game-top h1{font-size:26px}.game-top{align-items:flex-start}.ghost-button{font-size:11px;padding:10px}.draw-panel,.board-panel,.history-panel{padding:17px}.number-board{gap:4px}.board-ball{font-size:11px}.bingo-board .board-ball{min-height:32px}.voice-setting{flex-wrap:wrap}}
/* Compatibilité Smart TV : focus visible et boîte de dialogue sans <dialog> natif. */
button:focus,button:active{outline:4px solid #ffda6e!important;outline-offset:4px!important;box-shadow:0 0 0 7px rgba(255,218,110,.25)!important}
#confirmDialog[open]{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;z-index:1000;max-height:90vh;overflow:auto}
@media(min-width:1000px){.controls button{min-height:48px}.mode-card{min-height:320px}}

/* Mode Smart TV : limitation des effets graphiques GPU et des animations coûteuses. */
.tv-lite .ambient{display:none!important}
.tv-lite .mode-card,.tv-lite .timer-fill,.tv-lite .switch-ui:after{transition:none!important}
.tv-lite .logo,.tv-lite .board-ball.is-drawn,.tv-lite .current-ball,.tv-lite .draw-panel,.tv-lite .board-panel,.tv-lite .history-panel,.tv-lite .mode-card{box-shadow:none!important}
.tv-lite .current-ball.empty{filter:none!important}
.tv-lite .intro h1 em{background:none!important;color:#ff89a9!important}
.tv-lite .board-ball{aspect-ratio:auto;min-height:29px}
.tv-lite .number-board{gap:5px}
.tv-lite button:focus{outline:4px solid #ffda6e!important;outline-offset:3px!important}


/* Palette multicolore v1.5 */
.mode-card#select90{background:linear-gradient(180deg,#fff7fb 0%,#fffdf5 100%)}
.mode-card#select75{background:linear-gradient(180deg,#f8fbff 0%,#fbf6ff 100%)}
.draw-panel{position:relative;overflow:hidden}
.draw-panel::before,.board-panel::before,.history-panel::before{content:"";position:absolute;inset:0 auto auto 0;height:6px;width:100%;background:linear-gradient(90deg,#ff9fbc 0%,#ffd777 32%,#86ccff 66%,#b77dff 100%)}
.board-panel,.history-panel{position:relative;overflow:hidden}
.topbar,.game-top h1,.panel-heading,.board-head h2,.history-head h2,.mode-title,.brand,.intro h1{color:#4a355e}
button:focus,button:active{outline:4px solid #ff98b9!important;box-shadow:0 0 0 7px rgba(255,152,185,.22)!important}

/* v1.9 : écran d'accès coloré et inscription RomaelDev */
.access-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px;position:relative;z-index:4}
.access-card{width:100%;max-width:460px;background:#fff;border:2px solid #eed9f7;border-radius:26px;padding:38px 34px;text-align:center;color:#49345e;box-shadow:0 20px 50px rgba(118,93,155,.18)}
.access-icon{width:78px;height:78px;display:grid;place-items:center;margin:0 auto 18px;background:linear-gradient(135deg,#ffb5c8,#ffe08c,#84cafa,#b79bf5);border-radius:23px;font-size:40px}
.access-eyebrow{font-size:13px;font-weight:900;letter-spacing:2px;color:#9a59a6}
.access-card h1{font-size:38px;margin:12px 0 4px;color:#49345e}
.access-card p{color:#806c96;line-height:1.45}
.access-label{display:block;text-align:left;font-weight:800;font-size:14px;margin:27px 0 8px}
#accessPassword{width:100%;font:inherit;font-size:20px;color:#49345e;background:#fcf9ff;border:2px solid #d8c2ed;border-radius:13px;padding:15px 16px;min-height:57px}
.access-submit{margin-top:12px;display:block;width:100%;border:0;border-radius:13px;background:linear-gradient(90deg,#ff9fbc,#ffd777,#86ccff);color:#41305e;padding:16px;font-weight:900;font-size:17px;min-height:56px}
.access-error{font-weight:750;color:#bc315b!important;min-height:20px;margin:10px 0 0}
.access-help{font-size:12px;margin:18px 0 0}
.lock-button{border:1px solid #e6d6f4;border-radius:30px;background:#fff;color:#684f87;padding:10px 14px;font-size:13px;font-weight:800}
footer strong{color:#72519e}
@media(max-width:620px){.access-card{padding:27px 20px}.access-card h1{font-size:30px}.lock-button{padding:9px;font-size:11px}}
.tv-lite .access-card{box-shadow:none!important}

/* v2.0 : identification administrateur */
#accessUsername{width:100%;font:inherit;font-size:19px;color:#60487c;background:#f2eef9;border:2px solid #e7d9f5;border-radius:13px;padding:13px 16px;min-height:52px;opacity:1}
#accessUsername + .access-label{margin-top:17px}

/* v2.1 : marques personnalisées, espaces comptes */
:root{--brand-1:#FF80B5;--brand-2:#7DCAFF;--brand-3:#FFD66B}
.logo,.access-icon{background:linear-gradient(135deg,var(--brand-1),var(--brand-3),var(--brand-2))}
.mode-action,.access-submit,.primary-button{background:linear-gradient(90deg,var(--brand-1),var(--brand-3),var(--brand-2))}
.timer-fill{background:linear-gradient(90deg,var(--brand-1),var(--brand-3),var(--brand-2))}
.draw-panel::before,.board-panel::before,.history-panel::before{background:linear-gradient(90deg,var(--brand-1),var(--brand-3),var(--brand-2))}
.footer-links a,.footer-link{color:#7554a3;text-decoration:underline;font-size:12px;font-weight:750}
.footer-links p{font-size:11px;color:#806c96;margin:10px 0 0}
.footer-link{background:transparent;border:0;padding:0;cursor:pointer}
.access-help a{color:#7554a3}
.account-overlay{position:fixed;inset:0;background:rgba(62,45,83,.50);z-index:300;display:flex;justify-content:center;align-items:center;padding:14px}
.account-card{width:min(100%,1080px);max-height:93vh;overflow:auto;background:#fff;color:#49345e;border:2px solid #ead8f8;border-radius:22px;padding:24px;box-shadow:0 24px 75px rgba(46,32,70,.28)}
.account-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.account-head h2{margin:6px 0 0;font-size:27px}
.account-layout{display:grid;grid-template-columns:minmax(205px,.8fr) minmax(340px,1.4fr);gap:20px;margin:18px 0}
.account-list-pane,.user-form,.profile-preview{border:1px solid #e9daf5;background:#fdf9ff;padding:16px;border-radius:15px}
.user-list{margin-top:15px;display:flex;flex-direction:column;gap:8px}
.user-line{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid #dfcbea;background:white;border-radius:10px;padding:11px;text-align:left;color:#654984;cursor:pointer}
.user-line small{color:#8c799f}.user-line.selected{outline:3px solid #f5afca}.user-line i{font-size:11px;font-style:normal;color:#368a57}
.account-action{padding:12px;border:0;border-radius:11px;font-weight:800;width:100%}
.user-form label{font-size:13px;font-weight:800;display:block;margin:12px 0 5px}
.user-form>input:not([type=file]),.color-row input{font:inherit;width:100%;background:#fff;color:#49345e;border:1px solid #d8c1ec;border-radius:10px;padding:10px;min-height:42px}
.user-form input[type=file]{font:inherit;max-width:100%;color:#60487c}
.color-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.color-row label{min-width:0}.check-label{display:flex!important;align-items:center;gap:10px}.check-label input{width:20px;height:20px}
.form-actions{display:flex;gap:12px;margin-top:17px;flex-wrap:wrap}.form-actions button{border:0;border-radius:10px;padding:12px 18px;font-weight:850;cursor:pointer}
.account-error{font-size:13px;font-weight:700;color:#bd3f64;min-height:24px;margin-top:10px}
.profile-preview{display:flex;align-items:center;gap:17px;font-size:22px;font-weight:850;min-height:100px}
.profile-preview img{width:80px;height:80px;object-fit:contain;border-radius:13px;border:1px solid #eadcf9;background:white}
.pdf-link{display:inline-block;padding:12px 15px;border-radius:10px;background:#eaf4ff;color:#2862a0;text-decoration:none;font-weight:850}
@media(max-width:700px){.account-layout{grid-template-columns:1fr}.account-card{padding:13px}.color-row{grid-template-columns:1fr}.account-head h2{font-size:21px}}
.tv-lite .account-card{box-shadow:none!important}


/* v2.2 — identité visuelle personnalisée, confort de lecture Chrome et Smart TV */
:root{
 --brand-wash-1:rgba(255,128,181,.22);
 --brand-wash-2:rgba(125,202,255,.20);
 --brand-wash-3:rgba(255,214,107,.19);
 --brand-panel-1:rgba(255,128,181,.10);
 --brand-panel-2:rgba(125,202,255,.09);
 --brand-line:rgba(255,128,181,.33);
}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body{overflow-x:hidden}
/* Les gradients sont calculés une seule fois au changement de compte, sans animation permanente. */
body.theme-active{
 background:radial-gradient(ellipse at 10% 8%,var(--brand-wash-1) 0%,transparent 44%),
 radial-gradient(ellipse at 90% 16%,var(--brand-wash-2) 0%,transparent 42%),
 radial-gradient(ellipse at 57% 95%,var(--brand-wash-3) 0%,transparent 45%),
 linear-gradient(180deg,#fffefa 0%,#f9f8ff 54%,#fffdf7 100%);
}
body.theme-active .mode-card#select90{background:linear-gradient(145deg,#fff,var(--brand-panel-1))}
body.theme-active .mode-card#select75{background:linear-gradient(145deg,#fff,var(--brand-panel-2))}
body.theme-active .draw-panel,body.theme-active .board-panel,body.theme-active .history-panel{
 background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(255,255,255,.93),var(--brand-panel-2));
 border-color:var(--brand-line);
}
body.theme-active .timer-box{background:linear-gradient(110deg,var(--brand-panel-1),#fff,var(--brand-panel-2));border-color:var(--brand-line)}
body.theme-active .board-ball:not(.is-drawn){background:linear-gradient(140deg,#fff,var(--brand-panel-2));border-color:var(--brand-line)}
body.theme-active .top-tag{border-color:var(--brand-line)}
/* Bloc logo généreux : image entière affichée sans recadrage */
.topbar .identity{min-width:0;flex:1;gap:19px;align-items:center}
.topbar .identity>div:last-child{min-width:0}
#brandLogo{width:clamp(90px,9vw,128px);height:clamp(90px,9vw,128px);flex:0 0 auto;border-radius:23px;
 background:linear-gradient(140deg,var(--brand-wash-1),#fff 50%,var(--brand-wash-2));
 border:3px solid var(--brand-line);padding:9px;box-shadow:0 8px 26px rgba(90,60,130,.11);font-size:45px;overflow:hidden}
#brandLogo img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;border-radius:12px}
#brandName{font-size:clamp(22px,2.8vw,34px);letter-spacing:-.8px;line-height:1.13;overflow-wrap:anywhere}
.brand-sub{font-size:13px}
/* Un défilement fluide mais natif : aucune écoute JS sur l'événement scroll. */
@supports selector(::-webkit-scrollbar){
 ::-webkit-scrollbar{width:12px;height:12px}
 ::-webkit-scrollbar-track{background:#f4edfb;border-radius:12px}
 ::-webkit-scrollbar-thumb{border:3px solid #f4edfb;border-radius:12px;background:linear-gradient(180deg,var(--brand-1),var(--brand-2))}
 ::-webkit-scrollbar-thumb:hover{background:var(--brand-1)}
}
.account-card{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--brand-1) #f4edfb}
@media(max-width:700px){
 .topbar{flex-wrap:wrap}
 #brandLogo{width:78px;height:78px;border-radius:16px;padding:6px}
 #brandName{font-size:clamp(20px,5vw,27px)}
 .top-tag{display:none}
 .lock-button{margin-left:auto}
}
/* Smart TV : éviter les gradients radiaux nombreux et scroll smooth coûteux. */
.tv-lite{scroll-behavior:auto}
body.tv-lite.theme-active{background:linear-gradient(120deg,#fffafc 0%,#f7f8ff 55%,#fffdf5 100%)}
.tv-lite #brandLogo{box-shadow:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{scroll-behavior:auto!important}}

/* v2.5 : identité officielle Bingo Web sur la page de connexion.
   Les logos de profils restent gérés séparément dans l'espace de jeu. */
.access-icon{width:min(100%,325px);height:198px;border-radius:0;background:transparent;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;overflow:visible}
.access-icon img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.tv-lite .access-icon{background:transparent!important}
@media(max-width:500px){.access-icon{height:156px;max-width:270px}}
