/* ═══════════════════════════════════════════════════════════════
   YATZY MULTIPLAYER — Redesign 2.0
   Modern · verspielt · animationsreich · mobile-first
   ═══════════════════════════════════════════════════════════════ */

/* ───────────────────────────────────────────
   DESIGN TOKENS
   ─────────────────────────────────────────── */
:root{
    /* Brand = grüner 3D-Aktionsbutton (wie ROLL im GIF) */
    --brand:#5fae2b;
    --brand-2:#7cc23a;
    --brand-deep:#478f1f;
    --grad-brand:linear-gradient(180deg,#9ee156 0%,#6dbe33 46%,#4f9e22 100%);
    --brand-bevel:#3c7a17;

    /* Accent = orange Wert-Kacheln */
    --accent:#f5911e;
    --accent-2:#ffbf45;
    --grad-accent:linear-gradient(180deg,#ffc94f 0%,#f79a1f 55%,#ef8412 100%);
    --accent-bevel:#c56d0b;

    /* Casino-Akzente */
    --violet:#8b5cf6;
    --teal:#2f96e6;
    --gold:#ffd257;
    --gold-deep:#e0a51f;
    --green:#5fae2b;
    --pink:#f472b6;

    /* blaue Filz-Kacheln */
    --tile-blue:linear-gradient(180deg,#8fc0f7 0%,#4f94ec 55%,#3d7fd8 100%);
    --tile-blue-bevel:#2a63b4;

    /* Surfaces */
    --bg:#1f56c8;
    --bg-2:#123a99;
    --bg-glow-1:rgba(120,180,255,.35);
    --bg-glow-2:rgba(30,80,190,.5);
    --bg-glow-3:rgba(10,40,120,.55);
    --surface:#ffffff;
    --surface-2:#dbe7fb;
    --surface-3:#eef4fe;
    --border:#c3d7f5;
    --border-strong:#a6c2ee;

    /* Text */
    --text:#1a2a54;
    --text-soft:#54638c;
    --text-mute:#8b9cc2;
    --on-brand:#ffffff;

    /* Effects */
    --radius-sm:12px;
    --radius:18px;
    --radius-lg:26px;
    --radius-xl:32px;
    --shadow-sm:0 4px 14px rgba(10,30,80,.18);
    --shadow:0 14px 30px rgba(10,30,80,.28);
    --shadow-lg:0 26px 60px rgba(6,20,60,.45);
    --shadow-brand:0 10px 22px rgba(60,122,23,.5);
    --ring:0 0 0 4px rgba(95,174,43,.28);

    --ease-bounce:cubic-bezier(.34,1.56,.64,1);
    --ease-smooth:cubic-bezier(.4,.15,.2,1);
    --safe-bottom:env(safe-area-inset-bottom,0px);
}

body.dark{
    --bg:#0f2a63;
    --bg-2:#081c46;
    --bg-glow-1:rgba(90,150,240,.30);
    --bg-glow-2:rgba(20,60,150,.5);
    --bg-glow-3:rgba(4,16,50,.6);
    --surface:#152850;
    --surface-2:#1d3566;
    --surface-3:#25407a;
    --border:#2e4a82;
    --border-strong:#3a5896;

    --text:#eaf1ff;
    --text-soft:#adc0e6;
    --text-mute:#7f93bf;
    --shadow-sm:0 4px 14px rgba(0,0,0,.4);
    --shadow:0 14px 34px rgba(0,0,0,.5);
    --shadow-lg:0 26px 60px rgba(0,0,0,.65);
}

/* ───────────────────────────────────────────
   RESET & BASE
   ─────────────────────────────────────────── */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    -webkit-tap-highlight-color:transparent;
}

html,body{
    width:100%;
    min-height:100%;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:var(--bg);
    color:var(--text);
    overflow-x:hidden;
    transition:background .4s ease,color .3s ease;
}

body{
    position:relative;
    min-height:100dvh;
    overflow-y:auto;
}

/* floating playful backdrop */
body::before{
    content:"";
    position:fixed;
    inset:-20%;
    z-index:-2;
    background:
        radial-gradient(38% 42% at 12% 18%,var(--bg-glow-1),transparent 70%),
        radial-gradient(34% 38% at 88% 22%,var(--bg-glow-2),transparent 70%),
        radial-gradient(42% 46% at 50% 96%,var(--bg-glow-3),transparent 70%);
    animation:bgFloat 22s ease-in-out infinite alternate;
    pointer-events:none;
}

@keyframes bgFloat{
    0%{transform:translate3d(0,0,0) scale(1);}
    50%{transform:translate3d(2%,-2.5%,0) scale(1.06);}
    100%{transform:translate3d(-2%,2%,0) scale(1.03);}
}

::selection{background:var(--brand);color:#fff;}

/* Scrollbars */
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;}
*::-webkit-scrollbar-track{background:transparent;}

/* ───────────────────────────────────────────
   TYPOGRAPHY
   ─────────────────────────────────────────── */
h1{
    font-family:"Fredoka",Inter,system-ui,sans-serif;
    text-align:center;
    font-size:clamp(30px,7vw,44px);
    font-weight:700;
    letter-spacing:-.01em;
    margin-bottom:22px;
    background:var(--grad-brand);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    filter:drop-shadow(0 6px 16px rgba(240,101,63,.28));
}

h2{
    font-family:"Fredoka",Inter,system-ui,sans-serif;
    font-weight:600;
    font-size:clamp(18px,4.5vw,22px);
    margin-bottom:14px;
    letter-spacing:-.01em;
}

h3{
    font-family:"Fredoka",Inter,system-ui,sans-serif;
    font-weight:600;
    font-size:20px;
    margin-bottom:10px;
}

/* ───────────────────────────────────────────
   BUTTONS
   ─────────────────────────────────────────── */
button{
    border:none;
    cursor:pointer;
    font-family:inherit;
    color:inherit;
    background:none;
    transition:transform .16s var(--ease-bounce),box-shadow .2s ease,background .2s ease,opacity .2s ease,filter .2s ease;
}

button:hover{transform:translateY(-2px);}
button:active{transform:translateY(0) scale(.97);}
button:disabled{opacity:.4;cursor:not-allowed;transform:none;filter:grayscale(.3);}

#createRoomBtn,#joinRoomBtn,#readyBtn,#startGameBtn,#leaveBtn,#rollBtn,#showQrBtn,.settings-option{
    width:100%;
    height:56px;
    border-radius:var(--radius);
    font-size:16px;
    font-weight:700;
    letter-spacing:.01em;
}

#createRoomBtn,#joinRoomBtn,#readyBtn,#startGameBtn,#rollBtn,#showQrBtn,.settings-option{
    background:var(--grad-brand);
    color:var(--on-brand);
    box-shadow:var(--shadow-brand);
    background-size:180% 180%;
}

#createRoomBtn:hover,#joinRoomBtn:hover,#readyBtn:hover,#startGameBtn:hover,#rollBtn:hover,#showQrBtn:hover,.settings-option:hover{
    box-shadow:0 18px 36px rgba(240,101,63,.5);
    background-position:100% 50%;
}

.secondary{
    background:var(--surface-2) !important;
    color:var(--text) !important;
    box-shadow:var(--shadow-sm);
    border:1px solid var(--border);
}

.secondary:hover{box-shadow:var(--shadow);}

.small-button{
    width:auto !important;
    height:42px !important;
    padding:0 16px;
    border-radius:999px;
    font-weight:700;
    font-size:14px;
}

.icon-button{
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--surface-2);
    border:1px solid var(--border);
    font-size:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    box-shadow:var(--shadow-sm);
}

.icon-button:hover{background:var(--surface-3);}

/* ───────────────────────────────────────────
   INPUTS
   ─────────────────────────────────────────── */
input,select{
    width:100%;
    height:54px;
    border:1.5px solid var(--border-strong);
    border-radius:var(--radius-sm);
    padding:0 16px;
    font-size:16px;
    font-family:inherit;
    background:var(--surface);
    color:var(--text);
    margin-bottom:12px;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

input::placeholder{color:var(--text-mute);}

input:focus,select:focus{
    outline:none;
    border-color:var(--brand);
    box-shadow:var(--ring);
}

select{
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23a89a91' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat:no-repeat;
    background-position:right 14px center;
    padding-right:44px;
    cursor:pointer;
}

/* ───────────────────────────────────────────
   SCREENS & CARDS
   ─────────────────────────────────────────── */
.screen{
    display:none;
    width:100%;
    min-height:100dvh;
}

.screen.active{display:flex;}

.card{
    width:100%;
    max-width:720px;
    margin:auto;
    padding:clamp(16px,4vw,32px) clamp(14px,4vw,24px);
    animation:screenIn .5s var(--ease-smooth);
}

@keyframes screenIn{
    from{opacity:0;transform:translateY(16px);}
    to{opacity:1;transform:translateY(0);}
}

/* Home create/join side-by-side on wide screens */
#homeScreen .card{max-width:920px;}

/* Playful mascot above the title (pure CSS, uses existing asset) */
#homeScreen .card > h1{
    margin-bottom:24px;
    position:relative;
    padding-top:104px;
}

#homeScreen .card > h1::before{
    content:"";
    position:absolute;
    top:0;
    left:50%;
    transform:translateX(-50%);
    width:96px;
    height:96px;
    background:url("assets/fox/fox.gif") center/contain no-repeat;
    filter:drop-shadow(0 12px 20px rgba(240,101,63,.4));
    animation:mascotFloat 3.2s var(--ease-smooth) infinite;
}

@keyframes mascotFloat{
    0%,100%{transform:translateX(-50%) translateY(0) rotate(-2deg);}
    50%{transform:translateX(-50%) translateY(-10px) rotate(2deg);}
}

@media (min-width:760px){
    #homeScreen .card{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:18px;
        align-content:start;
    }
    #homeScreen .card > h1{grid-column:1 / -1;margin-bottom:8px;}
    #homeScreen .card > .block{margin-bottom:0;}
}

.block{
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:22px;
    margin-bottom:18px;
    box-shadow:var(--shadow);
    position:relative;
    overflow:hidden;
}

.block::before{
    content:"";
    position:absolute;
    top:0;left:0;right:0;
    height:4px;
    background:var(--grad-brand);
    opacity:.9;
}

/* ───────────────────────────────────────────
   AVATAR PICKER
   ─────────────────────────────────────────── */
.avatar-picker{
    display:flex;
    align-items:center;
    gap:14px;
    background:var(--surface-2);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:12px;
    margin-bottom:14px;
}

