/* nl-rail.css - the anpacken left-rail shell, extracted from swept-ui.css
   for pages that don't load the full swept stylesheet. Keep in sync. */
html.nl-shelled, html.nl-shelled body{ height:100%; }
html.nl-shelled body{ overflow:hidden; }
.nl-shell{ display:flex; align-items:stretch; height:100vh; background:var(--bg); }
.nl-side{ width:232px; flex:none; display:flex; flex-direction:column; background:var(--bg);
  border-right:1px solid var(--border); padding:20px 14px 18px; overflow-y:auto; gap:22px; }
.nl-brand{ display:flex; align-items:center; padding:0 8px 2px; flex-wrap:wrap; gap:2px; }
.nl-brand .logo{ font-family:var(--display); font-size:25px; font-weight:400; letter-spacing:-.01em; }
.nl-brand .lsub{ font-size:9.5px; letter-spacing:1.3px; margin-left:0; width:100%; color:var(--text3); }
.nl-nav{ display:flex; flex-direction:column; gap:1px; }
.nl-nav a{ display:flex; align-items:center; gap:11px; padding:9px 12px; border-radius:10px;
  font-family:var(--sans); font-size:14px; font-weight:500; line-height:1.2; color:var(--text2);
  text-decoration:none; border:1px solid transparent; transition:background .12s ease,color .12s ease; }
.nl-nav a:hover{ background:var(--surface2); color:var(--text); }
.nl-nav a.active{ background:var(--surface); color:var(--text); font-weight:600;
  border-color:var(--border); box-shadow:var(--shadow); }
.nl-ico{ width:17px; height:17px; flex:none; opacity:.72; }
.nl-nav a.active .nl-ico{ opacity:1; color:var(--accent); }
.nl-main{ flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; }
.nl-topbar{ flex:none; display:flex; align-items:center; justify-content:flex-end; gap:10px;
  flex-wrap:wrap; padding:12px 30px; min-height:56px; background:var(--bg);
  border-bottom:1px solid var(--border); }
.nl-topbar .header-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.nl-topbar .mode-switcher{ display:flex; align-items:center; gap:9px; }
.nl-content{ flex:1; min-height:0; overflow-y:auto; }
html.nl-appgrid .nl-content{ overflow:hidden; display:flex; }
html.nl-appgrid .nl-content > .app{ height:auto; flex:1; min-height:0; width:100%; }
@media (max-width:1080px){
  .nl-side{ width:70px; padding:18px 10px; }
  .nl-side .nl-brand .lsub{ display:none; }
  .nl-nav a{ justify-content:center; padding:11px 0; font-size:0; gap:0; }
  .nl-ico{ width:19px; height:19px; }
  .nl-brand .logo{ font-size:19px; }
}
/* ================= type + density — measured from swept ================= */
body{ font-size:14px; line-height:1.5; font-family:var(--sans); }
.page{ max-width:1240px; padding:30px 34px 90px; }
.page-title{ font-family:var(--display); font-size:32px; font-weight:500;
  letter-spacing:-0.015em; line-height:1.15; margin-bottom:6px; }
.page-sub{ font-size:13.5px; color:var(--text2); }
.stat-card,.card{ padding:18px 20px; border-radius:14px; }
.stat-label,.card-label{ font-family:var(--sans); font-size:12px; font-weight:500;
  letter-spacing:normal; text-transform:none; color:var(--text3); margin-bottom:8px; }
.stat-value,.card-value{ font-family:var(--display); font-size:32px; font-weight:500;
  letter-spacing:-0.015em; line-height:1.15; }
.stat-detail,.card-detail{ font-size:12.5px; margin-top:5px; }
.section-title{ font-family:var(--display); font-size:20px; font-weight:500; letter-spacing:-0.01em; }
.section-header{ padding:15px 20px; }
.nl-nav a{ font-size:14px; font-weight:400; padding:11px 12px; }
.nl-nav a.active{ font-weight:500; }
.nl-brand .logo{ font-family:var(--display); font-size:24px; font-weight:500; }
.agent-table th,.prop-table th{ font-size:11px; letter-spacing:normal; text-transform:none; font-weight:500; }

/* rail sections + product sub-links */
.nl-nav .nl-sec{ font-size:10px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--text3); padding:16px 12px 5px; }
.nl-nav a.sub{ padding-left:40px; font-size:13px; }
