/* ====== RESET ====== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#0f1923;
  --bg2:#1a2c38;
  --surface:#213743;
  --surface2:#2f4553;
  --border:#304d5e;
  --text:#fff;
  --text2:#b1bad3;
  --text3:#7f8fa4;
  --accent:#00e701;
  --accent-dim:rgba(0,231,1,.12);
  --red:#ff4444;
  --red-dim:rgba(255,68,68,.15);
  --gold:#f0b232;
  --discord:#5865F2;
  --radius:8px;
  --radius-lg:12px;
}

body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
  line-height:1.5;
  overflow-x:hidden;
}

.hidden{display:none!important}

/* ====== LOGIN ====== */
#view-login{
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;
  background:radial-gradient(ellipse at 50% 30%,#1a2c38 0%,var(--bg) 70%);
}
.login-card{
  text-align:center;background:var(--bg2);border:1px solid var(--border);
  border-radius:16px;max-width:420px;width:90%;
  box-shadow:0 20px 60px rgba(0,0,0,.4);overflow:hidden;
}
.login-logo-img{max-width:60%;height:auto;display:block;margin:2rem auto .75rem}
.login-sub{font-size:1rem;font-weight:700;letter-spacing:.3em;color:var(--text2);margin-bottom:.5rem;padding:0 2.5rem}
.login-desc{color:var(--text3);margin-bottom:1.5rem;font-size:.9rem;padding:0 2.5rem}
.login-card .btn-discord{margin:0 2.5rem 2rem}

/* ====== BUTTONS ====== */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.6rem 1.2rem;border:none;border-radius:var(--radius);
  font-family:inherit;font-weight:600;font-size:.875rem;
  cursor:pointer;transition:all .15s;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}

.btn-discord{background:var(--discord);color:#fff;font-size:1rem;padding:.8rem 2rem}
.btn-discord:hover{box-shadow:0 4px 20px rgba(88,101,242,.4)}

.btn-accent{background:var(--accent);color:#000;font-weight:700}
.btn-accent:hover{box-shadow:0 0 20px rgba(0,231,1,.35)}

.btn-ghost{background:transparent;color:var(--text3);border:1px solid var(--border)}
.btn-ghost:hover{color:var(--text);border-color:var(--text2)}

.btn-sm{padding:.35rem .7rem;font-size:.8rem}

.btn-play{width:100%;padding:.75rem;margin-top:.75rem;font-size:.95rem;border-radius:var(--radius)}

.btn-hit{background:#22c55e;color:#000;font-weight:700;flex:1;padding:.7rem}
.btn-stand{background:var(--red);color:#fff;font-weight:700;flex:1;padding:.7rem}

/* ====== TOPBAR ====== */
#topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:.6rem 1.25rem;
  background:var(--bg2);border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:100;
  height:52px;
}
.topbar-brand{display:flex;align-items:center;text-decoration:none;flex-shrink:0}
.brand-logo{height:28px}
.topbar-right{display:flex;align-items:center;gap:.75rem;font-size:.85rem}
.topbar-user{color:var(--text2);font-weight:600}
.avatar{width:26px;height:26px;border-radius:50%}
.balance-pill{
  background:var(--accent-dim);color:var(--accent);
  padding:.25rem .75rem;border-radius:20px;
  font-weight:700;font-size:.85rem;
}

/* ====== DAILY LIMIT ====== */
.topbar-center{flex:1;max-width:340px;margin:0 1.5rem}
.daily-limit{display:flex;flex-direction:column;gap:2px}
.dl-info{display:flex;justify-content:space-between;align-items:center}
.dl-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3)}
.dl-values{font-size:.7rem;font-weight:700;color:var(--text2)}
.dl-bar-bg{
  height:6px;background:var(--surface);border-radius:3px;overflow:hidden;
}
.dl-bar-fill{
  height:100%;background:var(--accent);border-radius:3px;
  transition:width .4s ease;
}
.dl-bar-fill.warn{background:var(--gold)}
.dl-bar-fill.full{background:var(--red)}
.dl-reset{font-size:.6rem;color:var(--text3);text-align:right}
#dl-countdown{font-weight:700;color:var(--text2);font-variant-numeric:tabular-nums}

/* ====== APP BODY ====== */
.app-body{display:flex;height:calc(100vh - 52px)}

/* ====== SIDEBAR ====== */
#sidebar{
  width:200px;min-width:200px;
  background:var(--bg2);border-right:1px solid var(--border);
  padding:.75rem 0;overflow-y:auto;
}
.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 .5rem}
.sidebar-link{
  display:flex;align-items:center;gap:.6rem;
  padding:.6rem .75rem;border-radius:var(--radius);
  color:var(--text3);text-decoration:none;font-weight:500;font-size:.875rem;
  transition:all .15s;
}
.sidebar-link svg{width:18px;height:18px;flex-shrink:0}
.sidebar-link:hover{background:var(--surface);color:var(--text)}
.sidebar-link.active{background:var(--surface);color:var(--accent)}

