/* ── App shell ── */
#app {
  display: flex;
  height: 100vh;
  overflow: hidden;
  background: var(--neutral-950);
}

/* ── Sidebar ── */
#sidebar {
  width: var(--sidebar-w);
  min-width: var(--sidebar-w);
  background: var(--neutral-900);
  border-right: var(--border-subtle);
  display: flex;
  flex-direction: column;
  transition: width var(--t-slow), min-width var(--t-slow);
  overflow: hidden;
  z-index: 20;
  position: relative;
}
#sidebar.collapsed {
  width: var(--sidebar-w-col);
  min-width: var(--sidebar-w-col);
}

.sidebar-logo {
  padding: var(--sp-5) var(--sp-4);
  border-bottom: var(--border-subtle);
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  flex-shrink: 0;
}
#sidebar.collapsed .sidebar-logo { justify-content: center; padding: var(--sp-4) 0; }

.logo-mark {
  width: 34px; height: 34px;
  background: var(--brand-primary);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 13px; font-weight: 700; color: #fff;
  flex-shrink: 0; letter-spacing: -.5px;
  box-shadow: 0 2px 8px rgba(26,122,106,.4);
}
.logo-text { display:flex; flex-direction:column; line-height:1.1; overflow:hidden; }
.logo-name { font-family: var(--font-display); font-size: var(--text-sm); font-weight: 600; color: var(--neutral-100); white-space: nowrap; }
.logo-sub  { font-size: 9px; color: var(--neutral-500); letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
#sidebar.collapsed .logo-text { display: none; }

.sidebar-nav { flex: 1; padding: var(--sp-3) 0; overflow-y: auto; overflow-x: hidden; }

.nav-section {
  padding: var(--sp-3) var(--sp-4) var(--sp-1);
  font-size: 9px; font-weight: 700; letter-spacing: .14em;
  color: var(--neutral-600); text-transform: uppercase;
  white-space: nowrap; overflow: hidden;
}
#sidebar.collapsed .nav-section { opacity:0; height:0; padding:0; }

.nav-item {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-2) var(--sp-3);
  margin: 1px var(--sp-2);
  border-radius: var(--radius-md);
  cursor: pointer;
  color: var(--neutral-400); font-size: var(--text-sm); font-weight: 400;
  white-space: nowrap;
  transition: background var(--t-fast), color var(--t-fast);
  border-left: 2px solid transparent;
  position: relative;
  text-decoration: none;
}
.nav-item:hover { background: var(--neutral-800); color: var(--neutral-200); }
.nav-item.active { background: var(--neutral-800); color: var(--brand-accent); border-left-color: var(--brand-accent); font-weight: 500; }
.nav-icon  { flex-shrink:0; display:flex; align-items:center; }
.nav-label { overflow: hidden; }

#sidebar.collapsed .nav-item { justify-content:center; padding: var(--sp-2) 0; margin: 1px var(--sp-1); border-left-color:transparent !important; }
#sidebar.collapsed .nav-item.active::after {
  content:''; position:absolute; right:0; top:50%; transform:translateY(-50%);
  width:3px; height:60%; background: var(--brand-accent); border-radius: 2px 0 0 2px;
}
#sidebar.collapsed .nav-label { display:none; }

.sidebar-footer {
  padding: var(--sp-3) var(--sp-2);
  border-top: var(--border-subtle);
  flex-shrink: 0;
}
#collapse-btn {
  display:flex; align-items:center; gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3); border-radius: var(--radius-md);
  cursor:pointer; color: var(--neutral-500); font-size: var(--text-xs);
  background:none; border:none; width:100%; font-family: var(--font-body);
  transition: all var(--t-fast);
}
#collapse-btn:hover { background: var(--neutral-800); color: var(--neutral-300); }
.collapse-icon { display:flex; transition: transform var(--t-base); flex-shrink:0; }
#sidebar.collapsed .collapse-icon { transform: rotate(180deg); }
#sidebar.collapsed #collapse-btn span:last-child { display:none; }

/* ── Main ── */
#main {
  flex: 1; display: flex; flex-direction: column;
  overflow: visible; min-width: 0;
}

/* ── Topbar ── */
#topbar {
  height: var(--topbar-h);
  background: var(--neutral-900);
  border-bottom: var(--border-subtle);
  padding: 0 var(--sp-6);
  display: flex; align-items: center; justify-content: space-between;
  flex-shrink: 0; gap: var(--sp-4);
}
.breadcrumb { display:flex; align-items:center; gap: var(--sp-2); font-size: var(--text-xs); color: var(--neutral-500); }
.breadcrumb .sep { color: var(--neutral-700); }
.breadcrumb .current { color: var(--neutral-300); font-weight: 500; }
.topbar-right { display:flex; align-items:center; gap: var(--sp-3); }
.tenant-badge {
  background: var(--neutral-800); border: var(--border-subtle);
  border-radius: var(--radius-full); padding: var(--sp-1) var(--sp-3);
  font-size: var(--text-xs); color: var(--brand-accent); font-weight: 500; letter-spacing: .02em;
}
.user-menu {
  display:flex; align-items:center; gap: var(--sp-2);
  padding: var(--sp-1) var(--sp-2); border-radius: var(--radius-md);
  transition: background var(--t-fast); cursor: pointer;
}
.user-menu:hover { background: var(--neutral-800); }
.avatar {
  width: 30px; height: 30px; border-radius: var(--radius-full);
  background: var(--brand-primary);
  display:flex; align-items:center; justify-content:center;
  font-size: 11px; font-weight: 700; color:#fff; flex-shrink:0;
}
.user-name { font-size: var(--text-xs); font-weight: 500; color: var(--neutral-200); }
.user-role { font-size: 10px; color: var(--neutral-500); }
#logout-btn { background:none; border:none; cursor:pointer; color: var(--neutral-500); display:flex; padding: 4px; border-radius: var(--radius-sm); transition: color var(--t-fast), background var(--t-fast); }
#logout-btn:hover { color: var(--neutral-200); background: var(--neutral-800); }

/* ── Content ── */
#content {
  flex: 1; overflow-y: auto; padding: var(--sp-6);
  background: var(--neutral-950);
}

/* ── Page header ── */
.page-header { margin-bottom: var(--sp-6); animation: fadeIn .2s ease both; }
.page-title  { font-family: var(--font-display); font-size: var(--text-xl); color: var(--neutral-50); margin-bottom: 2px; }
.page-sub    { font-size: var(--text-sm); color: var(--neutral-500); }
