:root{
  --bg:#0a0c10;
  --bg-1:#0e1116;
  --panel:#12161d;
  --panel-2:#171c25;
  --panel-3:#1c222c;
  --border:#242b36;
  --border-lit:#3a4353;
  --text:#dbe2ec;
  --text-dim:#7c8695;
  --text-faint:#4c5563;
  --amber:#e0a53c;
  --amber-dim:#b9873a;
  --amber-glow:rgba(224,165,60,0.35);
  --cyan:#4ad9e0;
  --cyan-glow:rgba(74,217,224,0.3);
  --green:#5fd897;
  --green-glow:rgba(95,216,151,0.3);
  --red:#e2564f;
  --violet:#a78bfa;
  --violet-glow:rgba(167,139,250,0.3);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:'Inter',sans-serif;height:100%;overflow:hidden;}
body{
  background:
    radial-gradient(ellipse 900px 500px at 15% -10%, rgba(224,165,60,0.06), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 10%, rgba(74,217,224,0.05), transparent 60%),
    var(--bg);
}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-lit);border-radius:6px;}
.mono{font-family:'JetBrains Mono',monospace;}
.disp{font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:0.02em;}

#app{display:flex;flex-direction:column;height:100vh;}

/* ---------- TOP BAR ---------- */
.topbar{
  display:flex;align-items:center;gap:28px;
  padding:12px 22px;
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border-bottom:1px solid var(--border);
  box-shadow:0 4px 18px rgba(0,0,0,0.45);
  flex-shrink:0;flex-wrap:wrap;z-index:10;
}
.brand{
  display:flex;align-items:center;gap:10px;margin-right:8px;
}
.brand .icon{font-size:22px;filter:drop-shadow(0 0 8px var(--amber-glow));}
.brand .name{font-family:'Rajdhani';font-weight:700;font-size:18px;letter-spacing:0.06em;color:var(--text);}
.brand .name span{color:var(--amber);}
.stat{
  display:flex;flex-direction:column;gap:2px;min-width:88px;
}
.stat .label{font-size:10px;letter-spacing:0.12em;color:var(--text-faint);text-transform:uppercase;}
.stat .value{font-family:'JetBrains Mono';font-weight:600;font-size:16px;}
.stat.money .value{color:var(--green);text-shadow:0 0 12px var(--green-glow);}
.stat.rate .value{color:var(--amber);text-shadow:0 0 12px var(--amber-glow);}
.stat.research .value{color:var(--cyan);text-shadow:0 0 12px var(--cyan-glow);}
.stat.shares .value{color:var(--violet);text-shadow:0 0 12px var(--violet-glow);}
.topbar-spacer{flex:1;}
.topbar-note{font-size:11px;color:var(--text-faint);font-family:'JetBrains Mono';}

/* ---------- LAYOUT ---------- */
.layout{display:flex;flex:1;min-height:0;}
.sidebar{
  width:230px;flex-shrink:0;background:var(--bg-1);
  border-right:1px solid var(--border);
  padding:16px 12px;overflow-y:auto;
}
.sidebar h3{
  font-family:'Rajdhani';font-size:11px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--text-faint);margin:0 0 8px 4px;font-weight:600;
}
.sidebar-section{margin-bottom:22px;}

