/* قهوة عزاوي — palette from the logo: espresso brown, glowing gold, cream type, pink/cyan neon used sparingly. */
:root{
  --bg:#160e09; --panel:#23160e; --panel-2:#311f13; --line:#4f3420;
  --felt:#0e4743; --felt-2:#0a3532;
  --brass:#f2b53f; --brass-dim:#9a6d22; --neon-pink:#ff5a92; --neon-cyan:#4cc9e8;
  --ivory:#f4ead6; --pip:#211915;
  --fg:#fbebcf; --muted:#c2a587;
  --ok:#78c79a; --warn:#e8b450; --danger:#e07360;
  --f-display:"Reem Kufi","IBM Plex Sans Arabic",Tahoma,sans-serif;
  --f-body:"IBM Plex Sans Arabic",Tahoma,"Segoe UI",sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.6;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
  background-image:radial-gradient(circle at 20% 0%,rgba(242,181,63,.10),transparent 45%),radial-gradient(circle at 90% 100%,rgba(14,71,67,.25),transparent 50%);background-attachment:fixed}
[hidden]{display:none!important}
img{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;line-height:1.25;font-weight:700}
p{margin:0}
.wrap{max-width:1100px;margin:0 auto;padding-inline:16px;padding-block:20px}
.muted{color:var(--muted)}
.small{font-size:13px}
.num{font-variant-numeric:tabular-nums}
.spacer{flex:1}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.btn{border:1px solid var(--brass-dim);background:transparent;border-radius:10px;padding:10px 18px;font-weight:600;transition:background-color .15s,transform .1s,border-color .15s}
.btn:active{transform:scale(.97)}
.btn:hover{background:rgba(242,181,63,.1)}
.btn-primary{background:var(--brass);color:var(--pip);border-color:var(--brass)}
.btn-primary:hover{background:#f7c661}
.btn-danger{border-color:var(--danger);color:var(--danger)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-sm{padding:6px 12px;font-size:13px}

.field{display:grid;gap:6px}
.field label,.label{font-size:13px;color:var(--muted)}
.input,.field input,.field select{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
.input:focus,.field input:focus,.field select:focus{border-color:var(--brass);outline:none}
.err{color:var(--danger);font-size:13px;min-height:1.2em}

.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(22,14,9,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:10px;padding-block:8px;flex-wrap:wrap}
.brand{font-family:var(--f-display);font-size:21px;color:var(--brass);display:flex;align-items:center;gap:8px;background:none;border:0;padding:0;text-decoration:none}
.brand img{width:40px;height:auto;display:block}
.pill{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 4px 4px 12px}
.coins{color:var(--brass);font-weight:600}
.av{width:32px;height:32px;border-radius:50%;flex:none;overflow:hidden;background:var(--panel-2);display:block}
.av img{width:100%;height:100%;object-fit:cover;display:block}
.av-lg{width:56px;height:56px}
.av-xl{width:84px;height:84px}
.net{width:8px;height:8px;border-radius:50%;background:var(--danger)}
.net.on{background:var(--ok)}
.badge{min-width:20px;height:20px;border-radius:999px;background:var(--neon-pink);color:#fff;font-size:11px;font-weight:700;display:inline-grid;place-items:center;padding:0 6px}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;border-radius:999px;padding:2px 10px;background:rgba(0,0,0,.3);border:1px solid var(--line);width:max-content}
.chip.ok{border-color:var(--ok);color:var(--ok)} .chip.warn{border-color:var(--warn);color:var(--warn)} .chip.bad{border-color:var(--danger);color:var(--danger)}
.dot{width:7px;height:7px;border-radius:50%;background:var(--muted)} .dot.on{background:var(--ok)}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;min-width:0}
.panel h3{font-size:19px;margin-bottom:10px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row > .btn{flex:1}
.section-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.section-head h2{font-size:26px}
.back{border:1px solid var(--line);background:var(--panel);border-radius:10px;width:38px;height:38px;display:grid;place-items:center;font-size:18px}
.empty{display:grid;gap:8px;justify-items:center;text-align:center;padding:22px 8px}

/* auth */
.auth{min-height:100%;display:grid;place-items:center;padding-inline:16px;padding-block:28px}
.auth-card{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px;display:grid;gap:16px}
.auth-head{text-align:center;display:grid;justify-items:center}
.auth-logo{width:min(220px,66%);height:auto;filter:drop-shadow(0 6px 24px rgba(242,181,63,.25))}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-radius:10px;padding:4px}
.tabs button{border:0;background:transparent;border-radius:8px;padding:8px;color:var(--muted)}
.tabs button[aria-selected="true"]{background:var(--panel-2);color:var(--fg)}
.avs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.avs button{border:2px solid transparent;border-radius:50%;padding:0;background:var(--bg);aspect-ratio:1/1;max-width:100%;overflow:hidden;transition:border-color .15s,transform .1s}
.avs button:active{transform:scale(.95)}
.avs button[aria-checked="true"]{border-color:var(--brass);box-shadow:0 0 0 3px rgba(242,181,63,.25)}
.avs img{width:100%;height:100%;object-fit:cover;display:block}
.avs .up{border:2px dashed var(--brass-dim);color:var(--brass);display:grid;place-items:center;align-content:center;font-size:11px;line-height:1.3;text-align:center}
.avs .up b{font-size:22px;line-height:1}

.invite-banner{display:flex;align-items:center;gap:10px;border:1px solid var(--brass);background:rgba(242,181,63,.1);border-radius:12px;padding:10px 12px}
.invite-banner b{color:var(--brass)}
.btn-wa{background:#25d366;border-color:#25d366;color:#0b2a17;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn-wa:hover{background:#3ee07a}

/* home */
.hello{display:flex;gap:14px;align-items:center;margin-bottom:22px}
.hello h2{font-size:28px}
.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px}
.mode{position:relative;text-align:start;border:1px solid var(--line);border-radius:16px;padding:24px;display:grid;gap:10px;min-height:200px;align-content:end;overflow:hidden;background:var(--panel);transition:border-color .2s,transform .2s,box-shadow .2s}
.mode:hover{transform:translateY(-2px)}
.mode h3{font-size:26px}
.mode .art{position:absolute;inset:0;pointer-events:none}
.mode > *:not(.art){position:relative}
.mode-free .art{background:radial-gradient(circle at 80% 20%,rgba(14,71,67,.9),transparent 60%)}
.mode-free:hover{border-color:var(--neon-cyan);box-shadow:0 0 22px -6px var(--neon-cyan)}
.mode-bet .art{background:radial-gradient(circle at 80% 20%,rgba(242,181,63,.35),transparent 60%)}
.mode-bet:hover{border-color:var(--neon-pink);box-shadow:0 0 22px -6px var(--neon-pink)}
.next-games{margin-top:22px;border:1px dashed var(--line);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}

/* lists */
.people{display:grid;gap:8px}
.person{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.person .name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bots{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.bot{border:1px solid var(--line);background:var(--panel-2);border-radius:14px;padding:14px;display:grid;gap:6px;justify-items:start;text-align:start}
.bot:hover{border-color:var(--brass)}
.bot b{font-family:var(--f-display);font-size:18px;font-weight:500}
.bot small{color:var(--muted)}

/* rooms */
.rooms{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:760px){.rooms{grid-template-columns:repeat(2,1fr)}}
.room{aspect-ratio:1/1;max-width:100%;border-radius:18px;border:1px solid var(--line);background:linear-gradient(160deg,var(--panel-2),var(--panel));display:grid;place-items:center;align-content:center;gap:2px;position:relative;transition:border-color .2s,transform .2s}
.room:hover{border-color:var(--brass);transform:translateY(-2px)}
.room .amt{font-family:var(--f-display);font-size:clamp(44px,9vw,76px);color:var(--brass);line-height:1}
.room .lbl{color:var(--muted);font-size:13px}
.room .pot{position:absolute;bottom:10px;font-size:12px;color:var(--muted)}
.room .live{position:absolute;top:10px;inset-inline-start:10px}
.room-view{max-width:560px;margin:0 auto;display:grid;gap:14px;text-align:center}
.room-view .amt{font-family:var(--f-display);font-size:64px;color:var(--brass);line-height:1}
.code{font-family:ui-monospace,monospace;font-size:24px;letter-spacing:.2em;background:var(--bg);border:1px dashed var(--brass-dim);border-radius:10px;padding:10px;direction:ltr;user-select:all}
.spin{width:38px;height:38px;border:3px solid var(--line);border-top-color:var(--brass);border-radius:50%;animation:sp 1s linear infinite;margin:0 auto}
@keyframes sp{to{transform:rotate(360deg)}}

/* modal & drawer */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:40;display:grid;place-items:center;padding:16px}
.modal{width:100%;max-width:480px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:22px;display:grid;gap:14px;max-height:90vh;overflow:auto}
.terms{background:var(--bg);border-radius:10px;padding:12px 14px;font-size:13px;color:var(--muted);max-height:220px;overflow:auto}
.terms ol{margin:0;padding-inline-start:18px;display:grid;gap:6px}
.check{display:flex;gap:10px;align-items:flex-start}
.check input{width:18px;height:18px;margin-top:3px;accent-color:var(--brass);flex:none}
.drawer{position:fixed;inset-block:0;inset-inline-end:0;width:min(420px,100%);background:var(--panel);border-inline-start:1px solid var(--line);z-index:45;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.drawer-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.msgs{flex:1;overflow:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px;min-height:0}
.msg{max-width:85%;padding:7px 12px;border-radius:14px;background:var(--panel-2);font-size:14px;align-self:flex-end;overflow-wrap:anywhere}
.msg.me{align-self:flex-start;background:var(--felt)}
.msg.sys{align-self:center;background:transparent;border:1px dashed var(--line);color:var(--muted);font-size:12px;text-align:center}
.msg .from{display:block;font-size:11px;color:var(--brass);margin-bottom:1px}
.msg time{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.composer{display:flex;gap:8px;padding:10px 16px;border-top:1px solid var(--line)}
.composer input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 12px}
.quick{display:flex;gap:6px;flex-wrap:wrap;padding:0 16px 8px}
.quick button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:3px 10px;font-size:12px}
.reqs{display:grid;gap:6px;padding:10px 16px;border-bottom:1px solid var(--line)}
.req{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}
.req-form{display:grid;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line)}
.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--bg);border-radius:10px;padding:3px}
.seg button{border:0;background:transparent;border-radius:8px;padding:6px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--panel-2);color:var(--fg)}

