.shell { min-height: 100vh; background: #f6f6f6; } .sidebar { position: fixed; top: 0; left: 0; bottom: 0; z-index: 20; width: var(--sidebar-width); height: 100vh; height: 100dvh; display: flex; flex-direction: column; padding: 28px 22px; background: var(--color-white); border-right: 1px solid #ececec; overflow-y: auto; } .brand { display: flex; align-items: center; gap: 12px; margin-bottom: 40px; padding: 0 6px; min-width: 0; } .brandLogo { flex: 0 0 auto; width: 48px; height: 48px; object-fit: contain; border-radius: 5px; background: #f6f6f6; } .brand img { width: 48px; height: 48px; object-fit: contain; } .brandText { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .brandBusiness { font-size: 14px; font-weight: 500; letter-spacing: 0.04em; text-transform: none; color: var(--color-black); line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .brandTitle { font-size: 11px; font-weight: 400; letter-spacing: 0.01em; text-transform: none; color: var(--color-muted); line-height: 1.35; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .brandText span:not(.brandTitle) { font-size: 11px; font-weight: 400; letter-spacing: 0.28em; text-transform: uppercase; color: var(--color-soft); } .brandText strong { font-size: 15px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; } .nav { display: flex; flex-direction: column; gap: 6px; flex: 1; } .navItem { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 0 14px; border-radius: 5px; font-size: 12px; font-weight: 400; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-muted); transition: background 0.25s ease, color 0.25s ease; } .navItem img { opacity: 0.55; transition: opacity 0.25s ease, filter 0.25s ease; } .navItem:hover, .navItem:focus-visible { background: #f6f6f6; color: var(--color-black); } .navItem:hover img, .navItem:focus-visible img { opacity: 1; } .navItemActive { background: var(--color-black); color: var(--color-white); } .navItemActive img { opacity: 1; filter: invert(1); } .navGroup { display: flex; flex-direction: column; gap: 4px; } .navGroupBtn { width: 100%; text-align: left; border: 0; background: transparent; cursor: pointer; } .navGroupActive { background: #f6f6f6; color: var(--color-black); } .navGroupActive img { opacity: 1; } .navChevron { margin-left: auto; width: 5px; height: 9px; opacity: 0.45; transform: rotate(90deg); transition: transform 0.2s ease, opacity 0.2s ease; } .navChevronOpen { transform: rotate(-90deg); opacity: 0.8; } .navSub { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 2px; padding: 0 0 4px 18px; } .navSubItem { position: relative; z-index: 1; display: flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 5px; font-size: 11px; font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-soft); cursor: pointer; transition: background 0.2s ease, color 0.2s ease; } .navSubItem:hover, .navSubItem:focus-visible { background: #f6f6f6; color: var(--color-black); } .navSubItemActive { background: var(--color-black); color: var(--color-white); } .sidebarFoot { display: flex; flex-direction: column; gap: 14px; padding-top: 20px; border-top: 1px solid #ececec; } .userLabel { padding: 0 6px; font-size: 12px; font-weight: 400; letter-spacing: 0.08em; color: var(--color-muted); } .siteLink { appearance: none; display: inline; border: 0; background: transparent; font: inherit; font-size: 11px; font-weight: 400; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-soft); padding: 0 6px; text-align: left; cursor: pointer; } .siteLink:hover, .siteLink:focus-visible { color: var(--color-black); } .logoutBtn { min-height: 34px; font-size: 11px; letter-spacing: 0.16em; } .backdrop { display: none; } .main { margin-left: var(--sidebar-width); min-width: 0; min-height: 100vh; display: flex; flex-direction: column; } .topbar { display: flex; align-items: center; gap: 16px; padding: 22px var(--page-pad); background: var(--color-white); border-bottom: 1px solid #ececec; } .menuBtn { display: none; width: 40px; height: 40px; place-items: center; } .topbarCopy { flex: 1; min-width: 0; } .eyebrow { font-size: 11px; font-weight: 400; letter-spacing: 0.32em; text-transform: uppercase; } .topbarHint { margin-top: 4px; font-size: 11px; font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-soft); } .topbarActions { display: flex; align-items: center; gap: 12px; } .iconBtn { width: 40px; height: 40px; display: grid; place-items: center; } .avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 5px; background: var(--color-card); } .content { padding: 36px var(--page-pad) 56px; } @media (max-width: 980px) { .shell { grid-template-columns: 1fr; } .sidebar { inset: 0 auto 0 0; width: min(86vw, var(--sidebar-width)); transform: translateX(-105%); transition: transform 0.3s ease; box-shadow: 18px 0 40px rgba(0, 0, 0, 0.08); } .sidebarOpen { transform: translateX(0); } .main { margin-left: 0; } .backdrop { display: block; position: fixed; inset: 0; background: rgba(0, 0, 0, 0.28); z-index: 15; } .menuBtn { display: grid; } }