/* The left menu (Caleb 11/6/26). Same #navMenu as the old dropdown, moved into an aside on wide
   screens, so role gating and the scan page's panel links keep working untouched. */
@import url("https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Barlow:wght@500;600&display=swap");
:root{--rs-w:244px;--rs-rail:66px;--rs-bg:#FFFFFF;--rs-ink:#141C24;--rs-ink2:#4A5866;--rs-ink3:#6C7A88;--rs-line:#DCE2E9;--rs-hover:#EEF1F5;--rs-on:#141C24;--rs-ontx:#FFFFFF;--rs-danger:#8E2E45}
:root[data-theme="dark"]{--rs-bg:#171E27;--rs-ink:#F1F4F7;--rs-ink2:#AEB9C5;--rs-ink3:#8693A0;--rs-line:#2A3440;--rs-hover:#212A35;--rs-on:#F1F4F7;--rs-ontx:#141C24;--rs-danger:#F2978C}
#rside{display:none}
html.rs-on{padding-left:var(--rs-rail)}
html.rs-anim{transition:padding-left .18s ease}
/* The panel behind the menu, drawn from the first paint so the left edge never flashes */
html.rs-on::before{content:"";position:fixed;z-index:59;top:0;bottom:0;left:0;width:var(--rs-rail);background:var(--rs-bg);border-right:1px solid var(--rs-line)}
html.rs-on.rs-pinned::before{width:var(--rs-w)}
/* Same-site page changes: hold the old page, fade the content quickly, leave the menu still */
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
#rside{view-transition-name:rside}
::view-transition-old(root),::view-transition-new(root){animation-duration:.12s}
::view-transition-group(rside){animation:none}
::view-transition-old(rside){display:none}
::view-transition-new(rside){animation:none}
html.rs-on.rs-pinned{padding-left:var(--rs-w)}
html.rs-on .navbtn{display:none!important}
#rsPin{position:absolute;top:18px;left:calc(var(--rs-w) - 42px);width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:8px;background:none;color:var(--rs-ink3);cursor:pointer}
#rsPin:hover{background:var(--rs-hover);color:var(--rs-ink)}
#rsPin:focus-visible{outline:2px solid var(--rs-ink);outline-offset:-2px}
@media (hover:none){#rsPin{display:none}}
html.rs-on #rside,html.rs-drawer #rside{display:flex;flex-direction:column;position:fixed;z-index:60;top:0;bottom:0;left:0;overflow:hidden;background:var(--rs-bg);border-right:1px solid var(--rs-line);font-family:"Barlow",system-ui,sans-serif}
html.rs-on #rside{width:var(--rs-rail);transition:width .18s ease,box-shadow .18s ease}
html.rs-on.rs-pinned #rside,html.rs-on #rside:hover,html.rs-on #rside:has(:focus-visible){width:var(--rs-w)}
html.rs-on:not(.rs-pinned) #rside:hover,html.rs-on:not(.rs-pinned) #rside:has(:focus-visible){box-shadow:0 14px 40px rgba(20,28,36,.2);transition-delay:.07s}
.rs-brand{display:flex;align-items:center;gap:12px;height:66px;padding:0 17px;flex:none;color:var(--rs-ink);text-decoration:none}
.rs-brand svg{width:32px;height:32px;flex:none;border-radius:8px}
.rs-brand b{font:800 22px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
#rside #navMenu{position:static;display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;min-width:var(--rs-w);width:var(--rs-w);overflow:hidden auto;scrollbar-width:thin;scrollbar-color:var(--rs-line) transparent;background:none!important;border:0!important;border-radius:0;box-shadow:none!important;padding:4px 0 16px}
#rside .rs-group{display:flex;flex-direction:column;gap:1px;padding:0 11px}
#rside .rs-group:not(:has(a:not([hidden]))){display:none}
#rside .rs-h{font:700 12px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--rs-ink3);padding:4px 11px 5px;white-space:nowrap;transition:opacity .12s}
#rside a,#rside button.rs-item{display:flex;align-items:center;gap:13px;width:100%;height:34px;padding:0 11px;border:0;border-radius:9px;background:none;color:var(--rs-ink2);font:600 15px/1 "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;text-align:left}
#rside a.rs-brand{height:66px;padding:0 17px;background:none;color:var(--rs-ink);border-radius:0;width:auto}
#rside a[hidden]{display:none!important}
#rside .rs-group a:hover,#rside button.rs-item:hover{background:var(--rs-hover);color:var(--rs-ink)}
#rside a.cur{background:var(--rs-on)!important;color:var(--rs-ontx)!important;pointer-events:none;font-weight:700}
#rside a.danger{color:var(--rs-danger)}
#rside a:focus-visible,#rside button.rs-item:focus-visible{outline:2px solid var(--rs-ink);outline-offset:-2px}
#rside svg.rs-i{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
/* Rail state: labels fade and rows shrink to the icon, so icons never move as it opens */
html.rs-on:not(.rs-pinned) #rside:not(:hover):not(:has(:focus-visible)) .rs-h,
html.rs-on:not(.rs-pinned) #rside:not(:hover):not(:has(:focus-visible)) a span,
html.rs-on:not(.rs-pinned) #rside:not(:hover):not(:has(:focus-visible)) .rs-item span,
html.rs-on:not(.rs-pinned) #rside:not(:hover):not(:has(:focus-visible)) .rs-brand b{opacity:0}
html.rs-on:not(.rs-pinned) #rside:not(:hover):not(:has(:focus-visible)) .rs-group a,
html.rs-on:not(.rs-pinned) #rside:not(:hover):not(:has(:focus-visible)) .rs-item{width:44px}
#rside a span,#rside .rs-item span,#rside .rs-brand b{transition:opacity .12s}
/* The dropdown keeps icons out and its group titles small */
html:not(.rs-on):not(.rs-drawer) .navmenu .rs-h{font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.65;padding:7px 10px 3px}
html:not(.rs-on):not(.rs-drawer) .navmenu .rs-group{display:flex;flex-direction:column}
html:not(.rs-on):not(.rs-drawer) .navmenu .rs-group:not(:has(a:not([hidden]))){display:none}
html:not(.rs-on):not(.rs-drawer) .navmenu svg.rs-i{display:none}
/* A panel on the scan page is not the scan screen */
html.rs-on.rs-panelview .topbar,html.rs-on.rs-panelview #tokLine,html.rs-on.rs-panelview .row,html.rs-on.rs-panelview .linebar,html.rs-on.rs-panelview #tbAlert{display:none}
/* Scan page: no rail. The screen stays bare and the menu lives in a pallet box, opened by a click only. */
html.rs-drawer #rside{width:var(--rs-w);transform:translateX(-102%);transition:transform .2s ease}
html.rs-open #rside{transform:none;box-shadow:0 14px 40px rgba(20,28,36,.25)}
html.rs-drawer html.rs-open::after{content:"";position:fixed;inset:0;z-index:59;background:rgba(20,28,36,.35)}
.navbtn.rs-box{display:block;width:88px;height:auto;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;cursor:pointer;line-height:0;overflow:visible}
.rs-box svg{display:block;width:100%;height:auto;overflow:visible}
.rs-box:focus-visible{outline:2px solid #3B2A17;outline-offset:3px;border-radius:6px}
.rs-box text{font:800 22px "Barlow Condensed","Arial Narrow",sans-serif;letter-spacing:1.5px}
.rs-flap,.rs-books{transition:transform .2s ease}
.rs-flap.l{transform-origin:8px 22px}.rs-flap.r{transform-origin:88px 22px}
.rs-books{transform:translateY(22px)}
.rs-box:hover svg,.rs-box:focus-visible svg{animation:rs-shake .5s ease-in-out 2}
.rs-box:hover .rs-flap.l,.rs-box[aria-expanded="true"] .rs-flap.l,html.rs-open .rs-box .rs-flap.l{transform:rotate(-24deg)}
.rs-box:hover .rs-flap.r,.rs-box[aria-expanded="true"] .rs-flap.r,html.rs-open .rs-box .rs-flap.r{transform:rotate(24deg)}
.rs-box:hover .rs-books,.rs-box[aria-expanded="true"] .rs-books,html.rs-open .rs-box .rs-books{transform:translateY(0)}
.rs-box:active svg{transform:translateY(2px)}
@keyframes rs-shake{0%,100%{transform:rotate(0)}15%{transform:rotate(-3.5deg) translateX(-1.5px)}35%{transform:rotate(3deg) translateX(1.5px)}55%{transform:rotate(-2.5deg) translateX(-1px)}75%{transform:rotate(2deg) translateX(1px)}}
@media (prefers-reduced-motion:reduce){html.rs-anim,html.rs-on #rside,html.rs-drawer #rside,.rs-flap,.rs-books{transition:none}.rs-box:hover svg,.rs-box:focus-visible svg{animation:none}}
