@charset "UTF-8";
:root{--bg:#0b132b;--surface:#1c2541;--accent:#5bc0be;--accent2:#3a506b;--text:#e0e6f8;--good:#21c07a;--bad:#ff4d67}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:linear-gradient(135deg,var(--bg),#0e1a34);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Microsoft YaHei",sans-serif}
.app{max-width:960px;margin:0 auto;padding:16px}
.header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"notice notice" "title bank" "stats bank";align-items:center;gap:8px;margin-bottom:12px}
.header h1{margin:0;font-weight:700;letter-spacing:.1em}
.stats{display:flex;gap:12px;color:#cfd6f6;grid-area:stats}
.bank{display:flex;flex-direction:column;gap:6px;align-items:flex-end;grid-area:bank}
.header h1{grid-area:title}
.bank input{width:100px;padding:6px;border-radius:8px;border:none;outline:none;background:#26324f;color:var(--text)}
.bet-hint{color:#9fb3d1}
.wallet-line{align-self:stretch;display:flex;justify-content:flex-end;gap:8px}
.wallet-line button{appearance:none;border:none;background:var(--accent);color:#052b2f;padding:6px 10px;border-radius:10px;font-weight:700;cursor:pointer}
.wallet-line .wallet-help{margin-left:10px;color:var(--accent);text-decoration:underline;font-weight:700;cursor:pointer}
.bank .actions{margin-left:8px;display:inline-flex;gap:6px}
.bank .actions button{appearance:none;border:none;background:var(--accent);color:#052b2f;padding:4px 10px;border-radius:10px;font-weight:700;cursor:pointer}
.bank .actions button:disabled{background:#546e7a;color:#222;cursor:not-allowed}
.panel{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:99}
.panel.hidden{display:none}
.panel-body{background:#1c2541;border-radius:12px;padding:16px;max-width:740px;width:90%;color:var(--text);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.panel-body h3{margin:0 0 12px 0}
#history-list{max-height:50vh;overflow:auto;background:rgba(0,0,0,.2);border-radius:8px;padding:8px}
.panel-actions{margin-top:12px;display:flex;justify-content:flex-end}
.panel-actions button{appearance:none;border:none;background:var(--accent);color:#052b2f;padding:8px 12px;border-radius:10px;font-weight:700;cursor:pointer}
 
.chips{display:flex;gap:6px}
.chips button{appearance:none;border:none;background:#ffc107;color:#302400;padding:6px 10px;border-radius:16px;font-weight:700;cursor:pointer}
.chips button:disabled{background:#8a7d4a;color:#2a2414;cursor:not-allowed}
 
.table{position:relative;background:linear-gradient(180deg,var(--surface),var(--accent2));border-radius:16px;padding:16px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
 
.hand{margin:12px 0;padding:10px;border-radius:12px;background:rgba(0,0,0,.15)}
.hand h2{margin:0 0 8px 0}
.badge{display:none;margin-bottom:6px;padding:4px 8px;border-radius:999px;background:var(--accent);color:#052b2f;font-weight:800;letter-spacing:.05em;animation:pulse 1.2s ease-in-out infinite}
.badge.show{display:inline-block}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}
.cards{display:flex;flex-wrap:wrap;gap:10px}
.card{width:64px;height:92px;border-radius:10px;background:#fff;color:#111;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:6px;box-shadow:0 6px 12px rgba(0,0,0,.35)}
.card .rank{font-size:18px;font-weight:700}
.card .suit{font-size:18px}
.card.black{color:#111}
.card.red{color:#c62828}
.card.back{background:linear-gradient(135deg,#1f2a44,#0f1630);color:#9fb0ff;position:relative}
.card.back::after{content:"★";font-size:28px;opacity:.3}
.card.deal{--fx:-80px;--fy:0;animation:deal-in .5s cubic-bezier(.22,.61,.36,1) both}
.card.deal.player{--fx:-80px;--fy:20px}
.card.deal.dealer{--fx:-80px;--fy:-20px}
@keyframes deal-in{from{opacity:0;transform:translate(var(--fx),var(--fy)) scale(.9)}to{opacity:1;transform:translate(0,0) scale(1)}}
.shoe{position:absolute;right:16px;top:16px;display:flex;flex-direction:column;gap:4px}
.shoe .deck{width:48px;height:70px}

.fx-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.confetti{position:absolute;width:8px;height:14px;opacity:.9;border-radius:2px;animation:fall linear forwards}
@keyframes fall{to{transform:translateY(120vh) rotate(720deg);opacity:0}}
.total{margin-top:6px;color:#cfd6f6}
.message{margin:12px 0;padding:10px;border-radius:10px;background:rgba(0,0,0,.2);min-height:24px}
 
.controls{display:flex;gap:10px;flex-wrap:wrap}
.controls button{appearance:none;border:none;background:var(--accent);color:#052b2f;padding:10px 14px;border-radius:10px;font-weight:700;cursor:pointer}
.controls button:disabled{background:#546e7a;color:#222;cursor:not-allowed}

.win{color:var(--good)}
.lose{color:var(--bad)}
@media (max-width:600px){.card{width:56px;height:84px}.app{padding:12px}.header{grid-template-columns:1fr;grid-template-areas:"notice" "title" "stats" "bank";align-items:flex-start}.bank{align-items:stretch;width:100%}.wallet-line{justify-content:flex-start}.bank input{width:100%}.bank .actions{flex-wrap:wrap;width:100%;margin-left:0;margin-top:6px}.bank .actions button{flex:1;min-width:120px}.site-link{position:static;left:auto;bottom:auto;transform:none;text-align:center;margin-top:12px}.notice-banner{position:relative;left:auto;right:auto;top:auto;max-width:none;margin:8px 0}}
 .icon{width:16px;height:16px;vertical-align:-2px;margin-right:6px;stroke:currentColor;fill:none}
.site-link{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);font-weight:700;z-index:1000}
 .site-link a{color:var(--accent);text-decoration:underline}
.header .notice-banner{grid-area:notice}
.notice-banner{position:relative;background:rgba(28,37,65,.9);color:var(--text);padding:8px 12px;border-radius:10px;border:1px solid var(--accent2);font-size:13px;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.3);max-width:100%;line-height:1.4;letter-spacing:.02em;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.notice-banner::before{content:"⚠";color:var(--accent);font-size:14px}
