/* App shell - global page chrome and legacy page-shell aliases */

/* Text selection: orange foreground, no background highlight (mirrors legacy site). */
::selection {
    color: var(--accent-orange);
    background: transparent;
    text-shadow: none;
}

::-moz-selection {
    color: var(--accent-orange);
    background: transparent;
    text-shadow: none;
}

html {
    margin: 0;
    /* Reserve vertical scrollbar space so 100vw bleed math matches layout width */
    scrollbar-gutter: stable;
    overflow-x: clip;
}

body {
    margin: 0;
    font-family: var(--font-sans);
    color: var(--color-text-heading);
    background: var(--color-bg);
    overflow-x: clip;
    max-width: 100%;
}

#app,
.site-main {
    overflow-x: clip;
    max-width: 100%;
}

.site-main {
    min-height: 50vh;
}

/*
 * UI scale - shrink page content to ~80% on non-4K screens so the design feels
 * less oversized at typical desktop and laptop widths. Restored to 1 on 4K+
 * viewports where the original 1728px Figma reference reads at intended size.
 * Header + footer sit outside .site-main and are intentionally unscaled.
 */
.site-main {
    --site-main-zoom: 0.8;
    zoom: var(--site-main-zoom);
}

@media (min-width: 2560px) {
    .site-main {
        --site-main-zoom: 1;
    }
}

/* Legacy listing/detail shells - align with design-system page padding */
.page-shell {
    padding-block: clamp(3rem, 12vw, var(--space-section-gap));
    overflow-x: clip;
    max-width: 100%;
}

.page-shell > .container,
.page-shell .container {
    width: min(100% - 2 * var(--space-page-x), var(--layout-max));
    margin-inline: auto;
    padding-inline: var(--space-page-x);
    box-sizing: border-box;
}

.page-shell__body {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3vw, 2.5rem);
    margin-top: var(--space-block-gap);
}

.page-shell__status {
    margin: 0;
    font-size: var(--text-body);
    line-height: var(--line-height-body);
    color: var(--color-text-muted);
}

.page-shell__status--error {
    color: var(--accent-orange-text);
}

.page-shell__notice,
.page-shell__placeholder {
    color: var(--color-text-muted);
    max-width: 42rem;
    font-size: var(--text-body);
    line-height: var(--line-height-body);
}

.section-header__title {
    margin: 0;
}
