
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#f4f1e8;background:#0c1719;font-size:16px;--gold:#e9c784;--muted:#a3b5b3;--line:#ffffff18;--green:#0e5144}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 45% 30%,#193436 0,#0c1719 68%);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;border:1px solid transparent;border-radius:9px;padding:12px 18px;font-weight:650;color:#102a29;background:var(--gold);transition:background .15s,transform .15s}button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}button:disabled{opacity:.4;cursor:not-allowed}button.quiet{background:transparent;border-color:var(--line);color:#e6eeea}button.secondary{background:#24463f;color:#e8f1ed;border-color:#ffffff20}a{color:inherit}.top{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:1.65rem;display:flex;align-items:center;gap:12px;color:var(--gold)}.brand span{font-size:1rem;letter-spacing:.25em;font-weight:750}.header-right{display:flex;align-items:center;gap:22px}.fictif,.muted{color:var(--muted);font-size:.9rem}main{max-width:1480px;margin:auto;padding:28px 4vw 45px}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-weight:400;font-size:3rem;margin-bottom:12px}h2{font-family:Georgia,serif;font-weight:400;font-size:1.6rem}h3{font-size:1rem}p{line-height:1.65}.start-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:6vw;align-items:center;min-height:70vh}.eyebrow{color:var(--gold);font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:16px}.setup{padding:30px;background:#132528;border:1px solid var(--line);border-radius:18px;max-width:520px}.setup label{display:block;color:#c9d5d1;margin:20px 0 8px;font-size:.9rem}.setup input,.setup select{width:100%;background:#0a191b;border:1px solid #42605a;color:#fff;border-radius:8px;padding:13px}.setup button.wide{width:100%;margin-top:24px}.divider{margin:25px 0;border-top:1px solid var(--line)}.row{display:flex;gap:12px;align-items:center}.row input{min-width:0}.mini-table{height:320px;border:12px solid #4c3b2d;border-radius:50%;background:radial-gradient(ellipse,#14634e,#0b3b32);box-shadow:0 0 0 3px #796247,0 30px 55px #0007;display:flex;align-items:center;justify-content:center;position:relative;margin:35px 10px}.table-mark{color:#a4c5b850;text-align:center;font-family:Georgia,serif;font-size:1.8rem;letter-spacing:.14em}.mini-cards{display:flex;position:absolute;bottom:20px;transform:rotate(-8deg);gap:5px}.mini-cards .card{transform:rotate(8deg)}.game-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.game-head h1{font-size:1.9rem;margin:0}.pill{border:1px solid #b8945955;border-radius:30px;padding:6px 12px;color:var(--gold);font-size:.85rem}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px}.board-area{min-width:0}.poker-table{min-height:400px;border:10px solid #443729;border-radius:170px;background:radial-gradient(ellipse at center,#155a49,#0c3c33);box-shadow:0 0 0 2px #8c7251,0 14px 40px #0005;padding:22px 36px;display:flex;flex-direction:column;gap:25px;justify-content:space-between}.opponents{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.player{padding:10px 14px;background:#092c28d9;border:1px solid #ffffff22;border-radius:12px;min-width:120px;text-align:center}.player.active{border-color:var(--gold);box-shadow:0 0 0 2px #e9c78420}.player-name{font-weight:650;font-size:.95rem}.avatar{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;background:#416d60;color:#f5e6bf;margin-bottom:6px}.player-stats{font-size:.85rem;color:#ccd7cf;margin-top:5px}.ai-label{color:#a1b3ad;font-size:.75rem;margin-left:5px}.table-center{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap}.pile-area{display:flex;gap:20px}.pile{text-align:center}.pile .card{display:block;margin:0 auto 8px}.pile label{font-size:.8rem;color:#b8cfc3}.pot{min-width:100px;text-align:center}.pot strong{display:block;color:var(--gold);font-family:Georgia,serif;font-size:2rem;margin:5px 0}.pot .eyebrow{margin-bottom:0}.card{display:inline-flex;flex-direction:column;justify-content:space-between;align-items:flex-start;background:#faf8ef;color:#18242c;width:66px;height:94px;border-radius:7px;padding:6px 8px;border:1px solid #d8dbce;box-shadow:0 3px 6px #0003;vertical-align:middle;flex-shrink:0;font-size:1rem;font-weight:750}.card.red{color:#ba3449}.card.frime{background:#f7edcc}.card .suit{align-self:center;font-size:1.8rem;font-weight:400}.card .bottom{align-self:flex-end;font-size:.8rem;transform:rotate(180deg)}button.card:hover:not(:disabled){transform:translateY(-8px)}.card.back{background:repeating-linear-gradient(45deg,#183944 0,#183944 4px,#224b55 4px,#224b55 6px);border:3px solid #d6d9cf;color:#d9c18f;align-items:center;justify-content:center;font-size:2rem}.card.selected{outline:3px solid var(--gold);transform:translateY(-12px)}.laid{border-top:1px solid #ffffff20;padding-top:12px;text-align:center}.melds{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.meld{padding:8px;border-radius:8px;background:#0002}.meld .card{width:38px;height:55px;font-size:.8rem;padding:3px 4px;margin-right:2px}.meld .card .suit{font-size:1.1rem}.meld .card .bottom{display:none}.meld-label{font-size:.75rem;color:#c1d5c9;margin-bottom:6px}.hand-panel{margin-top:25px;padding:22px;background:#122629;border:1px solid var(--line);border-radius:15px}.hand-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.hand-heading h2{margin:0;font-size:1.3rem}.hand-cards{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;min-height:100px;padding:10px 0}.turn-message{text-align:center;margin:12px 0;color:#dee7de;min-height:26px}.controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:15px}.sidebar{background:#132326;border:1px solid var(--line);border-radius:16px;padding:22px;height:fit-content}.score-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:8px}.score-row.mine{color:var(--gold)}.score-detail{font-size:.8rem;color:#a8bfba;margin-top:4px}.score-numbers{text-align:right;white-space:nowrap}.score-numbers strong{font-size:1.1rem}.log{margin-top:24px}.log p{font-size:.85rem;color:#b1c3bc;margin:0 0 10px;line-height:1.5}.lobby{max-width:650px;margin:40px auto}.invite-code{font-family:monospace;font-size:2.8rem;letter-spacing:.18em;color:var(--gold);margin:20px 0}.lobby-players{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0}.empty-seat{border:1px dashed #6c817a;border-radius:12px;padding:16px;color:#9bb2a8}.summary{padding:24px;background:#142a2b;border:1px solid #e9c78466;border-radius:15px;margin-top:22px}.summary h2{color:var(--gold)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--line)}.scroll-table{overflow-x:auto}.result-money{color:var(--gold)}details{margin:18px 0}summary{cursor:pointer;color:var(--gold);padding:8px 0}.transfer{display:flex;justify-content:space-between;font-size:.9rem;padding:7px 0;color:#c4d6ca}.footer-note{text-align:center;color:#8da59c;font-size:.8rem;margin-top:20px}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#e9c784;color:#122b28;border-radius:10px;padding:13px 20px;max-width:90vw;box-shadow:0 5px 30px #0007;z-index:20;display:none}dialog{background:#122629;color:#e9eee8;border:1px solid #6a806e;border-radius:16px;max-width:720px;width:92vw;padding:28px;max-height:85vh}dialog::backdrop{background:#000a}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.rules-body{margin-top:20px}.rules-body h3{color:var(--gold);margin-top:25px}.hand-hint{background:#ffffff08;padding:12px;border-radius:10px;margin-top:15px;color:#bdcfc4;font-size:.9rem}.round-track{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.round-dot{height:26px;min-width:26px;display:grid;place-items:center;font-size:.8rem;border-radius:50%;background:#ffffff0a;color:#849e94}.round-dot.current{background:var(--gold);color:#17392e}.round-dot.done{background:#2d5a48;color:#c5d8cb}.skeleton{padding:45px;text-align:center}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #efcf8e;outline-offset:4px}@media(max-width:1050px){.game-layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:20px}.sidebar .log{margin-top:0}.poker-table{border-radius:100px}.player{min-width:100px;padding:8px}.table-center{gap:20px}}@media(max-width:700px){.top{height:70px;padding:0 18px}.header-right{gap:10px}.fictif{display:none}main{padding:22px 16px}.start-layout{grid-template-columns:1fr;gap:5px;min-height:0}.start-intro h1{font-size:2.4rem}.mini-table{height:220px;margin:22px 8px}.setup{max-width:none;padding:22px}.mini-cards .card{width:48px;height:72px}.game-head{align-items:flex-start;gap:12px}.game-head h1{font-size:1.5rem}.poker-table{border-radius:32px;border-width:7px;padding:16px 10px;gap:24px;min-height:360px}.opponents{gap:7px}.player{min-width:85px;flex:1;max-width:140px;padding:7px}.avatar{width:27px;height:27px}.player-name{font-size:.85rem}.player-stats{font-size:.75rem}.table-center{gap:12px}.pile-area{gap:12px}.card{width:52px;height:78px;padding:5px 6px}.card .suit{font-size:1.5rem}.pot strong{font-size:1.6rem}.pot{min-width:75px}.hand-panel{padding:15px}.hand-cards{gap:5px}.hand-cards .card{width:47px;height:72px}.sidebar{display:block;padding:18px}.sidebar .log{margin-top:22px}.controls button{padding:10px 12px;font-size:.9rem}.game-head .row{flex-wrap:wrap;justify-content:flex-end}.lobby-players{grid-template-columns:1fr}.summary{padding:17px}.hand-heading{gap:10px}.hand-heading .muted{font-size:.8rem}.invite-code{font-size:2.2rem}}