/* ====== MAIN ====== */
#main-content{flex:1;overflow-y:auto;padding:1.5rem}
.view.page{display:none}
.view.page.active{display:block}
.page-title{font-size:1.4rem;font-weight:700;margin-bottom:1.25rem}

/* ====== HOME CARDS ====== */
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}
.home-card{
  position:relative;overflow:hidden;
  border-radius:16px;cursor:pointer;
  min-height:220px;display:flex;
  border:1px solid transparent;
  transition:all .3s ease;
}
.home-card .hc-bg{
  position:absolute;inset:0;
  transition:transform .4s ease;
}
.home-card:hover .hc-bg{transform:scale(1.05)}
.home-card:hover{border-color:rgba(255,255,255,.15);box-shadow:0 12px 40px rgba(0,0,0,.5)}
.hc-content{
  position:relative;z-index:2;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:1.25rem;width:100%;
  background:linear-gradient(0deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.1) 100%);
}
.hc-emoji{font-size:3rem;margin-bottom:.4rem}
.hc-content h3{font-size:1.3rem;font-weight:800}
.hc-content p{font-size:.9rem;color:var(--text2);margin-bottom:.5rem}
.hc-play{
  font-size:.75rem;font-weight:700;color:var(--accent);
  text-transform:uppercase;letter-spacing:.06em;
  opacity:0;transform:translateY(4px);
  transition:all .25s ease;
}
.home-card:hover .hc-play{opacity:1;transform:translateY(0)}

