/* An explicit app rail, separate from public navigation. */
.ra-app-shell .side-nav {
    position: sticky;
    top: 0;
    height: 100dvh;
    background: var(--ra-bg);
    overflow: hidden;
    transition: width .18s ease;
}
.ra-app-shell .side-nav:not(.collapsed) { width: 216px; }
.ra-app-shell .side-nav.collapsed { width: 64px; }
.ra-app-shell .side-nav-toolbar { padding: 10px; border-bottom: 1px solid var(--ra-line); }
.ra-app-shell .side-nav .side-nav-toggle {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    width: 100%;
    height: 44px;
    padding: 12px;
    margin: 0;
    border: 1px solid transparent;
    border-radius: 8px;
    color: var(--ra-muted);
    font: 500 13px/1.3 var(--ra-font-body);
    white-space: nowrap;
}
.ra-app-shell .side-nav .side-nav-toggle:hover { background: var(--ra-raised); border-color: var(--ra-line); color: var(--ra-text); }
.ra-app-shell .side-nav-toggle-icon { width: 20px; height: 20px; }
.ra-app-shell .collapsed .side-nav-toggle { justify-content: center; padding: 12px; }
.ra-app-shell .collapsed .side-nav-toggle-arrow { transform: translateX(27px) scaleX(-1); }
.ra-app-shell .side-nav .side-nav-links { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 12px 10px; gap: 4px; scrollbar-width: thin; scrollbar-color: var(--ra-line) transparent; }
.ra-app-shell .side-nav :is(.side-nav-links, .side-nav-footer) a {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 8px;
    position: relative;
    color: var(--ra-muted);
    font-size: 14px;
}
.ra-app-shell .side-nav a:hover { background: var(--ra-raised); color: var(--ra-text); }
.ra-app-shell .side-nav a.active { border: 1px solid var(--ra-line); background: var(--ra-lavender-wash); color: var(--ra-lavender-light); }
.ra-app-shell .side-nav a.active::before { content: ''; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 3px; border-radius: 2px; background: var(--ra-lavender); }
.ra-app-shell .side-nav .nav-icon { width: 20px; height: 20px; color: inherit; }
.ra-app-shell .side-nav .nav-icon svg { width: 20px; height: 20px; stroke-width: 1.7; }
.ra-app-shell .side-nav:not(.collapsed) .nav-label { display: inline; }
.ra-app-shell .side-nav:not(.collapsed) .nav-section-label { display: block; }
.ra-app-shell .side-nav.collapsed :is(.side-nav-links, .side-nav-footer) a { justify-content: center; padding: 10px; }
.ra-app-shell .side-nav.collapsed .nav-label,
.ra-app-shell .side-nav.collapsed .nav-section-label { display: none; }
.ra-app-shell .side-nav .side-nav-footer { display: block; flex-shrink: 0; padding: 10px; font-size: 14px; }
.ra-app-shell .side-nav .nav-divider { margin: 12px 4px; }
.ra-nav-tooltip {
    position: fixed;
    z-index: 1100;
    max-width: 220px;
    padding: 8px 12px;
    border: 1px solid var(--ra-line);
    border-radius: 6px;
    background: var(--ra-raised);
    color: var(--ra-text);
    font: 500 13px/1.4 var(--ra-font-body);
    pointer-events: none;
}
.ra-nav-tooltip[hidden], .ra-nav-scrim[hidden] { display: none; }
.ra-nav-scrim { display: none; }
@media (max-width: 700px) {
    .ra-app-shell .side-nav { position: fixed; inset: 0 auto 0 0; z-index: 100; }
    .ra-app-shell .main-wrapper { margin-left: 64px; }
    .ra-nav-scrim { display: block; position: fixed; inset: 0; z-index: 99; background: var(--ra-bg); opacity: .7; }
}
@media (prefers-reduced-motion: reduce) { .ra-app-shell .side-nav { transition: none; } }
