/* Menziva visual system — shared polish layer */
:root{
  --mz-forest:#0b2a1c;
  --mz-green:#145c3a;
  --mz-green-2:#1d7148;
  --mz-lime:#dff77a;
  --mz-cream:#f6f8f2;
  --mz-ink:#102019;
  --mz-muted:#68766e;
  --mz-line:#dbe4da;
  --mz-danger:#bd2d24;
  --mz-shadow:0 20px 55px rgba(14,47,30,.10);
  --mz-shadow-soft:0 8px 28px rgba(14,47,30,.075);
}

html{scroll-behavior:smooth}
body{
  color:var(--mz-ink);
  background:
    radial-gradient(circle at 92% 2%,rgba(223,247,122,.17),transparent 25rem),
    radial-gradient(circle at 22% 92%,rgba(24,113,72,.07),transparent 30rem),
    var(--mz-cream);
  text-rendering:optimizeLegibility;
}

.sidebar{
  background:
    radial-gradient(circle at 18% 4%,rgba(223,247,122,.10),transparent 13rem),
    linear-gradient(165deg,#0d2d1e 0%,#071d14 100%);
  box-shadow:14px 0 45px rgba(4,27,17,.10);
}
.side{
  display:flex!important;
  flex-direction:column;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.side .brand,
.side .nav{flex:0 0 auto}
.side .side-note{
  position:static!important;
  inset:auto!important;
  flex:0 0 auto;
  margin:18px 0 6px;
  pointer-events:none;
}
.side::-webkit-scrollbar{width:8px}
.side::-webkit-scrollbar-thumb{
  background:rgba(223,247,122,.28);
  border-radius:999px;
}
.nav button[data-page="financebook"]:not(.active) + .fw-subnav{display:none}
.brand{
  position:relative;
  letter-spacing:-.04em;
  font-size:1.45rem;
}
.brand::after{
  content:"";
  display:inline-block;
  width:.48rem;height:.48rem;
  margin-left:.3rem;
  border-radius:50%;
  background:var(--mz-lime);
  box-shadow:0 0 0 5px rgba(223,247,122,.10);
  vertical-align:.15rem;
}
.nav button{
  border:1px solid transparent;
  transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease;
}
.nav button:hover{
  background:rgba(255,255,255,.075);
  border-color:rgba(255,255,255,.08);
  transform:translateX(2px);
}
.nav button.active{
  background:linear-gradient(135deg,rgba(49,113,78,.75),rgba(39,91,64,.65));
  border-color:rgba(223,247,122,.13);
  box-shadow:inset 3px 0 0 var(--mz-lime),0 8px 18px rgba(0,0,0,.12);
}

.main{position:relative}
.page-head{margin-bottom:1.35rem}
.page-head h1,.page-head h2{
  letter-spacing:-.035em;
  color:var(--mz-ink);
}
.page-head::after{
  content:"";
  display:block;
  width:3rem;height:3px;
  margin-top:.75rem;
  border-radius:3px;
  background:linear-gradient(90deg,var(--mz-green),var(--mz-lime));
}

.card,.panel,.modal-card,.mz-auth-card{
  border:1px solid rgba(20,75,46,.12)!important;
  box-shadow:var(--mz-shadow-soft)!important;
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:saturate(125%) blur(8px);
}
.card,.panel{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.card:hover,.panel:hover{
  border-color:rgba(20,92,58,.2)!important;
  box-shadow:var(--mz-shadow)!important;
}

button,.btn,input,select,textarea{
  font:inherit;
}
button,.btn{
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,opacity .16s ease;
}
button:not(:disabled):active,.btn:not(:disabled):active{transform:translateY(1px)}
button.primary,.btn.primary,.mz-auth-submit{
  background:linear-gradient(135deg,var(--mz-green),#0f4930)!important;
  box-shadow:0 8px 18px rgba(20,92,58,.17);
}
button.primary:hover,.btn.primary:hover,.mz-auth-submit:hover{
  background:linear-gradient(135deg,var(--mz-green-2),var(--mz-green))!important;
  box-shadow:0 10px 22px rgba(20,92,58,.24);
}
input,select,textarea{
  border-color:var(--mz-line)!important;
  background:#fff!important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
input:focus,select:focus,textarea:focus{
  outline:none!important;
  border-color:var(--mz-green-2)!important;
  box-shadow:0 0 0 4px rgba(29,113,72,.11)!important;
}

table{border-collapse:separate;border-spacing:0}
thead th{
  color:#5c6c63;
  font-size:.78rem;
  letter-spacing:.025em;
  text-transform:none;
}
tbody tr{transition:background .15s ease}
tbody tr:hover{background:rgba(223,247,122,.09)}

.chip,.badge,.status,.pill{
  border:1px solid rgba(20,92,58,.08);
  box-shadow:0 2px 8px rgba(20,92,58,.04);
}
.hero,.setup-banner{
  background:
    radial-gradient(circle at 92% 20%,rgba(223,247,122,.16),transparent 14rem),
    linear-gradient(135deg,#124d32,#0f3c29)!important;
  border:1px solid rgba(223,247,122,.13)!important;
  box-shadow:0 18px 45px rgba(13,64,39,.18)!important;
}

.modal,.mz-auth{
  background:rgba(5,25,16,.58)!important;
  backdrop-filter:blur(9px) saturate(110%);
}
body.mz-auth-signed-out .mz-auth{
  background:radial-gradient(circle at 18% 22%,#24583d 0,transparent 30%),radial-gradient(circle at 84% 76%,#183f2c 0,transparent 34%),linear-gradient(135deg,#06160f,#0b2a1b 52%,#071a12)!important;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.modal-card,.mz-auth-card{
  border-radius:24px!important;
  box-shadow:0 28px 90px rgba(3,26,16,.27)!important;
}
.mz-auth-brand{
  letter-spacing:-.045em;
  color:var(--mz-forest)!important;
}
.mz-auth-card::before{
  content:"";
  display:block;
  width:3.2rem;height:5px;
  border-radius:4px;
  margin:0 0 1rem;
  background:linear-gradient(90deg,var(--mz-green),var(--mz-lime));
}

@media (max-width:760px){
  body{background:var(--mz-cream)}
  .side{box-shadow:0 10px 30px rgba(4,27,17,.16);overflow:visible!important}
  .main{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}
  .card,.panel{border-radius:20px!important}
  .page-head::after{margin-top:.55rem}
  button,.btn,input,select{min-height:44px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
