:root{--main-purple:#8205b1;--dark-purple:#5d0480;--light-purple-bg:#f0e6f7;--light-blue-bg:#eef;--danger-color:#721c24;--danger-bg:#f8d7da;--danger-border:#f5c6cb;--leaderboard-link-color:gold;--theme-button-color:#add8e6;--modal-content-background-color:#fff}body{align-items:center;background-attachment:fixed;background-color:var(--background-color);background-image:url(/images/fond.png);background-position:50%;background-size:cover;color:var(--text-color);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:5vh;padding:0}#app,body{display:flex;margin:0}#app{background-color:var(--modal-content-background-color);border-radius:10px;box-shadow:0 0 20px rgba(0,0,0,.4);flex-direction:column;gap:20px;max-width:1200px;padding:20px;width:95%}header h1{color:var(--dark-purple);font-size:1.8em;margin:0 0 20px;text-align:center}#auth-section{background-color:var(--lobby-actions-background-color);border:1px solid #ccc;border-radius:8px;padding:20px;text-align:center}#auth-section input{border:1px solid #ddd;border-radius:5px;margin:5px;max-width:250px;padding:10px;width:calc(50% - 12px)}#auth-section button{background-color:var(--main-purple);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1em;margin:10px 5px;padding:10px 20px}#auth-section button:hover{background-color:var(--dark-purple)}#auth-message{color:red;font-weight:700}#lobby-section{display:flex;flex-direction:column;gap:20px}#lobby-columns-container{border:1px solid #ddd;border-radius:8px;display:flex;flex-wrap:wrap;overflow:hidden}#lobby-left-column,#lobby-right-column{display:flex;flex-direction:column;gap:5px;padding:5px}#lobby-left-column{background-color:var(--table-row-fond);border-right:1px solid #ddd}#lobby-right-column{flex:3;min-width:400px}#chat-box{border:1px solid #ccc;border-radius:5px;height:260px;overflow-wrap:break-word;overflow-y:auto;padding:5px}#chat-box p{line-height:1.4;margin:3px 0;padding:0}#chat-input-controls{display:flex;gap:10px}#chat-input{background-color:var(--chat-background-color);border:1px solid #ddd;border-radius:4px;flex:1;padding:8px}#send-chat{background-color:var(--main-purple);border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 15px}#send-chat:hover{background-color:var(--dark-purple)}#player-table-list{background-color:#eee;border:1px solid #ddd;border-radius:4px;display:grid;gap:1px;grid-template-columns:1fr;max-height:280px;overflow-y:auto}.player-table-header,.player-table-row{padding:8px 10px;text-align:left}.player-table-header{background-color:var(--dark-purple);color:#fff;font-weight:700;text-align:center}.player-table-row{align-items:center;background-color:#fff;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:5px 10px}#game-list-container{background-color:var(--game-list-row-background-color);border:1px solid #ddd;border-radius:5px;padding:2px}#game-list{list-style:none;margin:0;padding:0}#game-list li{align-items:center;border-bottom:1px dashed #eee;display:flex;justify-content:space-between;padding:8px 0}#game-list li button{background-color:var(--main-purple);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8em;margin-left:10px;padding:5px 10px}#game-list li button:hover{background-color:var(--dark-purple)}#score-board{background-color:var(--light-purple-bg);border:1px solid #ddd;border-radius:8px;font-weight:700;padding:10px;text-align:center}#game-info-summary{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.25);color:var(--dark-purple,#4a148c);display:flex;flex-wrap:wrap;font-size:1em;font-weight:400;gap:15px;padding:8px 15px;text-align:center;text-shadow:none}#game-info-summary span{background-color:transparent;border-radius:4px;color:#311b92;font-weight:700;padding:3px 8px}#game-columns-container{display:flex;flex-grow:1;flex-wrap:wrap;gap:20px;min-height:0}#game-main-column{display:flex;flex:2;flex-direction:column;gap:20px}#game-right-column{display:flex;flex:1;flex-direction:column;gap:5px;justify-content:flex-end;min-height:0}#game-area{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url(../images/table_background.png);background-position:50%;background-repeat:no-repeat;background-size:cover;border:5px solid var(--dark-purple);border-radius:15px;box-shadow:0 10px 20px rgba(0,0,0,.5);height:450px;position:relative;width:100%}#player-positions{height:100%;position:absolute;width:100%;z-index:10}.game-player{align-items:center;border:4px solid transparent;border-radius:12px;color:#fff;display:flex;flex-direction:column;font-weight:700;gap:5px;min-width:80px;padding:10px;position:absolute;text-shadow:1px 1px 2px rgba(0,0,0,.6);transition:all .3s ease-in-out}#player-top{left:50%;top:10px;transform:translateX(-50%)}#player-left{left:10px}#player-left,#player-right{top:50%;transform:translateY(-50%)}#player-right{right:10px}#player-bottom{bottom:0;color:#9acd32;height:0;left:45%;transform:translateX(-10%)}#game-table{height:60%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:60%;z-index:1}#played-cards{height:100%;position:relative;width:100%}.card{align-items:center;background-color:transparent;border:none;box-shadow:0 2px 5px rgba(0,0,0,.3);display:flex;justify-content:center}.card img{border-radius:5px;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.card span{display:none}.card.diamonds,.card.hearts{color:red}.card.spades{color:#000}.card.clubs{color:green}.card.selected{border:3px solid blue;box-shadow:0 0 10px blue;transform:translateY(-20px)}.played-card{cursor:default;position:absolute;transition:transform .6s cubic-bezier(.25,1,.5,1),opacity .4s ease-out}#your-hand{background-color:transparent;border:none;border-radius:8px;padding:0;text-align:center}#hand-cards{bottom:-310px;display:flex;flex-wrap:wrap;gap:8px;height:300px;justify-content:center;left:50%;margin-top:10px;position:absolute;transform:translateX(-50%);width:1px}#in-game-chat-container{background-color:var(--game-list-row-background-color);border:1px solid #ddd;border-radius:8px;display:flex;flex-direction:column;flex-grow:1;gap:10px;height:200px;margin-bottom:10px;min-height:0;overflow-y:auto;padding:15px}#in-game-chat-box{background-color:var(--chat-background-color);border:1px solid #ccc;border-radius:5px;flex-grow:1;height:100%;overflow-wrap:break-word;overflow-y:auto;padding:10px}#in-game-chat-input-controls{display:flex;gap:10px}#in-game-chat-input{background-color:var(--chat-background-color);border:1px solid #ddd;border-radius:4px;flex:1;min-width:0;padding:8px}#send-in-game-chat{background-color:var(--create-game-button-bg);border:none;border-radius:4px;color:#000;cursor:pointer;font-weight:700;padding:8px 15px}#game-messages{background-color:var(--lobby-actions-background-color);border:1px solid #ccc;border-radius:5px;height:120px;overflow-y:auto;padding:10px}#game-messages p{font-size:.9em;margin:2px 0}#game-messages .info{color:#0056b3}#game-messages .error{color:#c82333;font-weight:700}#game-messages p.announcement{color:#17a2b8;font-style:italic;font-weight:700}#action-container{background-color:var(--lobby-actions-background-color);border:1px solid #ddd;border-radius:8px;display:flex;flex-direction:column;padding:10px}#game-controls{margin:0 auto}.icon-button{background:none;border:none;border-radius:50%;cursor:pointer;font-size:1.4em;height:44px;padding:8px;position:relative;transition:all .2s ease;width:44px}.icon-button:hover{background-color:hsla(0,0%,100%,.15);color:#000}.icon-button.leave{color:#ff4d4d}.icon-button.leave:hover{background-color:#ff4d4d;color:#fff}.icon-button[data-tooltip]:before{background-color:#333;border-radius:var(--border-radius);color:#fff;content:attr(data-tooltip);font-size:.8rem;padding:6px 10px;transform:translateX(-50%);white-space:nowrap}.icon-button[data-tooltip]:after,.icon-button[data-tooltip]:before{bottom:125%;left:50%;opacity:0;position:absolute;transition:opacity .2s ease,visibility .2s ease;visibility:hidden;z-index:100}.icon-button[data-tooltip]:after{border:5px solid transparent;border-top-color:#333;content:"";transform:translateX(-50%) translateY(100%)}.icon-button[data-tooltip]:hover:after,.icon-button[data-tooltip]:hover:before{opacity:1;visibility:visible}#announcement-controls,#bid-controls{text-align:center}#bid-controls,#coinche-bid-controls{bottom:auto;flex-wrap:nowrap;left:auto;margin:0 auto;position:static;transform:none;width:auto}#bid-buttons-container{display:grid;gap:5px;grid-template-columns:repeat(5,1fr)}.bid-button{background-color:#f0f0f0;border:1px solid #ccc;border-radius:5px;cursor:pointer;font-size:1em;font-weight:700;padding:10px 15px;transition:background-color .2s}#bid-buttons-container .bid-button:hover{background-color:#a7d1ff}#bid-buttons-container .bid-button[data-suit=pass]{background-color:#e2e3e5;border-color:#d6d8db;color:#383d41;grid-column:1/-1}.modal{align-items:center;animation:fadeIn .3s ease-out;background-color:rgba(0,0,0,.5);display:none;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1001}.modal-content{animation:slideUp .4s ease-out;background-color:var(--modal-content-background-color);border-radius:10px;box-shadow:0 5px 25px rgba(0,0,0,.2);display:flex;flex-direction:column;max-height:90%;max-width:500px;overflow:hidden;position:relative;width:90%}.close-button{color:#999;cursor:pointer;font-size:32px;font-weight:700;line-height:1;position:absolute;right:15px;top:12px;transition:color .2s ease,transform .2s ease}.close-button:hover{color:#333;transform:scale(1.1)}#create-game-modal .modal-content{align-items:center;display:flex;flex-direction:column;gap:15px;max-width:800px;width:90%}#game-closed-modal .modal-content{padding:30px;text-align:center;width:500px}#announcement-modal .modal-content,#last-trick-modal .modal-content{max-width:600px;min-width:400px;text-align:center;width:auto}#soundboard-modal .modal-content{width:400px}#proposed-card-container{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:50}#proposed-card-container h4{color:#fff;margin:0 0 10px;text-shadow:1px 1px 2px #000}#proposed-card-display .card{box-shadow:0 0 15px #ff0;cursor:default}@keyframes flip-deal-in{0%{opacity:0;transform:scale(.5) rotateY(90deg)}to{opacity:1;transform:scale(1) rotateY(0deg)}}#proposed-card-display .card.dealt-in-center{animation:flip-deal-in .6s ease-out}#soundboard-grid{display:grid;gap:15px;grid-template-columns:1fr 1fr;padding:20px 0}.sound-btn{background-color:#f8f9fa;border:1px solid #ddd;cursor:pointer;font-size:1.2em;padding:20px}.sound-btn:active{transform:scale(.95)}.sound-indicator{animation:fade-up 2s ease-out;font-size:2em;position:absolute;top:-20px}@keyframes fade-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}#announcement-cards-display{gap:10px}#announcement-cards-display,#last-trick-cards-display{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;width:100%}#last-trick-cards-display{gap:15px;min-height:120px}#last-trick-cards-display .played-card-in-modal{align-items:center;display:flex;flex-direction:column;gap:5px}#game-list-table{background-color:var(--background-color);background-image:var(--background-image-fond-chat);background-repeat:no-repeat;background-size:cover;border-radius:8px;display:flex;flex-direction:row;gap:5px;min-height:200px;overflow-x:auto;overflow-y:hidden;padding:2px}.game-list-row{display:flex;flex-direction:column;flex-shrink:0;gap:5px}.game-list-players,.game-list-row{align-items:center;justify-content:center}.game-list-players{background-image:url(/images/table.png);background-position:50%;background-repeat:no-repeat;background-size:contain;display:grid;gap:10px;grid-template-areas:"ouest . nord" "sud centre est";grid-template-columns:1fr auto 1fr;grid-template-rows:repeat(3,auto);height:200px;padding:10px;width:300px}.game-list-details-center{align-items:center;background-color:var(--game-list-details-center-background-color);border-radius:10px;color:#fff;display:flex;flex-direction:column;grid-area:centre;justify-content:center;padding:5px;pointer-events:none;text-align:center;text-shadow:1px 1px 3px rgba(0,0,0,.9)}.game-list-details-center h4{color:#fff;font-size:1.1em;margin:0 0 5px}.game-list-details-center p{font-size:.8em;margin:2px 0}.player-slot{align-items:center;background-color:hsla(0,0%,100%,.7);border:1px solid #ccc;border-radius:5px;display:flex;font-size:.9em;font-weight:700;justify-content:center;min-width:80px;padding:5px;text-align:center}.player-slot.north{grid-area:nord}.player-slot.south{grid-area:sud}.player-slot.east{grid-area:est}.player-slot.west{grid-area:ouest}.player-slot .join-slot-button{background-color:var(--main-purple);border:none;border-radius:4px;box-sizing:border-box;color:#fff;cursor:pointer;font-weight:700;padding:8px 12px;transition:background-color .2s ease;white-space:nowrap}.player-slot .join-slot-button:hover{background-color:var(--dark-purple)}#bid-buttons-container .pass-button{background-color:#d9534f;border-color:#d43f3a;color:#fff;font-size:1.1em;font-weight:700;grid-column:1/-1}#bid-buttons-container .pass-button:hover{background-color:#c9302c}#game-type-display{color:#555;font-style:italic;margin-bottom:15px;margin-top:-10px;text-align:center}.spectate-game-button{background-color:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;padding:8px 15px;transition:background-color .2s ease}.spectate-game-button:hover{background-color:#138496}.user-display-container{background-color:#e9ecef;border-radius:4px;font-weight:500;margin-bottom:15px;padding:10px;text-align:center}.lobby-actions a,.lobby-actions button{align-items:center;border:none;border-radius:5px;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:1em;font-weight:700;justify-content:center;line-height:1.5;margin:0;padding:12px 20px;text-align:center;text-decoration:none;transition:all .2s ease}.lobby-actions{align-items:flex-end;display:flex;gap:15px;margin-top:0}.lobby-actions a:active,.lobby-actions button:active{transform:scale(.97)}#moderation-link{background-color:red;color:#000;display:none}#moderation-link:hover{background-color:#fa4040}.logout-btn{background-color:#6c757d;color:#fff}.logout-btn:hover{background-color:#5a6268}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-header{background-color:var(--modal-content-background-color);border-bottom:1px solid #e0e0e0;padding:16px 24px}.modal-header h2{color:var(--dark-purple);font-size:1.5em;margin:0}.modal-body{line-height:1.6;overflow-y:auto;padding:20px 24px}.modal-footer{background-color:var(--modal-content-background-color);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.modal-content button.modal-button{border:1px solid transparent;border-radius:5px;cursor:pointer;font-size:.9em;font-weight:700;padding:10px 20px}.modal-button.secondary{background-color:#e9ecef;border-color:#e9ecef;color:#495057}.modal-button.secondary:hover{background-color:#dee2e6}#create-game-modal .modal-body input,#create-game-modal .modal-body select{box-sizing:border-box;padding:8px;width:100%}.danger-zone{background-color:#f2dede;border:2px solid #d9534f;border-radius:8px;padding:15px}.danger-zone h2{color:#a94442}.danger-zone button{background-color:#d9534f;color:#fff}.danger-zone button:hover{background-color:#c9302c}.current-turn-highlight{border-color:gold;box-shadow:0 0 20px 8px rgba(255,215,0,.75)}.summary-turn{margin-left:auto}.player-cell{align-items:center;display:flex;gap:10px}.lobby-avatar{border:1px solid #ddd;border-radius:50%;height:32px;width:32px}.game-avatar,.lobby-avatar{-o-object-fit:cover;object-fit:cover}.game-avatar{border:2px solid #fff;border-radius:50%;box-shadow:0 0 5px rgba(0,0,0,.5);height:50px;margin-bottom:5px;width:50px}.game-list-avatar{border:1px solid #ccc;border-radius:50%;height:24px;margin-right:8px;-o-object-fit:cover;object-fit:cover;width:24px}.player-slot.empty-slot{background-color:transparent;border-color:transparent;padding:0}#radio-player-container{align-items:center;background:rgba(0,0,0,.05);border-radius:8px;display:flex;flex-shrink:0;gap:8px;margin-left:auto;padding:6px 12px}#radio-now-playing-container{height:1.2em;overflow:hidden;position:relative;width:300px}#radio-now-playing{animation:none;display:inline-block;font-size:.9em;font-weight:700;position:absolute;white-space:nowrap;will-change:transform}#radio-now-playing.scrolling{animation:marquee 15s linear infinite}@keyframes marquee{0%{transform:translateX(300px)}to{transform:translateX(-100%)}}#radio-mute-btn,#radio-play-pause-btn{background:none;border:none;cursor:pointer;font-size:1.4em;line-height:1;margin:0;padding:0;transition:transform .1s,opacity .2s}#radio-mute-btn:hover,#radio-play-pause-btn:hover{transform:scale(1.1)}#radio-mute-btn:active,#radio-play-pause-btn:active{transform:scale(.95)}#radio-volume-slider{cursor:pointer;transition:opacity .3s;width:70px}#radio-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#4caf50;border-radius:50%;cursor:pointer;height:14px;width:14px}#radio-volume-slider::-moz-range-thumb{background:#4caf50;border:none;border-radius:50%;cursor:pointer;height:14px;width:14px}.kick-bot-btn{background:#ffc107;border:none;border-radius:4px;color:#212529;cursor:pointer;font-size:11px;font-weight:700;margin-left:8px;opacity:.8;padding:4px 8px;text-transform:uppercase;transition:all .2s}.kick-bot-btn:hover{background:#e0a800;opacity:1}.kick-player-game-btn{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8em;margin-left:5px;padding:4px 8px;transition:background-color .2s ease}.kick-player-game-btn:hover{background-color:#c82333}#color-swatch-grid{display:grid;gap:15px;grid-template-columns:repeat(4,1fr);padding:20px}.color-swatch{border:3px solid #fff;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.2);cursor:pointer;height:50px;transition:transform .2s ease;width:50px}.color-swatch:hover{transform:scale(1.1)}#game-color-picker-btn{background-color:#f0f0f0;border:1px solid #ccc;border-radius:4px;cursor:pointer}.card span:last-child{font-size:1.9em;line-height:.9}#bid-buttons-container .bid-button .bid-symbol{font-size:2.2em;line-height:1}#bid-buttons-container .bid-button[data-suit=diamonds],#bid-buttons-container .bid-button[data-suit=hearts]{color:#d32f2f!important}#bid-buttons-container .bid-button[data-suit=clubs]{color:green!important}#bid-buttons-container .bid-button[data-suit=spades]{color:#000!important}#bid-buttons-container .bid-button[data-suit=sans-atout],#bid-buttons-container .bid-button[data-suit=tout-atout]{color:#1a237e!important}.card.clubs .suit-symbol{color:green}.card.spades .suit-symbol{color:#000}.whisper{background-color:#f3e5f5;border-radius:4px;color:#6a1b9a;font-style:italic;padding:5px 8px}#whisper-modal .modal-body{display:flex;flex-direction:column;gap:15px}#whisper-modal label{display:block;font-weight:700;margin-bottom:5px}#whisper-modal select,#whisper-modal textarea{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-family:inherit;font-size:1em;padding:10px;width:100%}#whisper-modal-message{min-height:1.2em}#lobby-color-picker-btn,#open-smiley-modal-btn,#open-whisper-modal-btn{background-color:var(--background-color);border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:1.1em}#coinche-bid-controls{background-color:var(--light-purple-bg);border:1px solid var(--main-purple);border-radius:8px;display:flex;flex-direction:column;gap:15px;padding:15px}#coinche-bid-controls h3{color:var(--dark-purple);margin:0;text-align:center}.coinche-contract-display{background-color:#fff;border-radius:5px;font-weight:700;padding:8px;text-align:center}.coinche-contract-display span{color:var(--main-purple)}.coinche-bid-actions{flex-direction:column}.coinche-bid-actions,.contract-bid-section{display:flex;gap:10px}#coinche-bid-value{border:1px solid #ccc;border-radius:5px;flex:1;font-size:1.1em;padding:10px}#coinche-suit-buttons{display:grid;gap:5px;grid-template-columns:repeat(4,1fr)}#coinche-suit-buttons button{font-size:2em;font-weight:700}#coinche-suit-buttons button[data-suit=spades]{color:#333}#coinche-suit-buttons button[data-suit=diamonds],#coinche-suit-buttons button[data-suit=hearts]{color:#e74c3c}#coinche-suit-buttons button[data-suit=clubs]{color:green}#coinche-suit-buttons button[data-suit=sans-atout],#coinche-suit-buttons button[data-suit=tout-atout]{color:#2c3e50;font-size:1.5em;font-weight:400}.special-bid-section{display:grid;gap:10px;grid-template-columns:1fr 1fr}#coinche-pass-btn{background-color:#f8d7da;border-color:#f5c6cb}#coinche-coinche-btn{background-color:#ffc107;border-color:#e0a800}#coinche-coinche-btn:disabled{background-color:#e9ecef;color:#6c757d;cursor:not-allowed}#game-type-selection-cards{display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.game-type-card{border:2px solid #ddd;border-color:var(--dark-purple);border-radius:8px;cursor:pointer;text-align:center;transition:all .2s ease-in-out}.game-type-card,.game-type-card.active{background-color:var(--light-purple-bg)}.game-type-card.active{border:4px solid red;box-shadow:0 4px 12px rgba(93,4,128,.2);transform:scale(1.03)}.game-type-card h3{color:var(--dark-purple);margin:0 0 5px}.game-type-card p{color:#555;font-size:.85em;margin:0}.announcement-switch-container{align-items:center;display:flex;gap:15px;margin-bottom:15px}.switch{display:inline-block;height:34px;position:relative;width:60px}.switch input{height:0;opacity:0;width:0}.slider{background-color:#ccc;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{background-color:#fff;bottom:4px;content:"";height:26px;left:4px;width:26px}input:checked+.slider{background-color:var(--main-purple)}input:focus+.slider{box-shadow:0 0 1px var(--main-purple)}input:checked+.slider:before{transform:translateX(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.bid-button-symbol{font-size:2em}#game-messages .trick-points{background-color:#fff3e0;border-radius:4px;color:#fd7e14;font-weight:700;padding:3px 6px}.private-game-container{align-items:center;display:flex;gap:15px;margin-top:15px}#password-input-container{margin-top:15px;width:100%}#password-input-container input{box-sizing:border-box;width:100%}.game-actions-container{align-items:center;display:flex;gap:5px}.close-game-btn{background-color:#dc3545;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:1em;line-height:1;margin-left:0;padding:8px 12px;transition:background-color .2s ease}#smiley-grid{display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));max-height:400px;overflow-y:auto;padding:10px}.smiley-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;justify-content:center;padding:5px;transition:background-color .2s ease,transform .2s ease}.smiley-item:hover{background-color:#f0f2f5}.smiley-item img{height:48px;-o-object-fit:contain;object-fit:contain;width:48px}.chat-smiley{margin:0 2px;vertical-align:middle}#player-bottom .game-avatar,#player-bottom>span,#your-hand h3{display:none}.card-holder{bottom:0;height:100%;left:0;position:absolute;transform-origin:bottom center;width:1px}.card-holder .card{bottom:100%;height:112px;left:-40px;position:absolute;transition:transform .2s ease-out;width:80px}.card-holder:hover .card{transform:translateY(-20px);z-index:100}body,html{height:100%;margin:0;overflow:hidden}#game-section{display:flex;flex-direction:column}#in-game-chat-input-container{flex-shrink:0}#game-status-bar{align-items:center;background-color:transparent;background-image:url(../images/fond-barre.png);background-position:50%;background-size:100% 100%;box-shadow:0 10px 20px rgba(0,0,0,.5);display:grid;gap:10px;grid-template-columns:1fr 1fr 2fr 1fr 1fr;height:70px;justify-content:space-between;margin:5px auto 10px;padding:8px;width:99%}.team-score{background-color:rgba(0,0,0,.2);border-radius:var(--border-radius);flex-basis:20%;padding:5px;text-align:center}.team-score span{display:block}#team1-names,#team2-names{color:#ccc;font-size:.8em;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#team1-score,#team2-score{color:#fff;font-size:1.4em;font-weight:700}#game-main-info{color:#ff0;font-size:1.1em;font-weight:600;margin-bottom:2px}#game-turn-info{color:#e0e0e0;font-size:.9em;font-weight:400}#lobby-lists-area{flex-grow:1;margin-top:0;min-height:0;overflow-y:auto}#lobby-tabs{border-bottom:2px solid var(--border-color);display:flex;margin-bottom:10px}.lobby-tab{background:none;border:none;border-bottom:3px solid transparent;color:#ccc;cursor:pointer;font-size:1.1em;font-weight:500;padding:10px 20px;transition:all .2s ease}.lobby-tab:hover{background-color:hsla(0,0%,100%,.05)}.lobby-tab.active{border-bottom-color:var(--primary-color);color:var(--primary-color)}.lobby-tab-content{display:none}.lobby-tab-content.active{display:block}.status-dot{border-radius:50%;height:12px;width:12px}.status-dot.registering{background-color:#28a745}.status-dot.in-progress{background-color:#ffc107}.status-dot.finished{background-color:#6c757d}.status-text{color:#e2e8f0;font-weight:500}.player-count{color:#fff;font-size:1.1em;font-weight:600;margin-bottom:5px}.player-progress-bar{background-color:rgba(0,0,0,.4);border-radius:3px;height:6px;overflow:hidden;width:100%}.player-progress-bar .progress{background-color:var(--primary-color);border-radius:3px;height:100%;transition:width .3s ease}.typing-indicator-wrapper{align-items:center;display:inline-flex;margin-left:6px;vertical-align:middle}.typing-indicator-dot{animation:typing-pulse 1.4s ease-in-out infinite both;background-color:#90a4ae;border-radius:50%;display:inline-block;height:6px;margin:0 1px;width:6px}.typing-indicator-dot:first-child{animation-delay:-.32s}.typing-indicator-dot:nth-child(2){animation-delay:-.16s}@keyframes typing-pulse{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.modal-options-container{display:flex;gap:20px;margin-bottom:15px;width:100%}.announcement-switch-container,.private-container,.tournament-container{gap:10px}.tarot-game #proposed-card-display .card,.tarot-game .card,.tarot-game .card img,.tarot-game .played-card{height:122px;width:65px}.modal-content.large{max-width:90%;width:1200px}#ecart-chien-container,#ecart-hand-container{text-align:center}#ecart-chien-cards,#ecart-hand-cards{background-color:rgba(0,0,0,.2);border-radius:var(--border-radius);display:flex;flex-wrap:wrap;gap:10px;justify-content:center;min-height:130px;padding:10px}#ecart-hand-cards .card{cursor:pointer;transition:all .2s ease}#ecart-hand-cards .card:hover{transform:translateY(-5px)}#ecart-hand-cards .card.selected{box-shadow:0 0 15px 5px var(--primary-color);opacity:.7;transform:scale(.9)}#ecart-counter{color:var(--primary-color);font-weight:700;margin:10px 0}#turn-compass{background-color:rgba(0,0,0,.2);border:2px solid hsla(0,0%,100%,.1);border-radius:50%;height:80px;left:6%;position:absolute;top:10%;transform:translate(-50%,-50%);width:80px;z-index:1}#compass-pointer{height:100%;position:relative;transition:transform .5s cubic-bezier(.4,1.8,.5,1);width:100%}#compass-pointer:before{border-bottom:20px solid var(--primary-color,#ffc107);border-left:10px solid transparent;border-right:10px solid transparent;content:"";height:0;left:50%;position:absolute;top:6px;transform:translateX(-50%);width:0}#tarot-score-banner{background-color:rgba(0,0,0,.3);border:1px solid hsla(0,0%,100%,.1);border-radius:var(--border-radius-large);display:flex;justify-content:space-around;margin:5px auto 10px;max-width:800px;padding:8px;width:100%}.tarot-player-score{color:#fff;padding:5px 10px;text-align:center}.tarot-player-score .player-name{color:#ccc;display:block;font-size:.9em}.tarot-player-score .player-score{display:block;font-size:1.3em;font-weight:700}.round-score-change{font-size:.8em;font-weight:400}.round-score-change.positive{color:#28a745}.round-score-change.negative{color:#dc3545}.player-score-slot{background-color:rgba(0,0,0,.2);border-radius:var(--border-radius);display:flex;flex-direction:column;justify-content:center;min-height:40px;padding:5px;text-align:center}.player-score-slot .player-name{color:#ccc;display:block;font-size:.8em;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#refresh-client-text{font-weight:700}.player-score-slot .player-score{color:#fff;display:block;font-size:1.4em;font-weight:700}.dropdown{display:inline-block;position:relative}.dropdown-content{background-color:var(--modal-content-background-color);border-radius:5px;box-shadow:0 8px 16px 0 rgba(0,0,0,.2);display:none;min-width:160px;overflow:hidden;position:absolute;right:0;z-index:1}.dropdown-content a,.dropdown-content button{background:none;border:none;color:var(--text-color);cursor:pointer;display:block;font-size:1em;font-weight:700;padding:12px 16px;text-align:left;text-decoration:none;width:100%}.dropdown-content a:hover,.dropdown-content button:hover{background-color:var(--light-purple-bg)}.dropdown-content button#open-theme-modal-btn{border-top:1px solid var(--border-color)}.dropdown.active .dropdown-content{display:block}#game-phase-info{padding:0 10px;text-align:center}#loading-overlay{align-items:center;background-color:rgba(0,0,0,.7);color:#fff;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}#loading-box{background-color:#2c3e50;border-radius:10px;box-shadow:0 5px 15px rgba(0,0,0,.5);padding:30px 40px;text-align:center}#loading-title{font-size:1.2em;margin-bottom:20px}#loading-bar-container{background-color:#34495e;border-radius:10px;height:20px;margin:0 auto;overflow:hidden;width:300px}#loading-bar{background-color:#2980b9;border-radius:10px;height:100%;transition:width .2s ease-out;width:0}#loading-progress-text{font-size:1em;margin-top:15px}.trick-winner-highlight{animation:pulse 1.5s ease-out;box-shadow:0 0 15px 5px rgba(255,215,0,.8)}@keyframes pulse{0%{box-shadow:0 0 15px 5px rgba(255,215,0,.7)}50%{box-shadow:0 0 25px 10px gold}to{box-shadow:0 0 15px 5px rgba(255,215,0,.7)}}.game-message.bid-announcement{color:red;font-style:italic;font-weight:700}.game-message.pass-announcement{color:green;font-style:italic}.bid-tooltip{animation:fadeIn .3s ease-out;border:1px solid hsla(0,0%,100%,.2);border-radius:12px;color:#fff;font-size:.9em;font-weight:700;left:50%;padding:5px 10px;pointer-events:none;position:absolute;top:-20px;transform:translateX(-50%);white-space:nowrap;z-index:10}.bid-tooltip.pass{background-color:#555}.bid-tooltip.take{background-color:#27ae60}#player-top .bid-tooltip{bottom:-20px;top:auto}#player-top-left{left:10%;position:absolute;top:25%;transform:translate(-50%,-50%)}#bug-report-modal .modal-content{gap:15px;max-width:600px;padding:25px}#bug-report-modal h2{color:var(--dark-purple);margin-bottom:20px;text-align:center}#bug-report-modal input[type=email],#bug-report-modal input[type=text],#bug-report-modal select,#bug-report-modal textarea{border:1px solid #ccc;border-radius:5px;box-sizing:border-box;font-family:inherit;font-size:1em;margin-bottom:15px;padding:10px;width:100%}#bug-report-modal textarea{min-height:120px;resize:vertical}#bug-report-modal .modal-footer{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding-top:15px}#bug-report-modal .modal-footer button{font-size:.9em;padding:10px 20px;width:auto}#bug-report-modal #bug-report-message{font-weight:700;margin-bottom:10px;margin-top:-10px;text-align:center}#bug-report-modal #bug-report-message.error{color:var(--danger-color)}#bug-report-modal #bug-report-message.success{color:#28a745}.king-call-container{display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-top:20px}.king-call-btn{align-items:center;border:2px solid var(--border-color,#0f3460);border-radius:var(--border-radius-medium,6px);color:var(--text-color,#dcdcdc);cursor:pointer;display:flex;font-size:1.2em;justify-content:center;padding:15px;transition:all .2s ease}.king-call-btn:hover{background-color:var(--main-purple,#6f42c1);border-color:var(--main-purple,#6f42c1);color:#fff}.king-symbol{font-size:1.5em;margin-right:10px}.king-symbol.clubs,.king-symbol.spades{color:#555}.king-symbol.diamonds,.king-symbol.hearts{color:#e74c3c}.game-list-players.five-player-layout{grid-template-areas:"north-west center north-east" "west south east";grid-template-columns:1fr auto 1fr;grid-template-rows:1fr 1fr;padding:20px 15px}.player-slot.north-east{align-self:start;grid-area:north-east;justify-self:end}.five-player-layout .player-slot.west{align-self:center;grid-area:west;justify-self:start}.five-player-layout .player-slot.east{align-self:center;grid-area:east;justify-self:end}.five-player-layout .player-slot.south{align-self:end;grid-area:south;justify-self:center}.five-player-layout .game-list-details-center{align-self:start;grid-area:center}.five-player-game #player-top{left:67%;transform:translateX(-50%)}#tarot-score-bar{align-items:center;background-image:url(../images/fond-barre.png);background-position:50%;background-size:100% 100%;box-shadow:0 10px 20px rgba(0,0,0,.5);display:none;gap:10px;grid-template-columns:2fr 5fr;height:70px;margin:5px auto 10px;padding:8px;width:99%}#tarot-player-scores{display:grid;gap:10px;grid-template-columns:repeat(5,1fr)}#tarot-game-phase-info{text-align:center}#tarot-game-main-info{color:#ff0;font-size:1.1em;font-weight:600;margin-bottom:2px}#tarot-game-turn-info{color:#e0e0e0;font-size:.9em;font-weight:400}#profile-link{color:green}#leaderboard-link{color:var(--leaderboard-link-color)}#open-theme-modal-btn{color:var(--theme-button-color)}#create-game{background-color:var(--create-game-button-bg);color:#000;width:180px}.btn-admin-red{background-color:#dc3545;color:#fff}.btn-admin-red:hover{background-color:#c82333}.private-game-icon{color:#ffc107;font-size:.9em;margin-left:5px;vertical-align:middle}.tournament-game-icon{color:gold;filter:drop-shadow(0 0 2px rgba(255,215,0,.5));font-size:1em;margin-left:5px;vertical-align:middle}.info-tooltip{cursor:help;font-size:.85em;margin-left:5px;opacity:.7;transition:opacity .2s}.info-tooltip:hover{opacity:1}