:root{--header-height: 56px;--drawer-width: 280px;--color-primary: #2563eb;--color-danger: #dc2626;--color-border: #e5e7eb;--color-text: #1f2937;--color-text-muted: #6b7280;--color-bg: #ffffff;--color-text-strong: #111827;--color-icon: var(--color-primary);--back-accent-rgb: 37, 99, 235}.hidden{display:none}.app-header{position:sticky;top:0;z-index:100;height:var(--header-height);display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.hamburger-btn{background:none;border:none;font-size:20px;color:var(--color-text);padding:8px;margin-left:-8px;cursor:pointer;line-height:1}.app-header .app-name{font-weight:600;font-size:18px;color:var(--color-primary)}.app-body{display:flex}.app-content{flex:1;min-width:0;padding:16px}.nav-scrim{position:fixed;inset:0;background:#0006;z-index:199;opacity:0;pointer-events:none;transition:opacity .2s ease}.nav-scrim.open{opacity:1;pointer-events:auto}.nav-drawer{position:fixed;top:0;left:0;bottom:0;width:var(--drawer-width);max-width:80vw;background:var(--color-bg);z-index:200;display:flex;flex-direction:column;justify-content:space-between;transform:translate(-100%);transition:transform .2s ease;box-shadow:2px 0 12px #0000001a}.nav-drawer.open{transform:translate(0)}.nav-drawer-links{display:flex;flex-direction:column;padding:16px 0}.nav-link{display:flex;align-items:center;gap:12px;padding:14px 20px;color:var(--color-text);text-decoration:none;font-size:15px}.nav-link i{width:18px;text-align:center;color:var(--color-text-muted)}.nav-link.active{background:#eff6ff;color:var(--color-primary);font-weight:600}.nav-link.active i{color:var(--color-primary)}.nav-drawer-footer{border-top:1px solid var(--color-border);padding:8px 0}.nav-drawer-footer .logout-link,.nav-drawer-footer .logout-link i{color:var(--color-danger)}@media(min-width:768px){.nav-scrim{display:none}.nav-drawer{position:sticky;transform:none;top:var(--header-height);min-height:calc(100vh - var(--header-height));box-shadow:none;border-right:1px solid var(--color-border);flex-shrink:0}.nav-drawer-footer{position:sticky;bottom:0;background:var(--color-bg);flex-shrink:0}}
