body { margin: 0; display: flex; flex-direction: column; height: 100dvh; overflow: hidden; background: var(--bg-body); color: var(--text-primary); }
.top-header { position: fixed; inset: 0 0 auto; height: var(--header-height); z-index: 1000; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border-light); }
.header-brand, .header-actions, .profile-btn { display: flex; align-items: center; gap: 10px; }
.header-brand img { object-fit: contain; }
.profile-btn { padding: 6px 12px 6px 6px; cursor: pointer; font-size: 13px; }
.profile-btn img { border-radius: 50%; }
.btn-outline { display: inline-flex; gap: 7px; align-items: center; background: #fff; border: 1px solid var(--border-light); padding: 9px 12px; color: var(--text-secondary); font-size: 13px; cursor: pointer; }
.mobile-toggle { display: none; border: 0; background: transparent; font-size: 26px; color: var(--text-primary); cursor: pointer; }
.layout-wrapper { display: flex; flex: 1; min-height: 0; margin-top: var(--header-height); }
.left-sidebar { flex-shrink: 0; display: flex; flex-direction: column; overflow-y: auto; z-index: 900; transition: left .25s; }
.menu-list { padding: 0; margin: 0; }
.menu-item { display: flex; align-items: center; text-decoration: none; cursor: pointer; }
.main-content { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
.loading-screen { position: fixed; inset: 0; background: #f4f8fc; display: flex; align-items: center; justify-content: center; flex-direction: column; z-index: 9999; }
.spinner { width: 40px; height: 40px; border: 3px solid var(--border-light); border-top-color: var(--primary); border-radius: 50%; animation: spin .8s linear infinite; margin-bottom: 16px; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 768px) {
 .mobile-toggle { display: inline-flex; }
 .left-sidebar { position: fixed; left: -100%; top: var(--header-height); bottom: 0; }
 .left-sidebar.show { left: 0; }
 .hide-mobile { display: none; }
 .header-brand > span { display: none; }
 .profile-btn { padding: 4px; }
}