.hand-help{margin:0 0 8px;line-height:1.5;font-size:.875rem}
.hand-cards .card{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.hand-cards .card:active{cursor:grabbing}
.hand-cards .card.is-dragging{opacity:.25;outline:2px dashed var(--gold);transform:none}
.hand-cards.is-reordering .card{transition:none}
.drag-ghost{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-65%) rotate(-5deg);box-shadow:0 14px 28px #0008;outline:2px solid var(--gold);width:66px;height:94px;opacity:.95}
@media(max-width:700px){.drag-ghost{width:47px;height:72px}}

.hand-cards{padding-top:30px;row-gap:28px}.hand-cards .card{position:relative}.card.just-drawn{outline:3px solid var(--gold);box-shadow:0 0 0 6px #e9c78420,0 6px 20px #0005}.card.just-drawn::after{content:'Pigée';position:absolute;left:50%;top:-23px;transform:translateX(-50%);background:var(--gold);color:#102a29;border-radius:5px;padding:2px 6px;font-size:.875rem;line-height:1.25;font-weight:700;white-space:nowrap}.drawn-note{color:var(--gold);margin:0 0 10px;font-size:1rem}.opening-notice{text-align:center;border:2px solid var(--gold);max-width:520px;padding:35px;background:radial-gradient(circle at top,#22574a,#102b2b)}.opening-notice[open]{animation:opening-arrival .4s ease-out}.opening-notice::backdrop{background:#030d0ee8}.opening-notice h2{font-size:2rem;color:var(--gold);margin-bottom:18px}.opening-notice p{font-size:1rem}.opening-flake{font-size:4rem;color:var(--gold);margin-bottom:15px}.opening-notice[open] .opening-flake{animation:flake-arrival .75s ease-out}.opening-notice button{margin-top:8px}@keyframes opening-arrival{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes flake-arrival{from{transform:rotate(-30deg) scale(.6);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.opening-notice[open],.opening-notice[open] .opening-flake{animation:none}}

.hand-cards .card.selected{outline:3px solid #61caff;box-shadow:0 0 0 7px #61caff35,0 8px 20px #0006;transform:translateY(-12px);background:#e8f7ff}.hand-cards .card.selected::before{content:'À défausser';position:absolute;left:50%;bottom:-23px;transform:translateX(-50%);background:#61caff;color:#092638;border-radius:5px;padding:3px 6px;font-size:.875rem;line-height:1.2;font-weight:700;white-space:nowrap;z-index:1}.hand-cards .card.selected.just-drawn::after{background:var(--gold);color:#102a29}.table-chat{margin-top:25px;padding-top:20px;border-top:1px solid var(--line);min-width:0}.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.chat-heading h2{font-size:1.25rem;margin:0}.chat-toggle{padding:8px!important;font-size:.875rem}.chat-messages{max-height:270px;overflow-y:auto;overflow-wrap:anywhere;scrollbar-width:thin}.chat-message{padding:10px;background:#ffffff07;border-radius:8px;margin-bottom:8px}.chat-author{display:flex;justify-content:space-between;gap:8px;font-size:.875rem}.chat-author time{color:var(--muted);font-size:.8rem}.chat-message p{white-space:pre-wrap;margin:6px 0 0;font-size:.95rem;line-height:1.5}.own-message{border-left:2px solid var(--gold)}.chat-label{display:block;font-size:.875rem;margin:12px 0 6px}.table-chat textarea{width:100%;font:inherit;font-size:1rem;resize:vertical;background:#091c1d;color:#f4f1e8;border:1px solid #526b62;border-radius:8px;padding:10px;min-height:70px}.table-chat textarea:focus-visible{outline:2px solid var(--gold);outline-offset:2px}#chat-form>button{width:100%;margin-top:8px}.chat-mute-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;font-size:.9rem}.chat-mute-row button{font-size:.875rem;padding:7px 9px}.chat-mutes p{font-size:.875rem;margin-top:12px}.chat-mutes summary{font-size:.9rem}.sidebar .table-chat{grid-column:1/-1}
/* Shared card layout: hand, discards and melds use the same fixed corners. */
.card{position:relative;width:76px;height:112px;padding:0;display:inline-flex;align-items:center;justify-content:center;overflow:visible;font-family:Georgia,serif;background:#fffdf5}
.pile .card{display:flex;margin:0 auto 8px}
.card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;gap:2px;z-index:1}
.corner-top{top:5px;left:5px}.corner-bottom{bottom:5px;right:5px;transform:rotate(180deg)}
.card-corner b{font-size:19px;font-weight:700}.card-corner i{font-style:normal;font-size:15px}
.card-pip{font-size:38px;line-height:1}.card-pip.ace-pip{font-size:49px}
.card-portrait{display:block;width:58px;height:82px;pointer-events:none;margin-top:3px}
.joker-card{color:#663593!important;background:#fff9ee}.joker-card .card-corner b{font-size:12px}.joker-name{position:absolute;bottom:3px;font:700 8px system-ui;letter-spacing:1px;background:#fff9ee;padding:1px 2px}
.card.back{display:flex;align-items:center;justify-content:center;padding:0}
.hand-cards .card{width:76px;height:112px}.drag-ghost{width:76px;height:112px}
@media(max-width:700px){.card,.hand-cards .card,.drag-ghost{width:58px;height:88px}.card-corner b{font-size:16px}.card-corner i{font-size:12px}.corner-top{top:4px;left:4px}.corner-bottom{bottom:4px;right:4px}.card-portrait{width:43px;height:63px}.card-pip{font-size:30px}.card-pip.ace-pip{font-size:38px}.joker-card .card-corner b{font-size:10px}.joker-name{font-size:7px}.hand-cards{gap:7px}.pile-area{gap:12px}.mini-cards .card{width:58px;height:88px}}
.joker-card .corner-bottom{display:none}.joker-name{bottom:5px;font-size:9px}
/* Keep the cursor copy above the table despite the shared card positioning. */
.card.drag-ghost{position:fixed;z-index:1000;pointer-events:none;opacity:1;transform:translate(-50%,-65%) rotate(-5deg);transition:none;box-shadow:0 14px 28px #0008;outline:2px solid var(--gold)}
.card.xcard{background:#fff;padding:0}.card-image{width:100%;height:100%;display:block;object-fit:fill;border-radius:6px;pointer-events:none;user-select:none;-webkit-user-drag:none}.card.xcard{width:80px;height:112px}.hand-cards .card.xcard{width:80px;height:112px}.card.xcard.drag-ghost{width:80px;height:112px}@media(max-width:700px){.card.xcard,.hand-cards .card.xcard,.card.xcard.drag-ghost{width:63px;height:88px}}
.preparation{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.preparation p{font-size:.9rem;margin-bottom:12px}.meld-builder{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px}.meld-builder label{display:flex;flex-direction:column;gap:6px;font-size:.875rem}.meld-builder label[hidden]{display:none}.meld-builder select{max-width:230px;background:#0a191b;color:#fff;border:1px solid #526b62;border-radius:8px;padding:10px}.prepared-groups{display:flex;gap:15px;flex-wrap:wrap}.prepared-groups .meld{margin-bottom:8px}.prepared-groups button{font-size:.875rem;padding:8px}.hand-cards .card.meld-selected{outline:3px solid #61caff;box-shadow:0 0 0 5px #61caff25;transform:translateY(-10px)}.opened-meld{display:flex;flex-direction:column;gap:8px}.meld-drop{border:2px dashed #8acdb4;background:#082c2555;border-radius:10px;padding:8px;text-align:center;min-height:62px}.meld-drop span{display:block;font-size:.8rem;color:#badbd0;margin-top:3px}.meld-drop button{padding:7px;font-size:.85rem}.prepared-count{color:var(--gold);font-weight:600}.laid .melds{align-items:start}.hand-panel .controls{margin-top:18px}
.preparation-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:16px 0}.combination-slot{border:2px dashed #66887d;border-radius:14px;background:#123b31;padding:14px;min-height:220px;transition:border-color .15s,background .15s}.combination-slot.slot-valid{border:2px solid #75d3a3;background:#164b38;box-shadow:0 0 0 3px #75d3a310}.combination-slot.slot-invalid{border-color:#efac80;background:#48352a}.slot-heading{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;color:#c8dbd0;margin-bottom:14px}.slot-heading strong{color:var(--gold)}.slot-valid .slot-heading strong{color:#9aefbd}.slot-cards{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:112px}.slot-card-wrap{position:relative;padding-bottom:24px}.return-card{position:absolute;bottom:0;left:50%;transform:translateX(-50%);background:transparent;color:#cde4d8;border:0;padding:2px 9px;font-size:1rem}.return-card:hover:not(:disabled){transform:translateX(-50%);background:#ffffff15}.slot-add,.slot-clear{font-size:.8rem;padding:7px 8px;margin-top:10px}.empty-card-slot{width:80px;height:112px;border:2px dashed #b5cbb750;border-radius:8px;display:grid;place-items:center;color:#bed4c37a;font-size:2rem}.slot-cards .card{touch-action:none;cursor:grab;user-select:none}.slot-cards .card.is-dragging{opacity:.25;transform:none}.slot-cards .card.meld-selected{outline:3px solid #61caff}.hand-cards[data-return-hand]{min-height:155px;border:2px dashed transparent;border-radius:12px}.preparation p{max-width:650px}.preparation .prepared-count{margin-top:15px}@media(max-width:700px){.preparation-slots{grid-template-columns:1fr}.combination-slot{min-height:190px;padding:12px}.slot-cards{min-height:88px;gap:7px}.empty-card-slot{width:63px;height:88px}.hand-cards[data-return-hand]{min-height:125px}}
/* Compact shared table, matching the native app. */
.welcome{max-width:850px;margin:24px auto}.welcome>label,.welcome-panel label{display:block;font-size:.9rem;font-weight:650;margin:16px 0 8px}.welcome input:not([type=hidden]){width:100%;background:#122d2e;color:#fff;border:1px solid #ffffff35;border-radius:11px;padding:14px}.welcome input::placeholder{color:#b0c0bf}.welcome-sections{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.welcome-panel{background:#ffffff06;border:1px solid #e9c78433;border-radius:18px;padding:22px;display:flex;flex-direction:column}.welcome-panel h2{font:700 1.3rem system-ui;color:var(--gold);margin-bottom:10px}.welcome-panel p{font-size:.9rem;line-height:1.5;color:#c3d1cf}.seat-options{display:flex;gap:8px;margin-bottom:12px}.seat-options button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:#0e3931;color:#fff;border:1px solid #e9c78455;padding:12px}.seat-options button strong{font-size:1.25rem}.seat-options button span{font-size:.8rem}.seat-options button[aria-pressed=true]{background:var(--gold);color:#123c33}.welcome-action{display:block;width:100%;max-width:440px;margin:18px auto 0;padding:18px 22px;border-radius:14px;text-align:center;font-size:1rem}.welcome-panel .welcome-action{margin-top:auto}.welcome-panel input{margin-bottom:18px}.lobby-start{padding:18px!important}.lobby-start span{display:block;font-weight:400;font-size:.8rem;margin-top:6px}.round-summary{max-width:640px;margin:20px auto}.round-finished{text-align:center}.round-finished>span{display:inline-grid;place-items:center;width:52px;height:52px;border:2px solid var(--gold);border-radius:50%;font-size:2rem;color:var(--gold);margin-bottom:15px}.round-finished h1{font:700 1.8rem system-ui}.opening-award{background:#e9c78414;border:1px solid #e9c78455;border-radius:14px;padding:18px;margin:20px 0;text-align:center}.opening-award strong,.opening-award span{display:block}.opening-award span{color:var(--gold);margin-top:8px;font-weight:650}.round-summary th:not(:first-child),.round-summary td:not(:first-child){text-align:right}.round-summary td small{display:block;color:var(--muted);font-size:.75rem;margin-top:5px}.round-summary .round-opener{background:#e9c78412}.round-summary .round-opener small{color:var(--gold)}.round-points{font-size:1.3rem;font-weight:750;font-variant-numeric:tabular-nums}.total-points{font-weight:700;font-variant-numeric:tabular-nums}
body.playing{height:100dvh;overflow:hidden;--table-card-width:76.8px;--table-card-height:107.52px}body.playing .top{height:48px;padding:0 22px}body.playing .brand{font-size:1.3rem}body.playing .top button{padding:7px 12px}body.playing main{max-width:1200px;padding:10px 18px 12px}body.playing .game-head{height:40px;margin:0 0 8px;gap:8px}body.playing .game-head h1{font:700 1.15rem system-ui}body.playing .game-head .row{gap:6px}body.playing .game-head button{padding:7px 10px;font-size:.8rem}.board-area{min-width:0}body.playing .board-area{height:calc(100dvh - 118px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px}body.playing .poker-table{min-height:0;border:1px solid #947344;border-radius:18px;padding:10px 16px;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;box-shadow:none;background:#104639}body.playing .pile-area{gap:18px}.pile-area button.pile{background:transparent;color:#dbe7e0;border:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:4px}.pile-area button.pile:disabled{opacity:1;cursor:default}.pile-area button.pile:hover:not(:disabled){filter:none;transform:none}.pile-area .pile>span:not(.card){font-size:.75rem}.current-player{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.85rem}.table-workspace{overflow:auto;min-height:0;padding:4px;scrollbar-width:thin}body.playing .laid{border:0;padding:0;text-align:left}.laid h3{margin:0 0 8px;font-size:.85rem}.table-workspace .melds{justify-content:flex-start;align-items:start;gap:8px}.opened-meld{gap:4px}.opened-meld .meld-drop{min-height:0;padding:4px;border-width:1px}.opened-meld .meld-drop button{padding:4px 10px;font-size:.75rem}.table-workspace .meld{padding:7px;max-width:100%}.table-workspace .meld-label{margin-bottom:5px}.table-workspace .meld .card{margin:0 2px 3px 0}.table-workspace .preparation{margin-top:10px;padding-top:8px}.preparation h3{margin:0 0 6px;font-size:.85rem}.preparation-slots{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--table-card-width)*3 + 30px)),1fr));gap:8px;margin:8px 0}.combination-slot{min-height:0;padding:8px;border-width:1px;border-radius:10px}.combination-slot.slot-valid{border-width:1px}.slot-heading{margin-bottom:7px;font-size:.75rem}.slot-cards{gap:4px;min-height:0}.slot-card-wrap{padding-bottom:21px}.slot-add,.slot-clear{font-size:.7rem;padding:4px 6px;margin-top:6px}.empty-card-slot{width:100%;height:44px;font-size:1.3rem}.preparation .prepared-count{font-size:.75rem;margin:8px 0 0}.preparation #undo-extensions{padding:4px 6px;font-size:.75rem}body.playing .hand-panel{margin:0;padding:8px 10px;border-radius:13px}.hand-heading{margin-bottom:4px}.hand-heading h2{font:650 .85rem system-ui}.drawn-note{margin:0;font-size:.8rem}.turn-message{font-size:.85rem;min-height:0;line-height:1.3;margin:0 0 7px}.hand-cards[data-return-hand]{min-height:0;padding:4px 0;row-gap:7px;gap:6px}.hand-return{width:var(--table-card-width);height:var(--table-card-height);border:1.5px dashed #e9c78499;border-radius:7px;padding:8px 5px;text-align:center;font-size:.7rem;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gold)}.hand-return>span{font-size:1rem;margin-bottom:4px}body.playing .card,body.playing .card.xcard,body.playing .hand-cards .card.xcard,body.playing .meld .card.xcard,body.playing .slot-cards .card.xcard,body.playing .card.xcard.drag-ghost{width:var(--table-card-width);height:var(--table-card-height)}body.playing .pile-area .card{width:57.6px;height:80.64px}body.playing .card.just-drawn::after,body.playing .card.selected::before{display:none}body.playing .hand-cards .card.selected,body.playing .hand-cards .card.meld-selected{transform:none}body.playing .card:hover:not(:disabled){transform:none}body.playing .controls{margin-top:7px;gap:7px}body.playing .controls button{padding:9px 12px;font-size:.85rem}#table-info{max-width:620px}#table-info .log{margin-top:15px}
@media(max-width:700px){.welcome{margin:10px auto}.welcome h1{font-size:2rem}.welcome-sections{grid-template-columns:1fr;gap:18px}.welcome-panel{padding:18px}.welcome-panel .welcome-action{margin-top:14px}body.playing{--table-card-width:57.6px;--table-card-height:80.64px}body.playing main{padding:8px 12px}body.playing .top{padding:0 12px}body.playing .game-head{height:48px}body.playing .game-head .row{flex-wrap:nowrap}body.playing .game-head h1{font-size:.9rem}body.playing .game-head .pill{font-size:.7rem;padding:5px 7px}body.playing .game-head button{padding:6px;font-size:.7rem}body.playing .board-area{height:calc(100dvh - 120px)}body.playing .poker-table{padding:8px}body.playing .pile-area{gap:12px}body.playing .pile-area .card{width:48px;height:67.2px}.current-player{font-size:.75rem}.preparation-slots{grid-template-columns:repeat(auto-fit,minmax(min(100%,202px),1fr))}.slot-cards{gap:4px}.round-summary{margin-top:8px}.round-finished h1{font-size:1.45rem}}
@media(max-height:450px){body.playing{--table-card-width:45.6px;--table-card-height:63.84px}body.playing .top{height:36px}body.playing .game-head{height:30px;margin-bottom:4px}body.playing .board-area{height:calc(100dvh - 90px)}body.playing .pile-area .card{width:32px;height:44.8px}body.playing .poker-table{padding:4px 10px}.current-player{flex-direction:row}.hand-heading{margin-bottom:0}.turn-message{margin-bottom:3px}.hand-cards[data-return-hand]{padding:0}.controls button{padding:5px 10px!important}.preparation-slots{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}}

/* Keep combination targets beside the hand and make turn actions easy to reach. */
body.playing .table-workspace{display:flex;flex-direction:column;gap:8px}
body.playing .table-workspace>.preparation{margin-top:auto;margin-bottom:0;flex-shrink:0}
body.playing .controls{justify-content:center;align-items:center;flex-wrap:wrap}
body.playing .controls button{min-height:48px;padding:13px 24px;font-size:1rem;border-radius:13px;box-shadow:0 3px 10px #0003}
@media(max-height:450px){body.playing .controls button{min-height:38px;padding:8px 16px!important;font-size:.9rem}}

#account-dialog{width:min(94vw,680px)}#account-dialog label{display:block;margin:12px 0;color:#c8d8d2}#account-dialog input:not([type=checkbox]),#account-dialog select{display:block;width:100%;padding:12px;margin-top:6px;background:#14332f;border:1px solid #ffffff40;border-radius:9px;color:white}#account-dialog details{margin:20px 0}.account-links{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.account-links button{padding:8px 10px}.account-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.account-stats span{padding:12px;background:#153c32;border-radius:10px;font-size:.8rem}.account-stats strong{display:block;color:var(--gold);font-size:1.2rem}.account-friend{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #ffffff20}.account-friend small{display:block;color:var(--muted)}#account-dialog [role=status]{color:var(--gold);min-height:1.5em}

.account-launch{max-width:200px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.top .header-right{gap:10px}@media(max-width:700px){.header-right .fictif{display:none}.account-launch{max-width:128px;padding:8px;font-size:.8rem}.brand span{font-size:.8rem;letter-spacing:.12em}}

.account-friend>span{min-width:0;overflow-wrap:anywhere}.account-friend button{flex-shrink:0}
.welcome-sections:has(.home-invitations){grid-template-columns:1fr}.welcome-sections>.home-invitations{margin-top:0}
.home-invitations{margin-top:22px}.home-invitation-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.home-invitation-heading h2{margin-bottom:0}.home-invitation-heading button{font-size:1.3rem;min-width:44px;min-height:44px}.home-invitations .friend-card:last-child{margin-bottom:0}.home-invitations .muted{margin-top:14px;margin-bottom:0}
.auth-options.mode-login{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;align-items:start}.auth-options.mode-login>section{margin:0}.auth-heading{margin:6px auto 18px}.auth-options .auth-help button{border:0;padding:5px;font-size:.75rem}.auth-options .auth-alternative .welcome-action{max-width:none}@media(max-width:600px){.auth-options.mode-login{display:flex;flex-direction:column}.auth-options.mode-login>section{width:100%}.auth-options.mode-login .auth-alternative{order:-1;padding:14px}.auth-options.mode-login .auth-alternative p{display:none}.auth-options.mode-login .auth-alternative h4{margin-bottom:0}.auth-options.mode-login .auth-alternative .welcome-action{margin-top:10px}.auth-heading .auth-emblem{width:44px;height:44px;font-size:1.8rem;margin-bottom:8px}}

.profile-avatar{width:40px;height:40px;object-fit:cover;border-radius:50%;vertical-align:middle}
body.playing .empty-card-slot{width:var(--table-card-width);height:var(--table-card-height);flex-shrink:0;border:1.5px dashed var(--gold);border-radius:7px;background:#e9c78414;color:var(--gold);font-size:1.3rem}
.auth-heading{text-align:center;margin:12px auto 24px;max-width:460px}.auth-emblem{display:inline-grid;place-items:center;width:64px;height:64px;background:#e9c78412;border:1px solid #e9c78455;border-radius:18px;color:var(--gold);font-size:2.5rem;margin-bottom:14px}.auth-heading h3{font-size:1.6rem;margin:0 0 10px}.auth-heading p,.auth-alternative p{color:var(--muted);font-size:.9rem;margin-bottom:12px}.auth-panel,.auth-alternative,.friend-add{padding:22px;background:#103e35;border:1px solid #ffffff20;border-radius:18px;margin:16px 0}.auth-panel h4,.auth-alternative h4{margin:0 0 14px;font-size:1rem;color:var(--gold)}.auth-alternative{text-align:center;background:#12292a;border-color:#e9c78455}.auth-panel .welcome-action,.auth-alternative .welcome-action{width:100%;min-height:48px;margin-top:18px}.auth-help{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:10px}.auth-help button{font-size:.8rem;padding:9px}.friend-card{display:flex;flex-direction:column;gap:16px;padding:18px;margin:12px 0;background:#103e35;border:1px solid #ffffff22;border-radius:16px}.friend-incoming{border-color:#e9c78480}.friend-identity{display:flex;align-items:center;gap:14px;min-width:0}.friend-identity>div{min-width:0}.friend-identity strong{display:block;overflow-wrap:anywhere;font-size:1rem}.friend-identity small{display:flex;align-items:center;gap:7px;margin-top:6px;color:var(--muted)}.friend-avatar{width:48px;height:48px;flex-shrink:0;display:grid;place-items:center;background:#ffffff10;border-radius:50%;font-size:1.8rem}.friend-avatar img{width:48px;height:48px}.friend-dot{width:7px;height:7px;flex-shrink:0;background:#849e94;border-radius:50%}.friend-dot.online{background:#75d3a3}.friend-dot.pending{background:var(--gold)}.friend-actions{display:flex;flex-wrap:wrap;gap:9px}.friend-actions button{flex:1;min-height:44px;padding:11px 14px}.friend-actions .friend-remove{color:#ffa699;border:1px solid #ffa69955;background:#ffa69914}.friend-empty{padding:18px;background:#ffffff06;border:1px dashed #ffffff25;border-radius:14px;color:var(--muted);font-size:.9rem}.friend-empty p{margin:8px 0 0}@media(max-width:450px){.auth-panel,.auth-alternative,.friend-add{padding:16px}.friend-actions button{min-width:120px}}

.final-summary{max-width:850px;margin:0 auto}.final-explanation{text-align:center;color:var(--muted);font-size:.85rem;line-height:1.5}.final-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:22px 0}.final-player{background:#103e35;padding:20px;border:1px solid #ffffff20;border-radius:16px}.final-player h2{font-size:1.15rem;margin:0}.final-winner{border-color:#eec46e}.final-award{color:#eec46e;font-size:.85rem;margin:8px 0}.final-score,.final-net,.final-balance{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px}.final-score{padding-bottom:14px;border-bottom:1px solid #ffffff20}.final-net strong{font-size:1.35rem;color:#eec46e}.final-net.loss strong{color:#ffa699}.final-balance{font-size:.9rem}.final-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.final-actions button{width:100%;max-width:400px}

.login-welcome{max-width:540px;text-align:center}.login-welcome p{line-height:1.6;color:var(--muted)}.login-welcome .welcome-action{display:block;width:100%;max-width:360px;margin:18px auto}.pending-invite{padding:16px;border:1px dashed var(--gold);border-radius:12px}.signed-in{text-align:center;color:var(--gold)}.lobby-players{grid-template-columns:1fr}.lobby-players .player{max-width:none;width:100%;min-height:76px;text-align:left;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:14px;background:#103e35}.lobby-players .player.mine{border-color:var(--gold)}.lobby-players .player .avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.lobby-players .player-name{margin:0;overflow-wrap:anywhere}.lobby-players .player-stats{text-align:right}.lobby-players .empty-seat{min-height:76px;display:flex;align-items:center;border:1.5px dashed #eec46e88;background:#ffffff06}.avatar-preview{width:72px;height:72px;border-radius:50%;background:#ffffff12;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:16px auto}.avatar-preview img{width:72px;height:72px}.avatar-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}#account-dialog .avatar-file{display:none!important}body.playing .hand-cards{justify-content:center}body.playing .hand-cards .card,body.playing .hand-return{flex-shrink:0}body.playing .hand-return{order:1}@media(max-width:600px){body.playing .controls{flex-direction:column}body.playing .controls button{width:100%;max-width:440px;min-height:46px}.lobby-players .player{grid-template-columns:40px 1fr}.lobby-players .player-stats{grid-column:2;text-align:left}.final-players{grid-template-columns:1fr}}

/* Administration uses the table's felt and gold palette. */
.admin-launch{border-color:var(--gold);color:var(--gold)}
.admin-launch[hidden]{display:none}
#admin-dialog{width:min(1100px,calc(100vw - 28px));max-width:1100px;max-height:90dvh;padding:24px;background:#102528;color:#f4f1e8;border:1px solid #e9c78455;border-radius:20px}
#admin-dialog h2{margin:5px 0 0}#admin-dialog h3{margin:0 0 12px}
#admin-status{min-height:24px;color:var(--gold);margin:12px 0}#admin-status.error{color:#ffada5}
.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.admin-metric{padding:20px;border:1px solid #ffffff1c;background:linear-gradient(145deg,#18453e,#122e2e);border-radius:16px;display:flex;flex-direction:column;gap:8px}
.admin-metric>span{font-size:14px;color:#cad9d5}.admin-metric strong{font-size:38px;color:var(--gold);line-height:1.1}.admin-metric small{color:var(--muted);font-size:12px}
.admin-section{margin-top:20px;padding:20px;border:1px solid #ffffff18;background:#ffffff04;border-radius:16px}
.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.admin-section-heading h3,.admin-section-heading p{margin:0}.admin-section-heading p{margin-top:6px}
.admin-server-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-server-heading>span:last-child{color:var(--muted);font-size:14px;margin-left:auto}
.admin-online-dot{display:inline-block;width:9px;height:9px;background:#6cdda5;border-radius:50%;box-shadow:0 0 14px #6cdda540}
.admin-server-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.admin-server-details div{min-width:0}.admin-server-details dt{font-size:13px;color:var(--muted)}.admin-server-details dd{margin:5px 0 0;font-weight:600;overflow-wrap:anywhere}.admin-updated{font-size:12px;margin-bottom:0}
.admin-backup-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--line)}.admin-backup-item strong,.admin-backup-item small{display:block}.admin-backup-item small{margin-top:4px;color:var(--muted)}.admin-backup-actions{display:flex;gap:8px}.admin-backup-actions button{padding:10px 14px}
.admin-import-form{display:flex;gap:12px;align-items:end}.admin-file-label{flex:1;min-width:0}.admin-file-label input{margin-top:8px;max-width:100%;color:#f4f1e8;background:#122e2e;border:1px dashed #e9c78477}
.admin-restore-confirm{margin-top:20px;padding:22px;border:1px solid #db8f68;background:#422b2450;border-radius:16px}.admin-restore-confirm p{line-height:1.6}.admin-restore-confirm label{display:block;margin-bottom:14px}.admin-restore-confirm input{color:#f4f1e8;background:#112829;border:1px solid #ffffff33;margin-top:8px}
.admin-confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.admin-danger{background:#ca665a;color:#fff}.admin-restarting{padding:20px;background:#173d35;border-radius:14px;margin-top:16px}
@media(max-width:760px){.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-server-details{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-section-heading,.admin-import-form{align-items:stretch;flex-direction:column}.admin-backup-item{align-items:stretch;flex-direction:column}.admin-backup-actions button{flex:1}.admin-launch{font-size:12px;padding:9px}.header-right{flex-wrap:wrap;justify-content:flex-end}#admin-dialog{padding:16px}.admin-confirm-actions button{width:100%}}

.admin-file-label{display:flex;flex-direction:column;gap:10px}
.admin-file-label input::file-selector-button{background:#244e47;color:#f3cb78;border:1px solid #647655;border-radius:8px;padding:10px 14px;margin-right:12px;cursor:pointer}
