.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:1000}
.brand{display:flex;align-items:center;gap:10px;padding:16px 18px 13px;border-bottom:1px solid var(--line)}.brand img{width:52px;height:38px;object-fit:contain}.brand strong{display:block;font-size:14px}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.nav-list{padding:12px 10px;overflow:auto}.nav-group{margin:11px 8px 5px;color:#98a2b3;font-weight:700;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.nav-link{position:relative;display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border:0;background:transparent;color:#475467;text-align:left;border-radius:3px;margin:1px 0}
.nav-link:hover{background:#f8fafc;color:#101828}.nav-link.active{background:var(--primary-soft);color:#1849a9;font-weight:600}.nav-link.active:before{content:"";position:absolute;left:-10px;width:3px;height:22px;background:var(--primary);border-radius:0 2px 2px 0}.nav-icon{width:17px;text-align:center;font-size:13px}
.sidebar-foot{margin-top:auto;padding:12px;border-top:1px solid var(--line)}.sidebar-user{font-size:11px;color:var(--muted);line-height:1.5}.sidebar-user strong{display:block;color:#344054}
.main-shell{margin-left:var(--sidebar);min-height:100vh}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 22px;position:sticky;top:0;z-index:900}.topbar h1{margin:0;font-size:18px}.topbar p{margin:3px 0 0;color:var(--muted);font-size:12px}.topbar-actions{display:flex;gap:7px}.page-content{padding:18px 22px 40px;max-width:1680px;margin:auto}.mobile-only{display:none}
@media(max-width:860px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main-shell{margin-left:0}.mobile-only{display:inline-flex}.topbar{padding:10px 13px}.page-content{padding:14px}.topbar-actions .btn:first-child{display:none}}

/* v0.4.3 enterprise navigation refresh */
.nav-list{padding:11px 9px 14px}.nav-section+.nav-section{margin-top:5px}.nav-group{display:flex;align-items:center;gap:7px;margin:12px 9px 5px;color:#7f8da3;font-size:9.5px;letter-spacing:.11em}.nav-group:after{content:"";height:1px;flex:1;background:#edf1f6}.nav-link{min-height:34px;padding:7px 10px;border:1px solid transparent;color:#40516a;border-radius:5px;transition:background .15s,border-color .15s,color .15s,transform .15s}.nav-link:hover{background:#f5f8fc;border-color:#e7edf5;color:#172b4d;transform:translateX(1px)}.nav-link.active{background:#eaf2ff;border-color:#d7e6ff;color:#1248a3;box-shadow:inset 0 0 0 1px rgba(21,94,239,.02)}.nav-link.active:before{left:-9px;height:24px;width:3px}.nav-icon{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-foot{padding:11px 12px;background:#fbfcfe}.sidebar-user{display:flex;align-items:center;gap:9px}.user-avatar{width:31px;height:31px;border-radius:6px;display:grid;place-items:center;background:#eaf2ff;color:#155eef;font-size:10px;font-weight:800;border:1px solid #d6e5ff;flex:0 0 31px}.user-copy{min-width:0}.sidebar-user strong,.sidebar-user span,.sidebar-user small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user strong{font-size:11.5px;color:#27364d}.sidebar-user span{font-size:10.5px;color:#52637a}.sidebar-user small{font-size:9.5px;color:#8a98aa;margin-top:1px}.brand{padding:15px 17px}.brand strong{font-size:14.5px;color:#172b4d}

/* v0.4.4 role-focused navigation and dashboard */
.nav-link{gap:8px;padding:5px 8px;min-height:36px}
.nav-icon-box{width:25px;height:25px;display:grid;place-items:center;flex:0 0 25px;border-radius:5px;background:#f4f7fb;border:1px solid #e8eef6;color:#52657e;transition:.15s}
.nav-icon{width:15px;height:15px;display:block;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nav-link:hover .nav-icon-box{background:#eaf2ff;border-color:#d6e5ff;color:#155eef}
.nav-link.active .nav-icon-box{background:#dceaff;border-color:#c5dcff;color:#155eef}
.nav-link>span:last-child{font-size:12px;line-height:1.2}
.user-copy{display:flex;flex-direction:column;align-items:flex-start}
.role-pill{display:inline-flex;margin-top:4px;padding:2px 6px;border-radius:999px;background:#eef4ff;border:1px solid #d9e7ff;color:#2459a9;font-size:8.5px;font-style:normal;font-weight:700;line-height:1.25;letter-spacing:.02em}
.dashboard-role-note{display:flex;align-items:center;gap:10px;padding:8px 11px;margin-bottom:12px;border:1px solid #e2e8f0;border-radius:5px;background:#fbfcfe;color:#667085;font-size:11px}
.dashboard-role-note strong{color:#27364d;font-size:11.5px}
.kpi{min-height:86px;padding:13px 14px}
.kpi-value{font-size:20px}

/* v0.4.4 focused role navigation and visible SVG icons */
.nav-link{gap:10px;padding-left:8px}
.nav-icon-wrap{width:25px;height:25px;display:grid;place-items:center;flex:0 0 25px;border:1px solid #e4eaf2;background:#f9fbfd;border-radius:5px;color:#526581;transition:all .15s ease}
.nav-icon{display:block;width:15px;height:15px;stroke-width:1.9}
.nav-link:hover .nav-icon-wrap{background:#eef4fb;border-color:#d7e3f0;color:#254f87}
.nav-link.active .nav-icon-wrap{background:#fff;border-color:#c7daf8;color:#155eef;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.nav-label{font-size:inherit;line-height:1}
.nav-group{margin-top:13px}
.sidebar-user{padding:1px}
.user-copy span{font-weight:600;color:#43546c}
.user-copy small{color:#7b8ca3}
.role-dashboard-note{margin-bottom:14px;padding:9px 12px;border:1px solid #dbe7f5;background:#f7fbff;border-radius:5px;color:#405b7d;font-size:11px}
.kpi-grid.role-focused{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
@media(max-width:860px){.nav-icon-wrap{width:24px;height:24px;flex-basis:24px}}

/* v0.4.4 role-focused navigation and dashboard */
.nav-link{gap:8px}.nav-icon-box{width:25px;height:25px;display:grid;place-items:center;flex:0 0 25px;border:1px solid #e6ebf2;border-radius:5px;background:#f8fafc;color:#53657d;transition:.15s}.nav-icon{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.nav-link:hover .nav-icon-box{background:#eef4ff;border-color:#d9e6fb;color:#155eef}.nav-link.active .nav-icon-box{background:#dfeaff;border-color:#c5d8fa;color:#155eef}.nav-label{font-size:12px}.sidebar-user span{font-weight:600;color:#475467}.sidebar-user small{color:#7b8798}.dashboard-context{display:flex;align-items:center;gap:7px;margin-bottom:10px;color:#667085;font-size:11px}.dashboard-context span{padding:3px 7px;border-radius:999px;background:#eef4ff;color:#1849a9;font-weight:700}.dashboard-context strong{font-weight:600;color:#475467}.role-kpis .kpi{min-height:82px}.role-kpis .kpi-value{font-size:20px}.role-kpis .kpi-label{font-size:11px}

/* v0.10.3: keep large financial figures contained inside KPI cards. */
.kpi-value{font-size:clamp(14px,1.45vw,20px);line-height:1.15;overflow-wrap:anywhere;word-break:normal;max-width:100%}
.kpi-grid .kpi{min-width:0;overflow:hidden}
.finance-kpis .kpi-value{font-size:clamp(13px,1.25vw,18px)}
@media(max-width:1100px){.kpi-value{font-size:16px}}

/* v0.10.3 soft navigation tint and readability */
.sidebar{background:#f3f6fa;border-right:0;box-shadow:4px 0 18px rgba(16,24,40,.035)}
.brand{background:#f7f9fc;border-bottom-color:#e7edf4}.nav-list{background:#f3f6fa}.sidebar-foot{background:#edf2f7;border-top-color:#e1e8f0}
.nav-group{color:#718096}.nav-group:after{background:#dde5ee}.nav-link{color:#40536a}.nav-link:hover{background:#e9eff6;border-color:transparent;transform:none}.nav-link.active{background:#dce8f7;border-color:transparent;color:#174f91;box-shadow:none}.nav-link.active:before{background:#4a78b8}.nav-icon-wrap,.nav-icon-box{background:rgba(255,255,255,.64);border-color:#dde6ef}.nav-link.active .nav-icon-wrap,.nav-link.active .nav-icon-box{background:#fff;border-color:#d4e1ef;color:#245ea4}
.topbar h1{font-size:20px}.topbar p{font-size:13px}.page-content{font-size:14px}

/* v0.10.3 softer but more intentional navigation */
.sidebar{background:#edf3f9;box-shadow:5px 0 22px rgba(36,63,92,.05)}.brand{background:#f4f8fc}.nav-list{background:#edf3f9}.sidebar-foot{background:#e7eff7}.nav-group{font-size:10.5px;color:#61758d}.nav-link{color:#354d68}.nav-label,.nav-link>span:last-child{font-size:13px}.nav-link:hover{background:#e1ebf5}.nav-link.active{background:#d3e3f5;color:#174f91}.sidebar-user strong{font-size:12.5px}.sidebar-user span{font-size:11.5px}.sidebar-user small{font-size:10.5px}

/* v0.10.59: narrow-screen navigation and layout stability */
@media(max-width:900px){
 #sidebar{max-width:min(86vw,310px);overflow-y:auto;overscroll-behavior:contain;}
 #page-content{min-width:0;}
 .app-shell,.main-area,.main-content{min-width:0;}
}
@media(max-width:600px){
 #page-content{padding:12px!important;}
 #page-content .card,#page-content .panel{max-width:100%;min-width:0;}
 #page-content input,#page-content select,#page-content textarea{max-width:100%;box-sizing:border-box;}
 #page-content table{font-size:13px;}
 #page-content .table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
 #page-content .btn{min-height:34px;}
}
.route-content{min-width:0;animation:gimsRouteEnter .16s ease-out;}
@keyframes gimsRouteEnter{from{opacity:.65}to{opacity:1}}

/* v0.10.85: consistent report controls and tactile feedback */
.gims-studio-toolbar-aligned{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px!important;align-items:stretch!important}
.gims-studio-toolbar-aligned>.btn,.gims-studio-toolbar-aligned>select{width:100%!important;min-width:0!important;min-height:40px!important;box-sizing:border-box!important;white-space:normal!important;text-align:center!important}
.gims-studio-toolbar-aligned>select{text-align:left!important}
.gims-studio-toolbar-aligned .btn:active,.gims-report-tabs .btn:active,.budget-actions .btn:active{transform:translateY(1px) scale(.985)!important;filter:brightness(.94)!important}
.gims-studio-toolbar-aligned .btn:focus-visible,.gims-report-tabs .btn:focus-visible{outline:3px solid #5aa9e7;outline-offset:2px}
.gims-studio-toolbar-aligned .btn[aria-busy="true"]{opacity:.7;cursor:progress}
.budget-existing-note{color:#275b79;font-size:.9em}
@media(max-width:760px){.gims-studio-toolbar-aligned{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:450px){.gims-studio-toolbar-aligned{grid-template-columns:1fr}}

/* v0.10.87 fix 1: keep application header in document flow; no viewport overlay */
.main-shell>.topbar{position:relative!important;top:auto!important;z-index:20!important;flex-shrink:0!important}

/* v0.11.11: Responsive mobile header and reduced session noise */
.auth-identity-detail{padding:6px 18px;background:#f0f6ff;color:#36526f;font-size:11px;line-height:1.4;border-bottom:1px solid #e0e9f4}
@media(max-width:860px){
 .main-shell>.topbar{display:grid!important;grid-template-columns:46px minmax(0,1fr) auto;align-items:center!important;gap:8px!important;height:auto!important;min-height:64px!important;padding:9px 12px!important;position:relative!important}
 #sidebar-toggle{display:grid!important;place-items:center!important;width:46px!important;height:46px!important;min-width:46px!important;font-size:25px!important;line-height:1!important;border-radius:10px!important;border:1px solid #cbd9ee!important;background:#eef5ff!important;color:#174c9a!important;padding:0!important;cursor:pointer}
 .topbar>div:nth-child(2){min-width:0!important;align-self:center!important}
 .topbar #page-title{font-size:18px!important;line-height:1.2!important;overflow-wrap:anywhere!important;margin:0!important}
 .topbar #page-subtitle{display:none!important}
 .topbar-actions{align-items:center!important;gap:5px!important;flex-wrap:nowrap!important}
 .topbar-actions #global-refresh,.topbar-actions #logout-btn,.topbar-actions #admin-view-as{display:none!important}
 .topbar-actions .language-switch{order:0!important;flex-shrink:0!important}
 .auth-identity-detail{display:none!important}
 .page-content{padding:12px!important;min-width:0!important}
}
@media(max-width:360px){.main-shell>.topbar{grid-template-columns:44px minmax(0,1fr) auto;gap:5px!important;padding:8px!important}.topbar #page-title{font-size:16px!important}}

.mobile-session-actions{display:none}
@media(max-width:860px){.mobile-session-actions{display:flex;gap:8px;margin-top:12px}.mobile-session-actions button{flex:1;min-height:40px;border:1px solid #cfddf0;background:#f0f5fc;color:#25466d;border-radius:8px;font-weight:600;font-size:12px}}

@media(min-width:861px){.app-shell.hmm-designer-wide>.sidebar{transform:translateX(-105%);pointer-events:none}.app-shell.hmm-designer-wide>.main-shell{margin-left:0}.app-shell.hmm-designer-wide .page-content{max-width:none;padding-left:10px;padding-right:10px}}

/* v77: Functional desktop navigation, preserving mobile drawer behavior. */
@media(min-width:861px){
 .sidebar,.main-shell{transition:width .22s ease,margin-left .22s ease}
 body.gims-sidebar-collapsed .sidebar{width:76px}
 body.gims-sidebar-collapsed .main-shell{margin-left:76px}
 body.gims-sidebar-collapsed .sidebar .nav-label,body.gims-sidebar-collapsed .sidebar .nav-group,body.gims-sidebar-collapsed .sidebar .user-copy,body.gims-sidebar-collapsed .sidebar .brand strong,body.gims-sidebar-collapsed .sidebar .brand span{display:none!important}
 body.gims-sidebar-collapsed .sidebar .brand{justify-content:center;padding:14px 4px}
 body.gims-sidebar-collapsed .sidebar .brand img{max-width:55px}
 body.gims-sidebar-collapsed .sidebar .nav-link{justify-content:center}
 body.gims-sidebar-collapsed .sidebar .nav-icon-box{margin:auto}
 body.gims-sidebar-collapsed .sidebar .nav-group:after{display:none}
 body.gims-sidebar-collapsed .sidebar .sidebar-user{justify-content:center}
}
