/* RoofSight desktop sidebar polish */
:root {
  --rs-sidebar-rail-width: 255px;
  --rs-sidebar-rail-bg: radial-gradient(circle at 20% 0, rgba(249,115,22,.11), transparent 32%), linear-gradient(180deg,#0a1220 0,#101a2b 70%,#0c1524 100%);
}

/* Keep the dark rail running for the full height of long pages. */
.shell {
  position: relative;
  isolation: isolate;
}
.shell::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: var(--rs-sidebar-rail-width);
  background: var(--rs-sidebar-rail-bg);
  box-shadow: 12px 0 34px rgba(15,23,42,.08);
  pointer-events: none;
  z-index: 0;
}
.sidebar {
  height: 100dvh;
  min-height: 100vh;
  z-index: 2;
  background: var(--rs-sidebar-rail-bg);
  padding: 26px 19px;
}
.main {
  position: relative;
  z-index: 1;
}

/* Give the brand and navigation more visual weight on desktop. */
.brand {
  gap: 14px;
  padding: 6px 7px 29px;
}
.brand-polished {
  padding-bottom: 29px;
  margin-bottom: 20px;
}
.brand-mark {
  width: 50px;
  height: 50px;
  border-radius: 14px;
  flex: 0 0 50px;
}
.brand-mark span {
  font-size: 13px;
  bottom: 6px;
}
.brand strong {
  font-size: 22px;
  line-height: 1.05;
  letter-spacing: -.025em;
}
.brand small {
  margin-top: 5px;
  font-size: 12px;
  line-height: 1.25;
}
.nav {
  gap: 8px;
}
.nav a {
  min-height: 52px;
  padding: 13px 14px;
  gap: 13px;
  border-radius: 12px;
  font-size: 15px;
  font-weight: 720;
  line-height: 1.15;
}
.nav-icon {
  width: 27px;
  flex: 0 0 27px;
  font-size: 18px;
  line-height: 1;
}
.sidebar-foot {
  font-size: 12px;
  line-height: 1.5;
}
.sidebar-foot small {
  font-size: 10.5px;
}

/* Preserve RoofSight's compact tablet rail. */
@media (max-width: 1050px) {
  :root { --rs-sidebar-rail-width: 84px; }
  .sidebar { padding: 20px 12px; }
  .brand { padding: 4px 0 24px; gap: 0; }
  .brand-mark { width: 46px; height: 46px; flex-basis: 46px; }
  .nav { gap: 7px; }
  .nav a { min-height: 48px; padding: 12px 8px; justify-content: center; }
  .nav-icon { width: 24px; flex-basis: 24px; font-size: 18px; }
}

/* Phones use the existing bottom navigation, so no desktop rail should remain. */
@media (max-width: 720px) {
  .shell::before { display: none; }
}
