diff --git a/apps/finance/services/api/main/templates/base.html b/apps/finance/services/api/main/templates/base.html index 5b124cf..5f5e56a 100644 --- a/apps/finance/services/api/main/templates/base.html +++ b/apps/finance/services/api/main/templates/base.html @@ -413,17 +413,67 @@ .animate-on-scroll:nth-child(4) { transition-delay: 0.21s; } .animate-on-scroll:nth-child(5) { transition-delay: 0.28s; } + /* ── Hamburger / mobile drawer ────────────────────────────────────── */ + .nav-hamburger { + display: none; + width: 36px; height: 36px; + border: none; background: none; cursor: pointer; + color: var(--text2); + flex-direction: column; justify-content: center; align-items: center; gap: 5px; + border-radius: var(--radius-sm); + transition: background 0.18s; + } + .nav-hamburger:hover { background: var(--surface2); } + .nav-hamburger span { + display: block; width: 20px; height: 2px; + background: currentColor; border-radius: 2px; + transition: transform 0.25s ease, opacity 0.25s ease; + } + .nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); } + .nav-hamburger.open span:nth-child(2) { opacity: 0; } + .nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } + + .nav-drawer { + display: none; + position: fixed; inset: var(--nav-h) 0 0 0; + background: var(--bg); + z-index: 199; + overflow-y: auto; + padding: 12px 16px 32px; + flex-direction: column; gap: 4px; + animation: slideIn 0.2s ease-out both; + } + .nav-drawer.open { display: flex; } + .nav-drawer a, .nav-drawer-section-label { + display: block; + padding: 11px 14px; + border-radius: var(--radius-sm); + font-size: 15px; font-weight: 500; + color: var(--text2); text-decoration: none; + transition: all 0.15s; + } + .nav-drawer a:hover { color: var(--text); background: var(--surface2); } + .nav-drawer a.active { color: var(--accent2); background: var(--accent-glow); } + .nav-drawer-section-label { + font-size: 11px; font-weight: 600; letter-spacing: 0.08em; + text-transform: uppercase; color: var(--text3); + padding-top: 16px; padding-bottom: 4px; + } + .nav-drawer hr { border: none; border-top: 1px solid var(--border); margin: 8px 0; } + /* ── Responsive ──────────────────────────────────────────────────── */ @media (max-width: 900px) { .grid-2 { grid-template-columns: 1fr; } } - @media (max-width: 600px) { - .nav { padding: 0 12px; gap: 2px; overflow-x: auto; } - .nav a:not(.nav-brand) { padding: 6px 7px; font-size: 12px; } + @media (max-width: 720px) { + .nav-hamburger { display: flex; } + .nav > a:not(.nav-brand), + .nav > .nav-group, + .nav > .nav-spacer, + .nav-email { display: none; } .container { padding: 16px 12px 32px; } .grid { grid-template-columns: 1fr 1fr; } .card { padding: 16px; } - .nav-email { display: none; } } @@ -469,8 +519,32 @@
+ + + +