:root{
  --bg:#0b1117;
  --bg2:#111a22;
  --panel:rgba(18,27,35,.92);
  --panel2:rgba(24,36,46,.92);
  --line:rgba(210,222,232,.13);
  --text:#eef5f2;
  --muted:#8fa09c;
  --green:#27c48f;
  --green2:#0f8f68;
  --red:#f05d5e;
  --blue:#66a9ff;
  --gold:#d7ae55;
  --ink:#07100d;
  --shadow:0 24px 80px rgba(0,0,0,.36);
}
*{box-sizing:border-box}
body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 15% -8%,rgba(39,196,143,.17),transparent 26rem),
    radial-gradient(circle at 92% 8%,rgba(215,174,85,.13),transparent 28rem),
    linear-gradient(180deg,#0a1015 0%,#0d151c 48%,#101922 100%);
  overflow-x:hidden;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-3;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),rgba(0,0,0,.25));
}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.money-rain{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.money-rain span{
  position:absolute;
  top:-60px;
  color:rgba(215,174,85,.22);
  font-weight:900;
  animation:moneyFall linear infinite;
  text-shadow:0 0 18px rgba(39,196,143,.18);
}
@keyframes moneyFall{
  0%{transform:translateY(-80px) rotate(0deg);opacity:0}
  12%{opacity:.9}
  100%{transform:translateY(calc(100vh + 120px)) rotate(180deg);opacity:0}
}
.shell{width:min(1160px,calc(100% - 30px));margin:0 auto;padding:28px 0 100px}
.topbar{
  position:sticky;
  top:0;
  z-index:10;
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:0 max(15px,calc((100vw - 1180px)/2));
  background:rgba(10,16,21,.82);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(18px);
}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto}
.brand strong{display:block;color:#f2f7f5;font-size:16px;font-weight:900}
.brand small{display:block;color:var(--muted);font-size:11px}
.mark{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:8px;
  color:#07100d;
  background:linear-gradient(135deg,var(--gold),#f5dc9d 48%,var(--green));
  box-shadow:0 12px 26px rgba(0,0,0,.24);
  font-size:21px;
  font-weight:950;
}
.nav{display:flex;align-items:center;gap:5px}
.nav a{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:8px;
  color:#aab7b3;
  font-size:13px;
  font-weight:800;
  padding:0 13px;
}
.nav a.active{
  color:#fff;
  background:rgba(39,196,143,.13);
  border-color:rgba(39,196,143,.34);
}
.top-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.month-chip,.theme-chip,.add-chip,.btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--text);
  background:rgba(255,255,255,.055);
  padding:0 14px;
  font-weight:850;
}
.month-chip{min-width:150px;background:rgba(255,255,255,.07)}
.theme-chip{color:#d8e4df}
.add-chip,.btn.primary{
  color:#07100d;
  border-color:rgba(39,196,143,.48);
  background:linear-gradient(135deg,#5ee4b3,var(--green));
  box-shadow:0 12px 30px rgba(39,196,143,.18);
}
.hero{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin:4px 0 22px;
}
.finance-hero{
  min-height:190px;
  align-items:center;
  padding:30px;
  border:1px solid var(--line);
  border-radius:8px;
  background:
    linear-gradient(120deg,rgba(18,27,35,.95),rgba(21,42,40,.82)),
    radial-gradient(circle at 72% 18%,rgba(215,174,85,.22),transparent 22rem);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.eyebrow{margin:0 0 12px;color:#f5fbf8;font-size:clamp(28px,4vw,44px);line-height:1.05;font-weight:950}
.hero h1{max-width:680px;margin:0;color:#aebdb8;font-size:15px;font-weight:750;letter-spacing:0}
.month-picker{display:flex;gap:8px}
input,select{
  width:100%;
  min-height:46px;
  border:1px solid var(--line);
  border-radius:8px;
  color:var(--text);
  background:rgba(255,255,255,.065);
  padding:0 12px;
  outline:none;
}
select option{color:#111}
input:focus,select:focus{border-color:rgba(39,196,143,.72);box-shadow:0 0 0 3px rgba(39,196,143,.13)}
.panel{
  border:1px solid var(--line);
  border-radius:8px;
  background:linear-gradient(145deg,var(--panel),var(--panel2));
  box-shadow:var(--shadow);
  overflow:hidden;
}
.pad{padding:20px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.stats.small{grid-template-columns:repeat(4,1fr)}
.stat{position:relative;min-height:146px;padding:23px}
.glow-green{border-top:2px solid var(--green)}
.glow-red{border-top:2px solid var(--red)}
.glow-blue{border-top:2px solid var(--blue)}
.glow-gold{border-top:2px solid var(--gold)}
.stat span,.kicker{color:#93a39e;font-size:12px;font-weight:950;letter-spacing:.8px;text-transform:uppercase}
.stat strong{display:block;margin-top:24px;font-size:clamp(23px,3vw,30px);line-height:1;font-weight:950}
.stat small{display:block;margin-top:14px;color:var(--muted);font-size:12px;font-weight:700}
.green{color:var(--green)}
.red,.expense,.card{color:var(--red)}
.card_payment{color:var(--green)}
.gold{color:var(--gold)}
.blue,.income{color:var(--blue)}
.progress{height:8px;margin-top:18px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}
.progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--red),var(--gold),var(--green))}
.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.mini{min-height:78px;padding:16px 20px;background:rgba(255,255,255,.045)}
.mini b{display:block;font-size:18px}
.mini span{display:block;margin-top:6px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.insight-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px;margin-bottom:20px}
.insight-card h2{margin:8px 0 8px;font-size:22px}
.insight-card p{margin:0;color:#aab8b4;line-height:1.55}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.section-head h1,.section-head h2{margin:0;color:#eef5f2;font-size:16px}
.form{display:grid;gap:14px}
.two{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
label{display:grid;gap:7px;color:#b8c6c2;font-size:13px;font-weight:800}
.list{display:grid;gap:12px}
.tx{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  gap:12px;
  align-items:center;
  min-height:58px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}
.tx:last-child{border-bottom:0}
.tx strong{display:block;color:#f7fbf9;font-size:14px}
.tx small{display:block;margin-top:4px;color:var(--muted);font-size:12px}
.tx b{font-size:14px}
.dot{width:42px;height:42px;border-radius:8px;box-shadow:inset 0 0 0 999px rgba(255,255,255,.05)}
.tx-actions{display:flex;gap:7px;align-items:center}
.action,.delete{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:8px;
  color:#d7e3df;
  background:rgba(255,255,255,.04);
}
.edit{color:var(--gold);background:rgba(215,174,85,.08)}
.danger,.delete{color:#fff;border-color:rgba(240,93,94,.5);background:rgba(240,93,94,.14)}
.form-actions{display:flex;gap:10px;flex-wrap:wrap}
.bars{display:grid;gap:14px}
.bar div{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#f6fbf8;font-size:13px;font-weight:900}
.bar b{color:var(--red)}
.bar i{display:block;height:6px;margin-top:7px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.bar em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--red))}
.empty,.alert{
  padding:18px;
  border:1px dashed rgba(210,222,232,.22);
  border-radius:8px;
  color:var(--muted);
  text-align:center;
  background:rgba(255,255,255,.03);
}
.alert{border-style:solid;color:#ffd1d1;background:rgba(240,93,94,.1)}
.alert.success{color:#c9ffe9;border-color:rgba(39,196,143,.45);background:rgba(39,196,143,.12)}
.login{width:min(430px,100%);margin:12vh auto;padding:26px}
.big{margin-bottom:20px}
.table{display:grid;gap:8px}
.tr{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;padding:13px;border-bottom:1px solid var(--line)}
.head{color:var(--muted);font-weight:950}
.pill{display:inline-flex;margin:6px 6px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:#f7fbf9;background:rgba(255,255,255,.04)}
.quick{display:flex;gap:10px;flex-wrap:wrap}
.mobilebar{display:none}
@media(max-width:1080px){
  .nav{display:none}
  .topbar{justify-content:space-between}
}
@media(max-width:900px){
  .shell{width:min(100% - 22px,720px);padding-top:14px}
  .brand small,.month-chip{display:none}
  .top-actions{gap:6px}
  .add-chip{min-width:96px}
  .hero,.finance-hero{display:block;margin-bottom:18px;padding:20px}
  .eyebrow{font-size:28px}
  .month-picker{margin-top:16px}
  .stats,.stats.small,.mini-stats,.grid,.two,.insight-grid{grid-template-columns:1fr}
  .stat{min-height:126px}
  .tx{grid-template-columns:auto 1fr auto}
  .tx .tx-actions{grid-column:3}
  .mobilebar{
    position:fixed;
    left:10px;
    right:10px;
    bottom:10px;
    z-index:20;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:6px;
    padding:8px;
    border:1px solid var(--line);
    border-radius:8px;
    background:rgba(12,18,24,.94);
    box-shadow:var(--shadow);
    backdrop-filter:blur(18px);
  }
  .mobilebar a{
    min-height:48px;
    display:grid;
    place-items:center;
    gap:2px;
    border-radius:8px;
    color:#aab7b3;
    font-size:15px;
    font-weight:900;
  }
  .mobilebar a span{font-size:11px}
  .mobilebar a.active{color:#fff;background:rgba(39,196,143,.14)}
}