/* game */
.game{display:grid;grid-template-columns:1fr 300px;gap:14px;align-items:start}
@media (max-width:900px){.game{grid-template-columns:1fr}}
.table{background:radial-gradient(ellipse at center,var(--felt),var(--felt-2));border:8px solid #3d2414;border-radius:22px;box-shadow:inset 0 0 40px rgba(0,0,0,.45);padding:12px;display:grid;gap:10px;min-width:0}
.seat{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.seat .name{font-weight:600}
.seat .turn{font-size:12px;color:var(--pip);background:var(--brass);border-radius:999px;padding:1px 10px}
.seat .off{font-size:12px;color:var(--danger)}
.score{margin-inline-start:auto;font-family:var(--f-display);font-size:20px;color:var(--brass)}
.backs{display:flex;gap:3px;flex-wrap:wrap}
.backs .t{width:13px}
.timer{height:4px;border-radius:2px;background:rgba(0,0,0,.3);overflow:hidden}
.timer i{display:block;height:100%;background:var(--brass);transform-origin:right;transition:transform .25s linear}
.timer.low i{background:var(--danger)}
.board{min-height:220px;border:1px dashed rgba(244,234,214,.18);border-radius:14px;padding:12px;direction:ltr;overflow:hidden}
.board-empty{min-height:190px;display:grid;place-items:center;text-align:center}
.lay{position:relative;margin:0 auto}
.lay .t{position:absolute;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}
.lay .t.new{animation:drop-in .35s ease-out}
@keyframes drop-in{from{opacity:0;transform:scale(1.25)}to{opacity:1;transform:none}}
.drop{position:absolute;border:2px dashed var(--brass);background:rgba(242,181,63,.18);color:var(--brass);border-radius:7px;font-size:11px;font-weight:700;padding:0;display:grid;place-items:center;animation:pulse 1.2s ease-in-out infinite}
@keyframes pulse{50%{background:rgba(242,181,63,.38)}}
.drop-solo{position:static;width:auto;height:auto;padding:10px 18px;font-size:14px}
.hand{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:4px;min-height:96px;align-items:flex-end}
.hand button{border:0;background:none;padding:0;border-radius:6px;transition:transform .15s,opacity .15s}
.hand .t{width:40px}
.hand button.ok{transform:translateY(-6px)}
.hand button.ok:hover{transform:translateY(-10px)}
.hand button.sel{transform:translateY(-14px);filter:drop-shadow(0 0 6px var(--brass))}
.hand button.no{opacity:.45}
.controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;align-items:center}
.yard{font-size:13px;color:var(--ivory);opacity:.8}
/* the boneyard, drawn as the real face-down tiles left in it */
.pile{display:inline-flex;align-items:center;gap:2px;flex-wrap:wrap;max-width:min(100%,330px);background:rgba(0,0,0,.25);border:1px dashed rgba(244,234,214,.25);border-radius:10px;padding:5px 8px;color:var(--ivory)}
.pile .t{width:13px}
.pile-n{font-size:12px;margin-inline-start:6px;opacity:.85;white-space:nowrap}
.pile:disabled{cursor:default}
.pile.can{border-color:var(--brass);border-style:solid;animation:pulse-b 1.2s ease-in-out infinite;cursor:pointer}
.pile.can .pile-n{color:var(--brass);font-weight:700;opacity:1}
@keyframes pulse-b{50%{box-shadow:0 0 0 3px rgba(242,181,63,.35)}}
.pile-empty{font-size:12px;opacity:.6}
.counts{display:flex;justify-content:center;gap:6px 14px;flex-wrap:wrap;color:var(--ivory);opacity:.85}
.counts b{color:var(--brass);font-weight:600}
/* how many of each number are already on the table (out of 7) */
.tracker{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;direction:ltr}
.tk{display:inline-flex;align-items:center;gap:4px;background:rgba(0,0,0,.28);border:1px solid rgba(244,234,214,.15);border-radius:8px;padding:2px 7px;font-size:12px;color:var(--ivory);font-variant-numeric:tabular-nums}
.tk b{font-size:14px;color:var(--ivory)}
.tk i{font-style:normal;opacity:.75}
.tk.hot{border-color:var(--warn)} .tk.hot i{color:var(--warn);opacity:1}
.tk.gone{opacity:.35;text-decoration:line-through}
.status{text-align:center;font-size:14px;color:var(--ivory);min-height:1.5em}
.round-banner{background:rgba(0,0,0,.35);border-radius:12px;padding:10px;text-align:center;color:var(--ivory);display:grid;gap:6px}
.round-banner .reveal{display:flex;gap:3px;justify-content:center;flex-wrap:wrap}
.round-banner .t{width:16px}
.t{display:block;height:auto}
.side{display:grid;gap:12px;min-width:0}
.chat{background:var(--panel);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;height:430px;min-width:0}
@media (max-width:900px){.chat{height:320px}}
.chat .msgs{padding:10px 12px}
.chat-head{padding:8px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chat-head b,.chat-head .btn{white-space:nowrap}
.chat-head .btn{padding:5px 9px}
.chat .composer{padding:8px 10px}
.chat .quick{padding:0 10px 8px}
.voice{display:flex;align-items:center;gap:6px}
.mic{display:inline-flex;align-items:center;gap:6px;transition:background-color .2s,border-color .2s,color .2s}
.mic-tag{font-size:11px;letter-spacing:.06em;border-radius:6px;padding:1px 6px;font-family:ui-monospace,monospace}
.mic[data-state="off"]{border-color:var(--danger);color:var(--fg)}
.mic[data-state="off"] .mic-tag{background:var(--danger);color:#fff}
.mic[data-state="on"]{background:var(--ok);border-color:var(--ok);color:var(--pip)}
.mic[data-state="on"] .mic-tag{background:var(--pip);color:var(--ok)}
.mic[data-state="blocked"]{opacity:.55}
.mic[data-state="blocked"] .mic-tag{background:var(--line);color:var(--fg)}
.mic.talking{box-shadow:0 0 0 3px rgba(120,199,154,.35),0 0 16px rgba(120,199,154,.6)}
/* who is talking: the speaker's picture lights up green */
.seat .av{transition:box-shadow .12s}
.seat.talking .av{box-shadow:0 0 0 3px var(--ok),0 0 18px var(--ok)}

.toast{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom,0px));inset-inline:0;margin:0 auto;width:max-content;max-width:calc(100% - 32px);background:var(--brass);color:var(--pip);padding:8px 16px;border-radius:10px;font-weight:600;z-index:60;text-align:center}
.toast-err{background:var(--danger);color:#fff}

/* staff pages */
.staff{display:grid;grid-template-columns:320px 1fr;gap:14px;align-items:start}
@media (max-width:860px){.staff{grid-template-columns:1fr}}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:grid;gap:2px}
.stat b{font-family:var(--f-display);font-size:24px;color:var(--brass);font-weight:500}
.stat span{font-size:12px;color:var(--muted)}
.list{display:grid;gap:6px;max-height:70vh;overflow:auto}
.list button.item{display:flex;gap:10px;align-items:center;text-align:start;border:1px solid var(--line);background:var(--panel-2);border-radius:12px;padding:8px 10px;width:100%}
.list button.item[aria-current="true"]{border-color:var(--brass)}
.item .meta{min-width:0;flex:1;display:grid}
.item .meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thread{display:flex;flex-direction:column;height:70vh;min-height:420px;padding:0;overflow:hidden}
.table-wrap{overflow-x:auto}
table.data{width:100%;border-collapse:collapse;font-size:13px}
table.data th,table.data td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:start;white-space:nowrap}
table.data th{color:var(--muted);font-weight:500}
.pos{color:var(--ok)} .neg{color:var(--danger)}
.nav-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.nav-tabs button{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:7px 14px}
.nav-tabs button[aria-selected="true"]{border-color:var(--brass);color:var(--brass)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:10px;align-items:end}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
