/* Sidebar: see erp-nav.js */
.erp-nav { --en-bg:#0f172a; --en-fg:#cbd5e1; --en-muted:#94a3b8; --en-line:#1e293b; --en-hover:#1e293b; --en-act:#4f46e5; --en-actfg:#fff; --en-cat:#f1f5f9; --en-input:#1e293b;
  width:256px; flex-shrink:0; height:100vh; position:sticky; top:0; z-index:40; display:flex; flex-direction:column; background:var(--en-bg); color:var(--en-fg); box-sizing:border-box; font-size:14px; line-height:20px; }
.erp-nav[data-erp-theme=light] { --en-bg:#fff; --en-fg:#334155; --en-muted:#64748b; --en-line:#e2e8f0; --en-hover:#f1f5f9; --en-act:#eef2ff; --en-actfg:#4338ca; --en-cat:#0f172a; --en-input:#f8fafc; border-right:1px solid #e2e8f0; }
.erp-nav.erp-ready { transition:width .18s ease, transform .2s ease; }
/* Before the script has chosen a layout (first paint): the phone drawer must already be off-screen, never flashing open. */
@media (max-width:767px) { .erp-nav:not(.erp-open) { position:fixed; left:0; top:0; bottom:0; width:min(300px,86vw); transform:translateX(-105%); z-index:70; } }
.erp-nav * { box-sizing:border-box; }
.erp-nav svg { flex-shrink:0; }
.erp-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.erp-brand { display:flex; align-items:center; gap:8px; padding:18px 16px; border-bottom:1px solid var(--en-line); min-height:68px; }
.erp-brand .erp-mark { width:32px; height:32px; border-radius:8px; background:#4f46e5; display:flex; align-items:center; justify-content:center; font-weight:700; color:#fff; flex-shrink:0; object-fit:contain; }
.erp-brand .erp-bname { font-weight:700; color:var(--en-cat); font-size:14px; line-height:1.2; overflow:hidden; text-overflow:ellipsis; }


.erp-search { padding:10px 12px 6px; position:relative; }
.erp-search input { width:100%; background:var(--en-input); color:var(--en-fg); border:1px solid var(--en-line); border-radius:8px; padding:8px 10px; font:inherit; font-size:13px; min-height:36px; }
.erp-search input::placeholder { color:var(--en-muted); } .erp-search input:focus { outline:2px solid #818cf8; outline-offset:0; }
.erp-rail-search { display:none; background:none; border:0; color:var(--en-muted); padding:8px; margin:0 auto; border-radius:8px; cursor:pointer; }
.erp-tree { flex:1; overflow-y:auto; padding:6px 10px 10px; display:flex; flex-direction:column; gap:2px; scrollbar-width:thin; }
.erp-pinned { margin-bottom:4px; padding-bottom:6px; border-bottom:1px solid var(--en-line); }
.erp-item, .erp-cat-btn, .erp-sub a { display:flex; align-items:center; gap:12px; width:100%; border-radius:8px; padding:9px 12px; color:var(--en-fg); text-decoration:none; background:none; border:0; font:inherit; font-weight:500; cursor:pointer; text-align:left; min-height:40px; }
.erp-nav .erp-item, .erp-nav .erp-sub a { color:var(--en-fg); }
.erp-nav .erp-item.active, .erp-nav .erp-sub a.active { color:var(--en-actfg); }
.erp-item:hover, .erp-cat-btn:hover, .erp-sub a:hover { background:var(--en-hover); color:var(--en-cat); }
.erp-item.active, .erp-sub a.active { background:var(--en-act); color:var(--en-actfg); }
.erp-nav .erp-item:hover, .erp-nav .erp-sub a:hover { color:var(--en-cat); }
.erp-nav .erp-item.active:hover, .erp-nav .erp-sub a.active:hover { color:var(--en-actfg); }
.erp-nav a:focus-visible, .erp-nav button:focus-visible { outline:2px solid #818cf8; outline-offset:-2px; }
.erp-cat-btn .erp-lbl { white-space:normal; line-height:1.25; }
.erp-cat-btn { font-weight:600; color:var(--en-cat); font-size:13px; letter-spacing:.01em; }
.erp-cat.has-active > .erp-cat-btn { color:var(--en-cat); }
.erp-cat.has-active > .erp-cat-btn svg:first-child { color:#818cf8; }
.erp-lbl { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.erp-count { font-size:11px; color:var(--en-muted); background:var(--en-line); border-radius:999px; padding:0 7px; line-height:18px; }
.erp-chev { transition:transform .15s; color:var(--en-muted); } .erp-cat.open > .erp-cat-btn .erp-chev { transform:rotate(180deg); }
.erp-grp { margin:2px 0 6px 12px; padding-left:8px; border-left:1px solid var(--en-line); display:flex; flex-direction:column; gap:1px; }
.erp-grp[hidden] { display:none; }
.erp-grp .erp-item { padding:7px 10px; font-size:13.5px; min-height:36px; }
.erp-grp .erp-item svg { width:16px; height:16px; }
.erp-sub { display:flex; flex-direction:column; gap:1px; margin:0 0 4px 26px; padding-left:8px; border-left:1px solid var(--en-line); }
.erp-sub a { padding:5px 10px; font-size:12px; min-height:30px; }
.erp-none { padding:16px 10px; color:var(--en-muted); font-size:13px; }
.erp-foot { border-top:1px solid var(--en-line); padding:6px 10px; display:flex; flex-wrap:wrap; gap:2px; }
.erp-ft { display:flex; align-items:center; gap:8px; background:none; border:0; color:var(--en-muted); font:inherit; font-size:12px; padding:6px 8px; border-radius:8px; cursor:pointer; min-height:34px; flex:1 1 calc(50% - 2px); }
.erp-ft:hover { background:var(--en-hover); color:var(--en-cat); }
.erp-ft svg { width:16px; height:16px; }
html.erp-nav-pending #root aside:not(#erpNav), aside[data-erp-replaced] { display:none !important; }
#erpNavScrim { display:none; position:fixed; inset:0; background:rgba(15,23,42,.5); z-index:39; } #erpNavScrim.on { display:block; }
html.erp-nav-locked, html.erp-nav-locked body { overflow:hidden; }

/* narrow rail: the desktop's "narrow menu" and tablets */
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open), .erp-nav.erp-rail:not(.erp-open) { width:72px; }
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-lbl, .erp-nav.erp-rail:not(.erp-open) .erp-lbl,
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-count, .erp-nav.erp-rail:not(.erp-open) .erp-count,
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-chev, .erp-nav.erp-rail:not(.erp-open) .erp-chev,
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-grp, .erp-nav.erp-rail:not(.erp-open) .erp-grp,
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-sub, .erp-nav.erp-rail:not(.erp-open) .erp-sub,
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-bname, .erp-nav.erp-rail:not(.erp-open) .erp-bname { display:none; }
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-search input, .erp-nav.erp-rail:not(.erp-open) .erp-search input { display:none; }
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-rail-search, .erp-nav.erp-rail:not(.erp-open) .erp-rail-search { display:block; }
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-item, .erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-cat-btn,
.erp-nav.erp-rail:not(.erp-open) .erp-item, .erp-nav.erp-rail:not(.erp-open) .erp-cat-btn { justify-content:center; padding:10px 0; }
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-brand, .erp-nav.erp-rail:not(.erp-open) .erp-brand { justify-content:center; padding:18px 0; }
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-ft, .erp-nav.erp-rail:not(.erp-open) .erp-ft { flex-basis:100%; justify-content:center; }
.erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-ft[data-do=expand], .erp-nav.erp-collapsed:not(.erp-phone):not(.erp-open) .erp-ft[data-do=collapse], .erp-nav.erp-rail:not(.erp-open) .erp-ft[data-do=expand], .erp-nav.erp-rail:not(.erp-open) .erp-ft[data-do=collapse], .erp-nav.erp-rail:not(.erp-open) .erp-ft-col { display:none; }
/* tablet, expanded: floats over the page */
.erp-nav.erp-rail.erp-open { z-index:70; position:fixed; left:0; top:0; bottom:0; width:272px; box-shadow:0 0 40px rgba(0,0,0,.35); }
.erp-nav.erp-rail { margin-right:0; }
.erp-nav.erp-rail:not(.erp-open) { position:sticky; }
/* phone: drawer */
.erp-nav.erp-phone { position:fixed; left:0; top:0; bottom:0; width:min(300px,86vw); transform:translateX(-105%); box-shadow:none; z-index:70; }
.erp-nav.erp-phone.erp-open { transform:none; box-shadow:0 0 40px rgba(0,0,0,.4); }
#erpNavScrim { z-index:59; }
.erp-nav.erp-phone .erp-item, .erp-nav.erp-phone .erp-cat-btn { min-height:44px; }
@media (prefers-reduced-motion: reduce) { .erp-nav, .erp-nav.erp-ready, .erp-chev { transition:none; } }
@media print { .erp-nav, #erpNavScrim { display:none !important; } }