.mine-item{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;
  cursor:pointer;margin-bottom:4px;border:1px solid transparent;
  transition:background .15s, border-color .15s;
}
.mine-item:hover{background:var(--panel-2);}
.mine-item.active{
  background:linear-gradient(90deg, rgba(224,165,60,0.14), rgba(224,165,60,0.03));
  border-color:rgba(224,165,60,0.4);
  box-shadow:0 0 16px rgba(224,165,60,0.12) inset;
}
.mine-item .mi-icon{font-size:17px;width:20px;text-align:center;}
.mine-item .mi-info{flex:1;min-width:0;}
.mine-item .mi-name{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mine-item .mi-sub{font-size:10px;color:var(--text-faint);font-family:'JetBrains Mono';}
.mine-item.locked{opacity:0.55;cursor:default;}
.mine-item.locked:hover{background:none;}
.mine-item .mi-lock{font-size:11px;color:var(--text-faint);font-family:'JetBrains Mono';}

.navbtn{
  display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;
  background:none;border:1px solid transparent;border-radius:8px;color:var(--text-dim);
  font-family:'Inter';font-size:12.5px;font-weight:500;cursor:pointer;margin-bottom:4px;text-align:left;
  transition:background .15s,color .15s,border-color .15s;
}
.navbtn:hover{background:var(--panel-2);color:var(--text);}
.navbtn.active{
  background:linear-gradient(90deg, rgba(74,217,224,0.12), rgba(74,217,224,0.02));
  border-color:rgba(74,217,224,0.35);color:var(--cyan);
}
.navbtn .nb-icon{font-size:15px;}
.navbtn .nb-badge{
  margin-left:auto;font-family:'JetBrains Mono';font-size:9px;background:var(--amber);color:#1a1305;
  padding:1px 6px;border-radius:10px;font-weight:700;
}

/* ---------- MAIN PANEL ---------- */
.mainpanel{flex:1;min-width:0;overflow-y:auto;padding:24px 28px 60px;}
.section-title{
  font-family:'Rajdhani';font-size:22px;font-weight:700;letter-spacing:0.02em;
  display:flex;align-items:center;gap:10px;margin:0 0 4px;
}
.section-sub{color:var(--text-dim);font-size:13px;margin:0 0 22px;}

.panel-card{
  background:linear-gradient(180deg,var(--panel-2),var(--panel));
  border:1px solid var(--border);border-radius:14px;
  box-shadow:0 8px 24px rgba(0,0,0,0.35);
  padding:20px 22px;margin-bottom:18px;
}

/* Mine view hero */
.mine-hero{
  display:flex;align-items:center;gap:22px;padding:24px;position:relative;overflow:hidden;
}
.mine-hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 12% 40%, var(--amber-glow), transparent 55%);
  opacity:0.5;pointer-events:none;
}
.mine-click{
  position:relative;flex-shrink:0;width:132px;height:132px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--panel-3), #0a0c10 75%);
  border:2px solid var(--amber-dim);
  display:flex;align-items:center;justify-content:center;font-size:52px;cursor:pointer;
  box-shadow:0 0 0 4px rgba(224,165,60,0.06), 0 0 40px rgba(224,165,60,0.18), inset 0 0 24px rgba(0,0,0,0.6);
  transition:transform .08s ease;
  user-select:none;
}
.mine-click:hover{box-shadow:0 0 0 4px rgba(224,165,60,0.1), 0 0 55px rgba(224,165,60,0.3), inset 0 0 24px rgba(0,0,0,0.6);}
.mine-click:active{transform:scale(0.94);}
.mine-hero-info{position:relative;flex:1;min-width:0;}
.mine-hero-info .mh-title{font-family:'Rajdhani';font-size:26px;font-weight:700;display:flex;align-items:center;gap:10px;}
.mine-hero-info .mh-title .tier{font-size:11px;font-family:'JetBrains Mono';color:var(--text-faint);border:1px solid var(--border-lit);padding:2px 7px;border-radius:20px;}
.mine-hero-info .mh-stock{font-family:'JetBrains Mono';font-size:15px;color:var(--text);margin-top:6px;}
.mine-hero-info .mh-stock b{color:var(--amber);}
.mine-hero-info .mh-rate{font-family:'JetBrains Mono';font-size:12px;color:var(--text-dim);margin-top:2px;}
.mine-hero-actions{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap;}

