.site-header{
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(10px);
  background:rgba(243,247,251,.86);
  border-bottom:1px solid rgba(213,222,232,.8);
}
.site-header__inner{
  max-width:var(--max-width);
  margin:0 auto;
  min-height:var(--header-height);
  padding:0 1.25rem;
  display:flex;align-items:center;gap:1rem;
}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:700}
.brand__name{font-family:var(--font-display);font-size:1.2rem}
.site-header__nav{display:flex;gap:1rem;margin-left:auto}
.site-header__nav a{text-decoration:none;color:var(--text-muted);font-weight:600}
.site-header__nav a[aria-current="page"],
.site-header__nav a:hover{color:var(--primary)}
.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.menu-toggle__bars,.menu-toggle__bars::before,.menu-toggle__bars::after{
  display:block;width:18px;height:2px;background:var(--text);margin:0 auto;position:relative;content:"";
}
.menu-toggle__bars::before{position:absolute;top:-6px}
.menu-toggle__bars::after{position:absolute;top:6px}

.shell{
  max-width:var(--max-width);
  margin:0 auto;
  padding:1.5rem 1.25rem 3rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--aside-width);
  gap:1.75rem;
  align-items:start;
}
/* Keep main layout stable; left ad is a separate rail and does not reshape the grid. */
body.has-left-ad .shell{
  padding-left:calc(1.25rem + var(--left-ad-width) + 0.75rem);
}
.main{min-width:0}
.shell__aside{position:sticky;top:calc(var(--header-height) + 1rem)}
.left-ad-rail{
  position:fixed;
  top:calc(var(--header-height) + 1rem);
  left:0.75rem;
  width:var(--left-ad-width);
  z-index:20;
  pointer-events:auto;
}

.right-menu__panel{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  padding:1rem;
}
.right-menu__label{
  font-size:.78rem;font-weight:700;letter-spacing:.04em;
  color:var(--text-muted);margin:0.4rem 0 0.55rem;text-transform:uppercase;
}
.right-menu__nav{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}
.right-menu__link{
  text-decoration:none;padding:.65rem .75rem;border-radius:10px;font-weight:600;color:var(--text);
}
.right-menu__link:hover,.right-menu__link.is-active{
  background:rgba(15,122,108,.1);color:var(--primary);
}
.right-menu__popular{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}
.right-menu__popular a{text-decoration:none;color:var(--text-muted);font-size:.95rem}
.right-menu__popular a:hover{color:var(--primary)}

.site-footer{
  border-top:1px solid var(--border);
  background:rgba(255,255,255,.55);
  margin-top:auto;
}
.site-footer__inner{
  max-width:var(--max-width);margin:0 auto;padding:2.5rem 1.25rem 1rem;
  display:grid;grid-template-columns:1.3fr 2fr;gap:2rem;
}
.site-footer__name{font-family:var(--font-display);font-size:1.2rem;font-weight:700;margin-bottom:.4rem}
.site-footer__desc{color:var(--text-muted)}
.site-footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.site-footer__heading{font-weight:700;margin-bottom:.5rem}
.site-footer a{text-decoration:none;color:var(--text-muted)}
.site-footer a:hover{color:var(--primary)}
.site-footer__copy{
  max-width:var(--max-width);margin:0 auto;padding:0 1.25rem 1.5rem;
  color:var(--text-muted);font-size:.92rem;
}
.drawer-backdrop{
  position:fixed;inset:0;background:rgba(16,32,51,.45);z-index:80;
}