.avatar-preview{
    width:60px;
    height:60px;
    border-radius:50%;
    object-fit:cover;
    background:var(--surface-3);
    border:3px solid var(--brand);
    flex-shrink:0;
    box-shadow:var(--shadow-sm);
}

.avatar-upload-btn{
    flex:1;
    height:48px;
    border-radius:var(--radius-sm);
    background:var(--grad-brand);
    color:var(--on-brand);
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    font-size:14px;
    cursor:pointer;
    box-shadow:var(--shadow-brand);
    transition:transform .16s var(--ease-bounce),box-shadow .2s ease;
}

.avatar-upload-btn:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(240,101,63,.45);}
.avatar-upload-btn:active{transform:scale(.97);}
.avatar-file-input{display:none;}

/* ───────────────────────────────────────────
   CRAZY / TOURNAMENT TOGGLES
   ─────────────────────────────────────────── */
.crazy-toggle-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:14px 0 12px;
    border-top:1px solid var(--border);
    margin-top:8px;
}

.crazy-toggle-label{
    display:flex;
    align-items:center;
    gap:9px;
    font-weight:700;
    font-size:15px;
    flex-wrap:wrap;
}

.crazy-icon{font-size:20px;}

.crazy-badge{
    font-size:10px;
    font-weight:800;
    background:var(--grad-brand);
    color:#fff;
    padding:3px 9px;
    border-radius:999px;
    letter-spacing:.05em;
    box-shadow:var(--shadow-sm);
}

.toggle-switch{
    position:relative;
    width:56px;
    height:30px;
    display:inline-block;
    flex-shrink:0;
}

.toggle-switch input{position:absolute;opacity:0;width:0;height:0;margin:0;}

.toggle-slider{
    position:absolute;
    inset:0;
    background:var(--border-strong);
    border-radius:999px;
    cursor:pointer;
    transition:.35s var(--ease-smooth);
}

.toggle-slider:before{
    content:"";
    position:absolute;
    width:24px;
    height:24px;
    left:3px;
    top:3px;
    background:#fff;
    border-radius:50%;
    transition:.35s var(--ease-bounce);
    box-shadow:0 2px 6px rgba(0,0,0,.25);
}

.toggle-switch input:checked + .toggle-slider{background:var(--grad-brand);}
.toggle-switch input:checked + .toggle-slider:before{transform:translateX(26px);}

.crazy-desc{
    font-size:13px;
    color:var(--brand-deep);
    background:color-mix(in srgb,var(--brand) 12%,var(--surface));
    border:1px solid color-mix(in srgb,var(--brand) 24%,transparent);
    border-radius:var(--radius-sm);
    padding:12px 14px;
    margin-bottom:12px;
    line-height:1.5;
    display:flex;
    flex-direction:column;
    gap:10px;
    animation:popIn .35s var(--ease-bounce);
}

body.dark .crazy-desc{color:var(--brand-2);}

.crazy-cheatsheet-btn{
    background:none;
    border:1.5px solid var(--brand);
    color:var(--brand);
    border-radius:10px;
    padding:6px 12px;
    font-size:12px;
    font-weight:700;
    width:fit-content;
}

.crazy-cheatsheet-btn:hover{background:var(--brand);color:#fff;}

.crazy-mode-badge{
    background:var(--grad-brand);
    color:#fff;
    border-radius:var(--radius-sm);
    padding:10px 16px;
    font-weight:800;
    font-size:14px;
    margin-bottom:14px;
    text-align:center;
    box-shadow:var(--shadow-brand);
    animation:popIn .4s var(--ease-bounce);
}

@keyframes popIn{
    0%{opacity:0;transform:scale(.85);}
    100%{opacity:1;transform:scale(1);}
}

/* ───────────────────────────────────────────
   LOBBY
   ─────────────────────────────────────────── */
#lobbyScreen .card{max-width:640px;}

.lobby-header{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
}

.lobby-header h2{margin-bottom:0;flex:1;min-width:120px;}

.code-box{
    background:var(--grad-brand);
    color:#fff;
    padding:9px 14px;
    border-radius:999px;
    font-weight:700;
    font-size:14px;
    box-shadow:var(--shadow-brand);
}

.code-box strong{letter-spacing:.06em;}

.player-counter{
    margin-bottom:16px;
    font-weight:700;
    color:var(--text-soft);
}

.players-list{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-bottom:22px;
}

.player-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    background:var(--surface);
    border:1px solid var(--border);
    padding:14px 16px;
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
    animation:rowIn .4s var(--ease-bounce) backwards;
}

@keyframes rowIn{
    from{opacity:0;transform:translateX(-14px);}
    to{opacity:1;transform:translateX(0);}
}

.player-info{display:flex;align-items:center;gap:12px;font-weight:600;}

.avatar{
    width:46px;
    height:46px;
    border-radius:50%;
    object-fit:cover;
    background:var(--surface-3);
    border:2px solid var(--border-strong);
}

.ready{
    color:var(--green);
    font-weight:800;
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.ready::before{content:"●";font-size:10px;animation:blink 1.4s ease-in-out infinite;}
.not-ready{color:var(--text-mute);font-weight:600;}

@keyframes blink{0%,100%{opacity:1;}50%{opacity:.35;}}

.lobby-buttons{display:flex;flex-direction:column;gap:12px;}

/* ───────────────────────────────────────────
   GAME SCREEN LAYOUT
   ─────────────────────────────────────────── */
#gameScreen{
    flex-direction:column;
    height:100dvh;
    max-width:820px;
    margin:0 auto;
    width:100%;
}

.top-bar{
    position:sticky;
    top:0;
    z-index:30;
    background:color-mix(in srgb,var(--surface) 88%,transparent);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    padding-top:calc(10px + env(safe-area-inset-top,0px));
    border-bottom:1px solid var(--border);
    flex-wrap:wrap;
}

#turnInfo{
    font-weight:800;
    font-size:15px;
    flex:1;
    min-width:90px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

#rollCount{
    font-size:12px;
    font-weight:700;
    color:var(--text-soft);
    background:var(--surface-2);
    border:1px solid var(--border);
    padding:5px 11px;
    border-radius:999px;
    white-space:nowrap;
}

#closeRoomBtn{
    height:38px;
    padding:0 12px;
    border-radius:999px;
    background:var(--surface-2);
    border:1px solid var(--border);
    font-size:12px;
    font-weight:700;
    color:var(--text-soft);
    white-space:nowrap;
}

#closeRoomBtn:hover{color:var(--brand-deep);border-color:var(--brand);}