.hc-slots .hc-bg{background:linear-gradient(135deg,#1a1a40 0%,#4a1942 100%)}
.hc-roulette .hc-bg{background:linear-gradient(135deg,#1a2c38 0%,#2c1a38 100%)}
.hc-mines .hc-bg{background:linear-gradient(135deg,#0d2818 0%,#1a3a2c 100%)}
.hc-blackjack .hc-bg{background:linear-gradient(135deg,#1a2838 0%,#0f1923 100%)}

/* ====== INFO SECTIONS ====== */
.info-section{margin-top:2.5rem}
.info-title{
  font-size:1.2rem;font-weight:800;margin-bottom:.3rem;
  display:flex;align-items:center;gap:.5rem;
}
.info-title::before{
  content:'';display:block;width:4px;height:1.2em;
  background:var(--accent);border-radius:2px;flex-shrink:0;
}
.info-subtitle{color:var(--text3);font-size:.82rem;margin-bottom:1rem;padding-left:1rem}

.info-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem;
}
.info-card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:14px;padding:1.15rem 1.25rem;
  transition:border-color .2s;
}
.info-card:hover{border-color:var(--surface2)}
.ic-header{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem}
.ic-icon{
  font-size:1.3rem;width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  background:var(--surface);border-radius:10px;flex-shrink:0;
}
.ic-header h3{font-size:.95rem;font-weight:700}
.ic-list{list-style:none;display:flex;flex-direction:column;gap:.35rem}
.ic-list li{
  font-size:.8rem;color:var(--text2);
  display:flex;gap:.5rem;align-items:baseline;
  padding:.2rem 0;
}
.ic-list li strong{
  color:var(--accent);font-weight:700;white-space:nowrap;
  min-width:72px;font-size:.78rem;
}
.ic-list-compact li strong{min-width:88px}
.ic-note{font-size:.72rem;color:var(--text3);margin-top:.6rem;font-style:italic}

/* ====== REWARDS GRID ====== */
.rewards-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;
}
.reward-card{
  background:var(--bg2);border:1px solid var(--border);
  border-radius:14px;padding:1.1rem 1.15rem;
  display:flex;flex-direction:column;gap:.4rem;
  transition:all .25s ease;position:relative;overflow:hidden;
}
.reward-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--accent),transparent);
  opacity:0;transition:opacity .25s;
}
.reward-card:hover{border-color:var(--surface2);transform:translateY(-3px);box-shadow:0 8px 25px rgba(0,0,0,.3)}
.reward-card:hover::before{opacity:1}
.rw-cost{
  display:inline-block;font-size:.72rem;font-weight:800;
  background:var(--accent-dim);color:var(--accent);
  padding:.2rem .55rem;border-radius:6px;width:fit-content;
  letter-spacing:.02em;
}
.rw-name{font-size:.92rem;font-weight:700;margin-top:.1rem}
.rw-desc{font-size:.76rem;color:var(--text3);line-height:1.45}

/* ====== GAME LAYOUT ====== */
.game-layout{
  display:flex;gap:1.25rem;
  min-height:calc(100vh - 52px - 3rem);
}
.game-controls{
  width:280px;min-width:280px;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:1.25rem;display:flex;flex-direction:column;
}
.game-main{
  flex:1;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);
  display:flex;align-items:center;justify-content:center;
  padding:1.5rem;min-height:400px;
}

.gc-title{font-size:1.1rem;font-weight:700;margin-bottom:1rem}
.gc-label{display:block;color:var(--text3);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem;margin-top:.75rem}
.gc-label:first-of-type{margin-top:0}

/* ====== BET INPUT ====== */
.bet-row{display:flex;flex-direction:column;gap:.4rem}
.bet-input{
  width:100%;background:var(--surface);border:2px solid var(--border);
  color:var(--text);padding:.6rem .75rem;border-radius:var(--radius);
  font-family:inherit;font-size:1rem;font-weight:700;outline:none;
  transition:border-color .15s;
}
.bet-input:focus{border-color:var(--accent)}
.bet-input::-webkit-outer-spin-button,.bet-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.bet-input[type=number]{-moz-appearance:textfield}
.mn-count-input{margin-bottom:.25rem}

.bet-mods{display:flex;gap:.3rem}
.btn-mod{
  flex:1;padding:.4rem;background:var(--surface);border:1px solid var(--border);
  color:var(--text3);border-radius:var(--radius);font-family:inherit;font-weight:600;
  font-size:.8rem;cursor:pointer;transition:all .15s;
}
.btn-mod:hover{background:var(--surface2);color:var(--text)}

/* ====== RESULT CARD ====== */
.gc-result{
  margin-top:auto;padding:.75rem;border-radius:var(--radius);
  text-align:center;font-weight:600;
  animation:popIn .3s ease-out;
}
.gc-result.win{background:rgba(0,231,1,.1);border:1px solid var(--accent);color:var(--accent)}
.gc-result.lose{background:var(--red-dim);border:1px solid var(--red);color:var(--red)}
.gc-result.push{background:rgba(177,186,211,.1);border:1px solid var(--text3);color:var(--text2)}
.gc-result .r-title{font-size:1.1rem;font-weight:700;margin-bottom:.25rem}
.gc-result .r-sub{font-size:.8rem;color:var(--text3)}
.gc-result .r-amount{font-size:1.3rem;font-weight:800;margin-top:.25rem}

/* ====== SLOTS ====== */
.slots-machine{width:100%;max-width:500px}
.slots-frame{
  position:relative;background:var(--surface);
  border:2px solid var(--border);border-radius:var(--radius-lg);
  padding:1.5rem;
}
.reel-container{display:flex;gap:.75rem;justify-content:center}
.reel{
  width:120px;height:120px;
  background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);
  overflow:hidden;position:relative;
}
.reel-inner{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:100%;height:100%;font-size:3rem;
  transition:none;
}
.reel.spinning .reel-inner{animation:reelSpin .15s linear infinite}
.reel-inner .symbol{
  width:100%;height:120px;display:flex;align-items:center;justify-content:center;
  font-size:3rem;flex-shrink:0;
}
.slots-payline{
  position:absolute;left:1rem;right:1rem;top:50%;
  height:3px;background:var(--accent);opacity:.4;
  border-radius:2px;pointer-events:none;
}

