/* ═══════════════════════════════════════════════════════════════════════════ layout.css — Shell layout, tab content area, responsive breakpoints ═══════════════════════════════════════════════════════════════════════════ */ /* ── Body is the tab viewport, no page scroll ───────────────────────────── */ html, body { height: 100%; overflow: hidden; } body { display: flex; flex-direction: column; } /* ── Tab content area (fills remaining space below nav) ─────────────────── */ .tab-content { position: relative; z-index: 1; flex: 1; overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; } /* ── Tab pane (injected by tabs.js) ─────────────────────────────────────── */ .tab-pane { display: none; padding: 1.5rem 1rem; } .tab-pane.active { display: block; } /* Home tab specifically fills the viewport */ .tab-pane--fill { display: none; padding: 0; height: 100%; } .tab-pane--fill.active { display: flex; flex-direction: column; } /* ── Container (shared across all tabs) ─────────────────────────────────── */ .container { width: 100%; max-width: 720px; margin-inline: auto; } /* ── Responsive ─────────────────────────────────────────────────────────── */ @media (min-width: 576px) { .tab-pane { padding: 2rem 1.5rem; } } @media (min-width: 768px) { .container { max-width: 704px; } .tab-pane { padding: 2rem 2rem; } } @media (min-width: 992px) { .container { max-width: 800px; } .tab-pane { padding: 2.5rem 2rem; } } @media (min-width: 1200px) { .container { max-width: 880px; } }