.coin-display{
    background:linear-gradient(135deg,#fff4cc,#ffe08a);
    border:1px solid var(--gold);
    border-radius:999px;
    padding:5px 12px;
    font-size:14px;
    font-weight:800;
    color:#8a5a00;
    white-space:nowrap;
    box-shadow:var(--shadow-sm);
    display:flex;
    align-items:center;
    gap:4px;
}

body.dark .coin-display{background:linear-gradient(135deg,#4a3a12,#5c4718);color:#ffd873;}

.coin-display.coin-bump{animation:coinBump .5s var(--ease-bounce);}

@keyframes coinBump{0%{transform:scale(1);}40%{transform:scale(1.25);}100%{transform:scale(1);}}

.shop-btn{
    height:38px;
    border-radius:999px;
    background:linear-gradient(135deg,var(--gold),var(--brand-2));
    color:#fff;
    font-weight:800;
    font-size:13px;
    padding:0 14px;
    box-shadow:0 8px 18px rgba(247,183,49,.4);
    white-space:nowrap;
}

/* Player tabs */
.player-tabs{
    display:flex;
    overflow-x:auto;
    gap:9px;
    padding:10px 12px;
    background:var(--surface);
    border-bottom:1px solid var(--border);
    scrollbar-width:none;
}

.player-tabs::-webkit-scrollbar{display:none;}

.tab{
    min-width:auto;
    height:42px;
    border-radius:999px;
    background:var(--surface-2);
    border:1px solid var(--border);
    padding:0 16px;
    white-space:nowrap;
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:700;
    font-size:13px;
    flex-shrink:0;
    color:var(--text-soft);
}

.tab.active{
    background:var(--grad-brand);
    color:#fff;
    border-color:transparent;
    box-shadow:var(--shadow-brand);
}

.tab-avatar{
    width:26px;
    height:26px;
    border-radius:50%;
    object-fit:cover;
    background:var(--surface-3);
}

/* Live scoreboard strip */
.podium{
    background:var(--surface);
    border:1px solid var(--border);
    padding:14px 16px;
    border-radius:var(--radius);
    margin:12px;
    box-shadow:var(--shadow-sm);
}

.live-podium{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:10px 12px;
    margin:10px 12px;
    scrollbar-width:none;
}

.live-podium::-webkit-scrollbar{display:none;}

.live-podium .podium-row{
    flex-shrink:0;
    background:var(--surface-2);
    border:1px solid var(--border);
    border-radius:999px;
    padding:7px 14px;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
    display:flex;
    align-items:center;
    gap:6px;
}

.live-podium .podium-row span{float:none !important;}
.live-podium .podium-row:first-child{
    background:linear-gradient(135deg,#fff4cc,#ffe08a);
    border-color:var(--gold);
    color:#8a5a00;
}
body.dark .live-podium .podium-row:first-child{background:linear-gradient(135deg,#4a3a12,#5c4718);color:#ffd873;}

.podium-row{padding:8px;font-weight:600;}

/* ───────────────────────────────────────────
   SCORECARD
   ─────────────────────────────────────────── */
.scorecard{
    flex:1;
    overflow-y:auto;
    padding:8px 12px;
    padding-bottom:calc(200px + var(--safe-bottom));
    -webkit-overflow-scrolling:touch;
}

.section-title{
    font-family:"Fredoka",Inter,system-ui,sans-serif;
    font-size:15px;
    font-weight:600;
    margin:18px 4px 10px;
    color:var(--brand);
    text-transform:uppercase;
    letter-spacing:.06em;
    display:flex;
    align-items:center;
    gap:8px;
}

.section-title::after{
    content:"";
    flex:1;
    height:2px;
    border-radius:2px;
    background:linear-gradient(90deg,color-mix(in srgb,var(--brand) 40%,transparent),transparent);
}

.score-row{
    display:grid;
    grid-template-columns:1fr 86px;
    gap:8px;
    margin-bottom:8px;
}

.score-row button{
    min-height:54px;
    border-radius:var(--radius-sm);
    font-size:15px;
    font-weight:600;
    display:flex;
    align-items:center;
}

.score-row button:first-child{
    background:var(--surface);
    border:1px solid var(--border);
    text-align:left;
    padding:0 15px;
    box-shadow:var(--shadow-sm);
    color:var(--text);
}

.score-value{
    background:var(--surface);
    border:1px solid var(--border);
    font-weight:800;
    box-shadow:var(--shadow-sm);
    justify-content:center;
    color:var(--text);
}

.score-row.locked .score-value{background:var(--surface-2);color:var(--text-soft);}

/* Bonus row renders a bare <strong> as its value cell */
.score-row > strong{
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--surface-2);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    font-weight:800;
    font-size:16px;
    color:var(--brand);
}

.score-row.possible button{
    animation:possiblePulse 1.4s var(--ease-smooth) infinite;
    border:2px solid var(--green);
}

.score-row.possible .score-value{
    background:linear-gradient(135deg,color-mix(in srgb,var(--green) 22%,var(--surface)),var(--surface));
    color:var(--green);
    border-color:var(--green);
}

@keyframes possiblePulse{
    0%{box-shadow:0 0 0 0 rgba(37,194,110,.45);}
    70%{box-shadow:0 0 0 10px rgba(37,194,110,0);}
    100%{box-shadow:0 0 0 0 rgba(37,194,110,0);}
}

.score-row.filled button:first-child,
.score-row.filled .score-value{
    background:linear-gradient(135deg,color-mix(in srgb,var(--green) 16%,var(--surface)),var(--surface));
    border:1.5px solid var(--green);
    color:var(--green);
    font-weight:800;
    animation:filledPop .4s var(--ease-bounce);
}

@keyframes filledPop{0%{transform:scale(.94);}60%{transform:scale(1.03);}100%{transform:scale(1);}}

.total-box{
    margin-top:22px;
    background:var(--grad-brand);
    color:#fff;
    padding:18px;
    border-radius:var(--radius);
    text-align:center;
    font-size:21px;
    font-weight:800;
    box-shadow:var(--shadow-brand);
}

.dragon-bonus-row{
    margin-top:12px;
    background:color-mix(in srgb,var(--brand) 12%,var(--surface));
    border:1.5px solid var(--brand);
    border-radius:var(--radius-sm);
    padding:12px 15px;
    font-size:13px;
    line-height:1.5;
}

.dragon-bonus-row strong{color:var(--brand);}

.dragon-mission-status{font-size:12px;margin-top:5px;color:var(--text-mute);}
.dragon-mission-status.done{color:var(--green);font-weight:800;}

/* ───────────────────────────────────────────
   DICE FOOTER
   ─────────────────────────────────────────── */
.dice-footer{
    position:fixed;
    left:50%;
    transform:translateX(-50%);
    bottom:0;
    width:100%;
    max-width:820px;
    background:color-mix(in srgb,var(--surface) 92%,transparent);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-top:1px solid var(--border);
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
    padding:14px 14px calc(14px + var(--safe-bottom));
    z-index:100;
    box-shadow:0 -14px 34px rgba(72,42,28,.12);
}

.active-boost-display{
    background:linear-gradient(135deg,color-mix(in srgb,var(--green) 22%,var(--surface)),var(--surface));
    border:1px solid var(--green);
    border-radius:var(--radius-sm);
    padding:7px 12px;
    font-size:13px;
    font-weight:700;
    color:var(--green);
    text-align:center;
    margin-bottom:10px;
    animation:popIn .35s var(--ease-bounce);
}

.dice-area{
    display:flex;
    justify-content:center;
    gap:10px;
    margin-bottom:12px;
}

.die{
    position:relative;
    width:60px;
    height:60px;
    font-size:38px;
    line-height:1;
    border-radius:16px;
    background:linear-gradient(160deg,var(--surface),var(--surface-2));
    border:2px solid var(--border-strong);
    box-shadow:var(--shadow-sm),inset 0 2px 4px rgba(255,255,255,.5);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--text);
    transition:transform .2s var(--ease-bounce),border-color .2s ease,background .2s ease,box-shadow .2s ease;
}

body.dark .die{box-shadow:var(--shadow-sm),inset 0 2px 4px rgba(255,255,255,.06);}

.die:not(.rolling):hover{transform:translateY(-3px) scale(1.06);}

.die.my-turn{
    width:66px;
    height:66px;
    font-size:44px;
}

.die.rolling{animation:rolling .5s linear infinite;}

.die.hold,.die.locked{
    border-color:var(--brand);
    background:linear-gradient(160deg,color-mix(in srgb,var(--brand) 14%,var(--surface)),color-mix(in srgb,var(--brand) 6%,var(--surface)));
    box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent),var(--shadow-sm);
}

.die.yatzy{
    border-color:var(--gold);
    box-shadow:0 0 26px var(--gold);
    animation:yatzyGlow .8s ease-in-out infinite;
}

.die.golden{
    border:3px solid #ffd700;
    background:linear-gradient(160deg,#fffbe6,#fff2b8);
    color:#8a6a00;
    animation:goldenPulse 1.3s ease-in-out infinite;
}

.die.cursed{
    border:3px solid var(--violet);
    background:linear-gradient(160deg,#f5edff,#e9dcff);
    color:#5b23a8;
    animation:cursedPulse 1.3s ease-in-out infinite;
}

.die.cursed.rerolled{
    border:2px solid var(--border-strong);
    background:var(--surface);
    animation:none;
}

.die.joker{
    border:3px solid var(--teal);
    background:linear-gradient(160deg,#e0fbf8,#c8f5ef);
    color:#0b7d72;
    animation:jokerPulse 1.3s ease-in-out infinite;
}

.lock{position:absolute;top:4px;right:5px;font-size:13px;}

.die-badge{
    position:absolute;
    bottom:3px;
    left:50%;
    transform:translateX(-50%);
    font-size:9px;
    font-weight:800;
    white-space:nowrap;
    pointer-events:none;
}

.roll-button{width:100%;}

/* ───────────────────────────────────────────
   MODALS
   ─────────────────────────────────────────── */
.modal{
    position:fixed;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    background:rgba(30,16,10,.5);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    z-index:999;
    padding:20px;
}

.modal.active{display:flex;animation:fadeIn .25s ease;}

@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}

.modal-content{
    width:100%;
    max-width:440px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius-xl);
    padding:26px;
    box-shadow:var(--shadow-lg);
    max-height:90dvh;
    overflow-y:auto;
    animation:modalPop .4s var(--ease-bounce);
}

@keyframes modalPop{
    0%{opacity:0;transform:scale(.88) translateY(14px);}
    100%{opacity:1;transform:scale(1) translateY(0);}
}

.modal-content h3{margin-bottom:12px;}
.modal-content p{line-height:1.55;margin-bottom:20px;color:var(--text-soft);}

#qrCanvas{display:none;margin:20px auto;max-width:100%;border-radius:var(--radius-sm);}

#modalClose,#dragonClose,#cheatsheetClose{
    width:100%;
    height:52px;
    border-radius:var(--radius-sm);
    background:var(--grad-brand);
    color:#fff;
    font-weight:700;
    font-size:16px;
    box-shadow:var(--shadow-brand);
    margin-top:14px;
}

.settings-option{margin-top:12px;}

/* Shop */
.shop-item{
    background:var(--surface-2);
    border:1px solid var(--border);
    border-radius:var(--radius);
    padding:14px;
    margin-bottom:10px;
    display:flex;
    align-items:center;
    gap:12px;
    transition:transform .16s var(--ease-bounce),box-shadow .2s ease;
}

.shop-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}

.shop-item-info{flex:1;}
.shop-item-name{font-weight:800;font-size:15px;}
.shop-item-desc{font-size:12px;color:var(--text-soft);margin-top:3px;line-height:1.4;}
.shop-item-price{font-weight:800;color:var(--brand);white-space:nowrap;}

.shop-buy-btn{
    background:var(--grad-brand);
    color:#fff;
    border-radius:999px;
    padding:8px 16px;
    font-size:13px;
    font-weight:800;
    height:38px;
    box-shadow:var(--shadow-brand);
}

.shop-buy-btn:disabled{opacity:.4;box-shadow:none;}

/* Joker choices */
.joker-choices{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:14px 0;}

.joker-choice-btn{
    width:56px;
    height:56px;
    border-radius:var(--radius-sm);
    font-size:32px;
    border:2px solid var(--teal);
    background:linear-gradient(160deg,#e0fbf8,#c8f5ef);
    color:#0b7d72;
    display:flex;
    align-items:center;
    justify-content:center;
}

.joker-choice-btn:hover{background:var(--teal);color:#fff;transform:translateY(-3px) scale(1.05);}

/* Dragon */
#dragonModal .modal-content{max-width:500px;}

.dragon-emoji{
    font-size:64px;
    text-align:center;
    display:block;
    animation:dragonEntrance .7s var(--ease-bounce);
    margin-bottom:10px;
}

.dragon-mission{
    background:color-mix(in srgb,var(--brand) 10%,var(--surface));
    border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);
    border-radius:var(--radius-sm);
    padding:12px 15px;
    margin-bottom:9px;
    line-height:1.5;
}

.dragon-mission strong{color:var(--brand);}

/* Cheatsheet */
.cheatsheet-content{max-width:520px;}

.cheatsheet-grid{display:flex;flex-direction:column;gap:10px;margin:6px 0 10px;}

.cs-item{
    display:flex;
    gap:13px;
    align-items:flex-start;
    background:var(--surface-2);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    padding:12px 14px;
    transition:transform .16s var(--ease-bounce);
}

.cs-item:hover{transform:translateX(3px);}
.cs-icon{font-size:26px;flex-shrink:0;width:38px;text-align:center;}
.cs-item div{font-size:13px;line-height:1.5;}
.cs-item strong{color:var(--text);}

/* ───────────────────────────────────────────
   TOASTS
   ─────────────────────────────────────────── */
.coin-toast{
    position:fixed;
    bottom:200px;
    left:50%;
    transform:translateX(-50%);
    background:linear-gradient(135deg,var(--gold),var(--brand-2));
    color:#fff;
    font-weight:800;
    padding:11px 24px;
    border-radius:999px;
    font-size:16px;
    z-index:9999;
    box-shadow:0 12px 30px rgba(247,183,49,.5);
    animation:toastIn 2.5s ease forwards;
    pointer-events:none;
    white-space:nowrap;
}

.score-message-toast{
    position:fixed;
    top:calc(80px + env(safe-area-inset-top,0px));
    left:50%;
    transform:translateX(-50%);
    background:var(--surface);
    border:2px solid var(--brand);
    color:var(--text);
    padding:13px 20px;
    border-radius:var(--radius);
    box-shadow:var(--shadow-lg);
    z-index:9999;
    font-size:15px;
    font-weight:600;
    text-align:center;
    max-width:90%;
    animation:toastIn 3.5s ease forwards;
}

.score-message-toast strong{color:var(--brand);}
.score-message-toast .points{color:var(--green);font-weight:900;}

@keyframes toastIn{
    0%{opacity:0;transform:translateX(-50%) translateY(30px) scale(.9);}
    15%{opacity:1;transform:translateX(-50%) translateY(0) scale(1);}
    82%{opacity:1;transform:translateX(-50%) translateY(0) scale(1);}
    100%{opacity:0;transform:translateX(-50%) translateY(-10px) scale(.95);}
}

/* ───────────────────────────────────────────
   TURN ANIMATION
   ─────────────────────────────────────────── */
.turn-animation-overlay{
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:10000;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.turn-animation-card{
    display:flex;
    align-items:center;
    gap:18px;
    background:var(--grad-brand);
    color:#fff;
    padding:22px 32px;
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow-lg);
    transform:translateX(-120vw) scale(.9);
    opacity:0;
}

.turn-animation-overlay.active .turn-animation-card{animation:turnSwipe 1.8s var(--ease-smooth) forwards;}

.turn-animation-avatar{
    width:86px;height:86px;border-radius:50%;object-fit:cover;
    border:4px solid #fff;background:#eee;
}

.turn-animation-small{font-size:15px;opacity:.92;font-weight:700;text-transform:uppercase;letter-spacing:.08em;}
.turn-animation-name{font-size:32px;font-weight:800;line-height:1.1;font-family:"Fredoka",Inter,sans-serif;}

@keyframes turnSwipe{
    0%{transform:translateX(-120vw) scale(.9) rotate(-3deg);opacity:0;}
    18%{opacity:1;}
    45%{transform:translateX(0) scale(1) rotate(0deg);opacity:1;}
    70%{transform:translateX(0) scale(1) rotate(0deg);opacity:1;}
    100%{transform:translateX(120vw) scale(.9) rotate(3deg);opacity:0;}
}

/* ───────────────────────────────────────────
   SCORE EFFECT
   ─────────────────────────────────────────── */
.score-effect-overlay{
    position:fixed;inset:0;z-index:9998;pointer-events:none;
    display:flex;justify-content:center;align-items:center;
}

.score-effect-card{
    background:var(--surface);
    border-radius:var(--radius-lg);
    padding:24px 36px;
    box-shadow:var(--shadow-lg);
    text-align:center;
    opacity:0;
    transform:scale(.5) rotate(-8deg);
    color:var(--text);
}

.score-effect-overlay.active .score-effect-card{animation:scorePop 1.4s var(--ease-smooth) forwards;}
.score-effect-card.small{border:3px solid var(--green);}
.score-effect-card.medium{border:4px solid var(--brand-2);}
.score-effect-card.large{border:5px solid var(--brand);}

.score-effect-emoji{font-size:56px;line-height:1;margin-bottom:8px;}
.score-effect-card.medium .score-effect-emoji{font-size:70px;}
.score-effect-card.large .score-effect-emoji{font-size:88px;}

.score-effect-title{font-size:28px;font-weight:900;color:var(--brand);font-family:"Fredoka",Inter,sans-serif;}
.score-effect-card.large .score-effect-title{font-size:36px;}

@keyframes scorePop{
    0%{opacity:0;transform:scale(.4) rotate(-12deg);}
    25%{opacity:1;transform:scale(1.15) rotate(3deg);}
    55%{opacity:1;transform:scale(1) rotate(0deg);}
    100%{opacity:0;transform:scale(.7) rotate(8deg) translateY(-40px);}
}

/* ───────────────────────────────────────────
   GHOST STEAL
   ─────────────────────────────────────────── */
.ghost-overlay{
    position:fixed;inset:0;z-index:10001;pointer-events:none;
    display:flex;align-items:center;justify-content:center;overflow:hidden;background:transparent;
}

.ghost-steal-scene{
    position:relative;
    width:min(720px,94vw);
    min-height:300px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    opacity:0;
    transform:scale(.9);
}

.ghost-overlay.active .ghost-steal-scene{animation:ghostSceneIn 4.2s ease forwards;}

.ghost-player{
    width:150px;min-height:190px;border-radius:var(--radius-lg);
    background:var(--surface);color:var(--text);
    box-shadow:var(--shadow-lg);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:8px;padding:14px;text-align:center;font-weight:900;
}

.ghost-player img{width:76px;height:76px;border-radius:50%;object-fit:cover;border:4px solid var(--brand);}
.ghost-plus{color:var(--green);font-size:22px;font-weight:900;animation:ghostCoinPop 1.2s ease infinite;}
.ghost-minus{color:var(--brand);font-size:22px;font-weight:900;animation:ghostCoinPop 1.2s ease infinite;}

.ghost-img-fly{
    position:absolute;left:50%;top:42%;width:190px;height:190px;object-fit:contain;
    transform:translate(-50%,-50%);
    filter:drop-shadow(0 22px 30px rgba(0,0,0,.5));
    animation:ghostStealFly 4.2s ease forwards;
}

.ghost-big-text{
    position:absolute;left:50%;bottom:0;transform:translateX(-50%);
    width:100%;text-align:center;color:#fff;font-size:24px;font-weight:900;
    text-shadow:0 4px 18px rgba(0,0,0,.9);
}

.ghost-big-text .points,.ghost-big-text strong{color:var(--gold);}

@keyframes ghostSceneIn{
    0%{opacity:0;transform:scale(.85);}
    10%{opacity:1;transform:scale(1);}
    88%{opacity:1;transform:scale(1);}
    100%{opacity:0;transform:scale(.9);}
}

@keyframes ghostStealFly{
    0%{transform:translate(-50%,-50%) translateX(-260px) scale(.7) rotate(-12deg);opacity:0;}
    18%{opacity:1;}
    35%{transform:translate(-50%,-50%) translateX(230px) scale(1.2) rotate(8deg);}
    58%{transform:translate(-50%,-50%) translateX(0) scale(1) rotate(0deg);}
    78%{transform:translate(-50%,-50%) translateX(-230px) scale(1.1) rotate(-8deg);}
    100%{transform:translate(-50%,-50%) translateX(260px) scale(.6) rotate(12deg);opacity:0;}
}

@keyframes ghostCoinPop{0%{transform:scale(1);}50%{transform:scale(1.22);}100%{transform:scale(1);}}

.ghost-target-list{display:flex;flex-direction:column;gap:10px;}

.ghost-target-btn{
    width:100%;min-height:58px;border-radius:var(--radius);
    background:color-mix(in srgb,var(--brand) 10%,var(--surface));
    border:2px solid var(--brand);color:var(--text);
    display:flex;align-items:center;gap:12px;padding:10px 14px;font-weight:800;
}

.ghost-target-btn:hover{background:color-mix(in srgb,var(--brand) 18%,var(--surface));}
.ghost-target-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;}
.ghost-target-btn strong{margin-left:auto;color:var(--brand);}

/* ───────────────────────────────────────────
   WINNER PODIUM
   ─────────────────────────────────────────── */
.winner-podium-overlay{
    position:fixed;inset:0;z-index:10002;background:rgba(20,10,6,.62);
    backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    display:none;align-items:center;justify-content:center;padding:20px;
}

.winner-podium-overlay.active{display:flex;animation:fadeIn .3s ease;}

.winner-podium-card{
    width:100%;max-width:540px;background:var(--surface);color:var(--text);
    border-radius:var(--radius-xl);padding:26px;text-align:center;
    box-shadow:var(--shadow-lg);max-height:92dvh;overflow-y:auto;
    animation:winnerPop .7s var(--ease-bounce) forwards;
}

.winner-podium-card h2{color:var(--brand);font-size:30px;margin-bottom:20px;}

.winner-podium-list{display:flex;flex-direction:column;gap:12px;}

.winner-podium-row{
    display:grid;grid-template-columns:54px 58px 1fr auto;gap:10px;align-items:center;
    background:var(--surface-2);border-radius:var(--radius);padding:12px;font-weight:900;
    transform:translateY(30px);opacity:0;animation:winnerRowIn .6s var(--ease-bounce) forwards;
}

.winner-podium-row.place-1{background:linear-gradient(135deg,#fff8d6,#ffd700);color:#6a4e00;animation-delay:.15s;}
.winner-podium-row.place-2{background:linear-gradient(135deg,#f5f5f5,#cfcfcf);color:#444;animation-delay:.3s;}
.winner-podium-row.place-3{background:linear-gradient(135deg,#ffe6d0,#cd7f32);color:#5e3610;animation-delay:.45s;}
.winner-podium-row.place-4{animation-delay:.6s;}

.winner-medal{font-size:30px;}
.winner-podium-row img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:3px solid #fff;}
.winner-name{text-align:left;}
.winner-score{color:var(--brand-deep);}

.winner-close-btn{
    margin-top:20px;width:100%;height:52px;border-radius:var(--radius-sm);
    background:var(--grad-brand);color:#fff;font-weight:900;font-size:16px;box-shadow:var(--shadow-brand);
}

@keyframes winnerPop{0%{transform:scale(.75);opacity:0;}100%{transform:scale(1);opacity:1;}}
@keyframes winnerRowIn{0%{transform:translateY(30px);opacity:0;}100%{transform:translateY(0);opacity:1;}}

/* ───────────────────────────────────────────
   BONUS ROUND NOTICE
   ─────────────────────────────────────────── */
.bonus-round-notice{
    margin:10px 12px;padding:12px 15px;border-radius:var(--radius-sm);
    background:linear-gradient(135deg,#fff4df,#ffe9c2);color:#8a4b00;
    font-weight:800;box-shadow:var(--shadow-sm);
}

body.dark .bonus-round-notice{background:linear-gradient(135deg,#3a2c16,#463618);color:#ffd27a;}

/* ───────────────────────────────────────────
   PURCHASE ANIMATION
   ─────────────────────────────────────────── */
.purchase-animation-overlay{
    position:fixed;inset:0;z-index:10004;pointer-events:none;
    display:flex;align-items:center;justify-content:center;
}

.purchase-animation-card{
    background:var(--surface);color:var(--text);
    border-radius:var(--radius-lg);padding:24px 36px;text-align:center;
    box-shadow:var(--shadow-lg);border:4px solid var(--green);
    opacity:0;transform:scale(.5) rotate(-8deg);
}

.purchase-animation-overlay.active .purchase-animation-card{animation:purchasePop 1.7s var(--ease-smooth) forwards;}
.purchase-animation-icon{font-size:64px;margin-bottom:8px;}
.purchase-animation-title{font-size:28px;font-weight:900;color:var(--green);font-family:"Fredoka",Inter,sans-serif;}
.purchase-animation-name{margin-top:4px;font-size:18px;font-weight:800;color:var(--brand);}

@keyframes purchasePop{
    0%{opacity:0;transform:scale(.4) rotate(-12deg);}
    25%{opacity:1;transform:scale(1.18) rotate(3deg);}
    65%{opacity:1;transform:scale(1) rotate(0deg);}
    100%{opacity:0;transform:scale(.75) translateY(-40px);}
}

/* ───────────────────────────────────────────
   RECENT ROOMS
   ─────────────────────────────────────────── */
.recent-rooms-box{margin-top:16px;display:flex;flex-direction:column;gap:9px;}

.recent-title{font-size:13px;font-weight:800;color:var(--brand);margin-top:4px;text-transform:uppercase;letter-spacing:.05em;}

.recent-room-btn{
    width:100%;min-height:50px;border-radius:var(--radius-sm);
    background:var(--surface-2);border:1px solid var(--border);color:var(--text);
    display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-weight:700;
}

.recent-room-btn:hover{border-color:var(--brand);}
.recent-room-btn small{color:var(--text-mute);font-weight:700;}

/* ───────────────────────────────────────────
   UFO / CASHBAG FLYERS
   ─────────────────────────────────────────── */
.ufo-event{
    position:fixed;top:22%;left:-160px;z-index:10005;
    width:130px;height:90px;background:transparent;border:none;pointer-events:none;opacity:0;
}

.ufo-event img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.35));}
.ufo-event.active{pointer-events:auto;cursor:pointer;animation:ufoFly 5s ease-in-out forwards;}

@keyframes ufoFly{
    0%{left:-160px;transform:translateY(0) rotate(-8deg) scale(.8);opacity:0;}
    12%{opacity:1;}
    45%{transform:translateY(-30px) rotate(5deg) scale(1.15);}
    72%{transform:translateY(25px) rotate(-4deg) scale(1);opacity:1;}
    100%{left:calc(100vw + 160px);transform:translateY(-10px) rotate(8deg) scale(.85);opacity:0;}
}

.cashbag-event{
    position:fixed;top:34%;left:-140px;z-index:10005;
    width:110px;height:110px;background:transparent;border:none;pointer-events:none;opacity:0;cursor:pointer;
}

.cashbag-event img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.35));}
.cashbag-event.active{pointer-events:auto;animation:cashbagFly 14s linear forwards;}

@keyframes cashbagFly{
    0%{left:-140px;transform:translateY(0) rotate(-6deg);opacity:0;}
    6%{opacity:1;}
    20%{transform:translateY(-24px) rotate(5deg);}
    40%{transform:translateY(18px) rotate(-5deg);}
    60%{transform:translateY(-20px) rotate(6deg);}
    80%{transform:translateY(14px) rotate(-4deg);opacity:1;}
    100%{left:calc(100vw + 140px);transform:translateY(-8px) rotate(6deg);opacity:0;}
}

/* Cashbag modal (inline content) */
.cashbag-modal-content{text-align:center;}
.cashbag-modal-icon{font-size:56px;animation:cashbagBounce 1s ease-in-out infinite;}

.cashbag-take-btn{
    width:100%;padding:16px;margin-top:12px;border-radius:var(--radius-sm);
    background:linear-gradient(135deg,var(--green),#1a9c56);color:#fff;font-size:16px;font-weight:800;
    box-shadow:0 10px 24px rgba(37,194,110,.4);
}

.cashbag-gamble-btn{
    width:100%;padding:16px;margin-top:10px;border-radius:var(--radius-sm);
    background:linear-gradient(135deg,#a1338f,#6b1f9e);color:#fff;font-size:16px;font-weight:800;
    display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:0 10px 24px rgba(107,31,158,.4);
}

.cashbag-gamble-btn small{font-size:11px;font-weight:600;opacity:.9;}

/* Cashbag celebration overlay */
.cashbag-overlay{
    position:fixed;inset:0;z-index:10006;background:rgba(20,10,6,.55);
    display:none;align-items:center;justify-content:center;padding:20px;
}
.cashbag-overlay.active{display:flex;}

.cashbag-card{
    width:100%;max-width:430px;background:var(--surface);color:var(--text);
    border-radius:var(--radius-xl);padding:28px;text-align:center;
    box-shadow:var(--shadow-lg);animation:cashbagPop .7s var(--ease-bounce) forwards;
}

.cashbag-emoji{font-size:88px;animation:cashbagBounce 1.1s ease infinite;}
.cashbag-card h2{color:var(--brand);font-size:30px;margin:8px 0;}
.cashbag-card p{font-weight:700;margin-bottom:16px;}

.cashbag-safe-btn,.cashbag-risk-btn{
    width:100%;min-height:54px;border-radius:var(--radius-sm);color:#fff;font-weight:900;font-size:16px;margin-top:10px;
}
.cashbag-safe-btn{background:linear-gradient(135deg,var(--green),#1a9c56);}
.cashbag-risk-btn{background:linear-gradient(135deg,var(--brand),#7f1d1d);}
.cashbag-hint{margin-top:12px;font-size:13px;color:var(--text-mute);font-weight:700;}

@keyframes cashbagPop{
    0%{opacity:0;transform:scale(.65) rotate(-8deg);}
    70%{opacity:1;transform:scale(1.06) rotate(2deg);}
    100%{transform:scale(1) rotate(0);}
}

@keyframes cashbagBounce{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(-10px) scale(1.08);}}

/* ───────────────────────────────────────────
   GAMBLE WHEEL
   ─────────────────────────────────────────── */
.gamble-wheel-overlay{
    position:fixed;inset:0;background:rgba(15,8,5,.78);
    display:flex;align-items:center;justify-content:center;z-index:10010;
    opacity:0;pointer-events:none;transition:opacity .3s ease;
}
.gamble-wheel-overlay.active{opacity:1;pointer-events:auto;}

.gamble-wheel-card{
    background:var(--surface);color:var(--text);
    padding:26px;border-radius:var(--radius-xl);text-align:center;max-width:340px;width:90%;
    box-shadow:var(--shadow-lg);
}

.gamble-wheel-card h3{margin-bottom:12px;}
.gamble-pointer{font-size:30px;line-height:1;color:#c2183c;margin-bottom:-8px;position:relative;z-index:2;text-shadow:0 2px 4px rgba(0,0,0,.3);}

.gamble-wheel{
    width:220px;height:220px;margin:0 auto;border-radius:50%;border:8px solid #2b2320;position:relative;
    background:conic-gradient(#c2183c 0deg 180deg,#25c26e 180deg 360deg);
    transition:transform 4s cubic-bezier(.15,.9,.25,1);
    box-shadow:0 8px 24px rgba(0,0,0,.35),inset 0 0 20px rgba(0,0,0,.25);
}

.gamble-label{position:absolute;top:50%;font-size:34px;font-weight:900;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.4);transform:translateY(-50%);}
.gamble-label-win{left:14%;}
.gamble-label-lose{right:20%;}

.gamble-result{margin-top:16px;font-size:18px;min-height:52px;line-height:1.4;font-weight:700;}
.gamble-result.win{color:var(--green);animation:gambleResultPop .5s var(--ease-bounce);}
.gamble-result.lose{color:#c2183c;animation:gambleResultPop .5s var(--ease-bounce);}
body.dark .gamble-result.win{color:#7fd68f;}
body.dark .gamble-result.lose{color:#ff8aa1;}

@keyframes gambleResultPop{0%{transform:scale(.5);opacity:0;}70%{transform:scale(1.15);}100%{transform:scale(1);opacity:1;}}

/* ───────────────────────────────────────────
   TOURNAMENT
   ─────────────────────────────────────────── */
.tournament-bar{
    margin:8px 12px;padding:11px 15px;
    background:linear-gradient(90deg,#f8e7b0,#fdf3d5);border:2px solid #d9b64a;
    border-radius:var(--radius-sm);font-size:13px;color:#5b4a12;text-align:center;line-height:1.5;font-weight:600;
}

body.dark .tournament-bar{background:linear-gradient(90deg,#4a3d18,#3a3012);border-color:#8a7430;color:#f2e3ad;}
.tournament-bar-player{white-space:nowrap;}

.round-winner-box{
    display:flex;align-items:center;gap:14px;justify-content:center;margin:14px 0;padding:14px;
    background:linear-gradient(135deg,#fff4d1,#ffe9a8);border-radius:var(--radius);
}
body.dark .round-winner-box{background:linear-gradient(135deg,#4a3d18,#5b4a1e);}
.round-winner-box img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid #d9b64a;}
.round-winner-label{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:#8a7430;}
body.dark .round-winner-label{color:#d9c27a;}
.round-winner-name{font-size:22px;font-weight:900;}

.tournament-standings-title{font-size:13px;font-weight:700;margin:12px 0 6px;color:var(--text-soft);}
.tournament-coin-hint{margin:12px 0;font-size:13px;font-weight:700;color:#8a7430;}
body.dark .tournament-coin-hint{color:#d9c27a;}

.tournament-wait-host{
    margin-top:14px;padding:14px;background:var(--surface-2);border-radius:var(--radius-sm);
    font-weight:700;animation:waitPulse 1.6s ease-in-out infinite;
}

@keyframes waitPulse{0%,100%{opacity:.6;}50%{opacity:1;}}

.tournament-champion-box{
    display:flex;flex-direction:column;align-items:center;gap:8px;margin:14px 0;padding:18px;
    background:linear-gradient(135deg,#ffe9a8,#ffd966);border-radius:var(--radius);
    animation:championGlow 1.8s ease-in-out infinite;color:#5b4a12;
}
body.dark .tournament-champion-box{background:linear-gradient(135deg,#5b4a1e,#7a6428);color:#f2e3ad;}
.tournament-champion-box img{width:90px;height:90px;border-radius:50%;object-fit:cover;border:4px solid #b8912c;}
.tournament-champion-name{font-size:26px;font-weight:900;}
.tournament-champion-sub{font-size:13px;font-weight:700;color:#6b5719;}
body.dark .tournament-champion-sub{color:#f2e3ad;}

@keyframes championGlow{0%,100%{box-shadow:0 0 14px rgba(217,182,74,.5);}50%{box-shadow:0 0 34px rgba(217,182,74,.95);}}

/* ───────────────────────────────────────────
   SHARED KEYFRAMES (used by JS-driven classes)
   ─────────────────────────────────────────── */
@keyframes rolling{
    0%{transform:rotate(0deg) scale(1);}
    25%{transform:rotate(90deg) scale(1.15);}
    50%{transform:rotate(180deg) scale(.9);}
    75%{transform:rotate(270deg) scale(1.15);}
    100%{transform:rotate(360deg) scale(1);}
}

@keyframes yatzyGlow{0%{transform:scale(1);}50%{transform:scale(1.25);}100%{transform:scale(1);}}
@keyframes goldenPulse{0%{box-shadow:0 0 0 0 rgba(255,200,0,.7);}70%{box-shadow:0 0 18px 8px rgba(255,200,0,0);}100%{box-shadow:0 0 0 0 rgba(255,200,0,0);}}
@keyframes cursedPulse{0%{box-shadow:0 0 0 0 rgba(139,92,246,.7);}70%{box-shadow:0 0 18px 8px rgba(139,92,246,0);}100%{box-shadow:0 0 0 0 rgba(139,92,246,0);}}
@keyframes jokerPulse{0%{box-shadow:0 0 0 0 rgba(20,184,166,.7);}70%{box-shadow:0 0 18px 8px rgba(20,184,166,0);}100%{box-shadow:0 0 0 0 rgba(20,184,166,0);}}
@keyframes dragonEntrance{0%{transform:scale(.5) rotate(-10deg);opacity:0;}60%{transform:scale(1.1) rotate(3deg);opacity:1;}100%{transform:scale(1) rotate(0deg);}}
@keyframes chestBounce{0%{transform:scale(1);}30%{transform:scale(1.3) rotate(-8deg);}60%{transform:scale(1.2) rotate(8deg);}100%{transform:scale(1);}}

/* ───────────────────────────────────────────
   WIDE SCORE LAYOUT (Teil 1 & 2 nebeneinander)
   ─────────────────────────────────────────── */
body.wide-score-layout .scorecard{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
    align-items:start;
}

body.wide-score-layout .total-box,
body.wide-score-layout .dragon-bonus-row{grid-column:1 / -1;}

@media (max-width:720px){
    body.wide-score-layout .scorecard{display:block;}
}

/* ───────────────────────────────────────────
   RESPONSIVE
   ─────────────────────────────────────────── */
@media (min-width:820px){
    .die{width:66px;height:66px;font-size:42px;}
    .die.my-turn{width:74px;height:74px;font-size:48px;}
    .dice-area{gap:14px;}
}

@media (max-width:520px){
    .ghost-player{width:120px;min-height:165px;}
    .ghost-player img{width:62px;height:62px;}
    .ghost-img-fly{width:150px;height:150px;}
    .ghost-big-text{font-size:18px;}
    .turn-animation-card{padding:18px 22px;gap:14px;}
    .turn-animation-avatar{width:68px;height:68px;}
    .turn-animation-name{font-size:26px;}
}

@media (max-width:400px){
    .die{width:54px;height:54px;font-size:34px;}
    .die.my-turn{width:60px;height:60px;font-size:38px;}
    .dice-area{gap:8px;}
    .score-row{grid-template-columns:1fr 74px;}
    #closeRoomBtn{display:none;}
}

/* ───────────────────────────────────────────
   ACCESSIBILITY — respect reduced motion
   ─────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
    *,*::before,*::after{
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.001ms !important;
    }
    body::before{animation:none;}
}

/* ═══════════════════════════════════════════════════════════════
   GIF CASINO SKIN — skeuomorpher Blue-Felt-Look (überschreibt oben)
   Nur Optik. Klassen/IDs/Logik unverändert.
   ═══════════════════════════════════════════════════════════════ */

/* Blaues Filz mit Vignette + feiner Textur */
html,body{background:var(--bg-2);}
body{
    background:radial-gradient(130% 100% at 50% -10%, #3a78e6 0%, #1f56c8 45%, #123a99 78%, #0e2f80 100%);
}
body::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:-2;
    background-image:
        repeating-linear-gradient(45deg, rgba(255,255,255,.035) 0 2px, transparent 2px 6px),
        repeating-linear-gradient(-45deg, rgba(0,0,0,.05) 0 2px, transparent 2px 6px),
        radial-gradient(120% 80% at 50% 120%, rgba(0,0,0,.35), transparent 60%);
    animation:none;
    pointer-events:none;
}

/* ── Titel als goldenes Logo ── */
h1{
    background:linear-gradient(180deg,#ffe07a 0%,#ffc53d 45%,#f5911e 100%);
    -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
    filter:drop-shadow(0 3px 0 rgba(0,0,0,.28)) drop-shadow(0 6px 10px rgba(0,0,0,.3));
    letter-spacing:.01em;
}
h2,h3{color:var(--text);}

/* ── Grüne 3D-Candy-Buttons (Primär) ── */
#createRoomBtn,#joinRoomBtn,#readyBtn,#startGameBtn,#rollBtn,#showQrBtn,.settings-option,
.avatar-upload-btn{
    background:var(--grad-brand);
    color:#fff;
    border:none;
    text-shadow:0 1px 1px rgba(0,0,0,.3);
    box-shadow:0 6px 0 var(--brand-bevel), 0 12px 18px rgba(0,0,0,.3), inset 0 2px 0 rgba(255,255,255,.55);
    letter-spacing:.02em;
}
#createRoomBtn:hover,#joinRoomBtn:hover,#readyBtn:hover,#startGameBtn:hover,#rollBtn:hover,#showQrBtn:hover,.settings-option:hover,
.avatar-upload-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 7px 0 var(--brand-bevel), 0 16px 22px rgba(0,0,0,.34), inset 0 2px 0 rgba(255,255,255,.6);
}
#createRoomBtn:active,#joinRoomBtn:active,#readyBtn:active,#startGameBtn:active,#rollBtn:active,#showQrBtn:active,.settings-option:active,
.avatar-upload-btn:active{
    transform:translateY(4px);
    box-shadow:0 2px 0 var(--brand-bevel), 0 6px 10px rgba(0,0,0,.3), inset 0 2px 0 rgba(255,255,255,.5);
}

/* ROLL groß & fett wie im GIF */
.roll-button{
    height:62px !important;
    font-size:22px !important;
    font-weight:900 !important;
    border-radius:16px !important;
    text-transform:uppercase;
}

/* Sekundär = heller Filz-Button */
.secondary{
    background:linear-gradient(180deg,#ffffff,#dfe8f6) !important;
    color:var(--text) !important;
    box-shadow:0 5px 0 #b8c6dd, 0 8px 12px rgba(0,0,0,.2), inset 0 2px 0 #fff !important;
    border:none !important;
}

/* ── Karten / Blöcke: heller Glanzpanel ── */
.block{
    background:linear-gradient(180deg,#ffffff,#eef3fb);
    border:2px solid rgba(255,255,255,.7);
    box-shadow:0 14px 30px rgba(6,20,60,.4), inset 0 2px 0 #fff;
}
.block::before{background:linear-gradient(90deg,var(--gold),var(--accent));}

/* Eingaben */
input,select{
    background:#fff;
    border:2px solid var(--border-strong);
    color:var(--text);
    box-shadow:inset 0 2px 5px rgba(10,30,80,.08);
}
input:focus,select:focus{border-color:var(--brand);box-shadow:var(--ring);}

/* ── TOP BAR: dunkelblau mit Gold-Trim ── */
.top-bar{
    background:linear-gradient(180deg,#1a3e8c 0%,#102a63 100%);
    border-bottom:3px solid var(--gold);
    backdrop-filter:none;-webkit-backdrop-filter:none;
    box-shadow:0 4px 12px rgba(0,0,0,.35);
}
#turnInfo{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4);}
#rollCount{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.25);}
#closeRoomBtn{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.28);}
.top-bar .icon-button{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.32);box-shadow:none;}

/* Münzen & Shop = Gold */
.coin-display{
    background:linear-gradient(180deg,#ffe07a,#f5b022);
    border:1px solid var(--gold-deep);color:#5a3c00;
    box-shadow:0 3px 0 var(--gold-deep), inset 0 1px 0 #fff5cc;
}
.shop-btn{
    background:linear-gradient(180deg,#ffd257,#f5911e);color:#fff;
    box-shadow:0 4px 0 var(--accent-bevel), 0 6px 10px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.5);
    text-shadow:0 1px 1px rgba(0,0,0,.25);
}

/* ── Spieler-Tabs ── */
.tab{
    background:linear-gradient(180deg,#ffffff,#dbe7fb);
    border:none;color:var(--text);
    box-shadow:0 3px 0 #b8c6dd, inset 0 1px 0 #fff;
    font-weight:800;
}
.tab.active{
    background:var(--tile-blue);color:#fff;
    box-shadow:0 3px 0 var(--tile-blue-bevel), inset 0 1px 0 rgba(255,255,255,.5);
    text-shadow:0 1px 1px rgba(0,0,0,.3);
}

/* Live-Podium Chips */
.live-podium .podium-row{
    background:linear-gradient(180deg,#ffffff,#dbe7fb);border:none;color:var(--text);
    box-shadow:0 3px 0 #b8c6dd, inset 0 1px 0 #fff;font-weight:800;
}
.live-podium .podium-row:first-child{
    background:linear-gradient(180deg,#ffe07a,#f5b022);color:#5a3c00;
    box-shadow:0 3px 0 var(--gold-deep), inset 0 1px 0 #fff5cc;
}

/* ── SCORECARD Kacheln ── */
.section-title{
    color:#fff;
    text-shadow:0 2px 3px rgba(0,0,0,.4);
    -webkit-text-fill-color:#fff;background:none;
}
.section-title::after{background:linear-gradient(90deg,rgba(255,255,255,.6),transparent);}

/* linke Label-Kachel = blau glänzend */
.score-row button:first-child{
    background:var(--tile-blue);
    color:#fff;border:none;font-weight:800;
    text-shadow:0 1px 1px rgba(0,0,0,.3);
    box-shadow:0 4px 0 var(--tile-blue-bevel), 0 6px 10px rgba(0,0,0,.22), inset 0 2px 0 rgba(255,255,255,.4);
}
/* rechte Wert-Kachel = weiß glänzend, orange Zahl */
.score-value{
    background:linear-gradient(180deg,#ffffff,#e9f0fa);
    color:var(--accent);border:none;font-weight:900;
    box-shadow:0 4px 0 #c1cfe4, 0 6px 10px rgba(0,0,0,.18), inset 0 2px 0 #fff;
}
.score-row.locked .score-value{
    background:linear-gradient(180deg,#eef3fb,#dbe4f2);color:var(--text-soft);
    box-shadow:0 3px 0 #c1cfe4, inset 0 2px 0 #fff;
}
.score-row.locked > strong{
    background:linear-gradient(180deg,#eef3fb,#dbe4f2);border:none;color:var(--text-soft);
    box-shadow:0 3px 0 #c1cfe4, inset 0 2px 0 #fff;font-size:17px;
}
/* gewertet = orange Kachel */
.score-row.filled button:first-child,
.score-row.filled .score-value{
    background:var(--grad-accent) !important;color:#fff !important;border:none !important;
    text-shadow:0 1px 1px rgba(0,0,0,.25);
    box-shadow:0 4px 0 var(--accent-bevel), 0 6px 10px rgba(0,0,0,.2), inset 0 2px 0 rgba(255,255,255,.45) !important;
}
/* möglich = grüner Glow-Ring */
.score-row.possible button{border:none;animation:possiblePulse 1.3s var(--ease-smooth) infinite;}
.score-row.possible .score-value{
    background:linear-gradient(180deg,#dff7cf,#bfe9a3);color:#2f6d13;
    box-shadow:0 4px 0 #86bf5a, inset 0 2px 0 #fff;
}

/* TOTAL = orange 3D-Balken */
.total-box{
    background:var(--grad-accent);
    box-shadow:0 6px 0 var(--accent-bevel), 0 10px 18px rgba(0,0,0,.28), inset 0 2px 0 rgba(255,255,255,.5);
    text-shadow:0 1px 2px rgba(0,0,0,.28);
}

/* ── WÜRFEL: weiße Hochglanz-Kacheln mit dunklen Augen ── */
.dice-footer{
    background:linear-gradient(180deg, transparent 0%, rgba(9,28,78,.55) 42%, rgba(7,22,62,.8) 100%);
    border-top:none;border-radius:0;
    backdrop-filter:none;-webkit-backdrop-filter:none;
    box-shadow:none;
}
.die{
    background:linear-gradient(180deg,#ffffff 0%,#e7edf7 100%);
    border:none;
    color:#20304f;
    border-radius:16px;
    box-shadow:0 5px 0 #b7c4d8, 0 8px 12px rgba(0,0,0,.3), inset 0 2px 0 #ffffff;
    text-shadow:none;
}
body.dark .die{color:#20304f;}
.die:not(.rolling):hover{transform:translateY(-3px) scale(1.05);}
.die.hold,.die.locked{
    background:linear-gradient(180deg,#fff2cf,#ffe19a);
    box-shadow:0 5px 0 var(--gold-deep), 0 8px 12px rgba(0,0,0,.3), inset 0 2px 0 #fff, 0 0 0 3px var(--gold);
    color:#6a4a00;
}
.active-boost-display{
    background:linear-gradient(180deg,#ffffff,#e3ecfa);color:var(--brand-deep);
    border:none;box-shadow:0 3px 0 #b8c6dd, inset 0 1px 0 #fff;
}

/* ── MODALS auf blauem Grund ── */
.modal-content{
    background:linear-gradient(180deg,#ffffff,#eef3fb);
    border:2px solid rgba(255,255,255,.7);
}
#modalClose,#dragonClose,#cheatsheetClose,.winner-close-btn,.shop-buy-btn{
    background:var(--grad-brand);color:#fff;border:none;
    box-shadow:0 5px 0 var(--brand-bevel), 0 8px 12px rgba(0,0,0,.28), inset 0 2px 0 rgba(255,255,255,.5);
    text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.code-box{
    background:linear-gradient(180deg,#ffd257,#f5911e);color:#fff;
    box-shadow:0 4px 0 var(--accent-bevel), inset 0 1px 0 rgba(255,255,255,.5);
    text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.crazy-mode-badge{box-shadow:0 5px 0 var(--brand-bevel), inset 0 1px 0 rgba(255,255,255,.4);}

/* Icon-Buttons generell (Home/Lobby) */
.icon-button{
    background:linear-gradient(180deg,#ffffff,#dbe7fb);
    border:none;color:var(--text);
    box-shadow:0 3px 0 #b8c6dd, inset 0 1px 0 #fff;
}

/* ═══════════════════════════════════════════════════════════════
   LOGIN / KONTO
   ═══════════════════════════════════════════════════════════════ */
#loginScreen.active{align-items:flex-start;justify-content:center;}

.auth-wrap{
    width:100%;
    max-width:440px;
    margin:0 auto;
    padding:clamp(24px,7vh,64px) 20px 40px;
    animation:screenIn .5s var(--ease-smooth);
}

.auth-dice{
    display:block;
    text-align:center;
    font-size:52px;
    margin-bottom:2px;
    animation:mascotFloat 3s var(--ease-smooth) infinite;
    filter:drop-shadow(0 10px 14px rgba(0,0,0,.4));
}

.auth-logo{
    text-align:center;
    font-size:clamp(44px,13vw,64px);
    margin-bottom:2px;
    letter-spacing:2px;
}

.auth-sub{
    text-align:center;
    color:var(--gold);
    font-weight:800;
    letter-spacing:3px;
    font-size:12px;
    text-transform:uppercase;
    margin-bottom:26px;
    opacity:.92;
}

.auth-card{
    background:linear-gradient(180deg,#16336f,#0f2450);
    border:2px solid rgba(255,210,87,.35);
    border-radius:24px;
    padding:22px;
    box-shadow:0 22px 46px rgba(0,0,0,.5), inset 0 2px 0 rgba(255,255,255,.08);
}
body.dark .auth-card{background:linear-gradient(180deg,#173463,#0d1f45);}

.auth-tabs{
    display:flex;
    gap:8px;
    margin-bottom:18px;
    background:rgba(0,0,0,.28);
    padding:5px;
    border-radius:14px;
}
.auth-tab{
    flex:1;height:44px;border:none;border-radius:10px;
    font-weight:800;font-size:14px;color:var(--ink-soft,#a9c0ec);
    background:transparent;cursor:pointer;font-family:inherit;
    transition:.15s;
}
.auth-tab.on{
    background:var(--tile-blue);color:#fff;
    box-shadow:0 3px 0 var(--tile-blue-bevel), inset 0 1px 0 rgba(255,255,255,.35);
    text-shadow:0 1px 1px rgba(0,0,0,.3);
}

#loginScreen input[type="text"],
#loginScreen input[type="password"]{
    background:rgba(0,0,0,.22);
    border:2px solid #2b4d90;
    color:#fff;
}
#loginScreen input::placeholder{color:#7c93c4;}
#loginScreen input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,210,87,.22);}

.auth-remember{
    display:flex;align-items:center;gap:10px;
    margin:4px 2px 6px;font-weight:700;color:#cfe0fb;font-size:14px;cursor:pointer;
}
.auth-remember input{width:20px;height:20px;accent-color:var(--gold-2);}

.auth-error{
    background:rgba(226,75,74,.18);
    border:1px solid #e24b4a;
    color:#ffd0d0;
    border-radius:12px;
    padding:10px 14px;
    font-size:13px;
    font-weight:700;
    margin-bottom:6px;
    text-align:center;
}

#authSubmitBtn{
    width:100%;height:60px;margin-top:10px;
    border:none;border-radius:16px;cursor:pointer;
    font-family:"Fredoka",Inter,sans-serif;font-weight:700;font-size:21px;
    text-transform:uppercase;letter-spacing:.5px;color:#fff;
    background:var(--grad-brand);
    box-shadow:0 7px 0 var(--brand-bevel), 0 14px 20px rgba(0,0,0,.42), inset 0 2px 0 rgba(255,255,255,.5);
    text-shadow:0 1px 2px rgba(0,0,0,.3);
    transition:transform .12s, box-shadow .12s;
}
#authSubmitBtn:active{
    transform:translateY(4px);
    box-shadow:0 3px 0 var(--brand-bevel), 0 6px 10px rgba(0,0,0,.4), inset 0 2px 0 rgba(255,255,255,.5);
}

#loginScreen .avatar-picker{background:rgba(0,0,0,.22);border-color:#2b4d90;}

/* ── Konto-Leiste auf dem Home-Screen ── */
.account-bar{
    display:flex;align-items:center;gap:10px;
    background:linear-gradient(180deg,#16336f,#0f2450);
    border:1.5px solid rgba(255,210,87,.4);
    border-radius:16px;padding:8px 12px;margin-bottom:16px;
    font-size:14px;font-weight:700;color:#eaf1ff;
    box-shadow:0 8px 20px rgba(0,0,0,.35);
}
.account-bar strong{color:var(--gold);}
.account-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;border:2px solid var(--gold);flex-shrink:0;}
.account-logout{
    margin-left:auto;height:34px;padding:0 14px;border:none;border-radius:999px;cursor:pointer;
    font-weight:800;font-size:12px;font-family:inherit;
    background:rgba(255,255,255,.14);color:#cfe0fb;border:1px solid rgba(255,255,255,.25);
}
.account-logout:hover{background:rgba(255,255,255,.22);}

/* Name-Felder ausblenden, wenn eingeloggt (Name = Kontoname) */
body.has-account .acct-name{display:none;}

/* ═══════════════════════════════════════════════════════════════
   UMBAU 2 — echte Würfel-Augen, Spielbrett-Feeling, UFO
   ═══════════════════════════════════════════════════════════════ */

/* ── Würfel-Augen (Pips) ── */
.die{
    align-items:center;
    justify-content:center;
    overflow:visible;
}
.die .pips{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    grid-template-rows:repeat(3,1fr);
    width:64%;
    height:64%;
}
.die .pip-cell{display:grid;place-items:center;}
.die .pip{
    width:76%;
    aspect-ratio:1;
    border-radius:50%;
    background:currentColor;
    box-shadow:inset 0 -1.5px 1.5px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.35);
}
.die .die-q{
    font-size:.62em;
    font-weight:900;
    opacity:.4;
    color:currentColor;
}

/* Würfel etwas größer & knackiger */
.die{
    width:62px;height:62px;
    border-radius:15px;
}
.die.my-turn{width:70px;height:70px;}
@media (min-width:820px){
    .die{width:70px;height:70px;}
    .die.my-turn{width:78px;height:78px;}
}
@media (max-width:400px){
    .die{width:56px;height:56px;}
    .die.my-turn{width:62px;height:62px;}
}

/* Wurf-Animation: echtes Taumeln + Landung */
@keyframes rolling{
    0%{transform:rotate(0deg) scale(1);}
    20%{transform:rotate(140deg) scale(1.14);}
    45%{transform:rotate(280deg) scale(.9);}
    70%{transform:rotate(410deg) scale(1.12);}
    100%{transform:rotate(540deg) scale(1);}
}
.die.rolling{animation:rolling .5s cubic-bezier(.5,.05,.5,.95) infinite;}
.die.rolling .pips{opacity:.85;}

/* Würfel-Tablett unter den Würfeln (Spielbrett-Feeling) */
.dice-area{
    padding:12px 8px;
    border-radius:20px;
    background:linear-gradient(180deg, rgba(6,20,55,.55), rgba(5,16,45,.7));
    box-shadow:inset 0 3px 10px rgba(0,0,0,.5), inset 0 -1px 0 rgba(255,255,255,.06);
    margin:0 4px 12px;
}

/* ── Scorecard: mehr Spielbrett, weniger Liste ── */
.scorecard{
    padding:10px 12px calc(210px + var(--safe-bottom));
}
.section-title{
    margin:16px 4px 8px;
    font-size:14px;
}
.score-row{gap:9px;margin-bottom:9px;}
.score-row button{min-height:56px;}

/* Mögliche Wertung: kräftiger grüner Glanz-Puls */
.score-row.possible .score-value{
    background:linear-gradient(180deg,#c8f39f,#8fd85f);
    color:#26500a;
    box-shadow:0 4px 0 #5a9c2a, 0 0 18px rgba(120,220,90,.6), inset 0 2px 0 #eaffd6;
}
.score-row.possible button:first-child{
    box-shadow:0 4px 0 var(--tile-blue-bevel), 0 0 16px rgba(120,220,90,.45), inset 0 2px 0 rgba(255,255,255,.4);
}

/* Total-Balken: größer, prominenter */
.total-box{
    margin-top:18px;
    font-size:23px;
    padding:20px;
    letter-spacing:.02em;
}

/* ── Top-Bar & Münzen: mehr Casino-Glanz ── */
.coin-display{font-size:15px;padding:6px 14px;}
.coin-display,.shop-btn{transform:translateZ(0);}
.shop-btn:hover{transform:translateY(-2px);}

/* ── UFO: groß, gut sichtbar, zuverlässig fangbar (8s, kein Flash-Bug) ── */
.ufo-event{
    width:172px;
    height:120px;
    top:24%;
}
.ufo-event.active{pointer-events:auto;cursor:pointer;animation:ufoFly 8s ease-in-out forwards;}
.ufo-event img{filter:drop-shadow(0 16px 22px rgba(0,0,0,.45)) drop-shadow(0 0 22px rgba(120,200,255,.5));}

/* Geldsack ebenfalls einen Tick langsamer wird schon per JS gesteuert */

/* ═══════════════════════════════════════════════════════════════════
   UMBAU 4 — iPad-Sidebars + iPhone · voll gefärbte Würfel ·
   Boost-Rücknahme · Münz-/Kombi-Animationen
   ═══════════════════════════════════════════════════════════════════ */

/* ── Spezial-Würfel deutlich erkennbar (voll gefärbt) ── */
.die.golden{
    background:linear-gradient(160deg,#ffe14d,#f4b400)!important;
    border:3px solid #b8860b!important;
    color:#5b4200!important;
    box-shadow:0 0 0 3px rgba(255,200,0,.35),0 8px 18px rgba(180,120,0,.45)!important;
}
.die.golden .pip{background:#5b4200!important;}
.die.golden .die-q{color:#5b4200!important;}

.die.cursed{
    background:linear-gradient(160deg,#9a4dff,#6a1fd0)!important;
    border:3px solid #4a0ea0!important;
    color:#fff!important;
    box-shadow:0 0 0 3px rgba(139,61,240,.4),0 8px 18px rgba(80,20,160,.5)!important;
}
.die.cursed .pip{background:#ffffff!important;}
.die.cursed .die-q{color:#fff!important;}

.die.joker{
    background:linear-gradient(160deg,#2fe0cf,#12b3a3)!important;
    border:3px solid #0b7d72!important;
    color:#053b36!important;
}
.die.joker .pip{background:#053b36!important;}

/* Badges größer & immer lesbar */
.die-badge{
    font-size:12px!important;
    font-weight:900!important;
    bottom:-3px!important;
    padding:1px 6px;
    border-radius:9px;
    line-height:1.35;
    box-shadow:0 2px 5px rgba(0,0,0,.25);
}
.badge-gold{background:#fff6d6;color:#7a5600!important;border:1px solid #b8860b;}
.badge-curse{background:#2d0a5e;color:#fff!important;border:1px solid #b98bff;}
.badge-joker{background:#e0fbf8;color:#0b7d72!important;border:1px solid #0b7d72;}

/* ── Boost-Chips mit Rücknahme-Button ── */
.active-boost-display{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:center;
    justify-content:center;
}
.boost-active-label{font-weight:800;color:var(--green);font-size:12px;}
.boost-chip{
    display:inline-flex;
    align-items:center;
    gap:5px;
    background:var(--surface);
    border:1px solid var(--green);
    border-radius:999px;
    padding:3px 4px 3px 11px;
    font-size:12px;
    font-weight:800;
    color:var(--green);
    white-space:nowrap;
}
.boost-undo{
    width:20px;height:20px;
    border-radius:50%;
    border:none;
    background:rgba(0,0,0,.08);
    color:inherit;
    font-size:12px;
    line-height:1;
    cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;
}
.boost-undo:hover{background:#ff6b6b;color:#fff;}

/* ── Münz-Belohnungs-Animation ── */
.coin-burst-layer{position:fixed;inset:0;pointer-events:none;z-index:10050;}
.coin-burst{
    position:fixed;
    font-size:22px;
    transform:translate(-50%,-50%) scale(.4);
    opacity:0;
    animation:coinBurst .9s ease-out forwards;
    will-change:transform,opacity;
}
@keyframes coinBurst{
    0%{opacity:0;transform:translate(-50%,-50%) scale(.4);}
    25%{opacity:1;transform:translate(calc(-50% + var(--dx)*.5),calc(-50% + var(--dy)*.5)) scale(1.1);}
    100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy) - 20px)) scale(.8);}
}
.coin-display.coin-pop{animation:coinPop .5s var(--ease-bounce,cubic-bezier(.34,1.56,.64,1));}
@keyframes coinPop{0%{transform:scale(1);}40%{transform:scale(1.28);}100%{transform:scale(1);}}

/* ── Screen-Shake bei großen Kombis ── */
@keyframes screenShake{
    0%,100%{transform:translate(0,0);}
    20%{transform:translate(-6px,3px);}
    40%{transform:translate(6px,-3px);}
    60%{transform:translate(-4px,-2px);}
    80%{transform:translate(4px,2px);}
}
body.screen-shake{animation:screenShake .55s ease;}

/* ── Sidebar-Bausteine ── */
.sidebar-title{
    font-weight:800;
    font-size:13px;
    color:var(--text-soft);
    margin:10px 12px 4px;
    letter-spacing:.02em;
}
.turn-info-left{
    font-weight:800;
    font-size:15px;
    padding:10px 12px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:var(--radius,14px);
    margin:8px 12px;
    text-align:center;
}
.turn-info-center{
    font-weight:800;
    font-size:15px;
    text-align:center;
    padding:8px 10px;
    color:var(--brand-deep,var(--brand));
}
.settings-open-btn{
    width:calc(100% - 24px);
    margin:8px 12px;
    height:42px;
    border-radius:999px;
    background:var(--surface-2);
    border:1px solid var(--border);
    font-weight:800;
    font-size:13px;
    color:var(--text-soft);
}
.settings-open-btn:hover{color:var(--brand-deep);border-color:var(--brand);}
.danger-option{color:#c0392b;font-weight:800;}
.danger-option:hover{background:#ffe3e0;}
.right-coin-row{
    display:flex;
    gap:8px;
    align-items:center;
    flex-wrap:wrap;
    padding:10px 12px 0;
}
.right-coin-row .coin-display,.right-coin-row .shop-btn{flex:1;justify-content:center;}

/* ═══ WIDE (iPad quer / Desktop): 3-Spalten-Sidebar-Layout ═══ */
@media (min-width:980px){
    #gameScreen{max-width:1240px;height:100dvh;}
    .game-layout{
        display:grid;
        grid-template-columns:minmax(230px,1fr) minmax(380px,2.2fr) minmax(250px,1.2fr);
        gap:14px;
        width:100%;
        height:100dvh;
        padding:12px;
        align-items:start;
    }
    .game-left,.game-center,.game-right{
        height:calc(100dvh - 24px);
        overflow-y:auto;
        background:var(--surface);
        border:1px solid var(--border);
        border-radius:var(--radius-lg,18px);
        box-shadow:var(--shadow-sm);
        scrollbar-width:thin;
    }
    .game-center{
        display:flex;
        flex-direction:column;
        padding-bottom:0;
        background:transparent;
        border:none;
        box-shadow:none;
        overflow:hidden;
    }
    .game-center .scorecard{
        flex:1;
        overflow-y:auto;
        padding:10px 14px 20px!important;
        background:var(--surface);
        border:1px solid var(--border);
        border-radius:var(--radius-lg,18px);
        box-shadow:var(--shadow-sm);
    }
    /* Würfel-Leiste in der Mitte statt fixiert */
    .game-center .dice-footer{
        position:static;
        transform:none;
        left:auto;bottom:auto;
        width:100%;
        max-width:none;
        margin-top:12px;
        border-radius:var(--radius-lg,18px);
        border:1px solid var(--border);
    }
    /* Podest & Spieler vertikal in den Sidebars */
    .game-left .podium,.game-left .live-podium{
        flex-direction:column;
        margin:8px 12px;
        overflow:visible;
    }
    .game-left .live-podium .podium-row{width:100%;justify-content:space-between;}
    .game-right .player-tabs{
        flex-direction:column;
        overflow-x:visible;
        background:transparent;
        border:none;
        padding:8px 12px;
    }
    .game-right .tab{width:100%;justify-content:flex-start;}
    /* Turnier-Leiste in Sidebar umbrechen dürfen */
    .game-right .tournament-bar{white-space:normal;}
}

/* ═══ SCHMAL (iPhone / iPad hoch): gestapelt, Würfel unten fixiert ═══ */
@media (max-width:979px){
    .game-layout{display:flex;flex-direction:column;width:100%;}
    .game-left{order:1;}
    .game-right{order:2;}
    .game-center{order:3;}
    /* Doppelte Dran-Anzeige vermeiden */
    .turn-info-center{display:none;}
    /* Podest & Spieler bleiben horizontal scrollbar wie gehabt */
    .settings-open-btn{width:calc(100% - 24px);}
    /* Platz für die fixierte Würfel-Leiste */
    .game-center .scorecard{padding-bottom:calc(210px + var(--safe-bottom,0px));}
}


.game-left, .game-right, .scorecard {
    background-color: #ffffff6e !important;
}
#turnInfoCenter {
    color: #ffffff !important;
}
