/* One dashboard shell for client, professional and administrator pages. */
.dashboard-shell{display:grid;grid-template-columns:minmax(0,1fr);min-height:100dvh}.dashboard-shell>.sidebar{background:#fff;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;gap:0}.dashboard-shell>.sidebar .brand{display:block;padding:0 10px 24px;margin:0 0 20px;border-bottom:1px solid var(--line)}.dashboard-shell>.sidebar .brand img{height:42px;max-width:220px;object-fit:contain}.dashboard-shell .nav{display:flex;flex-direction:column;gap:5px}.dashboard-shell .nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:11px;color:#607c72;font-weight:500;text-decoration:none;line-height:1.5}.dashboard-shell .nav a img{width:20px;height:20px;opacity:.78;flex-shrink:0}.dashboard-shell .nav a:hover,.dashboard-shell .nav a.active{background:#eaf6f1;color:#138372}.dashboard-shell .nav a.active img{opacity:1}.dashboard-shell .nav-group-label{padding:20px 13px 8px;color:#70877f;letter-spacing:.05em;font-weight:700}.dashboard-shell .sidebar-footer{margin-top:auto;padding:16px 12px;border:1px solid var(--line);background:#f7faf8;border-radius:14px}.dashboard-shell .sidebar .nav{margin-bottom:24px}.dashboard-shell .sidebar-signout{width:100%;margin-top:12px}.dashboard-shell>.main{min-width:0;max-width:100%;margin:0;padding:0}.dashboard-shell .dash-top{height:76px;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;margin:0}.dashboard-shell .dash-top h1{margin:0;color:var(--ink);font-weight:700;letter-spacing:-.02em}.dashboard-shell .shared-header-title{display:flex;align-items:center;gap:12px;min-width:0}.dashboard-shell .top-actions{display:flex;align-items:center;gap:12px}.dashboard-shell .avatar{width:42px;height:42px;object-fit:cover;border-radius:50%;border:3px solid #edf6f1}.dashboard-shell .dash-content{padding:28px 30px;min-width:0}.dashboard-shell .mini-user{display:flex;align-items:center;gap:12px}.dashboard-shell .mini-user img{width:38px;height:38px;object-fit:cover;border-radius:50%}.dashboard-shell .mini-user span{display:block;color:#71887f;margin-top:4px}.dashboard-shell .icon-btn{width:44px;height:44px;padding:0;place-items:center;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.dashboard-shell .pill{background:#edf7f3;color:#287463;border-radius:999px;padding:8px 12px;font-weight:500;display:inline-flex;align-items:center;gap:6px}.dashboard-shell .status-dot{width:8px;height:8px;background:#27ac8a;border-radius:50%;display:inline-block}.dashboard-shell .secondary{border:1px solid #d8e9e1;background:#fff;color:#326553;padding:11px 16px;border-radius:11px;cursor:pointer;font-weight:500}.dashboard-shell .secondary:hover{background:#edf7f3}.dashboard-shell .platform-footer{margin:12px 30px 0}.dashboard-shell .nav svg{flex-shrink:0}@media(min-width:861px){.dashboard-shell{grid-template-columns:260px minmax(0,1fr)!important}.dashboard-shell>.sidebar{position:fixed!important;top:0!important;left:0!important;width:260px!important;height:100dvh!important;transform:none;box-shadow:none;z-index:40}.dashboard-shell .mobile-menu{display:none!important}}@media(max-width:860px){.dashboard-shell .dash-content{padding:18px 14px!important}.dashboard-shell .dash-top{min-height:68px!important;height:auto!important;padding:12px 14px!important}.dashboard-shell .mobile-menu{display:grid!important}.dashboard-shell>.sidebar{position:fixed!important;left:-290px!important;top:0!important;bottom:0!important;transform:none;width:min(280px,88vw)!important;height:100dvh!important;z-index:1000!important;transition:left .22s ease!important}.dashboard-shell>.sidebar.open{left:0!important}.dashboard-shell .platform-footer{margin:12px 14px 0}}@media(max-width:540px){.dashboard-shell .top-actions{gap:8px}.dashboard-shell .dash-top .pill{display:none}.dashboard-shell .avatar{width:36px;height:36px}.dashboard-shell .dash-top h1{overflow-wrap:anywhere}.dashboard-shell .secondary{padding:10px 12px}}
/* Authoritative shell layout: override legacy block/margin layout together.
   A sticky 100dvh sidebar must share a grid row with main, never precede it. */
@media(min-width:861px){
 .dashboard-shell{display:grid!important;grid-template-columns:260px minmax(0,1fr)!important;align-items:start!important}
 .dashboard-shell>.main{margin-left:0!important;width:100%!important;min-width:0!important;grid-column:2;grid-row:1}
 .dashboard-shell>.sidebar{grid-column:1;grid-row:1;align-self:start!important;visibility:visible!important}
}
@media(max-width:860px){
 .dashboard-shell{display:block!important}
 .dashboard-shell>.main{margin-left:0!important;width:100%!important}
}

/* Keep desktop navigation independent of document scrolling. */
@media(min-width:861px){
 .dashboard-shell>.sidebar{position:fixed!important;inset:0 auto 0 0!important;width:260px!important;height:100dvh!important;max-height:100dvh!important;box-sizing:border-box;overflow-x:auto!important;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:stable}
 .dashboard-shell>.sidebar>*{flex-shrink:0}
}
