/**
 * 공통 문서·앱 셸(.frm-*).
 * 로그인/가입 등 access 전용 페이지는 list.css 를 로드하지 않으므로, 이 파일에 셸 규칙이 있어야 한다.
 * list.css 의 데스크톱 블록과 동일(.frm-container max-width 등, 중복은 캐스케이드상 무해).
 */

*, *::before, *::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background: var(--forum-color-page-bg);
    color: var(--forum-color-text);
}

.frm-container {
    position: relative;
    width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
}

/* 모바일: 좌측 배경 스트립 숨김 — 목록·액세스 각 CSS가 본문 레이아웃 담당 */
.frm-left-background {
    display: none;
}

.frm-main-container {
    position: relative;
    width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
}

/* 상세 외 오른쪽 패널: cqw 등 — list.css 가 :has(.detail-container) 일 때 normal 로 덮음 */
.frm-right-content {
    container-type: inline-size;
}

@media (min-width: 1000px) {
    /*
     * 가운데 정렬 max-width 1500px 셸 — :root 에 두면 상속 실패 없이 배경·사이드바·팝업이 동일 x를 쓴다.
     */
    :root {
        --list-shell-x: max(0px, calc((100vw - min(100vw, 1500px)) / 2));
    }

    /* 셸은 최상위 래퍼에 두면 홈(=login 포함)·로그인·목록 공통으로 가운데 정렬(액세스 예외 불필요) */
    .frm-container {
        max-width: 1500px;
        width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .frm-left-background {
        display: block;
        position: fixed;
        top: 0;
        bottom: 0;
        left: var(--list-shell-x);
        width: 450px;
        z-index: 0;
        pointer-events: none;
        background: transparent;
    }

    .frm-main-container {
        position: relative;
        z-index: 1;
        height: auto;
        overflow: visible;
        min-height: 0;
    }

    .frm-left-sidebar {
        position: fixed !important;
        top: 0;
        left: var(--list-shell-x) !important;
        right: auto;
        width: 450px;
        height: 100vh;
        overflow: hidden;
        z-index: 10;
    }

    .frm-right-content {
        /* .frm-container 가 1500 가운데 정렬 — 본문은 사이드(450px) 다음부터 */
        margin-left: 450px;
        padding-left: 10px;
        padding-right: 20px;
        overflow: visible;
        background: var(--forum-color-surface);
    }

    .frm-sidebar-content {
        height: 100%;
        min-height: 0;
        padding: 0;
    }

    .frm-content-wrapper {
        min-height: auto;
        padding: 0;
        display: block;
    }
}

/* 관리 > 싸이트 기능: 전역 테마 선택 (list.css 미로드 시에도 토큰 색 상속) */
body.page-manage .manage-site-theme-root {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--forum-color-border);
}

body.page-manage .manage-site-theme-hint {
    margin-top: 0.35rem;
    margin-bottom: 0;
}

body.page-manage .manage-site-theme-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 0.75rem;
}

body.page-manage .manage-site-theme-label {
    font-weight: 600;
    color: var(--forum-color-text);
}

body.page-manage .manage-site-theme-select {
    min-width: 12rem;
    padding: 8px 10px;
    border-radius: 6px;
    border: 1px solid var(--forum-color-border);
    background: var(--forum-color-surface);
    color: var(--forum-color-text);
}
