.shell { display: flex; height: 100vh; background: var(--color-bg); color: var(--color-text); font-family: var(--font-family); overflow: hidden; } .header { display: flex; align-items: center; justify-content: space-between; width: 100%; } .brand { height: 28px; width: auto; display: block; background: #E6EDEA; border-radius: 6px; padding: 3px 6px; } .nav { display: flex; flex-direction: column; gap: 2px; padding: var(--space-2) 0; } .sideContent { display: flex; flex-direction: column; min-height: 100%; } .sideFooter { margin-top: auto; padding: var(--space-3) var(--space-2) var(--space-2); border-top: var(--border-width) solid var(--color-border); display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); } .version { color: var(--color-text-muted); font-size: var(--font-size-xs); white-space: nowrap; } .navItem { display: flex; align-items: center; gap: var(--space-2); width: 100%; padding: var(--space-2) var(--space-3); background: none; border: none; border-radius: var(--radius-md); color: var(--color-text); font-size: var(--font-size-sm); font-family: var(--font-family); text-align: left; cursor: pointer; text-decoration: none; transition: background 120ms ease, color 120ms ease; } .navIcon { flex-shrink: 0; opacity: 0.65; transition: opacity 120ms ease; } .navItem:hover .navIcon, .navItemActive .navIcon { opacity: 1; } .navItem:hover { background: var(--color-bg-subtle); } .navItemActive { background: var(--color-secondary); color: var(--color-secondary-fg); font-weight: 600; } .navItemActive:hover { background: var(--color-secondary-hover); } .navSeparator { height: var(--border-width); background: var(--color-border); margin: var(--space-2) var(--space-2); } .main { flex: 1; overflow-y: auto; padding: var(--space-6); }