.page { position: relative; display: flex; flex-direction: column; } main { flex: 1; } .content-wrapper { display: flex; flex-direction: column; flex: 1; min-height: 100vh; } .sidebar { background-color: var(--bg-sidebar); border-right: 1px solid var(--border-color); } .top-row { background-color: #f7f7f7; border-bottom: 1px solid #d6d5d5; justify-content: flex-end; height: 3.5rem; display: flex; align-items: center; } .top-row ::deep a, .top-row ::deep .btn-link { white-space: nowrap; margin-left: 1.5rem; text-decoration: none; } .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { text-decoration: underline; } .top-row ::deep a:first-child { overflow: hidden; text-overflow: ellipsis; } .footer { text-align: center; padding: 1rem; font-size: 0.85rem; color: var(--text-muted, #888); border-top: 1px solid var(--border-color, #ddd); } @media (max-width: 640.98px) { .top-row { justify-content: space-between; } .top-row ::deep a, .top-row ::deep .btn-link { margin-left: 0; } } @media (min-width: 641px) { .page { flex-direction: row; } .sidebar { width: 250px; height: 100vh; position: sticky; top: 0; } .top-row { position: sticky; top: 0; z-index: 1; } .top-row.auth ::deep a:first-child { flex: 1; text-align: right; width: 0; } .top-row, article { padding-left: 2rem !important; padding-right: 1.5rem !important; } }