/* paytable */
.paytable{
  margin-top:1rem;background:var(--bg);
  border:1px solid var(--border);border-radius:var(--radius);
  padding:.75rem 1rem;
}
.pt-title{
  font-size:.7rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:var(--text3);margin-bottom:.5rem;text-align:center;
}
.pt-rows{display:flex;flex-direction:column;gap:.3rem}
.pt-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:.3rem .5rem;border-radius:4px;
  background:var(--surface);
}
.pt-syms{font-size:.9rem;font-weight:600}
.pt-mult{font-size:.9rem;font-weight:800;color:var(--accent)}
.pt-row-minor{opacity:.7}
.pt-row-minor .pt-mult{color:var(--text2)}

@keyframes reelSpin{
  0%{transform:translateY(0)}
  100%{transform:translateY(-120px)}
}

/* ====== ROULETTE ====== */
.rl-bet-types{display:flex;gap:.4rem;margin-bottom:.5rem}
.btn-rl-red{background:#e74c3c;color:#fff;flex:1;border:2px solid transparent;padding:.5rem}
.btn-rl-red.active{border-color:var(--accent);box-shadow:0 0 10px rgba(0,231,1,.3)}
.btn-rl-black{background:#1a1a2e;color:#fff;flex:1;border:2px solid var(--border);padding:.5rem}
.btn-rl-black.active{border-color:var(--accent);box-shadow:0 0 10px rgba(0,231,1,.3)}
.btn-rl-num{background:var(--surface);color:var(--text2);flex:1;border:2px solid var(--border);padding:.5rem}
.btn-rl-num.active{border-color:var(--accent);box-shadow:0 0 10px rgba(0,231,1,.3)}

.rl-numgrid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:3px;
  margin-top:.5rem;
}
.rl-numgrid .nbtn{
  aspect-ratio:1;border:1px solid var(--border);border-radius:4px;
  background:var(--surface);color:var(--text);font-weight:700;font-size:.75rem;
  font-family:inherit;cursor:pointer;transition:all .1s;display:flex;align-items:center;justify-content:center;
}
.rl-numgrid .nbtn:hover{border-color:var(--text2);transform:scale(1.05)}
.rl-numgrid .nbtn.sel{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}
.rl-numgrid .nbtn.rn{background:rgba(231,76,60,.2)}
.rl-numgrid .nbtn.bn{background:rgba(26,26,46,.8)}
.rl-numgrid .nbtn.gn{background:rgba(0,231,1,.15)}
.rl-numgrid .nbtn-confirm{
  grid-column:span 3;aspect-ratio:unset;padding:.4rem;
  background:var(--accent);color:#000;font-weight:700;border:none;
}

.roulette-area{display:flex;flex-direction:column;align-items:center;gap:1rem}
.wheel-wrap{position:relative}
.wheel-pointer-top{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  font-size:1.4rem;color:var(--accent);z-index:10;
  filter:drop-shadow(0 0 6px rgba(0,231,1,.5));
}
#rl-canvas{border-radius:50%;border:3px solid var(--accent);box-shadow:0 0 30px rgba(0,231,1,.15)}
.rl-winning{font-size:2rem;font-weight:800;min-height:2.5rem;text-align:center}

/* ====== MINES ====== */
.mines-board{
  display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;
  width:100%;max-width:420px;
}
.mn-tile{
  aspect-ratio:1;background:var(--surface);
  border:2px solid var(--border);border-radius:var(--radius);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:1.6rem;transition:all .15s;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.2);
}
.mn-tile:hover:not(:disabled){background:var(--surface2);border-color:var(--text3);transform:translateY(-2px)}
.mn-tile:active:not(:disabled){transform:translateY(0);box-shadow:none}
.mn-tile:disabled{cursor:default;box-shadow:none}