.btn{
  font-family:'Rajdhani';font-weight:700;letter-spacing:0.02em;font-size:14px;
  padding:10px 18px;border-radius:9px;border:1px solid var(--border-lit);
  background:var(--panel-3);color:var(--text);cursor:pointer;
  transition:transform .06s, box-shadow .15s, border-color .15s;
}
.btn:hover{transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn-sell{
  background:linear-gradient(180deg,#1f3a2c,#152920);border-color:rgba(95,216,151,0.5);color:var(--green);
  box-shadow:0 0 16px rgba(95,216,151,0.15);
}
.btn-sell:hover{box-shadow:0 0 22px rgba(95,216,151,0.3);}
.btn-buy{
  background:linear-gradient(180deg,#33261a,#221a11);border-color:rgba(224,165,60,0.5);color:var(--amber);
  box-shadow:0 0 14px rgba(224,165,60,0.12);
}
.btn-buy:hover{box-shadow:0 0 20px rgba(224,165,60,0.25);}
.btn-buy:disabled, .btn-sell:disabled, .btn:disabled{
  opacity:0.35;cursor:not-allowed;transform:none;box-shadow:none;
}
.btn-cyan{
  background:linear-gradient(180deg,#173236,#0f2427);border-color:rgba(74,217,224,0.5);color:var(--cyan);
  box-shadow:0 0 14px rgba(74,217,224,0.12);
}
.btn-cyan:hover{box-shadow:0 0 20px rgba(74,217,224,0.25);}
.btn-violet{
  background:linear-gradient(180deg,#2a2440,#1c1830);border-color:rgba(167,139,250,0.55);color:var(--violet);
  box-shadow:0 0 16px rgba(167,139,250,0.15);
}
.btn-violet:hover{box-shadow:0 0 24px rgba(167,139,250,0.32);}

.chk{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim);font-family:'JetBrains Mono';cursor:pointer;user-select:none;}
.chk input{accent-color:var(--amber);}

.buy-amount-toggle{display:flex;gap:4px;background:var(--bg-1);border:1px solid var(--border);border-radius:8px;padding:3px;}
.buy-amount-toggle button{
  border:none;background:none;color:var(--text-faint);font-family:'JetBrains Mono';font-size:11px;
  padding:5px 10px;border-radius:6px;cursor:pointer;font-weight:600;
}
.buy-amount-toggle button.active{background:var(--panel-3);color:var(--amber);box-shadow:0 0 10px rgba(224,165,60,0.15);}

/* buildings */
.building-row{
  display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border);
  border-radius:11px;background:var(--panel);margin-bottom:10px;transition:border-color .15s;
}
.building-row:hover{border-color:var(--border-lit);}
.building-row .b-icon{
  width:44px;height:44px;border-radius:10px;background:var(--panel-3);display:flex;align-items:center;
  justify-content:center;font-size:20px;flex-shrink:0;border:1px solid var(--border);
}
.building-row .b-info{flex:1;min-width:0;}
.building-row .b-name{font-family:'Rajdhani';font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;}
.building-row .b-owned{font-family:'JetBrains Mono';font-size:11px;color:var(--amber);background:rgba(224,165,60,0.1);padding:1px 8px;border-radius:20px;}
.building-row .b-prod{font-family:'JetBrains Mono';font-size:11px;color:var(--text-dim);margin-top:3px;}
.building-row .b-buy{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.building-row .b-cost{font-family:'JetBrains Mono';font-size:11px;color:var(--text-faint);}

/* mine unlock cards */
.unlock-card{
  display:flex;align-items:center;gap:16px;padding:16px 18px;border:1px dashed var(--border-lit);
  border-radius:12px;background:var(--panel);margin-bottom:12px;
}
.unlock-card .u-icon{font-size:30px;opacity:0.85;}
.unlock-card .u-info{flex:1;}
.unlock-card .u-name{font-family:'Rajdhani';font-weight:700;font-size:16px;}
.unlock-card .u-cost{font-family:'JetBrains Mono';font-size:11px;color:var(--text-faint);margin-top:2px;}

/* departments */
.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
.dept-card{
  background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--border);
  border-radius:14px;padding:18px;box-shadow:0 6px 18px rgba(0,0,0,0.3);display:flex;flex-direction:column;gap:10px;
}
.dept-card .d-head{display:flex;align-items:center;gap:12px;}
.dept-card .d-icon{
  width:46px;height:46px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:21px;
  background:var(--panel-3);border:1px solid var(--border-lit);box-shadow:0 0 18px rgba(74,217,224,0.1);
}
.dept-card .d-title{font-family:'Rajdhani';font-weight:700;font-size:16px;}
.dept-card .d-level{font-family:'JetBrains Mono';font-size:11px;color:var(--cyan);}
.dept-card .d-desc{font-size:12px;color:var(--text-dim);line-height:1.5;min-height:34px;}
.dept-card .d-effect{font-family:'JetBrains Mono';font-size:11px;color:var(--text-faint);}
.dept-card .d-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px;border-top:1px solid var(--border);}
.dept-card .d-cost{font-family:'JetBrains Mono';font-size:12px;color:var(--amber);}

/* research */
.research-branch{margin-bottom:26px;}
.research-branch-title{
  font-family:'Rajdhani';font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:12px;
  color:var(--text);
}
.research-branch-title .rb-icon{font-size:18px;}
.research-line{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;}
.tech-card{
  min-width:190px;flex-shrink:0;background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:14px;position:relative;
}
.tech-card.unlocked{border-color:rgba(95,216,151,0.5);box-shadow:0 0 18px rgba(95,216,151,0.12);}
.tech-card.locked-req{opacity:0.4;}
.tech-card .t-name{font-family:'Rajdhani';font-weight:700;font-size:14px;margin-bottom:4px;}
.tech-card .t-desc{font-size:11px;color:var(--text-dim);line-height:1.4;min-height:44px;}
.tech-card .t-cost{font-family:'JetBrains Mono';font-size:11px;color:var(--cyan);margin:8px 0;}
.tech-card .t-status{font-family:'JetBrains Mono';font-size:10px;color:var(--green);letter-spacing:0.08em;text-transform:uppercase;}
.tech-connector{width:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--border-lit);font-size:16px;}

/* achievements */
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}
.ach-card{
  background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:13px 15px;
  display:flex;gap:12px;align-items:flex-start;opacity:0.45;
}
.ach-card.done{opacity:1;border-color:rgba(224,165,60,0.4);box-shadow:0 0 16px rgba(224,165,60,0.1);}
.ach-card .a-icon{font-size:20px;}
.ach-card .a-name{font-family:'Rajdhani';font-weight:700;font-size:13.5px;}
.ach-card .a-desc{font-size:11px;color:var(--text-dim);margin-top:2px;}

