:root{
  color-scheme:dark;
  --bg:#0b211a;--panel:#123b2d;--panel2:#18523d;--felt:#207449;--felt2:#155b3b;
  --gold:#e1bd5c;--gold2:#9f7724;--text:#f8f6ee;--muted:#b9c7bf;--danger:#e35c62;
  --safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);overscroll-behavior:none}
body{min-height:100dvh;overflow-x:hidden;user-select:none;-webkit-user-select:none}
button,input,select{font:inherit}
button{border:0;color:inherit;cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.45}
.app-shell{min-height:100dvh}
.screen{min-height:100dvh;padding:max(18px,var(--safe-top)) 18px max(22px,var(--safe-bottom));background:
 radial-gradient(circle at 50% -10%,rgba(56,146,102,.28),transparent 42%),linear-gradient(155deg,#102e24,#081b15 72%)}
.center-screen{display:grid;place-items:center;align-content:center;gap:34px;text-align:center}
.loading{min-height:100dvh;display:grid;place-content:center;gap:14px;text-align:center;background:#0d281f;color:#f4e5ad;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.brand-loader{display:flex;justify-content:center;gap:7px}.brand-loader span{width:12px;height:58px;border-radius:4px;background:#f7f1df;animation:load 1s ease-in-out infinite}.brand-loader span:nth-child(2){animation-delay:.12s}.brand-loader span:nth-child(3){animation-delay:.24s}@keyframes load{50%{transform:translateY(-12px) rotate(5deg)}}
.brand-lockup{display:flex;align-items:center;gap:18px;text-align:left}.brand-mark{position:relative;width:92px;height:92px}.brand-mark i{position:absolute;width:54px;height:76px;border:3px solid var(--gold);background:#f9f5e9;box-shadow:0 16px 30px #0006}.brand-mark i:first-child{left:10px;top:10px;transform:rotate(-12deg)}.brand-mark i:last-child{right:8px;top:4px;transform:rotate(10deg)}.brand-mark b{position:absolute;inset:0;display:grid;place-items:center;color:#9f1f2e;font-size:31px;z-index:2;text-shadow:0 1px #fff}.brand-title{font-size:clamp(38px,10vw,62px);line-height:.9;margin:0;font-family:Georgia,serif;font-style:italic;color:#f6df92}.brand-subtitle{margin:10px 0 0;color:var(--muted)}
.home-actions{display:grid;gap:13px;width:min(420px,100%)}.install-note{color:var(--muted);font-size:.92rem;line-height:1.45}
.btn{min-height:50px;border-radius:16px;padding:12px 18px;font-weight:850;background:#244d3e;border:1px solid #ffffff18;box-shadow:0 9px 22px #0003}.btn-primary{background:linear-gradient(180deg,#e5c76f,#b98e2c);color:#241b08}.btn-secondary{background:#24684e}.btn-danger{background:#8c3037}.btn-ghost{background:#ffffff0b}.btn.full{width:100%}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:980px;margin:auto}.wordmark{display:flex;gap:10px;align-items:center;font:italic 800 25px Georgia,serif;color:#f2dc93}.mini-mark{width:25px;height:32px;border:2px solid var(--gold);background:#fff;transform:rotate(-8deg)}.icon-btn{width:48px;height:44px;border-radius:15px;background:#ffffff0d;font-size:23px}
.hero-panel{max-width:980px;margin:22px auto 18px;padding:28px;border-radius:28px;background:linear-gradient(135deg,#1d6348,#133c2e);border:1px solid #ffffff18;position:relative;overflow:hidden}.hero-panel h1{font-size:clamp(29px,6vw,46px);margin:5px 0 8px}.hero-panel p{margin:0;color:#d3ddd7;max-width:630px}.eyebrow{font-size:.73rem;letter-spacing:.18em;color:#f1d77e;font-weight:900}.hero-cards{position:absolute;right:34px;top:12px;width:110px;height:130px;opacity:.28}.hero-cards i{position:absolute;width:66px;height:96px;background:#fff;border:4px solid var(--gold2)}.hero-cards i:nth-child(1){transform:rotate(-15deg)}.hero-cards i:nth-child(2){transform:rotate(2deg);left:20px}.hero-cards i:nth-child(3){transform:rotate(17deg);left:42px}
.dashboard-actions{max-width:980px;margin:auto;display:grid;grid-template-columns:2fr 1fr;gap:13px}.action-card{min-height:105px;padding:18px;border-radius:22px;background:#ffffff0b;border:1px solid #ffffff12;text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:14px}.action-card strong{font-size:1.12rem}.action-card span:last-child{grid-column:2;color:var(--muted);font-size:.86rem}.primary-action{background:linear-gradient(135deg,#21664c,#164231)}.action-icon{grid-row:1/3;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#ffffff12;font-size:27px}.section-heading{max-width:980px;margin:24px auto 10px;display:flex;justify-content:space-between;align-items:end}.section-heading h2{margin:0}.section-heading span{color:var(--muted);font-size:.78rem}.game-list{max-width:980px;margin:auto;display:grid;gap:10px}.empty-state{padding:30px;border:1px dashed #ffffff1c;border-radius:22px;text-align:center;color:var(--muted)}.game-row{display:flex;background:#ffffff0c;border:1px solid #ffffff12;border-radius:20px;overflow:hidden}.game-open{flex:1;display:flex;align-items:center;gap:13px;background:transparent;text-align:left;padding:13px}.game-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#d3ae4b;color:#221904;font-weight:900}.game-main{flex:1;display:grid;gap:4px}.game-main em{font-style:normal;color:#d0b45d}.game-main small{color:var(--muted)}.status-pill{padding:6px 9px;border-radius:999px;background:#ffffff12;font-size:.72rem;font-weight:850}.status-pill.active{background:#1d7b51}.status-pill.finished{background:#68476d}.row-delete{width:50px;background:#ffffff08;font-size:25px;color:#e4a1a5}
.overlay{position:fixed;z-index:90;inset:0;background:#04100bd9;display:grid;place-items:end center;padding:20px;backdrop-filter:blur(8px)}.overlay.centered{place-items:center}.sheet{width:min(520px,100%);max-height:92dvh;overflow:auto;background:linear-gradient(160deg,#1b4d39,#102e24);border:1px solid #ffffff18;border-radius:28px;padding:22px;box-shadow:0 30px 90px #000a}.sheet h2{margin:0 0 7px}.sheet .lead{color:var(--muted);margin:0 0 20px}.sheet-handle{width:45px;height:5px;border-radius:10px;background:#ffffff35;margin:0 auto 18px}.form-grid{display:grid;gap:15px}.form-grid label{display:grid;gap:7px;font-size:.86rem;color:#d6dfda}.form-grid input,.form-grid select{width:100%;border:1px solid #ffffff20;border-radius:14px;background:#071d15;color:#fff;padding:13px}.sheet-actions{display:flex;gap:10px;margin-top:20px}.sheet-actions>*{flex:1}.pin-dots{display:flex;justify-content:center;gap:10px;margin:20px}.pin-dot{width:14px;height:14px;border:2px solid #fff5;border-radius:50%}.pin-dot.filled{background:var(--gold);border-color:var(--gold)}.pin-error{height:22px;text-align:center;color:#ff9aa0}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.key{height:55px;border-radius:15px;background:#ffffff0d;font-size:1.2rem;font-weight:800}.key.action{font-size:.85rem;color:var(--muted)}
.waiting-screen{display:grid;place-content:center;gap:20px;text-align:center}.waiting-card{width:min(520px,100%);padding:28px;border-radius:30px;background:#ffffff0d;border:1px solid #ffffff16}.waiting-card h1{margin:5px 0}.waiting-link{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#061a13;border-radius:14px;padding:12px;color:#c4d2ca;font-size:.78rem}.waiting-status{margin:18px 0;padding:14px;border-radius:15px;background:#ffffff0c}.waiting-status.ready{background:#1c704c;color:#fff}.pulse-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#e4be55;margin-right:8px;animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px #e4be5520}}
/* Table de jeu */
.game-screen{min-height:100dvh;padding:0;background:#130f18;overflow:hidden;position:relative}.game-table{min-height:100dvh;position:relative;display:grid;grid-template-rows:minmax(118px,23dvh) 1fr minmax(205px,35dvh);padding:max(8px,var(--safe-top)) 10px max(56px,var(--safe-bottom));background:
 radial-gradient(ellipse at center,#26845a 0,#1d6a49 42%,#115038 70%,#0b3728 100%);isolation:isolate}.game-table:before{content:"";position:absolute;inset:8px;border:10px solid #6f442a;border-radius:12% 12% 16% 16%/9% 9% 12% 12%;box-shadow:inset 0 0 0 4px #b47b4b,inset 0 0 32px #0008,0 0 45px #0009;pointer-events:none;z-index:-1}.game-table:after{content:"GIN RAMI";position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);font:900 clamp(30px,8vw,78px) Georgia,serif;color:#ffffff0c;letter-spacing:.08em;white-space:nowrap;z-index:-1}
.player-zone{position:relative;display:grid;align-content:center;justify-items:center;min-width:0}.opponent-zone{padding-top:4px}.own-zone{align-content:end;padding-bottom:2px}.player-badge{position:absolute;display:flex;align-items:center;gap:9px;padding:7px 12px;border-radius:15px;background:#071c16dd;border:1px solid #ffffff20;box-shadow:0 8px 20px #0005;z-index:8}.opponent-zone .player-badge{top:7px;left:50%;transform:translateX(-50%)}.own-zone .player-badge{bottom:6px;left:50%;transform:translateX(-50%)}.player-badge.current{outline:3px solid #e5c25b;box-shadow:0 0 24px #f0c9547a}.player-badge .name{font-weight:900}.player-badge .score{color:#f1d77c}.dealer-chip{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#f4f2e8;color:#161816;font-size:.7rem;font-weight:950}
.opponent-hand{height:94px;display:flex;justify-content:center;align-items:start;padding-top:36px;min-width:min(94vw,650px)}.opponent-card{width:52px;margin-left:-30px;transform-origin:50% 140%;filter:drop-shadow(0 5px 5px #0007)}.opponent-card:first-child{margin-left:0}.opponent-card img,.own-card img,.pile-card img,.result-card img{display:block;width:100%;height:auto;pointer-events:none}
.center-zone{display:grid;place-content:center;position:relative;min-height:165px}.piles{display:flex;align-items:center;justify-content:center;gap:clamp(28px,8vw,80px)}.pile{position:relative;width:clamp(74px,18vw,116px);aspect-ratio:372/520;display:grid;place-items:center}.pile:before,.pile:after{content:"";position:absolute;inset:4px;border:1px solid #ffffff2b;transform:translate(5px,-4px);z-index:-1}.pile:after{transform:translate(9px,-8px)}.pile-card{width:100%;filter:drop-shadow(0 10px 10px #0007);transition:transform .2s}.pile.active{touch-action:none;cursor:grab}.pile.active:active{cursor:grabbing}.pile.active .pile-card{transform:translateY(-7px);filter:drop-shadow(0 14px 12px #0008) drop-shadow(0 0 10px #f0ca56aa)}.pile-label{position:absolute;top:calc(100% + 5px);font-size:.72rem;font-weight:900;color:#d9e1dc;white-space:nowrap}.deck-count{position:absolute;right:-8px;bottom:4px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#0a2119;border:2px solid #d4b85d;font-size:.72rem;font-weight:900}.turn-message{position:absolute;left:50%;top:-5px;transform:translateX(-50%);white-space:nowrap;padding:7px 13px;border-radius:999px;background:#071c16c9;font-size:.78rem;color:#e8eee9}.deadwood-chip{position:absolute;left:50%;bottom:-34px;transform:translateX(-50%);padding:6px 11px;border-radius:999px;background:#071c16d9;color:#f3d776;font-weight:850;font-size:.75rem;white-space:nowrap}.initial-pass{position:absolute;left:50%;bottom:-76px;transform:translateX(-50%);display:flex;gap:8px;z-index:15}.knock-panel{position:absolute;left:50%;bottom:-94px;transform:translateX(-50%);width:min(360px,90vw);padding:11px;border-radius:18px;background:#071c16ef;border:1px solid #e0bd5a66;text-align:center;z-index:16}.knock-panel strong{display:block;margin-bottom:8px}.knock-actions{display:flex;gap:8px}.knock-actions .btn{min-height:42px;padding:8px 12px;flex:1}
.own-hand-wrap{width:100%;display:grid;justify-items:center;position:relative;padding-bottom:49px}.own-hand{--card-width:clamp(72px,15.5vw,140px);--card-overlap:clamp(24px,6vw,52px);height:clamp(155px,29dvh,245px);width:min(97vw,980px);display:flex;justify-content:center;align-items:end;position:relative;padding:0 15px;overflow:visible}.own-card{position:relative;left:var(--drag-x,0px);top:var(--drag-y,0px);flex:0 0 var(--card-width);width:var(--card-width);max-width:var(--card-width);min-width:var(--card-width);margin-left:calc(var(--card-overlap) * -1);transform:translateY(calc(var(--edge,0) * 10px)) rotate(calc(var(--angle,0) * 1deg));transform-origin:50% 140%;filter:drop-shadow(0 8px 7px #0008);transition:transform .17s,filter .17s;touch-action:none;z-index:var(--z,1);user-select:none;-webkit-user-select:none}.own-hand>:first-child{margin-left:0}.own-card.drawn{filter:drop-shadow(0 0 10px #f3ce5c) drop-shadow(0 8px 7px #0008)}.own-card.drag-source-pending{visibility:hidden}.own-hand.sorting .own-card:not(.card-dragging){pointer-events:none}.own-card.card-dragging{transform:translateY(calc(var(--edge,0) * 10px - 16px)) rotate(calc(var(--angle,0) * 1deg));filter:drop-shadow(0 11px 9px #0009);pointer-events:none;will-change:left,top,transform}.own-card.card-dragging.over-table{transform:rotate(0deg);filter:drop-shadow(0 0 13px #f2cf6199) drop-shadow(0 12px 10px #0009)}.own-hand.draw-target{filter:drop-shadow(0 0 10px #f2cf6166)}.card-hidden{visibility:hidden!important}.draw-drag-card{position:fixed;z-index:190;pointer-events:none;filter:drop-shadow(0 18px 15px #000a);transform:rotate(2deg);will-change:left,top}.draw-drag-card.over-hand{filter:drop-shadow(0 0 16px #f2cf61) drop-shadow(0 18px 15px #000a)}.draw-drag-card img{display:block;width:100%;height:auto;pointer-events:none}@media(hover:hover){.own-card:hover:not(.card-dragging){transform:translateY(calc(var(--edge,0) * 10px - 12px)) rotate(calc(var(--angle,0) * 1deg))}}
.bottom-controls{position:fixed;z-index:35;left:12px;right:12px;bottom:max(8px,var(--safe-bottom));display:flex;justify-content:space-between;pointer-events:none}.round-btn{width:46px;height:46px;border-radius:50%;background:#071c16df;border:1px solid #ffffff24;font-size:22px;pointer-events:auto;box-shadow:0 8px 18px #0007}.menu-pop{position:fixed;right:12px;bottom:62px;z-index:60;width:210px;background:#071c16f5;border:1px solid #ffffff1e;border-radius:18px;padding:8px;box-shadow:0 20px 50px #0009}.menu-pop button{display:block;width:100%;padding:12px;border-radius:12px;background:transparent;text-align:left}.menu-pop button:hover{background:#ffffff0d}
.fx-layer{position:fixed;inset:0;pointer-events:none;z-index:120;overflow:hidden}.flying-card{position:fixed;z-index:130;margin:0;will-change:transform,opacity;filter:drop-shadow(0 14px 12px #0009)}.flying-card img{display:block;width:100%;height:auto}.toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%,20px);z-index:200;max-width:min(90vw,470px);padding:11px 16px;border-radius:14px;background:#071510ee;color:#fff;box-shadow:0 14px 35px #0009;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.result-overlay{position:fixed;inset:0;z-index:80;background:#04100ced;display:grid;place-items:center;padding:18px;backdrop-filter:blur(8px)}.result-panel{width:min(760px,100%);max-height:92dvh;overflow:auto;padding:22px;border-radius:27px;background:linear-gradient(160deg,#1b543d,#0f2d23);border:1px solid #ffffff20;text-align:center}.result-panel h2{font:italic 900 clamp(31px,8vw,51px) Georgia,serif;color:#f0d277;margin:0 0 8px}.score-gain{font-size:1.1rem;font-weight:900}.result-hands{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.result-player{padding:12px;border-radius:18px;background:#061b14a6}.result-player h3{margin:0 0 8px}.meld-row,.deadwood-row{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;margin:6px 0}.meld-group{display:flex;padding:5px;border:1px solid #e1bd5c55;border-radius:10px}.result-card{width:38px;margin-left:-10px}.result-card:first-child{margin-left:0}.deadwood-row .result-card{filter:drop-shadow(0 0 5px #dc5769)}.ready-state{margin:12px;color:#cfd9d3}
@media (max-width:620px){
  .dashboard-actions{grid-template-columns:1fr}.hero-cards{display:none}.screen{padding-left:13px;padding-right:13px}
  .game-table{grid-template-rows:minmax(105px,20dvh) 1fr minmax(195px,36dvh);padding-left:4px;padding-right:4px}.game-table:before{inset:3px;border-width:7px}
  .opponent-hand{padding-top:38px;height:88px}.opponent-card{width:43px;margin-left:-25px}
  .own-hand{--card-width:clamp(66px,21vw,99px);--card-overlap:clamp(31px,10.5vw,61px);padding-inline:4px}
  .center-zone{min-height:145px}.piles{gap:43px}.pile{width:78px}.turn-message{font-size:.69rem}.deadwood-chip{bottom:-29px}
  .result-hands{grid-template-columns:1fr}.result-card{width:32px}
}
@media (orientation:landscape) and (max-height:650px){
  .game-table{grid-template-rows:105px 1fr 150px}.opponent-card{width:42px}.opponent-hand{padding-top:35px}.own-hand{--card-width:72px;--card-overlap:37px;height:128px}.pile{width:73px}.center-zone{min-height:130px}.player-badge{font-size:.75rem}.own-zone .player-badge{bottom:-2px}.deadwood-chip{bottom:-26px}.knock-panel{bottom:-80px;padding:7px}.btn{min-height:42px}
}

/* v0.1.5 — table compacte en paysage, sans défilement */
.menu-pop .menu-danger{color:#ffb3b7;background:#7d252b66}.menu-pop .menu-danger:hover{background:#8d3038}
.close-game-sheet{width:min(470px,100%)}
.game-screen{height:100dvh;min-height:0;max-height:100dvh;overflow:hidden}
.game-table{height:100dvh;min-height:0;max-height:100dvh;overflow:hidden}

@media (orientation:landscape){
  html.game-active,body.game-active,body.game-active .app-shell{height:100%;max-height:100%;overflow:hidden}
  .game-table{
    grid-template-rows:minmax(72px,21dvh) minmax(90px,1fr) minmax(108px,31dvh);
    padding:max(3px,var(--safe-top)) 7px max(43px,var(--safe-bottom));
  }
  .game-table:before{inset:3px;border-width:7px}
  .opponent-zone{padding-top:0}
  .opponent-hand{height:70px;padding-top:29px;min-width:min(82vw,590px)}
  .opponent-card{width:38px;margin-left:-22px}
  .player-badge{gap:6px;padding:4px 9px;border-radius:12px;font-size:.72rem}
  .opponent-zone .player-badge{top:3px}
  .own-zone .player-badge{bottom:1px}
  .dealer-chip{width:20px;height:20px;font-size:.62rem}
  .center-zone{min-height:88px;align-content:center}
  .piles{gap:clamp(34px,8vw,76px)}
  .pile{width:clamp(56px,11dvh,72px)}
  .pile-label{top:calc(100% + 2px);font-size:.62rem}
  .deck-count{width:24px;height:24px;right:-7px;font-size:.62rem}
  .turn-message{top:-1px;padding:4px 10px;font-size:.65rem;max-width:78vw;overflow:hidden;text-overflow:ellipsis}
  .deadwood-chip{bottom:-23px;padding:4px 9px;font-size:.65rem}
  .initial-pass{bottom:-57px}
  .knock-panel{bottom:-66px;width:min(330px,72vw);padding:6px 8px;border-radius:14px}
  .knock-panel strong{margin-bottom:5px;font-size:.76rem}
  .knock-actions .btn{min-height:34px;padding:5px 9px;font-size:.74rem}
  .own-zone{padding-bottom:0}
  .own-hand-wrap{padding-bottom:32px}
  .own-hand{
    --card-width:clamp(50px,16.2dvh,68px);
    --card-overlap:clamp(23px,7.8dvh,34px);
    height:clamp(88px,25dvh,116px);
    width:min(92vw,850px);
    padding-inline:4px;
  }
  .bottom-controls{bottom:max(4px,var(--safe-bottom));left:7px;right:7px}
  .round-btn{width:39px;height:39px;font-size:18px}
  .menu-pop{bottom:49px;right:7px;width:205px}
}

@media (orientation:landscape) and (max-height:430px){
  .game-table{grid-template-rows:68px minmax(82px,1fr) 105px;padding-bottom:max(40px,var(--safe-bottom))}
  .opponent-hand{height:63px;padding-top:27px}.opponent-card{width:35px;margin-left:-21px}
  .pile{width:55px}.piles{gap:42px}.center-zone{min-height:82px}
  .own-hand{--card-width:55px;--card-overlap:28px;height:91px}
  .own-hand-wrap{padding-bottom:18px}
  .turn-message{max-width:65vw}
}


/* v0.1.6 — salle portrait, jeu paysage ample et bilan automatique */
.waiting-portrait{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;overflow:auto}
.waiting-portrait .waiting-card{width:min(440px,100%);margin:auto;padding:26px 22px}
.waiting-portrait .brand-mark{margin:0 auto 14px}
.waiting-portrait .sheet-actions{flex-direction:column}
.orientation-overlay{position:fixed;inset:0;z-index:260;display:grid;place-items:center;padding:22px;background:#03100bea;backdrop-filter:blur(9px)}
.orientation-card{width:min(430px,100%);padding:28px 24px;border-radius:28px;background:linear-gradient(150deg,#1a503b,#0d2b20);border:1px solid #ffffff20;text-align:center;box-shadow:0 30px 80px #000b}
.orientation-card h2,.landscape-required h1{margin:7px 0 9px;color:#f1d77e}
.orientation-card p,.landscape-required p{color:var(--muted);line-height:1.45}
.rotate-phone{font-size:54px;line-height:1;color:#f1d77e;animation:rotateHint 1.7s ease-in-out infinite}
@keyframes rotateHint{50%{transform:rotate(90deg)}}
.landscape-required{display:grid;place-items:center;text-align:center}

@media (orientation:landscape){
  .game-table{grid-template-rows:48px minmax(142px,42dvh) minmax(160px,1fr);padding:max(3px,var(--safe-top)) 8px max(44px,var(--safe-bottom))}
  .opponent-zone{min-height:0;padding:0;align-content:start}
  .opponent-zone .player-badge{top:2px}
  .opponent-target{position:absolute;left:50%;top:23px;width:120px;height:28px;transform:translateX(-50%);pointer-events:none}
  .player-badge .card-count{color:#c4d0c9;font-size:.67rem;padding-left:4px;border-left:1px solid #ffffff24}
  .center-zone{min-height:140px;align-content:center}
  .piles{gap:clamp(30px,6vw,68px);min-height:132px}
  .pile{width:clamp(88px,27dvh,124px)}
  .pile-label{top:calc(100% + 4px);font-size:.7rem}
  .deck-count{width:29px;height:29px;font-size:.7rem}
  .pass-side{align-self:center;min-width:104px;min-height:52px;border-radius:17px;background:linear-gradient(180deg,#e5c76f,#ae8126);color:#251b07;font-size:1rem;box-shadow:0 9px 22px #0005}
  .turn-message{top:-8px;font-size:.72rem;max-width:76vw}
  .deadwood-chip{bottom:-28px;font-size:.7rem}
  .knock-panel{bottom:-70px}
  .own-zone{min-height:0;padding-bottom:0;align-content:end}
  .own-hand-wrap{padding-bottom:18px}
  .own-hand{height:var(--hand-height,170px);max-width:92vw;padding-inline:0}
  .own-card{margin-left:calc(var(--card-overlap) * -1)}
  .own-zone .player-badge{bottom:0}
}

.round-summary-table{grid-template-rows:minmax(105px,1fr) auto minmax(105px,1fr)!important;align-items:center;padding:8px 12px max(44px,var(--safe-bottom))!important}
.summary-player{min-width:0;display:grid;justify-items:center;align-content:center;gap:5px;width:100%}
.summary-heading{display:flex;align-items:center;justify-content:center;gap:12px;padding:3px 12px;border-radius:999px;background:#061b14c9;font-size:.75rem;white-space:nowrap}
.summary-heading span{color:#f1d77c}
.summary-hand{display:flex;justify-content:center;align-items:center;min-height:92px;max-width:96vw;overflow:visible}
.summary-card{position:relative;flex:0 0 var(--summary-card-width);width:var(--summary-card-width);margin-left:calc(var(--summary-overlap) * -1);z-index:var(--summary-z);filter:drop-shadow(0 5px 5px #0008)}
.summary-card:first-child{margin-left:0}
.summary-card img{display:block;width:100%;height:auto}
.summary-card.deadwood{filter:drop-shadow(0 0 6px #e85b68) drop-shadow(0 5px 5px #0008)}
.summary-card.laid-off{filter:drop-shadow(0 0 7px #f0cf66) drop-shadow(0 5px 5px #0008)}
.summary-empty{color:var(--muted);font-size:.8rem}
.round-score-panel{justify-self:center;width:min(620px,88vw);padding:9px 18px;border-radius:20px;background:#071c16e8;border:1px solid #e1bd5c66;text-align:center;box-shadow:0 12px 35px #0007;z-index:10}
.round-score-panel h2{margin:1px 0 2px;font:italic 900 clamp(25px,6dvh,42px) Georgia,serif;color:#f0d277}
.round-score-panel p{margin:2px 0 5px;font-size:.85rem}
.summary-scores{display:flex;justify-content:center;gap:22px;font-size:.75rem;color:#d7e0da}
.auto-next{margin-top:5px;color:#f1d77c;font-weight:800;font-size:.8rem}
.game-finished-note{margin:5px 0;color:#f1d77c;font-weight:900}
.round-score-panel .btn{min-height:38px;padding:7px 15px}

@media (orientation:portrait){
  .waiting-portrait .sheet-actions{display:grid;grid-template-columns:1fr;gap:10px}
}

@media (orientation:landscape) and (max-height:430px){
  .game-table{grid-template-rows:43px minmax(126px,40dvh) minmax(145px,1fr)}
  .pile{width:clamp(82px,25dvh,104px)}
  .piles{min-height:120px;gap:34px}
  .pass-side{min-width:90px;min-height:46px}
  .own-hand-wrap{padding-bottom:14px}
  .round-summary-table{grid-template-rows:minmax(92px,1fr) auto minmax(92px,1fr)!important;padding-top:3px!important}
  .summary-hand{min-height:80px}
  .round-score-panel{padding:5px 14px}
  .round-score-panel h2{font-size:25px}
  .round-score-panel p{font-size:.74rem}
  .summary-heading{font-size:.67rem}
}

/* v0.1.8 — réorganisation continue de la main : la carte suit le geste sans quitter l’éventail. */

/* v0.1.9 — organisation optimale et détection visuelle des combinaisons */
.organize-hand-btn{
  position:absolute;
  right:clamp(6px,2vw,22px);
  top:50%;
  transform:translateY(-46%);
  z-index:24;
  width:clamp(62px,9.5vw,108px);
  min-height:58px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:0;
  padding:7px 6px;
  border-radius:16px;
  border:1px solid #f2d36b66;
  background:linear-gradient(180deg,#173e30ed,#0a241bea);
  color:#f6dc82;
  box-shadow:0 8px 22px #0006,inset 0 0 0 1px #ffffff0b;
  font-weight:900;
  line-height:1.02;
  touch-action:manipulation;
}
.organize-hand-btn span{font-size:1.12rem;line-height:1;margin-bottom:2px}
.organize-hand-btn b{font-size:clamp(.63rem,1.35vw,.82rem)}
.organize-hand-btn small{font-size:clamp(.53rem,1.08vw,.7rem);color:#d7c888;font-weight:750}
.organize-hand-btn:active{transform:translateY(-46%) scale(.96)}
.organize-hand-btn:disabled{opacity:.55}

/* Le drop-shadow suit la silhouette transparente réelle de la carte. */
.own-card.in-meld{
  filter:drop-shadow(0 0 2px #fff4a8) drop-shadow(0 0 6px #ffd84f) drop-shadow(0 8px 7px #0008);
}
.own-card.in-meld.card-dragging{
  filter:drop-shadow(0 0 3px #fff2a0) drop-shadow(0 0 7px #ffd74b) drop-shadow(0 11px 9px #0009);
}
.own-card.in-meld.card-dragging.over-table{
  filter:drop-shadow(0 0 4px #fff2a0) drop-shadow(0 0 10px #ffd74b) drop-shadow(0 12px 10px #0009);
}
@media(hover:hover){
  .own-card.in-meld:hover:not(.card-dragging){
    filter:drop-shadow(0 0 3px #fff4a8) drop-shadow(0 0 8px #ffd84f) drop-shadow(0 10px 8px #0008);
  }
}
.own-hand.organize-pulse .own-card.in-meld{animation:meldPulse .5s ease}
@keyframes meldPulse{
  50%{filter:drop-shadow(0 0 5px #fffbd0) drop-shadow(0 0 13px #ffd84f) drop-shadow(0 8px 7px #0008)}
}

@media (orientation:landscape) and (max-height:430px){
  .organize-hand-btn{right:4px;width:58px;min-height:50px;padding:5px 3px;border-radius:13px}
  .organize-hand-btn span{font-size:.92rem}
  .organize-hand-btn b{font-size:.59rem}
  .organize-hand-btn small{font-size:.5rem}
}
