.app { height: 100dvh; max-width: 48rem; margin: 0 auto; display: flex; flex-direction: column; overflow: hidden; } .app-content { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; } /* Mobile-specific styles */ .mobile-view { width: 100%; padding: 0; margin: 0; } /* Desktop-specific styles */ .desktop-view { max-width: 100%; padding: 0 var(--margin-main); } /* Mobile-specific view adjustments */ @media (max-width: 768px) { .app-logo-wrapper { flex-direction: column; } .home-card--scan { min-height: 4.25rem; padding: 0.75rem 1.25rem; } .home-card-icon { width: 2.75rem; height: 2.75rem; } } /* Tablet-specific styles */ @media (min-width: 769px) and (max-width: 1024px) { .home-card { min-height: 4rem; padding: 0.625rem 1rem; } } /* Desktop-specific styles */ @media (min-width: 1025px) { .app-content { padding: 0 5rem; } .home-card { min-height: 3.5rem; padding: 0.5rem 0.875rem; } } body { min-height: 100vh; font-size: calc(16px + 0.5vmin); font-family: 'Plus Jakarta Sans', system-ui, sans-serif; color: var(--on-surface); background-color: var(--surface-container-lowest); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Touch target sizing for mobile */ @media (max-width: 768px) { a, button { min-height: 4rem; padding: 1rem; } } /* Card styling improvements */ .home-card { width: 100%; max-width: 28rem; min-height: fit-content; transition: transform 0.15s, box-shadow 0.15s; } .home-card:hover { transform: translateY(-3px); box-shadow: 0 1px 12px rgba(0, 0, 0, 0.1); } /* Fluid typography */ .home-desc { font-size: clamp(1rem, 100vw, 1.5rem); max-width: 100%; } .home-card-label { font-size: clamp(1rem, 100vw, 1.25rem); } /* Global button styles using pastel variables */ button, .btn { appearance: none; background: var(--primary); color: var(--on-primary); border: none; padding: 0.6rem 1rem; border-radius: var(--radius); box-shadow: var(--primary-shadow); transition: background-color 160ms ease, transform 120ms ease, box-shadow 160ms ease; cursor: pointer; } button:hover, .btn:hover { background: var(--primary-hover); transform: translateY(-1px); } button:focus, .btn:focus { outline: none; box-shadow: 0 0 0 6px var(--primary-ring); } /* Outline / subtle buttons */ .btn--outline { background: transparent; color: var(--on-secondary); border: 1px solid var(--secondary-container); } .btn--secondary { background: var(--secondary); color: var(--on-secondary); } .btn--ghost { background: transparent; color: var(--on-surface); }