.mn-tile.safe{background:rgba(0,231,1,.12);border-color:var(--accent);animation:popIn .25s ease-out}
.mn-tile.mine{background:var(--red-dim);border-color:var(--red);animation:shake .3s ease-out}
.mn-tile.mine-over{opacity:.5}

.mn-stats{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}
.mn-stat{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--surface);border-radius:var(--radius)}
.mn-stat-label{font-size:.8rem;color:var(--text3);font-weight:600;text-transform:uppercase}
.mn-stat-val{font-size:1rem;font-weight:800;color:var(--accent)}

/* ====== BLACKJACK ====== */
.bj-table{
  width:100%;max-width:550px;
  background:linear-gradient(135deg,#1a4d2e,#0d2818);
  border:3px solid #2a6b3f;border-radius:var(--radius-lg);
  padding:2rem;box-shadow:inset 0 0 60px rgba(0,0,0,.4);
}
.bj-hand-area{margin-bottom:1rem}
.bj-hand-area:last-child{margin-bottom:0}
.bj-hand-label{
  color:rgba(255,255,255,.65);font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;
  margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem;
}
.bj-val{background:rgba(0,0,0,.5);padding:.15rem .5rem;border-radius:10px;font-size:.8rem;color:#fff}
.bj-cards{display:flex;gap:0;min-height:100px}
.bj-card{
  width:68px;height:96px;background:#fff;border-radius:6px;
  box-shadow:0 2px 8px rgba(0,0,0,.3);display:flex;flex-direction:column;
  justify-content:center;align-items:center;font-size:1.3rem;font-weight:800;
  color:#111;margin-left:-16px;transition:transform .2s;
  animation:cardDeal .3s ease-out;position:relative;
}
.bj-card:first-child{margin-left:0}
.bj-card:hover{transform:translateY(-6px);z-index:5}
.bj-card.red{color:#e74c3c}
.bj-card.face-down{
  background:repeating-linear-gradient(45deg,#2c3e50,#2c3e50 8px,#34495e 8px,#34495e 16px);
  border:2px solid #fff;color:transparent;
}
.bj-card .card-rank{font-size:1rem}
.bj-card .card-suit{font-size:1.2rem;line-height:1}
.bj-divider{height:1px;background:rgba(255,255,255,.1);margin:1rem 0}
.bj-btns{display:flex;gap:.5rem}

@keyframes cardDeal{from{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ====== ANIMATIONS ====== */
@keyframes popIn{0%{transform:scale(.85);opacity:0}60%{transform:scale(1.04)}100%{transform:scale(1);opacity:1}}
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-3px)}40%,80%{transform:translateX(3px)}}

/* ====== RESPONSIVE ====== */
@media(max-width:900px){
  .game-layout{flex-direction:column}
  .game-controls{width:100%;min-width:unset}
  .game-main{min-height:300px}
}
@media(max-width:700px){
  #sidebar{width:60px;min-width:60px}
  .sidebar-link span{display:none}
  .sidebar-link{justify-content:center;padding:.6rem}
  .sidebar-link svg{width:22px;height:22px}
  #main-content{padding:1rem}
  .home-grid{grid-template-columns:1fr}
  .home-card{min-height:180px}
  .brand-logo{height:22px}
  .reel{width:80px;height:80px}
  .reel-inner .symbol{height:80px;font-size:2rem}
  .topbar-center{max-width:180px;margin:0 .5rem}
  .dl-info,.dl-reset{display:none}
  .topbar-user{display:none}
}