/* prestige */
.prestige-hero{text-align:center;padding:42px 24px;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(167,139,250,0.12),rgba(10,12,16,0.95));border-radius:18px;}
.prestige-hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 50% 20%, var(--violet-glow), transparent 52%),
              radial-gradient(circle at 50% 95%, var(--violet-glow), transparent 34%);
  opacity:0.55;
  pointer-events:none;
  z-index:-1;
}
.prestige-hero .p-icon{font-size:48px;filter:drop-shadow(0 0 24px var(--violet-glow));position:relative;}
.prestige-hero .p-shares{font-family:'JetBrains Mono';font-size:38px;font-weight:700;color:var(--violet);
  text-shadow:0 0 24px var(--violet-glow);margin:10px 0 6px;position:relative;}
.prestige-hero .p-label{font-size:12px;color:var(--text-dim);letter-spacing:0.1em;text-transform:uppercase;position:relative;}
.prestige-hero .p-note{margin:16px auto 0;max-width:640px;font-size:12px;color:var(--text-faint);line-height:1.5;}
.prestige-stats{display:flex;gap:14px;justify-content:center;margin:20px 0;flex-wrap:wrap;position:relative;}
.ps-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 22px;min-width:140px;box-shadow:0 12px 30px rgba(0,0,0,0.18);}
.ps-box .ps-val{font-family:'JetBrains Mono';font-weight:800;font-size:18px;color:var(--text);}
.ps-box .ps-lbl{font-size:10px;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.08em;margin-top:6px;display:block;}

.toast{
  position:fixed;bottom:22px;left:50%;transform:translateX(-50%);
  background:var(--panel-3);border:1px solid var(--border-lit);padding:10px 20px;border-radius:10px;
  font-family:'JetBrains Mono';font-size:12px;color:var(--text);box-shadow:0 8px 24px rgba(0,0,0,0.5);
  opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;z-index:100;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-4px);}

.float-num{
  position:absolute;font-family:'JetBrains Mono';font-weight:700;font-size:16px;color:var(--amber);
  pointer-events:none;animation:floatUp .8s ease-out forwards;text-shadow:0 0 10px var(--amber-glow);
}
@keyframes floatUp{
  0%{opacity:1;transform:translate(-50%,0);}
  100%{opacity:0;transform:translate(-50%,-46px);}
}

.empty-note{color:var(--text-faint);font-size:12px;padding:20px;text-align:center;font-family:'JetBrains Mono';}

.leaderboard{
  display:grid;
  gap:10px;
}
.lb-header,
.lb-row{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 110px;
  align-items:center;
  gap:12px;
  padding:10px 12px;
}
.lb-header{
  font-family:'Rajdhani';font-size:12px;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-faint);border-bottom:1px solid var(--border);
}
.lb-row{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:10px;
}
.lb-row:nth-child(odd){background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent);}
.lb-row.you{background:linear-gradient(180deg,rgba(255,238,141,0.28),rgba(255,219,88,0.15));border-color:rgba(255,206,45,0.4);}
.lb-row.you .lb-rank,
.lb-row.you .lb-name,
.lb-row.you .lb-revenue{color:var(--amber);}
.lb-rank{font-family:'JetBrains Mono';font-size:12px;color:var(--amber);}
.lb-name{font-family:'Rajdhani';font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lb-revenue{font-family:'JetBrains Mono';font-size:12px;color:var(--text);text-align:right;}
.lb-current-label{font-family:'Rajdhani';font-size:12px;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:6px;}
.lb-current-score{font-family:'JetBrains Mono';font-size:28px;font-weight:700;color:var(--amber);}
.leaderboard-input{
  width:220px;
  padding:10px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--bg-1);
  color:var(--text);
  font-family:'JetBrains Mono';
}
.leaderboard-note{
  margin-top:12px;
  font-family:'JetBrains Mono';
  font-size:12px;
  color:var(--text-faint);
}
.leaderboard-controls{
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.lb-title{font-family:'Rajdhani';font-size:16px;font-weight:700;letter-spacing:0.02em;margin-bottom:10px;}

@media (max-width:820px){
  .sidebar{width:180px;}
  .mine-hero{flex-direction:column;text-align:center;}
  .mine-hero-actions{justify-content:center;}
  .lb-header,
  .lb-row{grid-template-columns:40px minmax(0,1fr) 90px;}
  .leaderboard-controls{width:100%;}
  .leaderboard-input{width:100%;}
}