/* RepGo responsive navigation shell. Kept separate so the business UI stays untouched. */
.layout{--sidebar-expanded:260px;--sidebar-collapsed:82px;grid-template-columns:var(--sidebar-expanded) minmax(0,1fr);transition:grid-template-columns .24s ease}
.workspace{grid-column:2;min-width:0;width:100%}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-expanded);height:100vh;min-height:100vh;overflow:hidden;z-index:50;transition:width .24s ease,padding .24s ease}
.sidebar-brand{display:flex;align-items:center;gap:11px;padding:7px 8px 22px;min-height:66px}
.sidebar-logo{width:46px;height:46px;flex:0 0 46px;object-fit:contain;border-radius:12px;background:#fff}
.sidebar-brand-copy{display:grid;gap:3px;min-width:0;flex:1}
.sidebar-brand-copy strong{font-size:19px;line-height:1.1;color:#fff}
.sidebar-brand-copy strong span{color:#47d2b5}
.sidebar-brand-copy .app-version{margin:0;font-size:10px}
.sidebar-collapse,.sidebar-close,.sidebar-menu-toggle{display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:10px;background:#ffffff12;color:#e8f2ff}
.sidebar-collapse:hover,.sidebar-close:hover{background:#ffffff24}
.sidebar-collapse svg,.sidebar-close svg,.sidebar-menu-toggle svg,.nav-icon svg,.sidebar-logout svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-close,.sidebar-menu-toggle{display:none}
.sidebar .nav{gap:4px;overflow-y:auto;overscroll-behavior:contain;padding:0 2px}
.sidebar .nav button{display:flex;align-items:center;gap:13px;min-height:44px;padding:10px 12px;color:#c9d7e9;white-space:nowrap;transition:background .18s ease,color .18s ease,transform .18s ease}
.sidebar .nav button:hover{transform:translateX(2px)}
.sidebar .nav button.active{background:#ffffff1e;color:#fff;box-shadow:inset 3px 0 #25b89a}
.nav-icon{display:grid;place-items:center;width:22px;height:22px;flex:0 0 22px;color:#b7c9df}
.nav button.active .nav-icon{color:#47d2b5}
.nav-label{overflow:hidden;text-overflow:ellipsis}
.sidebar-profile{display:flex;align-items:center;gap:11px;width:100%;min-height:58px;padding:12px 5px;text-align:left;color:#e7effa;background:transparent;border-radius:10px}
.sidebar-profile:hover{background:#ffffff12}
.sidebar-avatar{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:50%;overflow:hidden;background:#d6f7ef;color:#0c6859;font-weight:850}
.sidebar-avatar img{width:100%;height:100%;object-fit:cover}
.sidebar-profile-copy{display:grid;gap:3px;min-width:0}
.sidebar-profile-copy strong,.sidebar-profile-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-profile-copy strong{color:#fff;font-size:13px}
.sidebar-profile-copy small{color:#bac9dc;font-size:11px}
.sidebar-logout{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;margin-top:6px!important;padding:10px 12px!important;color:#dce8f9!important;background:transparent!important}
.sidebar-logout:hover{background:#ffffff14!important}
.sidebar-scrim{display:none}
.topbar{gap:14px}
.topbar h1{margin-right:auto}
.layout.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr)}
.layout.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}
.layout.sidebar-collapsed .sidebar{padding-left:10px;padding-right:10px}
.layout.sidebar-collapsed .sidebar-brand{justify-content:center;padding-left:0;padding-right:0}
.layout.sidebar-collapsed .sidebar-brand-copy,.layout.sidebar-collapsed .nav-label,.layout.sidebar-collapsed .sidebar-profile-copy,.layout.sidebar-collapsed .sidebar-logout-label{display:none}
.layout.sidebar-collapsed .sidebar-collapse{display:grid;position:absolute;top:4px;right:4px;width:28px;height:28px;z-index:2;background:#10243e}
.layout.sidebar-collapsed .sidebar-collapse svg{width:16px;height:16px}
.layout.sidebar-collapsed .sidebar .nav button{justify-content:center;padding:10px 8px}
.layout.sidebar-collapsed .sidebar .nav button.active{box-shadow:inset 0 -3px #25b89a}
.layout.sidebar-collapsed .profile{padding:12px 0 6px}
.layout.sidebar-collapsed .sidebar-profile{justify-content:center;padding:8px 0}
.layout.sidebar-collapsed .sidebar-logout{justify-content:center;padding:10px 8px!important}
@media(max-width:800px){
  .layout,.layout.sidebar-collapsed{display:block;min-height:100vh;width:100%;max-width:100%}
  .workspace{grid-column:auto;width:100%}
  .sidebar,.layout.sidebar-collapsed .sidebar{position:fixed;inset:0 auto 0 0;display:flex;width:min(310px,88vw);height:100dvh;min-height:100dvh;padding:16px 13px calc(14px + env(safe-area-inset-bottom));overflow:hidden;transform:translateX(-104%);transition:transform .28s cubic-bezier(.2,.75,.25,1);box-shadow:0 16px 44px #07182c55}
  .layout.mobile-menu-open .sidebar{transform:translateX(0)}
  .sidebar-brand,.layout.sidebar-collapsed .sidebar-brand{display:flex;justify-content:flex-start;padding:4px 4px 20px}
  .sidebar-brand-copy,.layout.sidebar-collapsed .sidebar-brand-copy,.layout.sidebar-collapsed .nav-label,.layout.sidebar-collapsed .sidebar-profile-copy,.layout.sidebar-collapsed .sidebar-logout-label{display:grid}
  .sidebar-collapse{display:none!important}
  .sidebar-close{display:grid;margin-left:auto;flex:0 0 38px}
  .sidebar .nav,.layout.sidebar-collapsed .sidebar .nav{display:flex;flex:1 1 auto;flex-direction:column;gap:5px;overflow:auto;padding:0 2px 12px;overscroll-behavior:contain}
  .sidebar .nav button,.layout.sidebar-collapsed .sidebar .nav button{justify-content:flex-start;flex:0 0 auto;min-height:48px;padding:11px 13px;white-space:normal}
  .sidebar .nav button.active,.layout.sidebar-collapsed .sidebar .nav button.active{box-shadow:inset 3px 0 #25b89a}
  .sidebar-profile{min-height:58px}
  .layout.sidebar-collapsed .profile{padding:16px 8px 8px}
  .layout.sidebar-collapsed .sidebar-profile{justify-content:flex-start;padding:8px 5px}
  .layout.sidebar-collapsed .sidebar-logout{justify-content:flex-start;padding:10px 12px!important}
  .sidebar-scrim{display:block;position:fixed;inset:0;z-index:49;visibility:hidden;opacity:0;background:#06172bb3;transition:opacity .24s ease,visibility .24s ease}
  .layout.mobile-menu-open .sidebar-scrim{visibility:visible;opacity:1}
  .sidebar-menu-toggle{display:grid;flex:0 0 42px;width:42px;height:42px;background:#e8f1fc;color:#174f91}
  .topbar{position:relative;min-height:62px;padding:9px 14px;gap:10px}
  .topbar h1{font-size:18px;flex:1;margin:0}
  .topbar .status{font-size:11px;order:3;width:100%}
  .content{padding:14px 14px max(20px,env(safe-area-inset-bottom))}
}
@media(prefers-reduced-motion:reduce){.layout,.sidebar,.sidebar-scrim,.sidebar .nav button{transition:none!important}}
