/* V1.4.1: one consistent navigation shell for every authenticated section. */
.app-shell { grid-template-columns: 245px minmax(0,1fr); align-items:stretch; }
.sidebar { position:sticky; top:0; height:100vh; max-height:100vh; overflow-y:auto; overscroll-behavior:contain; }
.sidebar .aside-brand { text-decoration:none; color:#fff; display:inline-block; }
.sidebar .crm-primary-nav { display:grid; gap:4px; margin-top:15px; }
.sidebar .crm-primary-nav a { display:block; min-width:0; border-radius:10px; padding:10px 12px; font-size:13px; line-height:1.35; white-space:normal; }
.sidebar .crm-primary-nav a.active { background:rgba(255,255,255,.18); color:white; font-weight:750; }
.sidebar .crm-primary-nav a:focus-visible { outline:2px solid #73d8e8; outline-offset:2px; }
.crm-detail-main { width:100%; max-width:none; margin:0; padding:28px 36px; min-width:0; }
.crm-detail-main .workspace-header { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:24px; }
.crm-detail-main .workspace-header h1 { margin:9px 0 3px; color:var(--blue); font-size:27px; }
.crm-detail-main .workspace-header p { margin:0; color:var(--muted); }
.crm-detail-main .columns { min-width:0; }
.crm-detail-main .scroll, .crm-detail-main .panel { max-width:100%; }
.settings-tabs { position:sticky; top:0; background:#f3f8fc; z-index:3; padding-top:8px; }
#overview, #patients, #appointments, #messages { scroll-margin-top:28px; }
@media(max-width:750px){
  .app-shell { grid-template-columns:minmax(0,1fr); }
  .sidebar { position:relative; top:auto; height:auto; max-height:none; padding:12px 14px; }
  .sidebar .crm-primary-nav { display:flex; gap:5px; overflow-x:auto; margin-top:9px; padding-bottom:6px; scrollbar-width:thin; }
  .sidebar .crm-primary-nav a { flex:none; white-space:nowrap; padding:9px 12px; }
  .crm-detail-main { padding:18px 14px; }
  .crm-detail-main .workspace-header h1 { font-size:24px; }
  .settings-tabs { top:0; }
}
