@charset "UTF-8";
/* CartaNera masaları 2.0 — her oyunun kendi masa geometrisi ve atmosferi.
   Solitaire: siyah-gri mermer, mat altın kenar. Pişti: ceviz ahşap kenar, lacivert-yeşil çuha.
   Blöf: bordo, siyah ve eskitilmiş altın. Blackjack: kavisli zümrüt masa, antrasit kenar.
   Varsayılan örtü (forest) seçiliyken imza tasarım uygulanır; mağazadan alınan örtü seçiliyse çuha rengi o örtüden gelir, kenarlar korunur. */
:root{--walnut:linear-gradient(135deg,#5a3a22,#3b2414 40%,#6b4628 60%,#2e1b0f);--antique:#b08a4a;--bordo:#4a1622;--emerald:#13573c}

/* ---------- Ortak: masa öncesi ekran ---------- */
.room-setup{max-width:760px;margin:0 auto;padding:18px;border:1px solid var(--stroke-2,#e6c98d33);border-radius:20px;background:linear-gradient(160deg,#151f19,#0e1511)}
.room-setup[hidden],.room-play[hidden]{display:none}
.setup-head{margin-bottom:14px}
.setup-head h3{font:26px/1.2 Georgia,serif;color:var(--gold-bright)}
.setup-group{margin-bottom:14px}
.setup-label{display:block;margin-bottom:7px;font-size:11px;font-weight:700;letter-spacing:1.2px;color:#9aa58d;text-transform:uppercase}
.setup-seg{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.setup-seg button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:54px;padding:9px 12px;border:1px solid #e6c98d26;border-radius:14px;background:#101813;color:var(--ink);text-align:left}
.setup-seg button strong{font-size:14px;font-weight:600}
.setup-seg button small{font-size:11px;color:#97a08c}
.setup-seg button.chosen{border-color:var(--gold);background:linear-gradient(150deg,#2c2614,#141a12);box-shadow:inset 0 0 0 1px #f3d59833}
.setup-seg button.chosen small{color:#d9c38e}
.bet-input{display:flex;align-items:center;gap:10px;margin-top:10px}
.bet-input span{font-size:12px;color:#a3ab9c}
.bet-input input{width:120px;min-height:44px;padding:0 12px;border:1px solid #e6c98d44;border-radius:12px;background:#0b110d;color:var(--gold-bright);font:600 18px/1 Georgia,serif;text-align:center}
.bj-limits{display:block;margin-top:6px;font-size:11px;color:#8f9a86}
.setup-rules{margin:4px 0 14px;font-size:13px;line-height:1.55;color:#b8bdaf}
.setup-actions{display:flex;gap:10px;flex-wrap:wrap}
.setup-actions button{flex:1;min-height:50px;border-radius:14px;font-size:15px;font-weight:600}
.setup-warn{margin-top:10px;font-size:12px;color:#e7a98f}
.room-view.setup-mode .room-toolbar [data-action="room-new"]{visibility:hidden}

/* ---------- Ortak: koltuklar, tepkiler ---------- */
.seat-avatar{position:relative;background:color-mix(in srgb,var(--avatar,#d9b36a) 22%,#0b1c13);border-color:color-mix(in srgb,var(--avatar,#d9b36a) 60%,transparent);color:var(--avatar,#f3d598)}
.seat-react{position:absolute;top:-14px;right:-4px;z-index:5;font-size:22px;line-height:1;pointer-events:none;animation:react 1.4s var(--ease,ease) forwards;filter:drop-shadow(0 3px 6px #0008)}
@keyframes react{0%{transform:translateY(8px) scale(.6);opacity:0}20%{transform:translateY(0) scale(1.1);opacity:1}80%{opacity:1}100%{transform:translateY(-12px);opacity:0}}
.on-turn{box-shadow:0 0 0 1px #f3d59866,0 0 22px #f3d5981f}
.claim-bubble{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);white-space:nowrap;padding:5px 10px;border-radius:12px;background:#f4ead2;color:#3a1d14;font:600 12px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 6px 14px #0007;animation:react-in .25s ease}
.claim-bubble::after{content:"";position:absolute;left:50%;top:100%;margin-left:-6px;border:6px solid transparent;border-top-color:#f4ead2}
@keyframes react-in{from{transform:translate(-50%,6px);opacity:0}}

/* ---------- Maç sonu ve rehber ---------- */
.result-table{display:grid;gap:6px;margin:14px 0}
.result-row{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding:0 14px;border:1px solid #e6c98d22;border-radius:12px;background:#101813}
.result-row.winner{border-color:var(--gold);background:linear-gradient(120deg,#2c2614,#121a14)}
.result-row.you span::after{content:" (sen)";color:#97a08c;font-size:12px}
.result-row strong{font:20px Georgia,serif;color:var(--gold-bright)}
.result-gain{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.result-gain span{display:flex;flex-direction:column;align-items:center;padding:10px;border-radius:12px;background:#0f1612;border:1px solid #e6c98d1c}
.result-gain small{font-size:10px;letter-spacing:1.2px;color:#8e977f}
.result-gain strong{font:24px Georgia,serif;color:var(--gold-bright)}
.guide{display:grid;gap:8px;margin-top:10px}
.guide-sec{border:1px solid #e6c98d22;border-radius:14px;background:#0f1612;overflow:hidden}
.guide-sec summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:0 14px;font-weight:600;font-size:14px;color:#ecdcb3}
.guide-sec summary::-webkit-details-marker{display:none}
.guide-sec summary::after{content:"+";font-size:20px;color:var(--gold)}
.guide-sec[open] summary::after{content:"–"}
.guide-sec>div{padding:0 14px 14px;font-size:13.5px;line-height:1.6;color:#cfd2c6}
.guide-sec ul{margin:6px 0;padding-left:18px}
.guide-sec li{margin:4px 0}
.guide-table{width:100%;border-collapse:collapse;margin:6px 0}
.guide-table td{padding:7px 4px;border-bottom:1px solid #ffffff10}
.guide-table td:last-child{text-align:right;font-weight:700;color:var(--gold-bright)}
.mini-row{display:inline-flex;align-items:center;gap:3px;vertical-align:middle;margin:2px 2px}
.mini-card{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:24px;height:34px;border-radius:4px;background:linear-gradient(130deg,#fffdf5,#e9e3d2);color:#1c2b28;font:700 11px/1 Georgia,serif;box-shadow:1px 2px 3px #0006}
.mini-card small{font-size:11px;line-height:1}
.mini-card.red{color:#b0302a}
.mini-card.back{background:repeating-linear-gradient(45deg,#162a20 0 3px,#b79755 3px 4px);border:1px solid #b7975588}
.race-option{border-style:dashed!important}
.race-option .diff-pips{font-size:18px}
.race-code{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.race-code span{font-size:12px;color:#a3ab9c}
.race-code input{min-height:52px;border:1px solid #e6c98d55;border-radius:14px;background:#0b110d;color:var(--gold-bright);font:600 24px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:6px;text-align:center;text-transform:uppercase}
.race-recent{display:grid;gap:6px;margin-bottom:10px}
.race-recent button{display:flex;justify-content:space-between;align-items:center;min-height:46px}
.race-recent small{color:#97a08c}

/* ---------- Solitaire: siyah-gri mermer, mat altın kenar ---------- */
#view-game .table-wrap{border:1px solid #b6955a77;box-shadow:inset 0 0 0 1px #00000066,0 14px 34px #0006}
body[data-theme="forest"] #view-game .table{background:
  radial-gradient(ellipse at 30% 20%,#ffffff0d,transparent 45%),
  linear-gradient(115deg,transparent 40%,#ffffff08 42%,transparent 44%,transparent 62%,#ffffff06 63%,transparent 65%),
  linear-gradient(35deg,transparent 20%,#c9c9c90a 21%,transparent 23%,transparent 70%,#c9c9c908 71%,transparent 73%),
  radial-gradient(ellipse at 50% 40%,#2b2e2d,#191b1b 55%,#0f1010)}
body[data-theme="forest"] #view-game .table-watermark{color:#d8c08f}
#view-game .pile-slot{border-color:#c9a66355}

/* ---------- Pişti: ceviz kenar, lacivert-yeşil çuha, dengeli koltuk düzeni ---------- */
.pisti-table{display:grid!important;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);grid-template-areas:"top top top" "left center right" "status status status" "hand hand hand";column-gap:12px;align-items:center;border:10px solid transparent!important;border-radius:26px!important;box-shadow:0 18px 40px #0008,inset 0 0 0 1px #00000088!important}
body[data-theme="forest"] .pisti-table{background:radial-gradient(ellipse at 50% 35%,#1d4a52,#123540 50%,#0b2026) padding-box,var(--walnut) border-box!important}
body:not([data-theme="forest"]) .pisti-table{background:var(--felt,linear-gradient(transparent,transparent)) padding-box,radial-gradient(ellipse at 50% 20%,var(--table-glow),var(--table) 65%,var(--table-edge)) padding-box,var(--walnut) border-box!important}
.seat-ring{display:contents}
.pisti-seat{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #e9d39a2a;border-radius:16px;background:#06141855;min-width:0}
.pisti-seat strong{display:block;font-size:13px;font-weight:600}
.pisti-seat strong em{font-style:normal;font-size:10px;color:#9fe0b8;margin-left:4px}
.pisti-seat small{display:block;font-size:11px;color:#a6b8b0}
.pisti-seat .seat-backs i{width:20px;height:30px;margin-left:-11px}
.pos-top{grid-area:top;justify-self:center;margin-bottom:6px}
.pos-left{grid-area:left;flex-direction:column;text-align:center}
.pos-right{grid-area:right;flex-direction:column;text-align:center}
.pos-left .seat-backs,.pos-right .seat-backs{margin:0;padding:0}
.pisti-seat.team-0{border-color:#8fd0a255}.pisti-seat.team-1{border-color:#e48aa555}
.pisti-seat.partner{background:#0c2a1d88}
.pisti-center{grid-area:center;margin:8px auto!important;width:100%}
#pisti-status{grid-area:status}
.pisti-table .hand-zone{grid-area:hand}
.room-scoreboard.sides-3,.room-scoreboard.sides-4{gap:14px!important;flex-wrap:wrap}
.room-scoreboard .sb-side{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:12px}
.room-scoreboard .sb-side>span{font-size:9px;letter-spacing:1.4px;color:#a4b094}
.room-scoreboard .sb-side strong{grid-row:1/3;grid-column:2;font:30px Georgia,serif;color:var(--gold)}
.room-scoreboard .sb-side.you strong{color:var(--gold-bright)}
.room-scoreboard .sb-side.team-0>span{color:#9fe0b8}.room-scoreboard .sb-side.team-1>span{color:#f0a3b8}
.room-details{display:flex;flex-wrap:wrap;gap:6px 14px}

/* ---------- Blöf: bordo, siyah, eskitilmiş altın ---------- */
.bluff-table{border:1px solid #b08a4a88!important;border-radius:28px!important;box-shadow:0 18px 40px #000a,inset 0 0 0 6px #120609,inset 0 0 0 7px #b08a4a44!important}
body[data-theme="forest"] .bluff-table{background:radial-gradient(ellipse at 50% 30%,#5a1a2a,#3a0f1a 45%,#1a070c 80%)!important}
.bluff-seats{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:10px}
.bluff-seats.seats-2{--n:1;max-width:280px;margin:0 auto}.bluff-seats.seats-3{--n:2;max-width:560px;margin:0 auto}.bluff-seats.seats-4{--n:3}
.bluff-seat{position:relative;border-color:#c9a25e33!important;background:radial-gradient(ellipse at 30% 0%,#ffffff0a,transparent 60%),#1a070caa!important;border-radius:16px!important}
.bluff-seat.on-turn{border-color:#e8c97c99!important}
.bluff-middle .center-stack .playing-card.back{box-shadow:0 0 0 1px #b08a4a66,2px 4px 8px #000a}
.claim-panel h3{color:#f0d9a4!important}
.table-fx.reveal strong{text-shadow:0 0 18px #f3d598aa}
#bluff-fx.show::before{content:"";position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(circle,#f3d59833,transparent 65%);animation:flash .9s ease-out forwards;pointer-events:none}
@keyframes flash{from{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.3)}}

/* ---------- Blackjack: kavisli zümrüt masa, antrasit kenar, fiziksel fişler ---------- */
.bj-table{position:relative;border:12px solid #232524!important;border-radius:48% 48% 26px 26px / 18% 18% 26px 26px!important;padding-top:34px!important;box-shadow:0 20px 44px #000a,inset 0 0 0 1px #b08a4a66,inset 0 0 60px #0007!important}
body[data-theme="forest"] .bj-table{background:radial-gradient(ellipse at 50% 18%,#237152,#13573c 45%,#0a2c1f 85%)!important}
.bj-table::before{content:"BLACKJACK 3:2 ÖDER • KRUPİYE YUMUŞAK 17’DE DURUR • SİGORTA 2:1";position:absolute;left:50%;top:44%;transform:translateX(-50%);width:max-content;max-width:92%;font:600 10px/1.3 Georgia,serif;letter-spacing:2px;color:#e9d39a55;text-align:center;pointer-events:none}
.bj-others{display:grid;grid-template-columns:repeat(var(--n,1),minmax(0,1fr));gap:10px;width:100%}
.bj-others.seats-0{display:none}.bj-others.seats-1{--n:1;max-width:320px;margin:0 auto}.bj-others.seats-2{--n:2}.bj-others.seats-3{--n:3}
.bj-seat{position:relative;padding:8px;border:1px solid #e9d39a26;border-radius:16px;background:#04150d66}
.bj-seat-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.bj-seat-head .seat-avatar{width:30px;height:30px;font-size:15px}
.bj-seat-head strong{display:block;font-size:12px}.bj-seat-head small{display:block;font-size:10px;color:#9daf8c}
.bj-seat-hands{display:flex;flex-wrap:wrap;gap:6px}
.bj-hands{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;width:100%}
.bj-hand{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px 8px;border:1px solid transparent;border-radius:16px;transition:border-color .2s,background .2s}
.bj-hand.active{border-color:#f3d598aa;background:#f3d59812;box-shadow:0 0 24px #f3d5981a}
.bj-hand .bj-cards{display:flex;padding-left:calc(var(--room-card-width) * .45);min-height:var(--card-height)}
.bj-hand .bj-cards>.playing-card{position:relative;inset:auto;width:var(--room-card-width);height:var(--card-height);margin-left:calc(var(--room-card-width) * -.45)}
.bj-hand.small{--room-card-width:34px;--card-height:48px;padding:4px}
.bj-hand.small .card-center{font-size:14px}
.bj-hand.small .card-corner{font-size:10px}
.bj-hand-meta{display:flex;align-items:center;gap:8px;font-size:12px}
.bj-hand-meta strong{font:600 15px Georgia,serif;color:var(--gold-bright)}
.bj-hand-meta em{font-style:normal;font-size:11px;padding:2px 8px;border-radius:999px;background:#ffffff14}
.bj-hand.res-win .bj-hand-meta em,.bj-hand.res-blackjack .bj-hand-meta em,.bj-hand.res-dealer-bust .bj-hand-meta em{background:#8fd0a233;color:#a8e8bb}
.bj-hand.res-lose .bj-hand-meta em,.bj-hand.res-bust .bj-hand-meta em{background:#e48a8a33;color:#f3b0b0}
.bj-bet-chip{display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 6px;border-radius:50%;background:radial-gradient(circle,#f6e3b4 0 38%,#b08a4a 39% 46%,#f6e3b4 47% 60%,#7a5a2a 61%);color:#2a1d08;font:700 10px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 3px 6px #0008,inset 0 -2px 0 #0003}
.bj-hand.just-split{animation:split-in .5s var(--ease,ease)}
@keyframes split-in{from{transform:translateX(-46%) rotate(-4deg);opacity:.2}to{transform:none;opacity:1}}
.bj-bet-panel{display:flex;flex-direction:column;align-items:center;gap:6px}
.bj-bet-panel[hidden]{display:none}
.bj-bet-panel .bet-input{margin-top:0}
.bet-chip{border-style:dashed!important;box-shadow:0 4px 0 #0006,inset 0 0 0 3px #ffffff22!important}
.bet-chip:active{transform:translateY(2px)}
.bj-actions button:disabled{opacity:.35}

/* ---------- Telefon ---------- */
@media(max-width:767px){
  .room-setup{padding:14px;border-radius:18px}
  .setup-seg{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))}
  .pisti-table{grid-template-columns:minmax(0,72px) minmax(0,1fr) minmax(0,72px);column-gap:6px;border-width:7px!important;padding:12px 8px!important}
  .pos-left,.pos-right{padding:8px 4px;gap:4px}
  .pos-left .seat-backs,.pos-right .seat-backs{display:none}
  .pisti-seat strong{font-size:12px}.pisti-seat small{font-size:10px}
  .pos-left small,.pos-right small{max-width:64px}
  .pisti-seat .seat-avatar{width:32px;height:32px;font-size:16px}
  .pisti-center{grid-template-columns:52px minmax(0,1fr) 52px!important;min-height:150px!important}
  .room-scoreboard .sb-side strong{font-size:24px}
  .room-scoreboard.sides-3,.room-scoreboard.sides-4{justify-content:space-around}
  .bluff-table{border-radius:22px!important}
  .bluff-seat{padding:8px!important}
  .claim-bubble{font-size:11px;padding:4px 8px}
  .bj-table{border-width:8px!important;border-radius:40% 40% 20px 20px / 10% 10% 20px 20px!important;padding:24px 8px 12px!important;--room-card-width:56px;--card-height:80px}
  .bj-table::before{top:auto;bottom:6px;font-size:8px;letter-spacing:1px}
  .bj-others.seats-2,.bj-others.seats-3{--n:3;gap:6px}
  .bj-seat{padding:6px}
  .bj-seat-head .seat-avatar{width:24px;height:24px;font-size:12px}
  .bj-seat-head small{display:none}
  .bj-hand.small{--room-card-width:26px;--card-height:37px}
  .bj-hand.small .card-center{display:none}
  .bj-hands.hands-3,.bj-hands.hands-4{--room-card-width:42px;--card-height:60px;gap:6px}
  .bj-hands.hands-2{--room-card-width:50px;--card-height:71px}
  .bj-controls{gap:10px!important}
  .bj-actions{display:grid!important;grid-template-columns:repeat(2,1fr);width:100%;gap:8px!important}
  .bj-actions button{min-width:0!important;min-height:46px}
  .bj-actions button.primary:first-child:last-child,.bj-actions button:nth-child(5){grid-column:1/-1}
}
@media(max-width:374px){
  .pisti-table{grid-template-columns:minmax(0,60px) minmax(0,1fr) minmax(0,60px)}
  .bj-table{--room-card-width:48px;--card-height:69px}
}
@media(prefers-reduced-motion:reduce){.seat-react,.claim-bubble,.bj-hand.just-split,#bluff-fx.show::before{animation:none!important}}
body.no-motion .seat-react,body.no-motion .claim-bubble,body.no-motion .bj-hand.just-split{animation:none!important}
@media(max-width:767px){.pisti-table:has(.pos-left) .room-capture small,.pisti-table:has(.pos-left) .room-stock small{display:none}.pisti-table:has(.pos-left) .room-capture strong{font-size:22px}}
/* Blackjack telefonda: kontroller ekranın altında sabit, ara alan sıkı; masa yazısı ve açıklama gizli (ayar ekranında var). */
@media(max-width:767px){
  .bj-middle{grid-template-columns:40px 1fr!important;gap:8px!important;min-height:0!important;margin:2px auto!important}
  .bj-shoe .stock-mini{width:28px;height:40px;font-size:14px}
  .bj-shoe small{font-size:8px}
  .bj-message{font-size:12.5px;text-align:left}
  .bj-mode-note,.bj-table::before{display:none}
  .bj-zone{gap:6px!important}
  .bj-head .seat-avatar{width:30px;height:30px}
  .bj-controls{position:sticky;bottom:0;z-index:25;margin:6px -8px -12px!important;padding:10px 10px calc(10px + var(--sab,0px))!important;max-width:none!important;background:linear-gradient(180deg,#0c2a1ee6,#0a1d15f7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid #e9d39a33;border-radius:0 0 16px 16px}
  .bj-controls .bj-bank{padding:4px 10px}
  .bj-hand.small .bj-hand-meta strong{font-size:12px}
  .bj-hand.small .bj-bet-chip{min-width:26px;height:26px;font-size:9px}
}
.bj-hand.small .bj-hand-meta{flex-wrap:wrap;justify-content:center;gap:3px 5px}
.bj-hand.small .bj-hand-meta em{font-size:10px;padding:1px 6px}
.bj-seat{min-width:0;overflow:hidden}
@media(max-width:767px){.bj-others.seats-2{--n:2!important}}
.bj-table:has(.bj-others:not(.seats-0))::before{display:none}
