/* ============================================================
 * Membership 모듈 통합 스타일시트
 * @version 2.3
 * @date 2025-11-06
 * @framework Bootstrap 5.3.0 + FontAwesome 6.4.0
 * @lines 3,271
 *
 * 주요 업데이트 (v2.3):
 * - CSS 변수 시스템 (95개): 컬러, 타이포, 간격, 효과 통합
 * - 플랫폼오너 페이지: 아코디언 UI, 사업자 중복 병합
 * - 접근성: WCAG AAA 준수, 스무스 스크롤
 * - UX 개선: 셀렉트박스 커서, 친근한 화법
 * ============================================================ */

/* ============================================================
 * 1. CSS 변수 (디자인 토큰)
 * ============================================================ */
:root {
    /* 컬러 시스템 - primary와 조화로운 채도 */
    --color-primary: #667eea;
    --color-primary-light: #8a9aef;
    --color-primary-lightest: #f0f2ff;
    --color-primary-dark: #5568d3;
    --color-primary-darker: #4a5bc4;
    --color-secondary: #8b6bb7;
    --color-success: #52c77c;
    --color-success-light: #6fd89a;
    --color-success-dark: #3fb368;
    --color-danger: #e76e7a;
    --color-danger-light: #f08c96;
    --color-danger-dark: #d75461;
    --color-warning: #f5a742;
    --color-warning-light: #f8bc66;
    --color-warning-dark: #e89327;
    --color-info: #5b9eea;
    --color-info-light: #7eb2ef;
    --color-info-dark: #4489d6;

    /* 특수 컬러 */
    --color-gold: #f5c842;
    --color-gold-light: #f8d666;
    --color-gold-dark: #e0b327;

    /* 배지 컬러 */
    --badge-bg: #e6ecfb;
    --badge-text: #5c6f92;
    --badge-success-bg: #e8f5e9;
    --badge-success-text: #2e7d32;

    /* Alert 배경 컬러 */
    --alert-success-bg: #e3f5ea;
    --alert-success-border: #c8edd8;
    --alert-success-text: #2d6a43;
    --alert-danger-bg: #fde7e9;
    --alert-danger-border: #f9d0d4;
    --alert-danger-text: #a73d4a;
    --alert-warning-bg: #fff4e3;
    --alert-warning-border: #ffe8c8;
    --alert-warning-text: #9d6b2d;
    --alert-info-bg: #e6f2ff;
    --alert-info-border: #cce5ff;
    --alert-info-text: #3d7dba;

    /* 텍스트 컬러 */
    --color-text-primary: #2c3e50;
    --color-text-dark: #1f2d3d;
    --color-text-secondary: #495057;
    --color-text-muted: #6c757d;
    --color-text-muted-dark: #5a6268;
    --color-text-subtle: #6b7894;
    --color-text-light: #666;
    --color-text-lighter: #999;
    --color-text-white: #ffffff;
    --color-accent: #4a6fa5;

    /* 배경 컬러 */
    --color-bg-body: #eee;
    --color-bg-white: #ffffff;
    --color-bg-light: #f8f9fa;
    --color-bg-lighter: #e9ecef;
    --color-bg-hover: #f1f3f5;
    --color-bg-overlay: rgba(0, 0, 0, 0.5);
    --color-bg-card: #f8f9ff;
    --color-bg-banner: #f0f4ff;

    /* 보더 컬러 */
    --color-border: #dee2e6;
    --color-border-light: #e9ecef;
    --color-border-lighter: #f1f3f5;
    --color-border-dark: #adb5bd;
    --color-border-card: #e2e8f4;
    --color-border-banner: #c5d4f7;

    /* 폰트 패밀리 */
    --pk-font-body: 'Pretendard Variable', 'Pretendard', -apple-system, BlinkMacSystemFont,
        'Apple SD Gothic Neo', 'Noto Sans KR', system-ui, sans-serif;
    --pk-font-heading: 'Paperlogy', 'Pretendard Variable', 'Pretendard', -apple-system,
        BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Noto Sans KR', system-ui, sans-serif;
    --pk-font-display: 'Plus Jakarta Sans', 'Paperlogy', 'Pretendard Variable', 'Pretendard',
        system-ui, sans-serif;
    --font-family-mono: 'Courier New', Courier, monospace;

    /* 레거시 호환 별칭 */
    --font-family: var(--pk-font-body);

    /* 타이포그래피 스케일 (7단계) */
    --pk-font-2xs: 0.625rem;
    /* 10px — 셰브론, 배지 */
    --pk-font-xs: 0.8125rem;
    /* 13px — 저작권, 법적 고지, 회사 정보 */
    --pk-font-sm: 0.875rem;
    /* 14px — 내비, 검색, 레이블, 다이얼로그 */
    --pk-font-md: 1rem;
    /* 16px — 버튼, 푸터 링크, 카드 본문 */
    --pk-font-lg: 1.125rem;
    /* 18px — 히어로 설명 텍스트 */
    --pk-font-xl: 1.25rem;
    /* 20px — 푸터 브랜드, 아이콘 */
    --pk-font-2xl: 1.375rem;
    /* 22px — 로고 텍스트 */

    /* 레거시 호환 별칭 (기존 --font-size-* 참조용) */
    --font-size-xs: var(--pk-font-xs);
    --font-size-sm: var(--pk-font-sm);
    --font-size-base: var(--pk-font-md);
    --font-size-md: var(--pk-font-lg);
    --font-size-lg: var(--pk-font-xl);
    --font-size-xl: 1.5rem;
    /* 24px */
    --font-size-2xl: 1.875rem;
    /* 30px */
    --font-size-3xl: 2.25rem;
    /* 36px */
    --font-size-4xl: 3rem;
    /* 48px */

    /* 폰트 굵기 */
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* 라인 높이 */
    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.6;
    --line-height-loose: 1.8;

    /* 간격 */
    --spacing-2xs: 0.25rem;
    /* 4px */
    --spacing-xs: 0.5rem;
    /* 8px */
    --spacing-sm: 1rem;
    /* 16px */
    --spacing-md: 1.5rem;
    /* 24px */
    --spacing-lg: 2rem;
    /* 32px */
    --spacing-xl: 3rem;
    /* 48px */
    --spacing-2xl: 4rem;
    /* 64px */

    /* 보더 라디우스 */
    --radius-sm: 0.25rem;
    /* 4px */
    --radius-md: 0.5rem;
    /* 8px */
    --radius-lg: 0.75rem;
    /* 12px */
    --radius-xl: 1.25rem;
    /* 20px */
    --radius-round: 3.125rem;
    /* 50px */
    --radius-pill: 999px;
    --radius-circle: 50%;

    /* 그라데이션 */
    --gradient-primary: linear-gradient(135deg, #5568d3 0%, #5a3d7a 100%);
    --gradient-primary-accent: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    --gradient-primary-table: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);

    /* 그림자 */
    --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    --shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
    --shadow-focus: 0 0 0 3px rgba(102, 126, 234, 0.15);

    /* 트랜지션 */
    --transition-fast: all 0.15s ease;
    --transition: all 0.2s ease;
    --transition-slow: all 0.3s ease;
    --transition-slower: all 0.5s ease;

    /* z-index 레이어 */
    --z-dropdown: 1000;
    --z-sticky: 1020;
    --z-fixed: 1030;
    --z-modal-backdrop: 1040;
    --z-modal: 1050;
    --z-popover: 1060;
    --z-tooltip: 1070;
}

/* ============================================================
 * 2. 기본 설정 & 리셋
 * ============================================================ */
* {
    box-sizing: border-box;
}

*:focus {
    outline: none;
}

*:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--spacing-lg);
}

body {
    background: var(--color-bg-body);
    font-family: var(--pk-font-body);
    font-size: var(--pk-font-md);
    line-height: var(--line-height-normal);
    color: var(--color-text-primary);
    margin: 0;
    padding: 0;
    min-height: 100vh;
    word-break: keep-all;
    overflow-wrap: break-word;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* ============================================================
 * 3. 타이포그래피 시스템
 * ============================================================ */

/* 제목 */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--pk-font-heading);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    line-height: var(--line-height-tight);
    margin: 0 0 var(--spacing-md) 0;
}

h1 {
    font-size: var(--font-size-4xl);
    letter-spacing: -1.5px;
}

h2 {
    font-size: var(--font-size-3xl);
    letter-spacing: -1px;
}

h3 {
    font-size: var(--font-size-2xl);
    letter-spacing: -0.02em;
}

h4 {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    letter-spacing: -0.02em;
}

h5 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    letter-spacing: -0.01em;
}

h6 {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

/* 문단 */
p {
    margin: 0 0 var(--spacing-sm) 0;
    line-height: var(--line-height-relaxed);
    letter-spacing: -0.01em;
}

p:last-child {
    margin-bottom: 0;
}

p.lead {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-light);
    line-height: var(--line-height-loose);
    color: var(--color-text-secondary);
}

/* 텍스트 스타일 */
strong,
b {
    font-weight: var(--font-weight-bold);
}

em,
i {
    font-style: italic;
}

small {
    font-size: var(--font-size-sm);
}

mark {
    background-color: #fff3cd;
    padding: 0.1em 0.3em;
    border-radius: var(--radius-sm);
}

code {
    font-family: var(--font-family-mono);
    font-size: 0.875em;
    background: var(--color-bg-light);
    padding: 0.2em 0.4em;
    border-radius: var(--radius-sm);
    color: var(--color-danger);
}

/* 인용문 */
blockquote {
    margin: var(--spacing-md) 0;
    padding: var(--spacing-sm) var(--spacing-md);
    border-left: 4px solid var(--color-primary);
    background: var(--color-bg-light);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

blockquote p {
    margin-bottom: var(--spacing-xs);
}

blockquote cite {
    font-style: italic;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

/* 리스트 */
ul,
ol {
    margin: 0 0 var(--spacing-sm) 0;
    padding-left: var(--spacing-md);
}

ul ul,
ol ol,
ul ol,
ol ul {
    margin-bottom: 0;
}

li {
    margin-bottom: 0.5em;
    line-height: var(--line-height-relaxed);
}

ul.list-unstyled {
    list-style: none;
    padding-left: 0;
}

ul.list-inline {
    list-style: none;
    padding-left: 0;
}

ul.list-inline li {
    display: inline-block;
    margin-right: var(--spacing-sm);
}

/* 구분선 */
hr {
    border: 0;
    border-top: 1px solid var(--color-border-light);
    margin: var(--spacing-lg) 0;
}

hr.hr-text {
    position: relative;
    text-align: center;
    height: 1px;
    overflow: visible;
}

hr.hr-text::after {
    content: attr(data-content);
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--color-bg-white);
    padding: 0 var(--spacing-sm);
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}

/* 링크 */
a {
    color: var(--color-primary);
    text-decoration: none;
    transition: var(--transition-fast);
}

a:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

a:active {
    color: var(--color-primary-darker);
}

/* ============================================================
 * 4. 공통 레이아웃 (Enhanced Header & Footer)
 * ============================================================ */

/* Membership Header (Enhanced) */
.membership-header {
    background: linear-gradient(135deg, #4a5bc4 0%, #3d2d6b 50%, #2a1f4e 100%);
    color: white;
    padding: var(--spacing-lg) 0;
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-md);
    position: relative;
}

.membership-header .container {
    position: relative;
    z-index: 1;
}

.membership-header-title {
    font-family: var(--pk-font-heading);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: 4px;
    letter-spacing: -0.02em;
    color: #ffffff;
}

.membership-header-title .badge {
    display: none;
}

.membership-header-title i {
    margin-right: 8px;
    color: rgba(255, 255, 255, 0.9);
}

.membership-header-subtitle {
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-normal);
    margin: 0;
    color: rgba(255, 255, 255, 0.85);
}

/* Legacy Header Styles (하위 호환성) */
.header-section {
    background: var(--color-bg-white);
    border-bottom: 1px solid var(--color-border-light);
    padding: var(--spacing-lg) 0;
    margin-bottom: var(--spacing-lg);
    box-shadow: var(--shadow-xs);
}

.page-title {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    text-align: center;
    letter-spacing: -0.01em;
}

.page-subtitle {
    font-size: var(--font-size-md);
    color: #7f8c8d;
    text-align: center;
    margin: var(--spacing-xs) 0 0 0;
    font-weight: var(--font-weight-normal);
}

/* 메인 컨텐츠 */
.main-content {
    padding-bottom: var(--spacing-xl);
    min-height: calc(100vh - 400px);
}

/* Membership Footer */
.membership-footer {
    background: #f8f9fa;
    color: #6c757d;
    padding: var(--spacing-2xl) 0 var(--spacing-md) 0;
    margin-top: var(--spacing-2xl);
    border-top: 1px solid var(--color-border-light);
}

.footer-company-info {
    margin-bottom: var(--spacing-lg);
}

.footer-company-name {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.footer-company-name i {
    color: var(--color-text-muted);
    font-size: 1em;
}

.footer-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--spacing-sm) var(--spacing-md);
}

.footer-info-item {
    display: flex;
    gap: var(--spacing-xs);
    font-size: var(--font-size-xs);
    line-height: var(--line-height-relaxed);
    color: var(--color-text-muted);
}

.footer-info-item .info-label {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    min-width: 90px;
    flex-shrink: 0;
}

.footer-info-item .info-value {
    color: var(--color-text-muted);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-normal);
}

.footer-links {
    margin-bottom: var(--spacing-lg);
}

.footer-links-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-sm);
}

.footer-link-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-link-list li {
    margin-bottom: 0.4rem;
}

.footer-link-list a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: var(--font-size-xs);
    transition: var(--transition-fast);
    padding: 0.2rem 0;
}

.footer-link-list a:hover {
    color: var(--color-primary);
    text-decoration: none;
}

.footer-link-list a i {
    color: var(--color-text-muted);
    font-size: 0.85em;
    opacity: 0.7;
}

.footer-link-list a:hover i {
    color: var(--color-primary);
    opacity: 1;
}

.footer-copyright {
    text-align: center;
    padding-top: var(--spacing-md);
    margin-top: var(--spacing-lg);
    border-top: 1px solid var(--color-border-light);
}

.footer-copyright p {
    margin: 0;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
}

.footer-copyright p:first-child {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    margin-bottom: 0.3rem;
}

.footer-copyright i {
    margin-right: 3px;
    font-size: 0.85em;
}

.footer-notice {
    font-size: var(--font-size-xs) !important;
    opacity: 0.75;
    margin-top: 0.3rem !important;
}

.footer-system-name {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    opacity: 0.8;
    letter-spacing: 0.5px;
    font-weight: 500;
}

/* ============================================================
 * 5. 폼 섹션 공통
 * ============================================================ */
.form-section {
    background: var(--color-bg-white);
    border-radius: 0;
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    border: 1px solid var(--color-border-light);
    box-shadow: var(--shadow-xs);
    transition: var(--transition);
}

.form-section:hover {
    box-shadow: var(--shadow-sm);
}

.section-header {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-sm);
    border-bottom: 2px solid var(--color-border-light);
}

.section-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0;
    display: flex;
    align-items: center;
    letter-spacing: -0.01em;
}

.section-title i {
    color: var(--color-primary);
    margin-right: 12px;
    font-size: 1.2em;
    flex-shrink: 0;
}

.section-subtitle {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: var(--spacing-xs) 0 0 0;
    line-height: var(--line-height-relaxed);
}

/* ============================================================
 * 6. 폼 요소 시스템
 * ============================================================ */

/* 폼 그리드 */
.form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.form-grid.three-columns {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.form-group.full-width {
    grid-column: 1 / -1;
}

/* 폼 그룹 */
.form-group {
    display: flex;
    flex-direction: column;
    margin-bottom: var(--spacing-md);
}

.form-group:last-child {
    margin-bottom: 0;
}

/* 레이블 */
.form-label {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
    font-size: var(--font-size-sm);
    display: flex;
    align-items: center;
}

.form-label i {
    margin-right: 6px;
    color: var(--color-text-muted);
}

.required {
    color: var(--color-danger);
    font-weight: var(--font-weight-bold);
    margin-left: 2px;
}

/* 입력 필드 */
.form-control {
    display: block;
    width: 100%;
    padding: 0.75rem 1rem;
    font-size: var(--font-size-base);
    font-family: var(--font-family);
    line-height: var(--line-height-normal);
    color: var(--color-text-primary);
    background-color: var(--color-bg-white);
    background-clip: padding-box;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    transition: var(--transition);
    box-shadow: var(--shadow-xs);
}

.form-control:hover {
    border-color: var(--color-border-dark);
}

.form-control:focus {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-focus);
    background-color: var(--color-bg-white);
}

.form-control:disabled,
.form-control:read-only {
    background-color: var(--color-bg-light);
    color: var(--color-text-muted);
    cursor: default;
    opacity: 0.7;
}

.form-control::placeholder {
    color: var(--color-text-lighter);
    opacity: 0.7;
}

/* 입력 상태 */
.form-control.is-valid {
    border-color: var(--color-success);
}

.form-control.is-valid:focus {
    box-shadow: 0 0 0 3px rgba(40, 167, 69, 0.15);
}

.form-control.is-invalid {
    border-color: var(--color-danger);
}

.form-control.is-invalid:focus {
    box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.15);
}

/* 도움말 텍스트 */
.form-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-top: var(--spacing-xs);
    line-height: var(--line-height-relaxed);
}

.form-text i {
    margin-right: 4px;
    opacity: 0.7;
}

.form-text.text-success {
    color: var(--color-success);
}

.form-text.text-danger {
    color: var(--color-danger);
}

/* 텍스트에어리어 */
textarea.form-control {
    resize: vertical;
    min-height: 120px;
    line-height: var(--line-height-relaxed);
}

/* 셀렉트 */
select.form-control,
.form-select {
    cursor: pointer !important;
    appearance: none;
    background-color: #ffffff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23667eea' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 16px 12px;
    padding-right: 2.5rem;
    border: 1px solid var(--color-border);
    font-weight: var(--font-weight-medium);
}

select.form-control:hover:not(:disabled),
.form-select:hover:not(:disabled) {
    border-color: var(--color-primary);
    background-color: #ffffff;
    box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1);
    cursor: pointer;
}

select.form-control:focus,
.form-select:focus {
    background-color: #ffffff;
    border-color: var(--color-primary);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23667eea' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    box-shadow: var(--shadow-focus);
}

select.form-control:disabled,
.form-select:disabled {
    cursor: default !important;
    background-color: var(--color-bg-light);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23adb5bd' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    color: var(--color-text-muted);
    opacity: 0.7;
    border-color: var(--color-border-light);
}

/* 파일 입력 */
input[type="file"].form-control {
    padding: var(--spacing-xs) var(--spacing-sm);
    cursor: pointer;
}

input[type="file"].form-control::file-selector-button {
    padding: 0.375rem 0.75rem;
    margin-right: var(--spacing-sm);
    color: var(--color-text-primary);
    background-color: var(--color-bg-light);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition);
}

input[type="file"].form-control::file-selector-button:hover {
    background-color: var(--color-bg-lighter);
}

/* 체크박스 & 라디오 */
.form-check {
    display: flex;
    align-items: center;
    margin-bottom: var(--spacing-xs);
}

.form-check-input {
    width: 18px;
    height: 18px;
    margin-right: var(--spacing-xs);
    cursor: pointer;
    accent-color: var(--color-primary);
    transition: var(--transition-fast);
}

.form-check-input:focus {
    box-shadow: var(--shadow-focus);
}

.form-check-label {
    cursor: pointer;
    user-select: none;
    font-size: var(--font-size-base);
    color: var(--color-text-primary);
}

/* 입력 그룹 */
.input-group {
    display: flex;
    gap: var(--spacing-xs);
    width: 100%;
}

.input-group .form-control {
    flex: 1;
}

.input-group .btn {
    white-space: nowrap;
    padding: 0.75rem 1rem;
}

/* ============================================================
 * 7. 버튼 시스템
 * ============================================================ */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-tight);
    color: var(--color-text-primary);
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    user-select: none;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    background-color: transparent;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
    gap: 6px;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
    text-decoration: none;
}

.btn:active {
    transform: translateY(0);
    box-shadow: var(--shadow-xs);
}

a.btn {
    text-decoration: none;
}

a.btn:hover {
    text-decoration: none;
}

.btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

.btn i {
    margin-right: 6px;
    font-size: 1em;
}

.btn i:only-child {
    margin-right: 4px;
}

/* 버튼 크기 */
.btn-sm {
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--font-size-sm);
}

.btn-lg {
    padding: var(--spacing-sm) var(--spacing-lg);
    font-size: var(--font-size-lg);
}

/* Primary 버튼 */
.btn-primary {
    color: white;
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-primary:hover {
    background-color: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: white;
}

.btn-primary:active {
    background-color: var(--color-primary-darker);
}

/* Secondary 버튼 */
.btn-secondary {
    color: white;
    background-color: var(--color-text-muted);
    border-color: var(--color-text-muted);
}

.btn-secondary:hover {
    background-color: var(--color-text-muted-dark);
    border-color: var(--color-text-muted-dark);
    color: white;
}

/* Success 버튼 */
.btn-success {
    color: white;
    background-color: var(--color-success);
    border-color: var(--color-success);
}

.btn-success:hover {
    background-color: var(--color-success-dark);
    border-color: var(--color-success-dark);
    color: white;
}

/* Warning 버튼 */
.btn-warning {
    color: #000;
    background-color: var(--color-warning);
    border-color: var(--color-warning);
}

.btn-warning:hover {
    background-color: var(--color-warning-dark);
    border-color: var(--color-warning-dark);
    color: #000;
}

/* Outline 버튼 */
.btn-outline-primary {
    color: var(--color-primary);
    background-color: transparent;
    border-color: var(--color-primary);
}

.btn-outline-primary:hover {
    color: white;
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.btn-outline-secondary {
    color: var(--color-text-muted);
    background-color: transparent;
    border-color: var(--color-text-muted);
}

.btn-outline-secondary:hover {
    color: white;
    background-color: var(--color-text-muted);
    border-color: var(--color-text-muted);
}

.btn-outline-danger {
    color: var(--color-danger);
    background-color: transparent;
    border-color: var(--color-danger);
}

.btn-outline-danger:hover {
    color: white;
    background-color: var(--color-danger);
    border-color: var(--color-danger);
}

/* 버튼 그룹 */
.btn-group {
    display: inline-flex;
    gap: var(--spacing-xs);
}

/* ============================================================
 * 8. 주소 입력
 * ============================================================ */
.address-group {
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--color-border-light);
}

.group-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-md) 0;
    display: flex;
    align-items: center;
}

.group-title i {
    margin-right: 8px;
    color: var(--color-primary);
}

.company-address-group {
    margin-top: 20px;
}

/* ============================================================
 * 9. SNS 섹션
 * ============================================================ */
.sns-item {
    background: var(--color-bg-light);
    border-radius: var(--radius-sm);
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    border: 1px solid var(--color-border-light);
    transition: var(--transition);
}

.sns-item:hover {
    background: var(--color-bg-white);
    box-shadow: var(--shadow-sm);
}

.sns-inputs {
    display: grid;
    grid-template-columns: 1fr 2fr auto;
    gap: var(--spacing-sm);
    align-items: center;
}

/* ============================================================
 * 10. 프로필 공개 설정
 * ============================================================ */
.input-with-privacy {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.input-with-privacy .form-control,
.input-with-privacy .email-autocomplete-wrapper {
    flex: 1;
}

.privacy-toggle {
    display: flex;
    gap: 4px;
    background: var(--color-bg-light);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 4px;
    white-space: nowrap;
    box-shadow: var(--shadow-xs);
}

.privacy-toggle-label {
    display: flex;
    align-items: center;
    padding: 6px 12px;
    border-radius: 3px;
    cursor: pointer;
    transition: var(--transition-fast);
    margin: 0;
}

.privacy-toggle-label input[type="radio"] {
    display: none;
}

.privacy-toggle-label span {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
}

.privacy-toggle-label:hover {
    background: var(--color-bg-lighter);
}

.privacy-toggle-label:has(input:checked) {
    background: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.privacy-toggle-label:has(input:checked) span {
    color: white;
    font-weight: var(--font-weight-semibold);
}

/* ============================================================
 * 11. 개인정보 활용 안내
 * ============================================================ */
.privacy-info-box {
    background: linear-gradient(135deg, var(--color-bg-light) 0%, #fafbfc 100%);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    height: 100%;
    box-shadow: var(--shadow-sm);
}

.privacy-info-box h5 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-md) 0;
}

.privacy-info-box h5 i {
    color: var(--color-primary);
    margin-right: 8px;
}

.info-section {
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 1px solid var(--color-border-light);
}

.info-section:last-of-type {
    margin-bottom: 15px;
    padding-bottom: 0;
    border-bottom: none;
}

.info-section h6 {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin: 0 0 var(--spacing-xs) 0;
}

.info-section h6 i {
    color: var(--color-primary);
    margin-right: 6px;
    font-size: 0.9em;
}

.info-section p {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

.info-section ul {
    margin: 0;
    padding-left: 20px;
}

.info-section li {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
    margin-bottom: 4px;
}

.privacy-alert {
    background: linear-gradient(135deg, var(--alert-warning-bg) 0%, var(--alert-warning-border) 100%);
    border: 1px solid var(--color-warning);
    border-left: 4px solid var(--color-warning);
    border-radius: var(--radius-sm);
    padding: 12px;
    font-size: var(--font-size-sm);
    color: var(--alert-warning-text);
    line-height: var(--line-height-relaxed);
    box-shadow: var(--shadow-xs);
}

.privacy-alert i {
    color: var(--color-warning);
    margin-right: 6px;
}

.privacy-alert strong {
    color: var(--alert-warning-text);
}

/* ============================================================
 * 12. 사용 안내 가이드
 * ============================================================ */
.usage-guide {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: linear-gradient(135deg, var(--alert-info-bg) 0%, var(--alert-info-border) 100%);
    border: 1px solid var(--alert-info-border);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--radius-sm);
    padding: 15px 18px;
    margin-top: 15px;
    box-shadow: var(--shadow-xs);
}

.guide-icon {
    font-size: var(--font-size-2xl);
    line-height: 1;
    flex-shrink: 0;
    color: var(--color-primary);
}

.guide-icon i {
    display: block;
}

.guide-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}

.guide-text strong {
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
}

/* ============================================================
 * 13. 파일 업로드
 * ============================================================ */
.file-upload-area {
    border: 2px dashed var(--color-primary);
    border-radius: var(--radius-md);
    padding: 3rem 2rem;
    text-align: center;
    background: linear-gradient(135deg, #f8f9ff 0%, #f0f4ff 100%);
    transition: var(--transition-slow);
    cursor: pointer;
    position: relative;
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.file-upload-area:hover {
    border-color: var(--color-primary-dark);
    background: linear-gradient(135deg, #f0f2ff 0%, #e6ecff 100%);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.file-upload-area.dragover {
    border-color: var(--color-success);
    background: linear-gradient(135deg, #f0fff4 0%, #e6fff0 100%);
    transform: scale(1.01);
    box-shadow: var(--shadow-xl);
}

.upload-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
}

.upload-icon {
    font-size: 4rem;
    opacity: 0.8;
    margin-bottom: var(--spacing-sm);
    color: var(--color-primary);
    animation: float 3s ease-in-out infinite;
}

@keyframes float {

    0%,
    100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-10px);
    }
}

.upload-icon i {
    display: block;
}

.upload-text {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.upload-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
}

.upload-subtitle {
    font-size: var(--font-size-base);
    color: var(--color-primary);
    margin: 0;
    font-weight: var(--font-weight-medium);
}

.upload-formats {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: 0;
    background: white;
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-xs);
}

.file-upload-area.dragover .upload-title {
    color: var(--color-success);
}

.file-upload-area.dragover .upload-subtitle {
    color: var(--color-success-light);
}

/* 파일 목록 */
.file-list {
    margin-top: var(--spacing-sm);
}

.file-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    margin-bottom: var(--spacing-xs);
    transition: var(--transition);
    box-shadow: var(--shadow-xs);
}

.file-item:hover {
    background: var(--color-bg-lighter);
    box-shadow: var(--shadow-sm);
    transform: translateX(4px);
}

.file-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
}

.file-icon {
    font-size: 1.2rem;
    opacity: 0.7;
    color: var(--color-primary);
}

.file-details {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.file-name {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    font-size: var(--font-size-sm);
}

.file-size {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.file-actions {
    display: flex;
    gap: var(--spacing-xs);
}

.file-remove {
    background: var(--color-danger);
    color: white;
    border: none;
    border-radius: var(--radius-sm);
    padding: 0.25rem var(--spacing-xs);
    font-size: var(--font-size-xs);
    cursor: pointer;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.file-remove:hover {
    background: var(--color-danger-dark);
    transform: scale(1.05);
    box-shadow: var(--shadow-sm);
}

/* 업로드 진행률 */
.upload-progress {
    width: 100%;
    height: 4px;
    background: var(--color-bg-lighter);
    border-radius: 2px;
    overflow: hidden;
    margin-top: var(--spacing-xs);
    box-shadow: var(--shadow-inner);
}

.upload-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--color-primary) 0%, var(--color-primary-light) 100%);
    transition: width 0.3s ease;
    width: 0%;
    box-shadow: 0 0 10px rgba(102, 126, 234, 0.5);
}

/* 업로드 상태 */
.upload-status {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-xs);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
}

.upload-status.success {
    color: var(--color-success);
}

.upload-status.error {
    color: var(--color-danger);
}

.upload-status.uploading {
    color: var(--color-primary);
}

/* ============================================================
 * 14. 제출 버튼 섹션
 * ============================================================ */
.submit-section {
    text-align: center;
    background: var(--color-bg-white);
}

.test-button-wrapper {
    text-align: center;
    padding: var(--spacing-sm);
    background: linear-gradient(135deg, var(--alert-warning-bg) 0%, var(--alert-warning-border) 100%);
    border: 1px dashed var(--color-warning);
    border-radius: var(--radius-sm);
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-xs);
}

.submit-buttons {
    display: flex;
    gap: var(--spacing-sm);
    justify-content: center;
    flex-wrap: wrap;
}

/* ============================================================
 * 15. 알림 메시지
 * ============================================================ */
.alert {
    position: relative;
    padding: var(--spacing-sm) var(--spacing-md);
    margin-bottom: var(--spacing-sm);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-relaxed);
    box-shadow: var(--shadow-xs);
}

.alert i {
    margin-right: 6px;
}

.alert-success {
    color: var(--alert-success-text);
    background: linear-gradient(135deg, var(--alert-success-bg) 0%, var(--alert-success-border) 100%);
    border-color: var(--alert-success-border);
}

.alert-danger {
    color: var(--alert-danger-text);
    background: linear-gradient(135deg, var(--alert-danger-bg) 0%, var(--alert-danger-border) 100%);
    border-color: var(--alert-danger-border);
}

.alert-info {
    color: var(--alert-info-text);
    background: linear-gradient(135deg, var(--alert-info-bg) 0%, var(--alert-info-border) 100%);
    border-color: var(--alert-info-border);
}

.alert-warning {
    color: var(--alert-warning-text);
    background: linear-gradient(135deg, var(--alert-warning-bg) 0%, var(--alert-warning-border) 100%);
    border-color: var(--alert-warning-border);
}

/* ============================================================
 * 16. 이메일 자동완성
 * ============================================================ */
.email-autocomplete-wrapper {
    position: relative;
    flex: 1;
}

.email-autocomplete-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 1px solid var(--color-border);
    border-top: none;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
    max-height: 200px;
    overflow-y: auto;
    display: none;
    z-index: var(--z-dropdown);
    box-shadow: var(--shadow-lg);
}

.email-autocomplete-list.show {
    display: block;
}

.email-autocomplete-item {
    padding: 0.75rem 1rem;
    cursor: pointer;
    transition: var(--transition-fast);
    border-bottom: 1px solid var(--color-bg-light);
}

.email-autocomplete-item:last-child {
    border-bottom: none;
}

.email-autocomplete-item:hover {
    background: var(--color-bg-light);
}

.email-autocomplete-item.active {
    background: var(--color-bg-lighter);
}

.email-autocomplete-item .email-user {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-medium);
}

.email-autocomplete-item .email-domain {
    color: var(--color-primary);
    font-weight: var(--font-weight-semibold);
}

/* ============================================================
 * 17. 업종 분류 섹션
 * ============================================================ */
#biz_category_rows_container {
    margin-bottom: var(--spacing-md);
}

#biz_category_rows_container:empty {
    margin-bottom: 0;
}

.biz-category-row {
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
    transition: var(--transition);
    box-shadow: var(--shadow-xs);
}

.biz-category-row:last-child {
    margin-bottom: 0;
}

.biz-category-row:hover {
    background: var(--color-bg-white);
    border-color: var(--color-border);
    box-shadow: var(--shadow-sm);
}

.biz-category-selects {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: var(--spacing-sm);
    align-items: end;
    margin-bottom: var(--spacing-sm);
}

.biz-category-selects .form-group {
    margin-bottom: 0;
}

.biz-category-selects .form-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin-bottom: 0.4rem;
}

.biz-category-selects .form-control {
    padding: 0.6rem 0.9rem;
    font-size: var(--font-size-sm);
}

.tag-section {
    padding-top: var(--spacing-sm);
    border-top: 1px solid var(--color-border-light);
}

.tag-section .form-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin-bottom: 0.6rem;
    display: block;
}

.tag-checkbox-container {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
}

.tag-checkbox-container .form-check-label {
    display: inline-flex;
    align-items: center;
    background: white;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 0.4rem 0.8rem;
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: var(--transition-fast);
    user-select: none;
    box-shadow: var(--shadow-xs);
}

.tag-checkbox-container .form-check-label:hover {
    background: var(--color-bg-lighter);
    border-color: var(--color-border-dark);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}

.tag-checkbox-container .form-check-input {
    margin-right: 0.4rem;
    cursor: pointer;
}

.tag-checkbox-container .form-check-label:has(.form-check-input:checked) {
    background: var(--color-primary);
    color: white;
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.tag-checkbox-container .form-check-input:checked {
    accent-color: white;
}

.tag-checkbox-container .form-text {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}

.remove-category-row-btn {
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--font-size-sm);
    white-space: nowrap;
    min-width: 60px;
}

#add_category_row_btn {
    padding: 0.6rem 1.2rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
}

/* ============================================================
 * 18. 회원가입 안내 박스
 * ============================================================ */
.membership-guide {
    background: var(--color-bg-light) !important;
    border: 2px solid var(--color-primary) !important;
    padding: var(--spacing-md) !important;
    border-radius: var(--radius-sm) !important;
}

.membership-guide h5 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.membership-guide h5 i {
    color: var(--color-primary);
    margin-right: 8px;
}

.membership-option {
    background: white;
    border-radius: var(--radius-sm);
    padding: 15px;
    margin-bottom: 15px;
    border-left: 4px solid var(--color-border);
    box-shadow: var(--shadow-xs);
    transition: var(--transition);
}

.membership-option:hover {
    box-shadow: var(--shadow-sm);
    transform: translateX(4px);
}

.option-title {
    display: block;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    margin-bottom: 10px;
}

.option-title.free {
    color: var(--color-success);
}

.option-title.free i {
    margin-right: 6px;
}

.option-title.premium {
    color: var(--color-primary);
}

.option-title.premium i {
    margin-right: 6px;
    color: var(--color-warning);
}

.membership-option ul {
    margin: 0;
    padding-left: 20px;
}

.membership-option li {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: 5px;
}

.pricing-box {
    background: linear-gradient(135deg, var(--alert-warning-bg) 0%, var(--alert-warning-border) 100%);
    border-left: 4px solid var(--color-warning);
    border-radius: var(--radius-sm);
    padding: 15px;
    box-shadow: var(--shadow-xs);
}

.pricing-box strong {
    display: block;
    font-size: var(--font-size-base);
    color: var(--alert-warning-text);
    margin-bottom: 10px;
}

.pricing-box i {
    margin-right: 6px;
}

.pricing-box ul {
    margin: 0 0 10px 0;
    padding-left: 20px;
}

.pricing-box li {
    font-size: var(--font-size-sm);
    color: var(--alert-warning-text);
    line-height: var(--line-height-relaxed);
}

.account-info {
    font-size: var(--font-size-sm);
    color: var(--alert-warning-text);
    margin: 0;
}

/* ============================================================
 * 19. 플랫폼 안내 섹션
 * ============================================================ */
.platform-description-section .alert-info {
    margin-bottom: var(--spacing-lg);
}

.platform-description-text {
    white-space: pre-wrap;
    line-height: var(--line-height-relaxed);
    color: #31708f;
}

/* ============================================================
 * 20. 개인정보 동의 섹션
 * ============================================================ */
.privacy-consent-section {
    background: linear-gradient(135deg, var(--color-bg-light) 0%, #fafbfc 100%);
    border: 2px solid var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.privacy-consent-section .section-subtitle {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-top: var(--spacing-xs);
}

/* 마케팅 수신 동의 섹션 */
.section-card {
    background: var(--color-bg-white);
    border-radius: 0;
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    border: 1px solid var(--color-border-light);
    box-shadow: var(--shadow-xs);
    transition: var(--transition);
}

.section-card:hover {
    box-shadow: var(--shadow-sm);
}

.marketing-intro {
    background: linear-gradient(135deg, var(--alert-info-bg) 0%, var(--alert-info-border) 100%);
    border-left: 4px solid var(--color-primary);
    border-radius: var(--radius-sm);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-xs);
}

.marketing-intro p {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-xs) 0;
}

.marketing-intro small {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--font-size-sm);
}

.marketing-intro small i {
    color: var(--color-info);
}

/* 마케팅 동의 아이템 */
.consent-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm);
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-sm);
    margin-bottom: var(--spacing-xs);
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.consent-item:hover {
    background: var(--color-bg-white);
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.consent-item:last-of-type {
    margin-bottom: var(--spacing-md);
}

.consent-item .consent-checkbox {
    display: flex;
    align-items: center;
    flex: 1;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.consent-item .consent-checkbox:hover {
    background: transparent;
    border: none;
    box-shadow: none;
}

.consent-item .consent-checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 0 0.8rem 0 0;
    cursor: pointer;
    accent-color: var(--color-primary);
}

.consent-item .consent-checkbox label {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    margin: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

.consent-item .consent-checkbox label i {
    color: var(--color-primary);
    font-size: 1.1em;
}

.btn-detail-sm {
    padding: 0.4rem var(--spacing-sm);
    font-size: var(--font-size-sm);
    background: white;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
    font-weight: var(--font-weight-medium);
    white-space: nowrap;
}

.btn-detail-sm:hover {
    background: var(--color-primary);
    color: white;
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

/* 전체 동의 */
.consent-all-marketing {
    background: var(--color-primary);
    color: white;
    border-radius: var(--radius-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    display: flex;
    align-items: center;
    cursor: pointer;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-sm);
    margin-top: var(--spacing-sm);
}

.consent-all-marketing:hover {
    background: var(--color-primary-dark);
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

.consent-all-marketing input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-right: 0.8rem;
    cursor: pointer;
    accent-color: white;
}

.consent-all-marketing label {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: white;
    margin: 0;
    cursor: pointer;
    flex: 1;
}

/* 마케팅 상세 모달 */
.modal-overlay .modal-lg {
    max-width: 600px;
}

@media (max-width: 768px) {
    .consent-item {
        flex-direction: column;
        gap: var(--spacing-sm);
        align-items: flex-start;
    }

    .btn-detail-sm {
        align-self: flex-start;
        margin-top: var(--spacing-xs);
    }
}

/* 동의 그룹 */
.consent-group {
    background: white;
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-xs);
    transition: var(--transition);
}

.consent-group:hover {
    box-shadow: var(--shadow-sm);
}

.consent-required {
    border-left: 4px solid var(--color-danger);
}

.consent-optional {
    border-left: 4px solid var(--color-primary);
}

.consent-header {
    margin-bottom: var(--spacing-sm);
}

.consent-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-xs) 0;
    display: flex;
    align-items: center;
}

.consent-level {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0.2rem 0.6rem;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    margin-right: var(--spacing-xs);
    box-shadow: var(--shadow-xs);
}

.consent-level i {
    font-size: 0.9em;
}

.consent-required .consent-level {
    background: var(--color-danger);
    color: white;
}

.consent-optional .consent-level {
    background: var(--color-primary);
    color: white;
}

.consent-description {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

/* 동의 상세 내용 */
.consent-detail {
    background: var(--color-bg-light);
    border-radius: var(--radius-sm);
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    box-shadow: var(--shadow-inner);
}

.consent-detail h4 {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin: 0.8rem 0 0.4rem 0;
}

.consent-detail h4 i {
    color: var(--color-primary);
    margin-right: 6px;
    font-size: 0.9em;
}

.consent-detail h4:first-child {
    margin-top: 0;
}

.consent-detail p {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

/* 체크박스 */
.consent-checkbox {
    display: flex;
    align-items: center;
    padding: 0.8rem;
    background: white;
    border: 2px solid var(--color-border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.consent-checkbox:hover {
    border-color: var(--color-primary);
    background: var(--color-bg-light);
    box-shadow: var(--shadow-sm);
}

.consent-checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin: 0 0.8rem 0 0;
    cursor: pointer;
    accent-color: var(--color-primary);
}

.consent-checkbox label {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    margin: 0;
    cursor: pointer;
    flex: 1;
}

.consent-checkbox input[type="checkbox"]:checked+label,
.consent-checkbox:has(input[type="checkbox"]:checked) label {
    color: var(--color-primary);
}

/* 티어별 동의 */
.tier-consent-group {
    background: var(--color-bg-light);
    border-radius: var(--radius-md);
    padding: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    box-shadow: var(--shadow-xs);
}

.tier-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-sm);
}

.tier-title-wrapper {
    display: flex;
    align-items: center;
    flex: 1;
}

.tier-consent-checkbox {
    width: 18px;
    height: 18px;
    margin-right: 0.7rem;
    cursor: pointer;
    accent-color: var(--color-primary);
}

.tier-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0;
    cursor: pointer;
}

.entity-count {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-normal);
    color: var(--color-text-muted);
    margin-left: 0.3rem;
}

.btn-tier-detail {
    padding: 0.4rem var(--spacing-sm);
    font-size: var(--font-size-sm);
    background: white;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.btn-tier-detail:hover {
    background: var(--color-primary);
    color: white;
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

/* 티어 상세 */
.tier-detail {
    margin-top: var(--spacing-sm);
    padding-top: var(--spacing-sm);
    border-top: 1px solid var(--color-border);
}

.consent-info {
    background: white;
    border-radius: var(--radius-sm);
    padding: var(--spacing-sm);
    box-shadow: var(--shadow-xs);
}

.consent-info h4 {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin: var(--spacing-sm) 0 var(--spacing-xs) 0;
}

.consent-info h4 i {
    color: var(--color-primary);
    margin-right: 6px;
    font-size: 0.9em;
}

.consent-info h4:first-child {
    margin-top: 0;
}

.consent-info p {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

/* 사업자 목록 */
.entity-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.entity-item {
    padding: 0.8rem;
    margin-bottom: var(--spacing-xs);
    background: var(--color-bg-light);
    border-radius: var(--radius-sm);
    border-left: 3px solid var(--color-primary);
    box-shadow: var(--shadow-xs);
    transition: var(--transition-fast);
}

.entity-item:hover {
    background: var(--color-bg-lighter);
    transform: translateX(4px);
}

.entity-item:last-child {
    margin-bottom: 0;
}

.entity-item .entity-item-name {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.3rem;
}

.entity-item .entity-item-platforms {
    font-size: var(--font-size-xs);
    color: var(--color-primary);
    margin-bottom: 0.2rem;
}

.entity-item .entity-item-platforms i {
    margin-right: 4px;
}

.entity-item .entity-item-info {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.entity-item .entity-item-info i {
    margin-right: 4px;
}

/* 동의 안내 */
.consent-notice {
    background: linear-gradient(135deg, var(--alert-info-bg) 0%, var(--alert-info-border) 100%);
    border-left: 4px solid var(--color-info);
    border-radius: var(--radius-sm);
    padding: var(--spacing-sm);
    margin-top: var(--spacing-md);
    box-shadow: var(--shadow-xs);
}

.consent-notice p {
    font-size: var(--font-size-sm);
    color: var(--alert-info-text);
    margin: 0 0 var(--spacing-xs) 0;
    font-weight: var(--font-weight-semibold);
}

.consent-notice p i {
    margin-right: 6px;
    color: var(--color-info-dark);
}

.consent-notice ul {
    margin: 0;
    padding-left: var(--spacing-md);
}

.consent-notice li {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    margin-bottom: 0.3rem;
}

/* 전체 동의 */
.consent-all {
    background: var(--color-primary);
    color: white;
    border-radius: var(--radius-md);
    padding: var(--spacing-sm) var(--spacing-md);
    display: flex;
    align-items: center;
    cursor: pointer;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-sm);
}

.consent-all:hover {
    background: var(--color-primary-dark);
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

.consent-all input[type="checkbox"] {
    width: 22px;
    height: 22px;
    margin-right: 0.8rem;
    cursor: pointer;
    accent-color: white;
}

.consent-all label {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: white;
    margin: 0;
    cursor: pointer;
    flex: 1;
}

.consent-all label i {
    margin-right: 8px;
}

/* ============================================================
 * 21. 플랫폼 선택 페이지 (index.php)
 * ============================================================ */
body.platform-select-page {
    background: var(--gradient-primary);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-family);
    position: relative;
}

body.platform-select-page::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.15);
    pointer-events: none;
}

.welcome-container {
    max-width: 800px;
    padding: 20px;
    position: relative;
    z-index: 1;
}

.welcome-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: 60px 40px;
    box-shadow: var(--shadow-2xl);
    text-align: center;
}

.welcome-icon {
    font-size: 80px;
    margin-bottom: 20px;
    color: var(--color-primary);
    animation: bounce 2s ease-in-out infinite;
}

.welcome-icon i {
    display: block;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-20px);
    }
}

.welcome-title {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: 20px;
    letter-spacing: -0.01em;
}

.welcome-subtitle {
    font-size: var(--font-size-lg);
    color: var(--color-text-light);
    margin-bottom: 40px;
    font-weight: var(--font-weight-normal);
}

/* ============================================================
 * Legacy Platform Card Styles (deprecated - 하위 호환성)
 * 새로운 스타일은 "Platforms Page Styles" 섹션 참고
 * ============================================================ */

.platform-list {
    margin-top: 40px;
}

/* Legacy platform-card (apply.php 등에서 사용) */
.platform-list .platform-card {
    background: var(--color-bg-light);
    border-radius: var(--radius-lg);
    padding: 20px;
    margin-bottom: 15px;
    cursor: pointer;
    transition: var(--transition-slow);
    border: 2px solid transparent;
    text-align: left;
    box-shadow: var(--shadow-xs);
}

.platform-list .platform-card:hover {
    background: var(--color-bg-lighter);
    border-color: var(--color-primary);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.platform-name {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 5px;
}

.platform-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-light);
    margin: 0;
    line-height: var(--line-height-relaxed);
}

.platform-badge {
    display: inline-block;
    background: var(--color-primary);
    color: white;
    padding: 4px 12px;
    border-radius: var(--radius-round);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    margin-left: 10px;
    box-shadow: var(--shadow-xs);
}

.platform-badge.host {
    background: var(--color-success);
}

.platform-badge i {
    margin-right: 4px;
}

.footer-text {
    margin-top: 30px;
    font-size: var(--font-size-sm);
    color: #e0e0e0;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.footer-text i {
    color: var(--color-gold);
    margin-right: 6px;
}

/* ============================================================
 * 22. 반응형 디자인
 * ============================================================ */
@media (max-width: 768px) {

    /* Header */
    .membership-header {
        padding: var(--spacing-md) 0;
    }

    .membership-header-title {
        font-size: var(--font-size-lg);
    }

    /* Legacy */
    .page-title {
        font-size: var(--font-size-2xl);
    }

    /* Footer */
    .footer-info-grid {
        grid-template-columns: 1fr;
        gap: 0.4rem;
    }

    .footer-info-item {
        gap: 0.3rem;
        font-size: 0.7rem;
    }

    .footer-info-item .info-label {
        min-width: 90px;
    }

    .footer-company-name {
        font-size: var(--font-size-base);
    }

    .footer-links-title {
        font-size: var(--font-size-sm);
    }

    .membership-footer {
        padding: var(--spacing-lg) 0 var(--spacing-sm) 0;
    }

    /* Form Sections */
    .form-section {
        padding: var(--spacing-md);
        margin-bottom: var(--spacing-md);
    }

    .form-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-sm);
    }

    .form-grid.three-columns {
        grid-template-columns: 1fr;
    }

    .sns-inputs {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .submit-buttons {
        flex-direction: column;
        align-items: center;
    }

    .submit-buttons .btn {
        width: 100%;
        max-width: 300px;
    }

    .input-group {
        flex-direction: column;
    }

    .input-group .btn {
        width: 100%;
    }

    /* 프로필 공개설정 반응형 */
    .input-with-privacy {
        flex-direction: column;
        gap: 8px;
    }

    .privacy-toggle {
        width: 100%;
        justify-content: center;
    }

    .privacy-info-box {
        margin-top: var(--spacing-lg);
    }

    /* 업종 분류 */
    .biz-category-selects {
        grid-template-columns: 1fr;
    }

    .tag-checkbox-container .form-check-label {
        font-size: var(--font-size-xs);
        padding: 0.35rem 0.7rem;
    }

    /* 개인정보 동의 */
    .tier-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .btn-tier-detail {
        align-self: flex-start;
        margin-top: var(--spacing-xs);
    }

    .consent-checkbox {
        padding: 0.6rem;
    }

    .consent-checkbox input[type="checkbox"] {
        width: 18px;
        height: 18px;
    }

    .consent-checkbox label {
        font-size: var(--font-size-sm);
    }
}

@media (max-width: 480px) {
    .header-section {
        padding: var(--spacing-md) 0;
    }

    .page-title {
        font-size: var(--font-size-xl);
    }

    .form-section {
        padding: var(--spacing-sm);
        border-radius: 0;
    }

    .section-title {
        font-size: var(--font-size-lg);
    }
}

/* ============================================================
 * 23. 유틸리티 클래스
 * ============================================================ */

/* 간격 */
.mt-0 {
    margin-top: 0 !important;
}

.mt-1 {
    margin-top: var(--spacing-xs) !important;
}

.mt-2 {
    margin-top: var(--spacing-sm) !important;
}

.mt-3 {
    margin-top: var(--spacing-md) !important;
}

.mt-4 {
    margin-top: var(--spacing-lg) !important;
}

.mb-0 {
    margin-bottom: 0 !important;
}

.mb-1 {
    margin-bottom: var(--spacing-xs) !important;
}

.mb-2 {
    margin-bottom: var(--spacing-sm) !important;
}

.mb-3 {
    margin-bottom: var(--spacing-md) !important;
}

.mb-4 {
    margin-bottom: var(--spacing-lg) !important;
}

/* 텍스트 정렬 */
.text-left {
    text-align: left !important;
}

.text-center {
    text-align: center !important;
}

.text-right {
    text-align: right !important;
}

/* 텍스트 색상 */
.text-primary {
    color: var(--color-primary) !important;
}

.text-secondary {
    color: var(--color-text-secondary) !important;
}

.text-muted {
    color: var(--color-text-muted) !important;
}

.text-success {
    color: var(--color-success) !important;
}

.text-danger {
    color: var(--color-danger) !important;
}

.text-warning {
    color: var(--color-warning) !important;
}

/* 폰트 굵기 */
.fw-light {
    font-weight: var(--font-weight-light) !important;
}

.fw-normal {
    font-weight: var(--font-weight-normal) !important;
}

.fw-medium {
    font-weight: var(--font-weight-medium) !important;
}

.fw-semibold {
    font-weight: var(--font-weight-semibold) !important;
}

.fw-bold {
    font-weight: var(--font-weight-bold) !important;
}

/* 디스플레이 */
.d-none {
    display: none !important;
}

.d-block {
    display: block !important;
}

.d-flex {
    display: flex !important;
}

.d-inline {
    display: inline !important;
}

.d-inline-block {
    display: inline-block !important;
}

/* Flex 유틸리티 */
.flex-column {
    flex-direction: column !important;
}

.flex-row {
    flex-direction: row !important;
}

.align-items-center {
    align-items: center !important;
}

.justify-content-center {
    justify-content: center !important;
}

.justify-content-between {
    justify-content: space-between !important;
}

/* 그림자 */
.shadow-none {
    box-shadow: none !important;
}

.shadow-sm {
    box-shadow: var(--shadow-sm) !important;
}

.shadow {
    box-shadow: var(--shadow-md) !important;
}

.shadow-lg {
    box-shadow: var(--shadow-lg) !important;
}

/* 보더 라디우스 */
.rounded-0 {
    border-radius: 0 !important;
}

.rounded-sm {
    border-radius: var(--radius-sm) !important;
}

.rounded {
    border-radius: var(--radius-md) !important;
}

.rounded-lg {
    border-radius: var(--radius-lg) !important;
}

.rounded-circle {
    border-radius: var(--radius-circle) !important;
}

/* ============================================================
 * 24. 플랫폼오너 목록 페이지 (platform_owners.php)
 * ============================================================ */
body.platform-owners-page {
    background: #f0f2f5;
}

.owners-header {
    background: var(--gradient-primary);
    color: white;
    padding: var(--spacing-2xl) 0;
    margin-bottom: var(--spacing-xl);
    box-shadow: var(--shadow-lg);
    position: relative;
}

.owners-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.2);
    pointer-events: none;
}

.owners-header .container {
    position: relative;
    z-index: 1;
}

.owners-header h1 {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-sm);
    letter-spacing: -0.01em;
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3), 0 1px 3px rgba(0, 0, 0, 0.4);
}

.owners-header p {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-normal);
    color: #ffffff;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

.owners-container {
    padding-bottom: var(--spacing-2xl);
}

.search-section {
    background: white;
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
    box-shadow: var(--shadow-md);
    border: 2px solid var(--color-border-light);
    transition: var(--transition);
}

.search-section:hover {
    border-color: var(--color-primary-light);
    box-shadow: var(--shadow-lg);
}

.search-section .form-label {
    font-size: var(--font-size-sm);
    margin-bottom: 0.5rem;
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

.search-section .form-label i {
    color: var(--color-primary);
    margin-right: 0.3rem;
}

.search-section .form-control,
.search-section .form-select,
.search-section .btn {
    padding: 0.75rem 1rem;
    font-size: var(--font-size-base);
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-md);
    transition: var(--transition-fast);
    height: 50px;
    line-height: 1.5;
}

.search-section .btn {
    border-color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
}

.search-section .form-control:focus,
.search-section .form-select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.stats-badges {
    display: flex;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
    padding-bottom: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    border-bottom: 2px solid var(--color-border-light);
}

.stat-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.2rem;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    border: 2px solid var(--color-border-light);
    transition: var(--transition-fast);
    text-decoration: none !important;
    cursor: pointer;
    font-weight: var(--font-weight-medium);
    box-shadow: var(--shadow-xs);
}

.stat-badge i {
    font-size: 1.1em;
    color: var(--color-primary);
}

.stat-badge strong {
    color: var(--color-text-primary);
    font-size: 1.1em;
}

.stat-badge:hover {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
    border-color: var(--color-primary-light);
    color: var(--color-text-primary) !important;
    text-decoration: none;
    transform: translateY(-1px);
}

.stat-badge-gold {
    background: linear-gradient(135deg, #ff6b6b 0%, #ee5a6f 100%);
    color: #ffffff !important;
    border-color: #ff6b6b;
    box-shadow: 0 2px 8px rgba(255, 107, 107, 0.3);
}

.stat-badge-gold i {
    color: rgba(255, 255, 255, 0.95) !important;
}

.stat-badge-gold strong {
    color: white !important;
}

.stat-badge-gold:hover {
    background: linear-gradient(135deg, #ff5252 0%, #ff6b6b 100%);
    box-shadow: 0 4px 12px rgba(255, 107, 107, 0.5);
    transform: translateY(-2px) !important;
}

.stat-badge-primary {
    background: var(--gradient-primary-accent);
    color: white !important;
    border-color: var(--color-primary);
}

.stat-badge-primary i {
    color: rgba(255, 255, 255, 0.95) !important;
}

.stat-badge-primary strong {
    color: white !important;
}

.stat-badge-primary:hover {
    background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%);
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
    transform: translateY(-2px) !important;
}

.tier-section-header {
    margin-top: var(--spacing-2xl);
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-lg) var(--spacing-xl);
    padding-left: calc(var(--spacing-xl) + 6px);
    scroll-margin-top: var(--spacing-lg);
    background: white;
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    box-shadow: var(--shadow-md);
    border: 2px solid var(--color-border-light);
    position: relative;
    transition: var(--transition-fast);
}

.tier-section-header::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 6px;
    height: 100%;
    background: linear-gradient(180deg, var(--color-primary) 0%, var(--color-primary-light) 100%);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}

.tier-section-header:hover {
    box-shadow: var(--shadow-lg);
    border-color: var(--color-primary-light);
}

.tier-section-header h2 {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    letter-spacing: -0.02em;
}

.tier-section-header h2 i {
    color: var(--color-primary);
    font-size: 1.3em;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(102, 126, 234, 0.1);
    border-radius: var(--radius-sm);
}

.tier-section-header h2 .text-muted {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-normal);
    color: var(--color-text-muted);
    margin-left: auto;
}

.tier-section-header:first-of-type {
    margin-top: 0;
}

.entity-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-lg);
    box-shadow: var(--shadow-md);
    transition: var(--transition);
    border: 2px solid var(--color-border-light);
    position: relative;
    overflow: hidden;
}

.entity-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: linear-gradient(180deg, var(--color-primary) 0%, var(--color-primary-light) 100%);
}

.entity-card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-3px);
    border-color: var(--color-primary-light);
}

.entity-header {
    margin-bottom: var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.entity-name {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin: 0;
    line-height: var(--line-height-tight);
    letter-spacing: -0.02em;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.entity-name::before {
    content: '🏢';
    font-size: 1.3em;
}

.tier-badge {
    padding: 4px 12px;
    border-radius: var(--radius-round);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    box-shadow: var(--shadow-xs);
    transition: var(--transition-fast);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.tier-badge:hover {
    transform: scale(1.05);
}

.tier-major {
    background: linear-gradient(135deg, var(--color-gold) 0%, var(--color-gold-light) 100%);
    color: var(--alert-warning-text);
    font-weight: var(--font-weight-bold);
}

.tier-standard {
    background: var(--color-primary);
    color: white;
}

.entity-info {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.info-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border-light);
    transition: var(--transition-fast);
}

.info-item:hover {
    background: white;
    border-color: var(--color-primary-light);
    box-shadow: var(--shadow-xs);
}

.info-icon {
    font-size: 1.3rem;
    color: var(--color-primary);
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(102, 126, 234, 0.1);
    border-radius: var(--radius-sm);
}

.info-content {
    flex: 1;
    min-width: 0;
}

.info-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    margin-bottom: 0.2rem;
    font-weight: var(--font-weight-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.info-value {
    font-size: var(--font-size-base);
    color: var(--color-text-primary);
    word-break: break-word; /* 긴 URL/이메일 넘침 방지 — body keep-all 의도적 오버라이드 */
    font-weight: var(--font-weight-medium);
    line-height: var(--line-height-normal);
}

.privacy-officer-section {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
    border-radius: var(--radius-md);
    padding: var(--spacing-md) var(--spacing-lg);
    margin-top: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    border: 2px solid #2196f3;
    box-shadow: 0 2px 8px rgba(33, 150, 243, 0.15);
}

.privacy-officer-section h4 {
    font-size: var(--font-size-sm);
    color: #1565c0;
    margin: 0 0 var(--spacing-md) 0;
    font-weight: var(--font-weight-bold);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.privacy-officer-section h4 i {
    color: #2196f3;
    font-size: 1.2em;
}

.privacy-officer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-sm) var(--spacing-md);
    background: white;
    padding: var(--spacing-md);
    border-radius: var(--radius-sm);
}

.privacy-officer-item {
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    font-weight: var(--font-weight-normal);
    line-height: var(--line-height-relaxed);
}

.privacy-officer-item strong {
    color: #1565c0;
    font-weight: var(--font-weight-semibold);
    margin-right: 0.5rem;
    font-size: var(--font-size-xs);
    display: inline-block;
    min-width: 60px;
}

/* 플랫폼 아코디언 섹션 */
.platforms-accordion-section {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
    margin-top: var(--spacing-lg);
    border: 2px solid var(--color-border-light);
    box-shadow: var(--shadow-sm);
}

.platforms-accordion-section>h4 {
    font-size: var(--font-size-base);
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-md) 0;
    font-weight: var(--font-weight-bold);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.platforms-accordion-section>h4 i {
    color: var(--color-primary);
    font-size: 1.2em;
}

/* 아코디언 커스터마이징 */
.platforms-accordion-section .accordion {
    --bs-accordion-border-radius: var(--radius-sm);
    --bs-accordion-inner-border-radius: var(--radius-sm);
}

.platforms-accordion-section .accordion-item {
    border: 2px solid var(--color-border-light);
    margin-bottom: var(--spacing-sm);
    border-radius: var(--radius-md) !important;
    overflow: hidden;
    background: white;
    box-shadow: var(--shadow-xs);
    transition: var(--transition-fast);
}

.platforms-accordion-section .accordion-item:hover {
    border-color: var(--color-primary-light);
    box-shadow: var(--shadow-sm);
}

.platforms-accordion-section .accordion-item:last-child {
    margin-bottom: 0;
}

.platforms-accordion-section .accordion-button {
    padding: var(--spacing-md) var(--spacing-lg);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    background-color: white;
    border: none;
    box-shadow: none;
}

.platforms-accordion-section .accordion-button:not(.collapsed) {
    background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(102, 126, 234, 0.05) 100%);
    color: var(--color-primary);
    box-shadow: none;
}

.platforms-accordion-section .accordion-button:hover {
    background: linear-gradient(135deg, #f8f9fa 0%, #ffffff 100%);
}

.platforms-accordion-section .accordion-button:focus {
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.15);
    border-color: transparent;
}

.platforms-accordion-section .accordion-button::after {
    width: 1rem;
    height: 1rem;
    background-size: 1rem;
}

.platforms-accordion-section .accordion-body {
    padding: var(--spacing-md);
    background-color: var(--color-white);
}

/* 플랫폼 상세정보 */
.platform-details {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.platform-detail-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-xs) 0;
    border-bottom: 1px solid var(--color-border-lighter);
}

.platform-detail-item:last-child {
    border-bottom: none;
}

.platform-detail-item i {
    margin-top: 2px;
    font-size: var(--font-size-sm);
    width: 16px;
    flex-shrink: 0;
}

.platform-detail-item .detail-label {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    min-width: 100px;
    flex-shrink: 0;
}

.platform-detail-item .detail-value {
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    flex: 1;
    word-break: break-word; /* 긴 URL 넘침 방지 — body keep-all 의도적 오버라이드 */
}

.platform-detail-item a.detail-value {
    color: var(--color-primary);
    text-decoration: none;
}

.platform-detail-item a.detail-value:hover {
    text-decoration: underline;
}

.no-results {
    text-align: center;
    padding: var(--spacing-2xl) var(--spacing-md);
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.no-results-icon {
    font-size: 4rem;
    margin-bottom: var(--spacing-md);
    color: var(--color-text-muted);
    opacity: 0.5;
}

.no-results-text {
    font-size: var(--font-size-lg);
    color: var(--color-text-muted);
    margin: 0;
}

/* ============================================================
 * 25. 개인정보 동의 현황 페이지 (privacy_consent_list.php)
 * ============================================================ */
body.consent-list-page {
    background: #f0f2f5;
}

.member-info-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
    border: 2px solid var(--color-primary);
}

.member-info-card h3 {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.member-info-card h3 i {
    color: var(--color-primary);
    margin-right: 8px;
}

.member-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-md);
}

.consent-tier-card {
    background: white;
    border-radius: 0;
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border-light);
    transition: var(--transition);
}

.consent-tier-card:hover {
    box-shadow: var(--shadow-md);
}

.consent-tier-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 2px solid var(--color-border-light);
}

.consent-tier-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0;
}

.consent-date-badge {
    padding: 6px 12px;
    background: var(--color-bg-light);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.entity-grid {
    display: grid;
    gap: var(--spacing-sm);
}

.entity-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm);
    background: var(--color-bg-light);
    border-radius: 0;
    transition: var(--transition-fast);
    border: 1px solid var(--color-border-light);
}

.entity-row:hover {
    background: var(--color-bg-lighter);
    transform: translateX(4px);
}

.entity-row.opted-out {
    opacity: 0.7;
    background: var(--alert-warning-bg);
    border-color: var(--color-warning);
    border-radius: 0;
}

.entity-row-name {
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
}

.entity-row-platforms {
    font-size: var(--font-size-sm);
    color: var(--color-primary);
    margin-top: 4px;
}

.optout-badge {
    padding: 4px 8px;
    background: var(--color-warning);
    color: var(--alert-warning-text);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    box-shadow: var(--shadow-xs);
}

/* ============================================================
 * 26. Opt-out 페이지 (privacy_optout.php)
 * ============================================================ */
body.optout-page {
    background: var(--color-bg-body);
}

.optout-warning-card {
    background: linear-gradient(135deg, var(--alert-warning-bg) 0%, var(--alert-warning-border) 100%);
    border: 2px solid var(--color-warning);
    border-left: 6px solid var(--color-warning);
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
}

.optout-warning-card h3 {
    color: var(--alert-warning-text);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    margin-bottom: var(--spacing-sm);
}

.optout-warning-card h3 i {
    margin-right: 8px;
    color: var(--color-warning-dark);
}

.optout-entity-card {
    background: white;
    border-radius: var(--radius-lg);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border-light);
}

.optout-entity-card.selected {
    border-color: var(--color-danger);
    box-shadow: var(--shadow-md);
    background: #fff5f5;
}

.optout-checkbox-wrapper {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm);
    border-radius: var(--radius-sm);
    transition: var(--transition-fast);
    cursor: pointer;
}

.optout-checkbox-wrapper:hover {
    background: var(--color-bg-light);
}

.optout-checkbox-wrapper input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    accent-color: var(--color-danger);
    margin-top: 2px;
}

/* ============================================================
 * 27. 비밀번호 재설정 페이지 (password_reset.php) - 고도화
 * ============================================================ */
body.password-reset-page {
    background: var(--gradient-primary);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-md);
    position: relative;
    font-family: var(--font-family);
}

body.password-reset-page::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.15);
    pointer-events: none;
}

.password-reset-container {
    max-width: 550px;
    width: 100%;
    position: relative;
    z-index: 1;
}

.password-reset-card {
    background: white;
    border-radius: var(--radius-xl);
    padding: var(--spacing-xl) var(--spacing-lg);
    box-shadow: var(--shadow-2xl);
    animation: slideUp 0.4s ease-out;
}

.password-reset-header {
    text-align: center;
    margin-bottom: var(--spacing-lg);
}

.password-reset-icon {
    font-size: 4.5rem;
    color: var(--color-primary);
    margin-bottom: var(--spacing-sm);
    animation: pulse 2s ease-in-out infinite;
}

.password-reset-icon i {
    display: block;
}

@keyframes pulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.05);
        opacity: 0.9;
    }
}

.password-reset-title {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
    letter-spacing: -0.01em;
}

.password-reset-subtitle {
    font-size: var(--font-size-base);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
    margin-top: var(--spacing-xs);
}

.password-reset-form {
    margin-bottom: var(--spacing-md);
}

.password-reset-form .form-group {
    margin-bottom: var(--spacing-md);
}

.password-reset-form .form-label {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
    display: flex;
    align-items: center;
    gap: 8px;
}

.password-reset-form .form-label i {
    color: var(--color-primary);
    font-size: 1.1em;
}

.password-reset-form .form-control {
    padding: 0.875rem 1rem;
    font-size: var(--font-size-base);
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-md);
    transition: var(--transition);
}

.password-reset-form .form-control:focus {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-focus);
}

.password-reset-form .form-text {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: var(--spacing-xs);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

.password-reset-form .form-text i {
    color: var(--color-warning);
}

.password-reset-footer {
    text-align: center;
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-border-light);
    margin-top: var(--spacing-lg);
}

.password-reset-footer small {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: var(--font-size-sm);
}

.password-reset-footer i {
    color: var(--color-success);
}

.password-requirements {
    margin-top: var(--spacing-sm);
    padding: var(--spacing-md);
    background: linear-gradient(135deg, var(--alert-info-bg) 0%, var(--alert-info-border) 100%);
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-info);
    box-shadow: var(--shadow-xs);
}

.password-requirements p {
    margin-bottom: var(--spacing-xs);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    display: flex;
    align-items: center;
    gap: 8px;
}

.password-requirements p strong {
    color: var(--color-primary);
}

.password-requirements p i {
    color: var(--color-info-dark);
}

.password-requirements ul {
    margin: 0;
    padding-left: var(--spacing-md);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
}

.password-requirements li {
    margin-bottom: 6px;
    position: relative;
}

.password-requirements li::marker {
    color: var(--color-info-dark);
}

/* 알림 박스 스타일 개선 */
.password-reset-page .alert {
    border-radius: var(--radius-md);
    border-left: 4px solid;
    padding: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    box-shadow: var(--shadow-sm);
}

.password-reset-page .alert-info {
    border-left-color: var(--color-info);
}

.password-reset-page .alert-success {
    border-left-color: var(--color-success);
}

.password-reset-page .alert-danger {
    border-left-color: var(--color-danger);
}

.password-reset-page .alert h5 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: var(--spacing-sm);
}

.password-reset-page .alert h5 i {
    font-size: 1.2em;
}

.password-reset-page .alert p {
    line-height: var(--line-height-relaxed);
}

.password-reset-page .alert ol {
    margin: 0;
    padding-left: var(--spacing-lg);
}

.password-reset-page .alert li {
    margin-bottom: var(--spacing-xs);
    line-height: var(--line-height-relaxed);
}

/* 버튼 스타일 개선 */
.password-reset-page .btn {
    font-weight: var(--font-weight-semibold);
    padding: 0.875rem 1.5rem;
    border-radius: var(--radius-md);
    transition: var(--transition);
    box-shadow: var(--shadow-sm);
}

.password-reset-page .btn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.password-reset-page .btn-primary {
    background: var(--gradient-primary-accent);
    border: none;
}

.password-reset-page .btn-primary:hover {
    background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary-darker) 100%);
}

.password-reset-page .btn-outline-secondary {
    border: 2px solid var(--color-border);
    color: var(--color-text-secondary);
}

.password-reset-page .btn-outline-secondary:hover {
    background: var(--color-bg-light);
    border-color: var(--color-border-dark);
}

/* 반응형 개선 */
@media (max-width: 768px) {
    .password-reset-card {
        padding: var(--spacing-lg) var(--spacing-md);
        border-radius: var(--radius-lg);
    }

    .password-reset-title {
        font-size: var(--font-size-xl);
    }

    .password-reset-subtitle {
        font-size: var(--font-size-sm);
    }

    .password-reset-icon {
        font-size: 3.5rem;
    }

    .password-requirements {
        padding: var(--spacing-sm);
    }

    .password-reset-page .alert {
        padding: var(--spacing-sm);
    }
}

/* ============================================================
 * 28. 반응형 - XL 데스크톱 (Platform Owners 최적화)
 * ============================================================ */
@media (min-width: 1200px) {

    /* Platform Owners 페이지 전용 - 컨테이너 너비 확장 */
    .platform-owners-page .main-content .container {
        max-width: 1400px;
    }

    /* Entity 정보 그리드 - 3열로 확장 */
    .entity-info {
        grid-template-columns: repeat(3, 1fr);
    }

    /* 개인정보보호책임자 섹션 - 3열 그리드 */
    .privacy-officer-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* 플랫폼 상세 정보 - 2열 그리드 */
    .platform-details {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-md);
    }
}

/* XXL 데스크톱 (1400px 이상) - 추가 확장 */
@media (min-width: 1400px) {
    .platform-owners-page .main-content .container {
        max-width: 1600px;
    }
}

/* ============================================================
 * 29. 반응형 - 태블릿/모바일 (추가 페이지)
 * ============================================================ */
@media (max-width: 768px) {
    .owners-header h1 {
        font-size: var(--font-size-2xl);
    }

    .owners-header p {
        font-size: var(--font-size-base);
    }

    .stats-badges {
        flex-direction: column;
        gap: var(--spacing-xs);
    }

    .stat-badge {
        width: 100%;
        justify-content: flex-start;
        gap: var(--spacing-sm);
    }

    .stat-badge i {
        margin-right: 0;
    }

    .stat-badge strong {
        margin-right: var(--spacing-xs);
    }

    .entity-header {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .entity-info,
    .member-info-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-xs);
    }

    .entity-name {
        font-size: var(--font-size-base);
    }

    .tier-badge {
        font-size: 0.7rem;
        padding: 3px 8px;
    }

    .privacy-officer-grid {
        grid-template-columns: 1fr;
    }

    .tier-section-header {
        padding: var(--spacing-sm) var(--spacing-md);
        padding-left: calc(var(--spacing-md) + 4px);
    }

    .tier-section-header h2 {
        font-size: var(--font-size-xl);
    }

    .tier-section-header h2 .text-muted {
        font-size: var(--font-size-sm);
    }

    .password-reset-card {
        padding: var(--spacing-lg) var(--spacing-md);
    }

    .password-reset-title {
        font-size: var(--font-size-xl);
    }

    /* 플랫폼 아코디언 모바일 */
    .platform-detail-item {
        flex-direction: column;
        gap: var(--spacing-xs);
    }

    .platform-detail-item .detail-label {
        min-width: auto;
    }

    .platforms-accordion-section .accordion-button {
        font-size: var(--font-size-xs);
        padding: var(--spacing-xs) var(--spacing-sm);
    }

    .platforms-accordion-section .accordion-body {
        padding: var(--spacing-sm);
    }
}


/* ============================================
   로그인 시스템 스타일 (v1.0.251106)
   ============================================ */

/* 로그인 모달 오버레이 */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    animation: fadeIn 0.3s ease;
}

/* 모달 콘텐츠 */
.modal-content {
    background: white;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-xl);
    max-width: 450px;
    width: 90%;
    max-height: 90vh;
    overflow-y: auto;
    animation: slideUp 0.3s ease;
}

/* 모달 헤더 */
.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem;
    border-bottom: 1px solid var(--color-gray-200);
}

.modal-header h3 {
    margin: 0;
    font-size: 1.25rem;
    color: var(--color-gray-900);
}

.modal-header h3 i {
    margin-right: 0.5rem;
    color: var(--color-primary);
}

/* 모달 닫기 버튼 */
.modal-close {
    background: none;
    border: none;
    font-size: 2rem;
    color: var(--color-gray-500);
    cursor: pointer;
    line-height: 1;
    padding: 0;
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.2s;
}

.modal-close:hover {
    background: var(--color-gray-100);
    color: var(--color-gray-700);
}

/* 모달 바디 */
.modal-body {
    padding: 1.5rem;
}

/* 약관 모달 본문 — 폰트 크기 조절 */
.modal-lg .modal-body {
    font-size: var(--pk-font-sm);
    line-height: var(--line-height-relaxed);
}

.modal-lg .modal-body h3 { font-size: var(--pk-font-lg); margin: 1.2em 0 0.6em; }
.modal-lg .modal-body h4 { font-size: var(--pk-font-md); margin: 1em 0 0.5em; }
.modal-lg .modal-body h5,
.modal-lg .modal-body h6 { font-size: var(--pk-font-sm); margin: 0.8em 0 0.4em; }
.modal-lg .modal-body p { margin-bottom: 0.6em; }
.modal-lg .modal-body ul,
.modal-lg .modal-body ol { margin-bottom: 0.6em; padding-left: 1.5em; }
.modal-lg .modal-body li { margin-bottom: 0.25em; }
.modal-lg .modal-body table { font-size: var(--pk-font-xs); }

.modal-body .form-group {
    margin-bottom: 1.25rem;
}

.modal-body .form-group:last-child {
    margin-bottom: 0;
}

/* 모달 푸터 */
.modal-footer {
    padding: 1rem 1.5rem;
    border-top: 1px solid var(--color-gray-200);
}

.modal-footer .btn-block {
    width: 100%;
    margin-bottom: 1rem;
}

.modal-footer .footer-links {
    text-align: center;
    font-size: 0.9rem;
}

.modal-footer .footer-links a {
    color: var(--color-primary);
    text-decoration: none;
}

.modal-footer .footer-links a:hover {
    text-decoration: underline;
}

/* 회원 정보 박스 */
.member-info-box {
    background: linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-secondary-light) 100%);
    border: 2px solid var(--color-primary);
    border-radius: var(--border-radius);
    padding: 2rem;
    margin: 2rem 0;
    text-align: center;
    box-shadow: var(--shadow-md);
}

.member-info-box p {
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
    color: var(--color-gray-900);
}

.member-info-box .btn-group {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.member-info-box .btn {
    flex: 1;
    min-width: 150px;
}

/* 인증 버튼 영역 */
.auth-buttons {
    margin: 2rem 0;
    text-align: center;
}

.auth-buttons .btn {
    min-width: 150px;
}

/* 애니메이션 */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        transform: translateY(50px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* 비밀번호 강도 표시 */
.password-strength {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    min-height: 1.5rem;
}

.password-strength .text-danger {
    color: var(--color-danger);
}

.password-strength .text-warning {
    color: var(--color-warning);
}

.password-strength .text-success {
    color: var(--color-success);
}

/* 초기 비밀번호 설정 페이지 */
.password-reset-container {
    max-width: 600px;
    margin: 3rem auto;
}

.password-reset-container .page-header {
    text-align: center;
    margin-bottom: 2rem;
}

.password-reset-container .subtitle {
    color: var(--color-gray-600);
    font-size: 1rem;
    margin-top: 0.5rem;
}

/* 반응형: 모달 */
@media (max-width: 576px) {
    .modal-content {
        width: 95%;
        max-width: none;
    }

    .modal-header,
    .modal-body,
    .modal-footer {
        padding: 1rem;
    }

    .member-info-box .btn-group {
        flex-direction: column;
    }

    .member-info-box .btn {
        width: 100%;
    }
}

.consent-tier-card:hover {
    box-shadow: var(--shadow-md);
}

.consent-overview-section {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
    border: 2px solid var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.overview-main {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    background: linear-gradient(135deg, var(--color-primary-lightest) 0%, #ffffff 70%);
    border-radius: 0;
    padding: var(--spacing-md);
    border: 1px solid var(--color-border-light);
    box-shadow: var(--shadow-sm);
}

.overview-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-circle);
    background: var(--color-primary);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    box-shadow: var(--shadow-md);
}

.overview-text {
    flex: 1;
}

.overview-title {
    font-size: var(--font-size-xl);
    margin-bottom: 0.5rem;
}

.overview-desc {
    margin: 0;
    color: var(--color-text-muted);
}

.overview-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--color-primary);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: var(--radius-round);
    font-size: var(--font-size-sm);
    box-shadow: var(--shadow-sm);
}

.overview-pill .pill-label {
    font-weight: var(--font-weight-semibold);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.overview-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.meta-item {
    flex: 1;
    min-width: 180px;
    background: var(--color-bg-light);
    border-radius: 0;
    padding: var(--spacing-sm);
    border: 1px solid var(--color-border-light);
}

.meta-label {
    display: block;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
    font-weight: var(--font-weight-semibold);
}

.meta-value {
    font-size: var(--font-size-md);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

.consent-summary-section {
    background: linear-gradient(135deg, var(--alert-info-bg) 0%, #ffffff 80%);
    border-radius: 0;
}

.consent-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--spacing-sm);
}

.summary-card {
    background: white;
    border-radius: 0;
    padding: var(--spacing-md);
    border: 1px solid var(--color-border-light);
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-xs);
}

.summary-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.2rem;
    box-shadow: var(--shadow-sm);
}

.summary-icon.primary {
    background: var(--color-primary);
}

.summary-icon.success {
    background: var(--color-success);
}

.summary-icon.danger {
    background: var(--color-danger);
}

.summary-icon.info {
    background: #17a2b8;
}

.summary-icon.warning {
    background: #ffc107;
}

.summary-value {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
}

.summary-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

.consent-tier-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
    padding: var(--spacing-sm);
    background: var(--color-bg-light);
    border-radius: 0;
}

.consent-tier-meta .meta-text {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text-secondary);
    font-size: var(--font-size-sm);
}

.consent-empty-section {
    text-align: center;
    background: white;
    border-radius: 0;
    padding: var(--spacing-xl) var(--spacing-md);
    border: 1px dashed var(--color-border);
    box-shadow: var(--shadow-sm);
}

.empty-icon {
    font-size: 3rem;
    color: var(--color-text-muted);
    opacity: 0.6;
    margin-bottom: var(--spacing-sm);
}

.empty-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    margin-bottom: 0.5rem;
}

.empty-desc {
    color: var(--color-text-muted);
    margin: 0;
}

.consent-notice-section {
    background: #ffffff;
    border: 1px solid var(--color-border-light);
    border-left: 4px solid var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.consent-notice-list {
    margin: 0;
    padding-left: 0;
    color: var(--color-text-secondary);
}

.consent-notice-list li {
    margin-bottom: 0.4rem;
    line-height: var(--line-height-relaxed);
    position: relative;
    padding-left: 1rem;
    list-style: none;
}

.consent-notice-list li::before {
    content: '';
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: var(--radius-circle);
    background: var(--color-primary);
    left: 0;
    top: 0.6rem;
}

.consent-notice-list li strong {
    color: var(--color-primary);
}

.consent-actions-section {
    background: white;
    display: flex;
    justify-content: center;
    border-radius: 0;
}

.consent-actions-section .btn-lg {
    min-width: 200px;
}

@media (max-width: 768px) {
    .overview-main {
        flex-direction: column;
        align-items: flex-start;
    }

    .consent-tier-meta {
        flex-direction: column;
        align-items: flex-start;
        border-radius: 0;
    }

    .consent-actions-section .btn-lg {
        width: 100%;
    }
}

.badge.bg-success {
    background-color: #4cc4a7 !important;
    color: #ffffff;
    font-size: var(--font-size-sm);
    padding: 4px 8px;
    border-radius: var(--radius-round);
    font-weight: var(--font-weight-semibold);
}

.badge.bg-success i {
    font-size: 0.9em;
}

.optout-badge {
    font-size: var(--font-size-sm);
    padding: 4px 8px;
    border-radius: var(--radius-round);
}

/* ============================================
   마이페이지 스타일 (v2.0 - 재구성)
   ============================================ */

/* 프로필 섹션 */
.mypage-profile-section {
    position: sticky;
    top: var(--spacing-lg);
}

.mypage-profile-box {
    text-align: center;
    padding: var(--spacing-lg) var(--spacing-md);
    background: linear-gradient(135deg, var(--color-primary-lightest) 0%, white 100%);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-md);
}

.profile-avatar-wrapper {
    margin-bottom: var(--spacing-lg);
}

.profile-avatar {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-md);
    object-fit: cover;
    border: 3px solid white;
    box-shadow: var(--shadow-md);
}

.profile-avatar-placeholder {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 3rem;
    box-shadow: var(--shadow-md);
}

.profile-name {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
    letter-spacing: -0.01em;
}

.profile-email {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-sm);
}

.profile-company {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0.4rem var(--spacing-sm);
    background: white;
    border-radius: var(--radius-round);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xs);
    box-shadow: var(--shadow-xs);
}

.profile-company i {
    color: var(--color-primary);
}

.profile-join-date {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

/* 빠른 액션 버튼 */
.mypage-quick-actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-md);
}

.quick-action-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: var(--spacing-md) var(--spacing-sm);
    background: white;
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    color: var(--color-text-primary);
    text-decoration: none !important;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.quick-action-btn:hover,
.quick-action-btn:focus,
.quick-action-btn:active {
    background: var(--color-primary-lightest);
    border-color: var(--color-primary);
    color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
    text-decoration: none !important;
}

.quick-action-btn i {
    font-size: 1.5rem;
    color: var(--color-primary);
}

.quick-action-btn.logout:hover,
.quick-action-btn.logout:focus,
.quick-action-btn.logout:active {
    background: var(--alert-danger-bg);
    border-color: var(--color-danger);
    color: var(--color-danger);
    text-decoration: none !important;
}

.quick-action-btn.logout i {
    color: var(--color-danger);
}

.quick-action-btn span {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
}

/* 위험 영역 */
.mypage-danger-zone {
    padding: var(--spacing-md);
    background: var(--alert-danger-bg);
    border: 1px solid var(--alert-danger-border);
    border-radius: var(--radius-md);
    text-align: center;
}

.danger-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-danger);
    text-decoration: none !important;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    transition: var(--transition-fast);
}

.danger-link:hover,
.danger-link:focus,
.danger-link:active {
    color: var(--color-danger-dark);
    text-decoration: none !important;
}

/* 플랫폼 & 개인정보 현황 */
.mypage-platform-overview .section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.section-action {
    font-size: var(--font-size-sm);
    color: var(--color-primary);
    text-decoration: none !important;
    font-weight: var(--font-weight-semibold);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: var(--transition-fast);
}

.section-action:hover,
.section-action:focus,
.section-action:active {
    color: var(--color-primary-dark);
    gap: 8px;
    text-decoration: none !important;
}

/* 통계 그리드 */
.overview-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.overview-stat-item {
    background: white;
    border-radius: var(--radius-md);
    padding: var(--spacing-lg) var(--spacing-md);
    text-align: center;
    border: 2px solid var(--color-border-light);
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.overview-stat-item:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}

.overview-stat-item.primary {
    border-color: var(--color-primary-light);
    background: linear-gradient(135deg, white 0%, var(--color-primary-lightest) 100%);
}

.overview-stat-item.success {
    border-color: var(--color-success-light);
    background: linear-gradient(135deg, white 0%, var(--color-success-lightest) 100%);
}

.overview-stat-item.info {
    border-color: var(--color-info-light);
    background: linear-gradient(135deg, white 0%, var(--color-info-lightest) 100%);
}

.overview-stat-item .stat-value {
    font-size: 2.5rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
    margin-bottom: var(--spacing-xs);
}

.overview-stat-item.primary .stat-value {
    color: var(--color-primary);
}

.overview-stat-item.success .stat-value {
    color: var(--color-success);
}

.overview-stat-item.info .stat-value {
    color: var(--color-info);
}

.overview-stat-item .stat-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
    margin-bottom: var(--spacing-sm);
}

.overview-stat-item .stat-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--font-size-xs);
    padding: 0.4rem var(--spacing-sm);
    background: white;
    border-radius: var(--radius-round);
    color: var(--color-text-secondary);
    text-decoration: none !important;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.overview-stat-item.primary .stat-link:hover,
.overview-stat-item.primary .stat-link:focus,
.overview-stat-item.primary .stat-link:active {
    background: var(--color-primary);
    color: white;
    text-decoration: none !important;
}

.overview-stat-item.success .stat-link:hover,
.overview-stat-item.success .stat-link:focus,
.overview-stat-item.success .stat-link:active {
    background: var(--color-success);
    color: white;
    text-decoration: none !important;
}

.overview-stat-item.info .stat-link:hover,
.overview-stat-item.info .stat-link:focus,
.overview-stat-item.info .stat-link:active {
    background: var(--color-info);
    color: white;
    text-decoration: none !important;
}

/* 마케팅 수신 상태 박스 */
.marketing-status-box {
    background: var(--color-bg-light);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
    margin-bottom: var(--spacing-lg);
}

.marketing-status-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-sm);
    border-bottom: 2px solid var(--color-border-light);
}

.marketing-status-header h3 {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.marketing-status-header h3 i {
    color: var(--color-warning);
}

.edit-link {
    font-size: var(--font-size-sm);
    color: var(--color-primary);
    text-decoration: none !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: var(--font-weight-medium);
    transition: var(--transition-fast);
}

.edit-link:hover,
.edit-link:focus,
.edit-link:active {
    color: var(--color-primary-dark);
    text-decoration: none !important;
}

.marketing-status-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--spacing-sm);
}

.marketing-status-item {
    background: white;
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    text-align: center;
    transition: var(--transition-fast);
}

.marketing-status-item.active {
    border-color: var(--color-success);
    background: var(--color-success-lightest);
}

.marketing-status-item i {
    font-size: 1.8rem;
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-xs);
}

.marketing-status-item.active i {
    color: var(--color-success);
}

.marketing-status-item span {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-xs);
    font-weight: var(--font-weight-medium);
}

.marketing-status-item .status-badge {
    font-size: var(--font-size-xs);
    padding: 0.25rem 0.5rem;
    border-radius: var(--radius-round);
    background: var(--color-bg-lighter);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-semibold);
}

.marketing-status-item.active .status-badge {
    background: var(--color-success);
    color: white;
}

/* 플랫폼오너 목록 바로가기 */
.platform-owners-link-box {
    margin-top: var(--spacing-lg);
}

.platform-owners-link {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, white 0%, var(--color-info-lightest) 100%);
    border: 2px solid var(--color-info-light);
    border-radius: var(--radius-md);
    text-decoration: none !important;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.platform-owners-link:hover,
.platform-owners-link:focus,
.platform-owners-link:active {
    border-color: var(--color-info);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
    text-decoration: none !important;
}

.owners-link-icon {
    width: 50px;
    height: 50px;
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, var(--color-info) 0%, var(--color-info-dark) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
    flex-shrink: 0;
    box-shadow: var(--shadow-sm);
}

.owners-link-content {
    flex: 1;
    min-width: 0;
}

.owners-link-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.3rem;
}

.owners-link-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-tight);
}

.owners-link-arrow {
    color: var(--color-info);
    font-size: 1.2rem;
    transition: var(--transition-fast);
}

.platform-owners-link:hover .owners-link-arrow {
    transform: translateX(4px);
    color: var(--color-info-dark);
}

/* 빠른 링크 섹션 */
.mypage-quick-links {
    margin-bottom: 0;
}

.quick-links-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-md);
}

.quick-link-card {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: white;
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-md);
    text-decoration: none !important;
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.quick-link-card:hover,
.quick-link-card:focus,
.quick-link-card:active {
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
    text-decoration: none !important;
}

.quick-link-card.primary {
    border-color: var(--color-primary-light);
    background: linear-gradient(135deg, white 0%, var(--color-primary-lightest) 100%);
}

.quick-link-card.success {
    border-color: var(--color-success-light);
    background: linear-gradient(135deg, white 0%, var(--color-success-lightest) 100%);
}

.quick-link-card.primary:hover,
.quick-link-card.primary:focus,
.quick-link-card.primary:active {
    border-color: var(--color-primary);
    text-decoration: none !important;
}

.quick-link-card.success:hover,
.quick-link-card.success:focus,
.quick-link-card.success:active {
    border-color: var(--color-success);
    text-decoration: none !important;
}

.quick-link-icon {
    width: 50px;
    height: 50px;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    flex-shrink: 0;
    box-shadow: var(--shadow-sm);
}

.quick-link-card.primary .quick-link-icon {
    background: var(--gradient-primary-accent);
    color: white;
}

.quick-link-card.success .quick-link-icon {
    background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-dark) 100%);
    color: white;
}

.quick-link-content {
    flex: 1;
    min-width: 0;
}

.quick-link-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.3rem;
}

.quick-link-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-tight);
}

/* 프로필 수정 페이지 인포 카드 */
/* 프로필 편집 — 본인 확인 정보 (잠금 필드를 폼 밖으로 분리) */
.pe-identity {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-md);
}
.pe-identity-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--color-bg-lighter);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--color-text-muted);
    font-size: var(--pk-font-sm);
}
.pe-identity-fields {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs) var(--spacing-lg);
    flex: 1;
    min-width: 0;
}
.pe-identity-item {
    display: flex;
    align-items: center;
    gap: 6px;
}
.pe-identity-label {
    font-size: var(--pk-font-xs);
    color: var(--color-text-muted);
    white-space: nowrap;
}
.pe-identity-value {
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}
.pe-identity-lock {
    font-size: var(--pk-font-2xs);
    color: var(--color-text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    flex-shrink: 0;
}
.pe-identity-lock i { font-size: 0.8em; }

/* SNS 컴팩트 리스트 */
.pe-sns-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}
.pe-sns-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}
.pe-sns-icon {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--pk-font-md);
    flex-shrink: 0;
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    color: var(--color-text-muted);
    transition: var(--transition-fast);
}
.pe-sns-item:focus-within .pe-sns-icon {
    background: var(--color-primary-lightest);
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.pe-sns-item .form-control {
    flex: 1;
    min-width: 0;
}

/* 프로필 편집 — 폼 액션 (비밀번호 변경과 동일 구조) */
.pe-actions {
    display: flex;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-md);
}
.pe-actions .btn-primary {
    flex: 1;
}

/* 프로필 편집 — 이메일 힌트 */
.pe-email-hint {
    font-size: var(--pk-font-xs);
    color: var(--color-text-muted);
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.pe-email-hint i { font-size: 0.8em; }

/* 프로필 편집 반응형 */
@media (max-width: 576px) {
    .pe-identity {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-xs);
    }
    .pe-identity-icon { display: none; }
    .pe-identity-lock { margin-left: 0; }
    .pe-identity-fields { gap: var(--spacing-xs); }
    .pe-sns-item .pe-sns-icon { width: 32px; height: 32px; font-size: var(--pk-font-sm); }
    .pe-actions {
        flex-direction: column;
    }
    .pe-actions .btn { width: 100%; }
}

/* 폼 필드 공통 — 레이블 아이콘 */
.form-label i {
    margin-right: 6px;
    color: var(--color-primary);
}

/* 비밀번호 변경 페이지 — 집중형 보안 액션 UI */
.pwc-back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-text-muted);
    font-size: var(--pk-font-sm);
    text-decoration: none;
    margin-bottom: var(--spacing-md);
    transition: var(--transition-fast);
}
.pwc-back:hover { color: var(--color-primary); }
.pwc-back i { font-size: 0.75em; }

/* 마이페이지 유틸리티 클래스 */
.mp-alert-mb { margin-bottom: var(--spacing-md); }
.mp-alert-mb:last-child { margin-bottom: var(--spacing-md); }
.mp-icon-success { color: var(--color-success); }
.mp-section-meta { font-size: var(--pk-font-xs); color: var(--color-text-muted); }
.mp-section-body--flush { padding: 0; }
.mp-section-body--flush .table { margin: 0; }
.mp-text-xs { font-size: var(--pk-font-xs); color: var(--color-text-muted); }
.mp-text-link-bold { font-weight: var(--font-weight-semibold); }
.mp-nowrap { white-space: nowrap; }
.mp-empty { text-align: center; padding: var(--spacing-xl) var(--spacing-md); }
.mp-empty-icon { font-size: 2.5rem; color: var(--color-text-muted); margin-bottom: var(--spacing-sm); }
.mp-empty-title { font-size: var(--pk-font-md); font-weight: var(--font-weight-semibold); color: var(--color-text-dark); margin-bottom: var(--spacing-xs); }
.mp-empty-desc { font-size: var(--pk-font-sm); color: var(--color-text-muted); margin-bottom: var(--spacing-md); }
.pwc-tip--mb-sm { margin-bottom: var(--spacing-sm); }
.pwc-tip--mt-md { margin-top: var(--spacing-md); }
.pwc-step--mt { margin-top: var(--spacing-lg); }
.pe-actions--mb { margin-bottom: var(--spacing-md); }
.search-inline { display: flex; gap: var(--spacing-xs); }
.plat-info--mb { margin-bottom: var(--spacing-sm); }

.pwc-tip {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--color-primary-lightest);
    border-left: 3px solid var(--color-primary);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    margin-bottom: var(--spacing-md);
    font-size: var(--pk-font-sm);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
}
.pwc-tip i {
    color: var(--color-primary);
    font-size: 1.1em;
    flex-shrink: 0;
}

/* 플랫폼 목록 — 배지, 정보 그리드, 태그 */
.plat-primary {
    border-color: var(--color-primary-light);
    box-shadow: 0 0 0 1px rgba(102, 126, 234, 0.1);
}
.plat-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: var(--pk-font-2xs);
    padding: 2px 8px;
    border-radius: var(--radius-pill);
    font-weight: var(--font-weight-semibold);
    vertical-align: middle;
}
.plat-badge.host {
    background: var(--color-gold-light);
    color: #92400e;
}
.plat-badge.primary {
    background: var(--color-primary-lightest);
    color: var(--color-primary-dark);
}
.plat-badge i { font-size: 0.75em; }

.plat-info {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs) var(--spacing-lg);
}
.plat-info-item {
    display: flex;
    align-items: center;
    gap: 6px;
}
.plat-info-label {
    font-size: var(--pk-font-xs);
    color: var(--color-text-muted);
}
.plat-info-value {
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
}
.plat-status {
    font-size: var(--pk-font-xs);
    font-weight: var(--font-weight-semibold);
    padding: 2px 8px;
    border-radius: var(--radius-pill);
}
.plat-status.success { background: var(--badge-success-bg); color: var(--badge-success-text); }
.plat-status.info { background: var(--alert-info-bg); color: var(--color-info-dark); }
.plat-status.warning { background: #fff3cd; color: #856404; }
.plat-status.secondary { background: var(--color-bg-light); color: var(--color-text-muted); }

.plat-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: var(--spacing-xs);
}
.plat-tag {
    font-size: var(--pk-font-xs);
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    background: var(--color-bg-light);
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border-light);
}

@media (max-width: 576px) {
    .plat-info { flex-direction: column; gap: var(--spacing-xs); }
}

/* 마케팅 수신 — 토글 행 */
.mkt-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--color-border-lighter);
}
.mkt-row:last-child { border-bottom: none; }
.mkt-row-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    flex: 1;
    min-width: 0;
}
.mkt-row-icon {
    font-size: 1.2rem;
    color: var(--color-primary);
    width: 24px;
    text-align: center;
    flex-shrink: 0;
}
.mkt-row-label {
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}
.mkt-row-desc {
    font-size: var(--pk-font-xs);
    color: var(--color-text-muted);
}

/* 접근 감사 대시보드 */
.pad-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--spacing-sm); margin-bottom: var(--spacing-md); }
.pad-stat {
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    padding: var(--spacing-md) var(--spacing-sm);
    text-align: center;
}
.pad-stat-value { font-family: var(--pk-font-display); font-size: 1.6rem; font-weight: var(--font-weight-bold); color: var(--color-text-dark); }
.pad-stat-label { font-size: var(--pk-font-xs); color: var(--color-text-muted); margin-top: 2px; }
.pad-type-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-xs); text-align: center; }
.pad-type-value { font-size: 1.3rem; font-weight: var(--font-weight-bold); }
.pad-type-value.view { color: var(--color-info); }
.pad-type-value.edit { color: var(--color-warning); }
.pad-type-value.delete { color: var(--color-danger); }
.pad-type-value.export { color: var(--color-secondary); }
.pad-type-label { font-size: var(--pk-font-xs); color: var(--color-text-muted); }
.pad-filter { display: flex; gap: var(--spacing-xs); margin-bottom: var(--spacing-md); flex-wrap: wrap; }
.pad-filter .btn { font-size: var(--pk-font-xs); padding: 4px 12px; }
.access-type-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: var(--radius-pill);
    font-size: var(--pk-font-2xs);
    font-weight: var(--font-weight-semibold);
}
.badge-view { background: var(--alert-info-bg); color: var(--color-info-dark); }
.badge-edit { background: #fff3e0; color: #f57c00; }
.badge-delete { background: var(--alert-danger-bg); color: var(--alert-danger-text); }
.badge-export { background: #f3e5f5; color: #7b1fa2; }
.pad-chart { height: 250px; margin: var(--spacing-sm) 0; }
@media (max-width: 576px) {
    .pad-stats { grid-template-columns: repeat(2, 1fr); }
    .pad-type-grid { grid-template-columns: repeat(2, 1fr); }
}

/* 스텝 구분 — 본인확인 / 새 비밀번호 */
.pwc-step {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    margin-bottom: var(--spacing-md);
    padding-bottom: var(--spacing-xs);
    border-bottom: 2px solid var(--color-border-light);
}
.pwc-step-num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--gradient-primary);
    color: white;
    font-size: var(--pk-font-xs);
    font-weight: var(--font-weight-bold);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.pwc-step-label {
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-dark);
}

/* 비밀번호 토글 버튼 */
.password-field .input-group .btn {
    border-color: var(--color-border);
    transition: var(--transition-fast);
}
.password-field .input-group .btn:hover {
    background: var(--color-primary-lightest);
    border-color: var(--color-primary);
    color: var(--color-primary);
}

/* 비밀번호 강도 — 4세그먼트 바 */
.pwc-strength {
    margin-top: var(--spacing-xs);
}
.pwc-strength-segments {
    display: flex;
    gap: 4px;
    margin-bottom: 6px;
}
.pwc-strength-seg {
    flex: 1;
    height: 4px;
    background: var(--color-bg-lighter);
    border-radius: 2px;
    transition: background-color 0.25s ease;
}
.pwc-strength-seg.active { background: var(--color-bg-lighter); }
.pwc-strength[data-level="1"] .pwc-strength-seg:nth-child(1) { background: var(--color-danger); }
.pwc-strength[data-level="2"] .pwc-strength-seg:nth-child(-n+2) { background: var(--color-warning); }
.pwc-strength[data-level="3"] .pwc-strength-seg:nth-child(-n+3) { background: var(--color-primary); }
.pwc-strength[data-level="4"] .pwc-strength-seg { background: var(--color-success); }
.pwc-strength-label {
    font-size: var(--pk-font-xs);
    font-weight: var(--font-weight-semibold);
    transition: color 0.25s ease;
}

/* 실시간 요건 체크리스트 */
.pwc-requirements {
    display: flex;
    flex-wrap: wrap;
    gap: 4px var(--spacing-md);
    margin-top: var(--spacing-xs);
}
.pwc-req {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: var(--pk-font-xs);
    color: var(--color-text-muted);
    transition: color var(--transition-fast);
}
.pwc-req i {
    font-size: 0.7em;
    transition: color var(--transition-fast), transform var(--transition-fast);
}
.pwc-req.met {
    color: var(--color-success);
}
.pwc-req.met i {
    transform: scale(1.2);
}

/* 비밀번호 일치 인라인 피드백 */
.pwc-match {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: var(--pk-font-xs);
    margin-top: var(--spacing-xs);
    min-height: 1.4em;
}
.pwc-match.ok { color: var(--color-success); font-weight: var(--font-weight-semibold); }
.pwc-match.no { color: var(--color-danger); }

/* 폼 액션 — 비밀번호 변경 전용 */
.pwc-actions {
    display: flex;
    gap: var(--spacing-sm);
    margin-top: var(--spacing-lg);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-border-lighter);
}
.pwc-actions .btn-primary {
    flex: 1;
}

/* 비밀번호 변경 페이지 반응형 */
@media (max-width: 576px) {
    .pwc-requirements {
        flex-direction: column;
        gap: 3px;
    }
    .pwc-actions {
        flex-direction: column;
    }
    .pwc-actions .btn { width: 100%; }
}

/* 비밀번호 리셋 페이지 추가 스타일 */
.password-reset-info-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
}

.password-requirements-card {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
    border: 2px solid #86efac;
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-lg);
}

.requirements-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.3rem;
    flex-shrink: 0;
    box-shadow: var(--shadow-sm);
}

.requirements-content {
    flex: 1;
}

.requirements-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: #166534;
    margin-bottom: 0.5rem;
}

.requirements-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.requirements-list li {
    font-size: var(--font-size-sm);
    color: #166534;
    margin-bottom: 0.3rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.requirements-list li i {
    color: #22c55e;
}

/* 모바일 반응형 - 마이페이지 */
@media (max-width: 991px) {
    .mypage-profile-section {
        position: relative;
        top: 0;
        margin-bottom: var(--spacing-lg);
    }

    .overview-stats-grid {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    }

    .overview-stat-item .stat-value {
        font-size: 2rem;
    }

    .overview-stat-item .stat-link {
        font-size: 0.65rem;
        padding: 0.3rem 0.5rem;
    }

    .marketing-status-grid {
        grid-template-columns: 1fr;
    }

    .quick-links-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 576px) {
    .mypage-quick-actions {
        grid-template-columns: repeat(2, 1fr);
    }

    .quick-action-btn {
        padding: var(--spacing-sm);
    }

    .quick-action-btn i {
        font-size: 1.2rem;
    }

    .quick-action-btn span {
        font-size: var(--font-size-xs);
    }

    .overview-stat-item {
        padding: var(--spacing-md);
    }

    .marketing-status-box {
        padding: var(--spacing-md);
    }

    .marketing-status-item i {
        font-size: 1.5rem;
    }

    .password-reset-info-cards {
        grid-template-columns: 1fr;
    }

    .password-reset-info-cards .info-card {
        padding: var(--spacing-md);
    }

    .password-reset-info-cards .info-card-icon,
    .password-reset-info-cards .requirements-icon {
        width: 40px;
        height: 40px;
        font-size: 1.1rem;
    }
}

/* 마이페이지 플랫폼 카드 */
.mypage-platform-card {
    transition: var(--transition);
}

.mypage-platform-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.mypage-platform-card .section-header {
    padding-bottom: var(--spacing-md);
}

.mypage-platform-card .section-title {
    font-size: var(--font-size-lg);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
}

.mypage-platform-card .section-title .badge {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    padding: 0.3rem 0.6rem;
}

.mypage-platform-primary {
    background: linear-gradient(135deg, var(--color-primary-lightest) 0%, white 100%);
    border-left: 4px solid var(--color-primary) !important;
}

.mypage-platform-info {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.platform-info-item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: var(--spacing-sm);
    padding: var(--spacing-xs) 0;
    border-bottom: 1px solid var(--color-border-lighter);
}

.platform-info-item:last-child {
    border-bottom: none;
}

.platform-info-item .info-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-semibold);
}

.platform-info-item .info-label i {
    margin-right: 4px;
    color: var(--color-primary);
    width: 16px;
    text-align: center;
}

.platform-info-item .info-value {
    font-size: var(--font-size-sm);
    color: var(--color-text-primary);
    font-weight: var(--font-weight-medium);
}

.platform-categories {
    padding-top: var(--spacing-xs);
}

.platform-categories .info-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-xs);
}

.platform-categories .info-label i {
    margin-right: 4px;
    color: var(--color-primary);
}

.category-tag {
    display: inline-block;
    padding: 0.25rem 0.6rem;
    background: var(--color-bg-light);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    margin-right: var(--spacing-xs);
    margin-bottom: var(--spacing-xs);
}

/* 마이페이지 마케팅 설정 */
.mypage-marketing-item {
    padding: var(--spacing-md) 0;
}

.marketing-item-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-md);
}

.marketing-item-info {
    flex: 1;
}

.marketing-item-info h5 {
    margin-bottom: 0.3rem;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

.marketing-item-info h5 i {
    margin-right: var(--spacing-xs);
    color: var(--color-primary);
}

.marketing-item-info small {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
}

.form-check.form-switch {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.form-switch .form-check-input {
    width: 50px;
    height: 25px;
    cursor: pointer;
    flex-shrink: 0;
}

.form-switch .form-check-label {
    margin-left: var(--spacing-xs);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    min-width: 60px;
}

.form-check-input:checked {
    background-color: var(--color-success);
    border-color: var(--color-success);
}

@media (max-width: 768px) {
    .marketing-item-content {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-sm);
    }

    .form-check.form-switch {
        align-self: flex-start;
    }

    /* 마이페이지 통계 카드 모바일 */
    .mypage-stat-card {
        min-height: 80px;
        padding: var(--spacing-sm);
    }

    .mypage-stat-card .stat-icon {
        width: 45px;
        height: 45px;
        font-size: 1.1rem;
    }

    .mypage-stat-card .stat-number {
        font-size: var(--font-size-2xl);
    }

    .mypage-stat-card .stat-label {
        font-size: var(--font-size-xs);
    }

    /* 마이페이지 메뉴 모바일 */
    .mypage-menu-list a {
        min-height: 50px;
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: var(--font-size-sm);
    }

    .mypage-menu-list a:hover {
        padding-left: calc(var(--spacing-md) + 6px);
    }
}

/* 프로필 플레이스홀더 */
.profile-placeholder {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: var(--color-bg-light);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

/* ============================================================
 * Marketing Consent Page Styles
 * ============================================================ */

/* Marketing Info Cards (상단 안내 카드) */
.marketing-info-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-xl);
}

.marketing-info-cards .info-card {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: white;
    border: 2px solid var(--color-primary-light);
    border-radius: var(--radius-lg);
    transition: var(--transition);
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.1);
}

.marketing-info-cards .info-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(102, 126, 234, 0.2);
    border-color: var(--color-primary);
}

.marketing-info-cards .info-card-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 1.4rem;
    flex-shrink: 0;
    box-shadow: var(--shadow-sm);
}

.marketing-info-cards .info-card-icon.notification {
    background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%);
    color: white;
}

.marketing-info-cards .info-card-icon.shield {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: white;
}

.marketing-info-cards .info-card-content {
    flex: 1;
    min-width: 0;
}

.marketing-info-cards .info-card-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.3rem;
}

.marketing-info-cards .info-card-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
}

/* Marketing Consent Cards (수신 설정 카드) */
.marketing-consent-card {
    display: flex;
    gap: var(--spacing-lg);
    padding: var(--spacing-xl);
    background: white;
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-lg);
    transition: var(--transition);
}

.marketing-consent-card:hover {
    border-color: var(--color-primary-light);
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.1);
}

.marketing-card-icon {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 1.8rem;
    flex-shrink: 0;
    box-shadow: var(--shadow-sm);
}

.marketing-card-icon.email {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.marketing-card-icon.sms {
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
    color: white;
}

.marketing-card-icon.data {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
    color: white;
}

.marketing-card-content {
    flex: 1;
}

.marketing-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--spacing-lg);
}

.marketing-card-info {
    flex: 1;
}

.marketing-card-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-xs);
}

.marketing-card-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin: 0;
}

/* Marketing Switch */
.marketing-switch {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.marketing-switch .form-check-input {
    width: 56px;
    height: 28px;
    cursor: pointer;
    background-color: var(--color-border-dark);
    border: none;
}

.marketing-switch .form-check-input:checked {
    background-color: var(--color-success);
    border-color: var(--color-success);
}

.marketing-switch .form-check-label {
    margin: 0;
    padding-left: var(--spacing-xs);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
    min-width: 60px;
    color: var(--color-text-secondary);
}

.marketing-switch .switch-on {
    color: var(--color-success);
}

.marketing-switch .switch-off {
    color: var(--color-text-muted);
}

/* Marketing Consent Info */
.marketing-consent-info {
    text-align: center;
    padding: var(--spacing-md);
    background: var(--alert-info-bg);
    border: 1px solid var(--alert-info-border);
    border-radius: var(--radius-md);
    color: var(--alert-info-text);
    font-size: var(--font-size-sm);
    margin-top: var(--spacing-lg);
}

.marketing-consent-info i {
    margin-right: var(--spacing-xs);
}

/* Marketing Notice Box (안내 사항) */
.marketing-notice-box {
    background: white;
    border: 2px solid var(--color-warning-light);
    border-left: 6px solid var(--color-warning);
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
    box-shadow: 0 2px 8px rgba(245, 167, 66, 0.15);
}

.marketing-notice-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin: 0 0 var(--spacing-md) 0;
    padding: 0 0 var(--spacing-md) 0;
    border-bottom: 2px solid var(--color-warning-light);
}

.marketing-notice-header i {
    font-size: 1.5rem;
    color: var(--color-warning);
    margin: 0;
}

.marketing-notice-header h5 {
    margin: 0;
    padding: 0;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

.marketing-notice-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.marketing-notice-list li {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: 0;
    margin: 0 0 var(--spacing-md) 0;
    font-size: var(--font-size-base);
    color: var(--color-text-secondary);
    line-height: 1.5;
}

.marketing-notice-list li:last-child {
    margin-bottom: 0;
}

.marketing-notice-list li i {
    color: var(--color-warning);
    flex-shrink: 0;
    margin: 2px 0 0 0;
    font-size: 1rem;
}

.marketing-notice-list li span {
    flex: 1;
    margin: 0;
    padding: 0;
}

.marketing-notice-list li strong {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

/* Marketing History Section */
.marketing-history-section .section-subtitle {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-top: var(--spacing-xs);
}

.marketing-history-table {
    margin-bottom: 0;
}

.marketing-history-table thead th {
    background: linear-gradient(135deg, var(--color-primary-lightest) 0%, rgba(138, 154, 239, 0.1) 100%);
    color: var(--color-text-primary);
    font-weight: var(--font-weight-semibold);
    border-bottom: 2px solid var(--color-primary-light);
    padding: var(--spacing-md) var(--spacing-lg);
    font-size: var(--font-size-sm);
}

.marketing-history-table thead th i {
    margin-right: var(--spacing-xs);
    color: var(--color-primary);
}

.marketing-history-table tbody tr {
    transition: all var(--transition-base);
}

.marketing-history-table tbody tr:hover {
    background-color: var(--color-bg-hover);
}

.marketing-history-table tbody td {
    padding: var(--spacing-md) var(--spacing-lg);
    vertical-align: middle;
    font-size: var(--font-size-sm);
}

.marketing-history-table .log-date {
    color: var(--color-text-secondary);
    font-weight: var(--font-weight-medium);
}

.marketing-history-table .log-type,
.marketing-history-table .log-method {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--color-text-secondary);
}

.marketing-history-table .log-type i,
.marketing-history-table .log-method i {
    color: var(--color-primary);
}

.marketing-history-table .badge {
    padding: 6px 12px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-sm);
}

.marketing-history-table .badge-success {
    background: linear-gradient(135deg, var(--color-success-light) 0%, var(--color-success) 100%);
    color: white;
}

.marketing-history-table .badge-secondary {
    background: linear-gradient(135deg, #9ca3af 0%, #6b7280 100%);
    color: white;
}

.marketing-history-table .badge i {
    margin-right: 4px;
}

/* 반응형 - 태블릿 */
@media (max-width: 991px) {
    .marketing-consent-card {
        flex-direction: column;
        padding: var(--spacing-lg);
    }

    .marketing-card-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-md);
    }

    .marketing-switch {
        align-self: flex-start;
    }
}

/* 반응형 - 모바일 */
@media (max-width: 768px) {
    .marketing-info-cards {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    .marketing-consent-card {
        padding: var(--spacing-md);
    }

    .marketing-card-icon {
        width: 50px;
        height: 50px;
        font-size: 1.5rem;
    }

    .marketing-card-title {
        font-size: var(--font-size-base);
    }

    .marketing-notice-box {
        padding: var(--spacing-md);
    }

    .marketing-notice-list li {
        font-size: var(--font-size-sm);
        gap: var(--spacing-sm);
    }

    .marketing-notice-header h5 {
        font-size: var(--font-size-base);
    }

    .marketing-history-table {
        font-size: var(--font-size-xs);
    }

    .marketing-history-table thead th,
    .marketing-history-table tbody td {
        padding: var(--spacing-sm) var(--spacing-md);
    }
}

/* ============================================================
 * Platforms Page Styles
 * ============================================================ */

/* Empty State */
.platforms-empty-state {
    text-align: center;
    padding: var(--spacing-4xl) var(--spacing-xl);
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.platforms-empty-state .empty-icon {
    width: 100px;
    height: 100px;
    margin: 0 auto var(--spacing-xl);
    background: linear-gradient(135deg, var(--color-primary-lightest) 0%, rgba(138, 154, 239, 0.1) 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.platforms-empty-state .empty-icon i {
    font-size: 3rem;
    color: var(--color-primary);
}

.platforms-empty-state h3 {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
}

.platforms-empty-state p {
    font-size: var(--font-size-base);
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-xl);
}

/* Platforms Overview Card */
.platforms-overview-card {
    background: white;
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.overview-card-header {
    padding: var(--spacing-xl);
    background: linear-gradient(135deg, rgba(102, 126, 234, 0.05) 0%, rgba(138, 154, 239, 0.08) 100%);
    border-bottom: 2px solid var(--color-border-light);
}

.overview-card-header h3 {
    margin: 0 0 var(--spacing-xs) 0;
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.overview-card-header h3 i {
    color: var(--color-primary);
}

.overview-card-header p {
    margin: 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

.overview-stats {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    padding: var(--spacing-xl);
}

.overview-stats .overview-stat-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-lg);
}

.overview-stat-divider {
    width: 2px;
    background: linear-gradient(to bottom, transparent 0%, var(--color-border-light) 20%, var(--color-border-light) 80%, transparent 100%);
    margin: 0 var(--spacing-lg);
}

.stat-icon-wrapper {
    width: 70px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    font-size: 2rem;
    color: white;
    flex-shrink: 0;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
    position: relative;
}

.stat-icon-wrapper::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 100%);
}

.stat-icon-wrapper.buildings {
    background: linear-gradient(135deg, #667eea 0%, #5568d3 100%);
}

.stat-icon-wrapper.primary {
    background: linear-gradient(135deg, #f5a742 0%, #e89327 100%);
}

.stat-content {
    flex: 1;
}

.stat-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-xs);
    font-weight: var(--font-weight-medium);
}

.stat-value {
    font-size: var(--font-size-3xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-primary);
    line-height: 1;
}

.stat-unit {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-normal);
    color: var(--color-text-muted);
    margin-left: 4px;
}

.stat-value-text {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: 1.3;
}

/* Platform Card */
.platforms-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
}

.platforms-list .platform-card {
    background: white;
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: var(--transition);
}

.platforms-list .platform-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(102, 126, 234, 0.25);
    border-color: var(--color-primary);
}

.platforms-list .platform-card-primary {
    border-color: var(--color-warning-light);
    border-width: 3px;
    box-shadow: 0 4px 12px rgba(245, 167, 66, 0.2);
}

.platforms-list .platform-card-primary:hover {
    border-color: var(--color-warning);
    box-shadow: 0 6px 20px rgba(245, 167, 66, 0.3);
}

/* Platform Card Header */
.platforms-list .platform-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--spacing-lg);
    padding: var(--spacing-xl);
    background: linear-gradient(135deg, var(--color-primary-lightest) 0%, rgba(138, 154, 239, 0.05) 100%);
    border-bottom: 2px solid var(--color-border-light);
}

.platforms-list .platform-card-primary .platform-card-header {
    background: linear-gradient(135deg, #fff9e6 0%, #fff4e6 100%);
    border-bottom-color: var(--color-warning-light);
}

.platforms-list .platform-card-title-area {
    flex: 1;
}

.platforms-list .platform-card-title {
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin: 0 0 var(--spacing-sm) 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.platforms-list .platform-card-title i {
    color: var(--color-primary);
}

.platforms-list .platform-card-primary .platform-card-title i {
    color: var(--color-warning);
}

.platforms-list .platform-card-badges {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.platforms-list .platform-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
}

.platforms-list .platform-badge.badge-host {
    background: linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);
    color: white;
}

.platforms-list .platform-badge.badge-primary {
    background: linear-gradient(135deg, var(--color-warning-light) 0%, var(--color-warning) 100%);
    color: white;
}

.platforms-list .platform-card-action .btn-platform-link {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-sm) var(--spacing-lg);
    background: white;
    color: var(--color-primary);
    border: 2px solid var(--color-primary-light);
    border-radius: var(--radius-md);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    text-decoration: none;
    transition: var(--transition);
}

.platforms-list .platform-card-action .btn-platform-link:hover {
    background: var(--color-primary);
    color: white;
    border-color: var(--color-primary);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}

/* Platform Card Body */
.platforms-list .platform-card-body {
    padding: var(--spacing-xl);
}

/* Main Info Section */
.platforms-list .platform-main-info {
    margin-bottom: var(--spacing-xl);
}

.platforms-list .main-info-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--spacing-md);
}

.platforms-list .main-info-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, rgba(102, 126, 234, 0.03) 0%, rgba(138, 154, 239, 0.06) 100%);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    transition: var(--transition);
}

.platforms-list .main-info-item:hover {
    background: white;
    border-color: var(--color-primary-light);
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.15);
    transform: translateY(-2px);
}

.platforms-list .main-info-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm);
    font-size: 1.4rem;
    color: white;
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.platforms-list .main-info-icon.calendar {
    background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
}

.platforms-list .main-info-icon.status {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.platforms-list .main-info-icon.plan {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

.platforms-list .main-info-content {
    flex: 1;
    min-width: 0;
}

.platforms-list .main-info-label {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.platforms-list .main-info-value {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
    line-height: 1.4;
}

.platforms-list .member-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.platforms-list .member-status-badge.status-success {
    background: linear-gradient(135deg, var(--color-success-light) 0%, var(--color-success) 100%);
    color: white;
}

.platforms-list .member-status-badge.status-info {
    background: linear-gradient(135deg, var(--color-info-light) 0%, var(--color-info) 100%);
    color: white;
}

.platforms-list .member-status-badge.status-warning {
    background: linear-gradient(135deg, var(--color-warning-light) 0%, var(--color-warning) 100%);
    color: white;
}

.platforms-list .member-status-badge.status-secondary {
    background: linear-gradient(135deg, #9ca3af 0%, #6b7280 100%);
    color: white;
}

/* Platform Categories */
.platforms-list .platform-categories {
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--color-border-light);
}

.platforms-list .categories-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-md);
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.platforms-list .categories-label i {
    color: var(--color-primary);
}

.platforms-list .categories-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.platforms-list .category-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--color-bg-light);
    border-radius: var(--radius-sm);
    transition: var(--transition);
}

.platforms-list .category-item:hover {
    background: var(--color-bg-lighter);
}

.platforms-list .category-label {
    min-width: 100px;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-muted);
    padding: 4px 10px;
    background: white;
    border-radius: var(--radius-sm);
    text-align: center;
}

.platforms-list .category-value {
    flex: 1;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-primary);
}

/* Legacy category tags (하위 호환성) */
.categories-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.categories-tags .category-tag {
    display: inline-block;
    padding: var(--spacing-xs) var(--spacing-md);
    background: linear-gradient(135deg, var(--color-primary-lightest) 0%, rgba(138, 154, 239, 0.1) 100%);
    color: var(--color-primary);
    border: 1px solid var(--color-primary-light);
    border-radius: var(--radius-sm);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
    transition: all var(--transition-base);
}

.categories-tags .category-tag:hover {
    background: var(--color-primary);
    color: white;
    border-color: var(--color-primary);
}

/* Platforms Actions */
.platforms-actions {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-xl);
    border-top: 2px solid var(--color-border-light);
}

/* 반응형 - 태블릿 */
@media (max-width: 991px) {
    .overview-stats {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }

    .overview-stat-divider {
        display: none;
    }

    .overview-stats .overview-stat-item {
        justify-content: center;
        padding: var(--spacing-lg);
        background: var(--color-bg-light);
        border-radius: var(--radius-md);
    }

    .platforms-list .platform-card-header {
        flex-direction: column;
    }

    .platforms-list .main-info-row {
        grid-template-columns: 1fr;
    }
}

/* 반응형 - 모바일 */
@media (max-width: 768px) {
    .overview-card-header {
        padding: var(--spacing-lg);
    }

    .overview-card-header h3 {
        font-size: var(--font-size-lg);
    }

    .overview-stats {
        padding: var(--spacing-lg);
        gap: var(--spacing-md);
    }

    .stat-icon-wrapper {
        width: 55px;
        height: 55px;
        font-size: 1.5rem;
    }

    .stat-value {
        font-size: var(--font-size-2xl);
    }

    .stat-value-text {
        font-size: var(--font-size-base);
    }

    .platforms-list .platform-card-header,
    .platforms-list .platform-card-body {
        padding: var(--spacing-lg);
    }

    .platforms-list .platform-card-title {
        font-size: var(--font-size-lg);
    }

    .platforms-list .main-info-row {
        gap: var(--spacing-sm);
    }

    .platforms-list .main-info-item {
        padding: var(--spacing-md);
    }

    .platforms-list .main-info-icon {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }

    .platforms-actions {
        flex-direction: column;
    }

    .platforms-actions .btn {
        width: 100%;
    }

    .platforms-list .category-item {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-xs);
    }

    .platforms-list .category-label {
        min-width: auto;
    }
}

/* ============================================================
 * Legacy Marketing Styles (하위 호환성)
 * ============================================================ */

/* 마케팅 설정 아이템 */
.marketing-setting-item {
    padding: 20px 0;
}

.marketing-setting-item h5 {
    margin-bottom: 5px;
    font-size: 16px;
    font-weight: 600;
}

.form-check-input:checked {
    background-color: var(--color-success);
    border-color: var(--color-success);
}

/* 토글 스위치 크기 조정 */
.form-switch .form-check-input {
    width: 50px;
    height: 25px;
    cursor: pointer;
}

.form-switch .form-check-label {
    margin-left: 10px;
    font-weight: 600;
    cursor: pointer;
}

/* 상세 목록 */
.detail-list {
    list-style: none;
    padding-left: 0;
}

.detail-list li {
    padding: 8px 0;
    border-bottom: 1px solid var(--color-border);
}

.detail-list li:last-child {
    border-bottom: none;
}

/* 반응형 */
@media (max-width: 768px) {
    .stat-card {
        margin-bottom: 15px;
    }

    .stat-number {
        font-size: 24px;
    }
}

/* ===================================================================
   회원 탈회 페이지 (mypage_withdraw.php)
   =================================================================== */

/* 경고 안내 카드 */
.withdraw-warning-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
}

.withdraw-warning-cards .warning-card {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-xl);
    background: linear-gradient(135deg, #fff9e6 0%, #fff3cd 100%);
    border-radius: var(--radius-md);
    border: 2px solid #ffc107;
    box-shadow: var(--shadow-md);
}

.withdraw-warning-cards .warning-card-icon {
    width: 60px;
    height: 60px;
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    flex-shrink: 0;
    box-shadow: var(--shadow-md);
}

.withdraw-warning-cards .warning-card-content {
    flex: 1;
    min-width: 0;
}

.withdraw-warning-cards .warning-card-title {
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    margin-top: 0;
    line-height: 1.4;
}

.withdraw-warning-cards .warning-card-list {
    margin: 0;
    margin-bottom: 0 !important;
    padding-left: var(--spacing-lg);
    list-style-type: disc;
}

.withdraw-warning-cards .warning-card-list li {
    margin-bottom: var(--spacing-xs);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    padding-left: 0.3rem;
}

.withdraw-warning-cards .warning-card-list li:last-child {
    margin-bottom: 0;
}

.withdraw-warning-cards .warning-card-list li strong {
    color: #d32f2f;
    font-weight: var(--font-weight-semibold);
}

/* 회원 정보 카드 */
.withdraw-member-info-card {
    background: white;
    border-radius: var(--radius-md);
    border: 2px solid var(--color-border-light);
    box-shadow: var(--shadow-sm);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
}

.withdraw-member-info-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--color-border-light);
}

.withdraw-member-info-header h5 {
    margin: 0;
    margin-bottom: 0 !important;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: 1.4;
}

.withdraw-member-info-header i {
    color: var(--color-primary);
    font-size: 1.3rem;
}

.withdraw-member-info-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-lg) var(--spacing-xl);
}

.withdraw-member-info-item {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.withdraw-member-info-label {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    font-weight: var(--font-weight-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.withdraw-member-info-value {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

.withdraw-member-info-value .badge {
    font-size: var(--font-size-sm);
    padding: 0.3rem 0.8rem;
    font-weight: var(--font-weight-medium);
}

/* 탈회 프로세스 카드 */
.withdraw-process-card {
    background: white;
    border-radius: var(--radius-md);
    border: 2px solid var(--color-border-light);
    box-shadow: var(--shadow-sm);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
}

.withdraw-process-header {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--color-border-light);
}

.withdraw-process-header h5 {
    margin: 0;
    margin-bottom: 0 !important;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    line-height: 1.4;
}

.withdraw-process-header i {
    color: var(--color-primary);
    font-size: 1.3rem;
}

.withdraw-process-timeline {
    position: relative;
}

.withdraw-process-step {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-lg);
    position: relative;
    padding-bottom: var(--spacing-lg);
}

.withdraw-process-step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 24px;
    top: 50px;
    width: 2px;
    height: calc(100% - 20px);
    background: linear-gradient(180deg, var(--color-primary-light) 0%, var(--color-border) 100%);
}

.withdraw-step-number {
    min-width: 48px;
    height: 48px;
    background: var(--gradient-primary-accent);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--font-weight-bold);
    font-size: var(--font-size-lg);
    flex-shrink: 0;
    box-shadow: var(--shadow-md);
    z-index: 1;
}

.withdraw-step-content {
    flex: 1;
    padding-top: 0.5rem;
}

.withdraw-step-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: 0.3rem;
}

.withdraw-step-desc {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: var(--line-height-relaxed);
}

/* 탈회 사유 입력 폼 */
.withdraw-reason-section {
    background: white;
    border-radius: var(--radius-md);
    border: 2px solid var(--color-border-light);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--spacing-xl);
    overflow: hidden;
}

.withdraw-reason-header {
    background: white;
    padding: var(--spacing-lg);
    border-bottom: 2px solid var(--color-border-light);
}

.withdraw-reason-header h5 {
    margin: 0;
    margin-bottom: 0 !important;
    font-size: var(--font-size-lg);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    line-height: 1.4;
}

.withdraw-reason-header h5 i {
    color: var(--color-primary);
}

.withdraw-reason-body {
    padding: var(--spacing-xl);
}

.withdraw-reason-body textarea {
    border: 2px solid var(--color-border-light);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    font-size: var(--font-size-base);
    line-height: var(--line-height-relaxed);
    transition: var(--transition-fast);
}

.withdraw-reason-body textarea:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
    outline: none;
}

.withdraw-char-count {
    display: flex;
    justify-content: flex-end;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-sm);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
}

.withdraw-char-count #charCount {
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
}

/* 확인 체크박스 */
.withdraw-confirm-section {
    background: white;
    border-radius: var(--radius-md);
    border: 3px solid #ff9800;
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
    box-shadow: 0 4px 12px rgba(255, 152, 0, 0.15);
    position: relative;
}

.withdraw-confirm-section::before {
    content: '⚠️ 필수 확인 사항';
    position: absolute;
    top: -14px;
    left: var(--spacing-lg);
    background: linear-gradient(135deg, #ff9800 0%, #f57c00 100%);
    color: white;
    padding: 0.4rem 1.2rem;
    border-radius: var(--radius-sm);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    box-shadow: var(--shadow-md);
    letter-spacing: 0.02em;
}

.withdraw-confirm-section .form-check {
    padding: var(--spacing-md);
    background: white;
    border-radius: var(--radius-sm);
    margin-bottom: var(--spacing-sm);
    transition: var(--transition-fast);
    border: 1px solid var(--color-border-light);
}

.withdraw-confirm-section .form-check:hover {
    background: var(--color-background-hover);
    border-color: var(--color-primary-light);
}

.withdraw-confirm-section .form-check:last-child {
    margin-bottom: 0;
}

.withdraw-confirm-section .form-check-input {
    width: 22px;
    height: 22px;
    margin-top: 0.2rem;
    border: 2px solid var(--color-border);
    cursor: pointer;
}

.withdraw-confirm-section .form-check-input:checked {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

.withdraw-confirm-section .form-check-label {
    cursor: pointer;
    user-select: none;
    color: var(--color-text-secondary);
    font-size: var(--font-size-base);
    line-height: var(--line-height-relaxed);
    margin-bottom: 0;
}

.withdraw-confirm-section .form-check-label strong {
    color: var(--color-text-primary);
    font-weight: var(--font-weight-semibold);
    font-size: 1.05em;
}

/* 버튼 영역 */
.withdraw-actions {
    display: flex;
    justify-content: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
}

.withdraw-actions .btn {
    min-width: 180px;
    padding: var(--spacing-md) var(--spacing-xl);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    border-radius: var(--radius-md);
    transition: var(--transition-fast);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);
}

.withdraw-actions .btn-danger {
    background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
    border: none;
    box-shadow: var(--shadow-md);
    color: white !important;
}

.withdraw-actions .btn-danger:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
    background: linear-gradient(135deg, #c82333 0%, #bd2130 100%);
    color: white !important;
}

.withdraw-actions .btn-danger i {
    color: white;
}

.withdraw-actions .btn-secondary {
    background: #6c757d;
    border: none;
    box-shadow: var(--shadow-sm);
}

.withdraw-actions .btn-secondary:hover {
    background: #5a6268;
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* 안내 메시지 */
.withdraw-info-notice {
    background: white;
    border-left: 4px solid var(--color-info);
    border-radius: var(--radius-md);
    padding: var(--spacing-lg);
    box-shadow: var(--shadow-sm);
}

.withdraw-info-notice h6 {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-primary);
    margin-bottom: var(--spacing-md);
    margin-top: 0;
    line-height: 1.4;
}

.withdraw-info-notice h6 i {
    color: var(--color-info);
    font-size: 1.2rem;
}

.withdraw-info-notice ul {
    margin: 0;
    margin-bottom: 0 !important;
    padding-left: var(--spacing-lg);
    list-style-type: disc;
}

.withdraw-info-notice li {
    margin-bottom: var(--spacing-xs);
    color: var(--color-text-secondary);
    line-height: var(--line-height-relaxed);
    padding-left: 0.3rem;
}

.withdraw-info-notice li:last-child {
    margin-bottom: 0;
}

/* 반응형 */
@media (max-width: 768px) {
    .withdraw-warning-cards .warning-card {
        flex-direction: column;
        padding: var(--spacing-lg);
    }

    .withdraw-warning-cards .warning-card-icon {
        width: 50px;
        height: 50px;
        font-size: 1.5rem;
    }

    .withdraw-member-info-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    .withdraw-process-step {
        gap: var(--spacing-md);
    }

    .withdraw-step-number {
        min-width: 40px;
        height: 40px;
        font-size: var(--font-size-base);
    }

    .withdraw-process-step:not(:last-child)::after {
        left: 20px;
    }

    .withdraw-actions {
        flex-direction: column;
    }

    .withdraw-actions .btn {
        width: 100%;
        min-width: auto;
    }
}

/* ============================================================
 * 인라인 스타일 추출 — 공통 유틸리티
 * ============================================================ */

/* --- 플렉스 유틸리티 --- */
.flex-center-gap {
    display: flex;
    gap: var(--spacing-xs);
    justify-content: center;
}

.flex-col-gap {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.flex-col-gap-sm {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex-icon-gap {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.flex-icon-gap-top {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-xs);
}

.flex-end-gap {
    width: 100%;
    display: flex;
    justify-content: flex-end;
    gap: var(--spacing-xs);
}

/* --- 그리드 유틸리티 --- */
.grid-2-cols {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xs);
}

.grid-3-cols {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-xs);
}

.grid-cards-auto {
    display: grid;
    gap: var(--spacing-sm);
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

/* --- 링크 리셋 --- */
.link-reset {
    text-decoration: none;
    color: inherit;
}

/* --- 디스플레이 폰트 (영문 히어로, 브랜드 등) --- */
.font-display {
    font-family: var(--pk-font-display);
}

/* --- 영문 대문자 레이블 트래킹 --- */
.label-upper {
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

/* ============================================================
 * 인라인 스타일 추출 — index.php (플랫폼 선택)
 * ============================================================ */
.auth-buttons {
    display: flex;
    gap: var(--spacing-xs);
    justify-content: center;
}

.platform-list {
    margin-top: var(--spacing-md);
}

.platform-list-title {
    margin-bottom: var(--spacing-sm);
    font-size: var(--font-size-base);
    color: var(--color-text-primary);
    text-align: left;
}

.platform-link {
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-xs) 0.875rem;
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    color: var(--color-text-primary);
    transition: var(--transition-fast);
}

.platform-link:hover {
    background: #eef2ff;
    border-color: var(--color-border-banner);
    color: var(--color-text-primary);
}

.platform-link .fa-chevron-right {
    font-size: 0.625rem;
    color: var(--color-border-dark);
}

.platform-link-name {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-medium);
}

.badge-host-sm {
    font-size: 0.625rem;
    background: var(--badge-bg);
    color: var(--badge-text);
    border-radius: var(--radius-pill);
    padding: 1px 6px;
}

.hint-text {
    margin-top: 1.25rem;
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
}

.hint-text .fa-arrow-right {
    color: var(--color-accent);
    margin-right: var(--spacing-2xs);
}

/* ============================================================
 * 인라인 스타일 추출 — _consent_section.php
 * ============================================================ */
.consent-info-banner {
    background: var(--color-bg-banner);
    border: 1px solid var(--color-border-banner);
    border-radius: var(--radius-md);
    padding: var(--spacing-sm) var(--spacing-sm);
    margin-bottom: var(--spacing-sm);
}

.consent-info-banner .fa-info-circle {
    color: var(--color-accent);
    margin-top: 2px;
}

.consent-info-text {
    font-size: var(--font-size-sm);
    color: #3a4a6b;
    line-height: 1.7;
}

.consent-error {
    display: none;
    font-size: var(--font-size-sm);
    margin-top: var(--spacing-2xs);
}

.consent-notice-label {
    color: var(--color-text-subtle);
}

.consent-notice-icon {
    color: var(--color-text-subtle);
}

/* ============================================================
 * 인라인 스타일 추출 — _tail.php (재동의 팝업)
 * ============================================================ */
.reconsent-modal .modal-content {
    max-width: 600px;
    width: 90%;
}

.reconsent-modal .modal-header h3 {
    margin: 0;
}

.reconsent-modal .modal-body {
    padding: 1.25rem;
}

.reconsent-desc {
    margin-bottom: var(--spacing-sm);
    color: var(--color-text-light);
}

.reconsent-item {
    border: 1px solid #e0e0e0;
    padding: var(--spacing-sm) var(--spacing-sm);
    margin: var(--spacing-xs) 0;
    border-radius: var(--radius-md);
    background: #fafafa;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
}

.reconsent-item .badge {
    font-size: var(--font-size-xs);
    margin-left: var(--spacing-2xs);
}

.reconsent-btn-nowrap {
    white-space: nowrap;
}

.reconsent-modal .modal-footer {
    padding: var(--spacing-sm) 1.25rem;
    display: flex;
    gap: var(--spacing-xs);
    justify-content: flex-end;
    border-top: 1px solid var(--color-border-lighter);
}

.reconsent-form {
    display: inline-flex;
    gap: var(--spacing-xs);
    align-items: center;
}

/* ============================================================
 * 인라인 스타일 추출 — privacy_consent_list.php
 * ============================================================ */
.consent-card {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border-card);
    border-radius: var(--radius-lg);
    padding: var(--spacing-sm);
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.consent-card-white {
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-card);
    border-radius: var(--radius-lg);
    padding: var(--spacing-sm);
}

.consent-card-title {
    font-size: var(--font-size-base);
    color: var(--color-text-dark);
}

.consent-card-desc {
    margin: 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
}

.consent-badge-pill {
    font-size: var(--font-size-xs);
    color: var(--color-text-white);
    border-radius: var(--radius-pill);
    padding: var(--spacing-2xs) var(--spacing-xs);
    font-weight: var(--font-weight-semibold);
}

.consent-badge-notice {
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    background: var(--color-bg-lighter);
    border-radius: var(--radius-pill);
    padding: 2px var(--spacing-xs);
    margin-left: 6px;
    font-weight: var(--font-weight-semibold);
}

.badge-host {
    font-size: var(--font-size-xs);
    background: var(--badge-bg);
    color: var(--badge-text);
    border-radius: var(--radius-pill);
    padding: 2px var(--spacing-xs);
}

.badge-platform {
    font-size: var(--font-size-xs);
    background: var(--badge-success-bg);
    color: var(--badge-success-text);
    border-radius: var(--radius-pill);
    padding: 2px var(--spacing-xs);
}

.consent-version-text {
    font-size: var(--font-size-xs);
    margin-left: var(--spacing-xs);
}

.consent-notice-row {
    background: var(--color-bg-card);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    padding: var(--spacing-sm) var(--spacing-sm);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
}

.consent-row-label {
    flex: 1;
    min-width: 180px;
}

.consent-row-name {
    font-size: var(--font-size-sm);
    color: var(--color-text-dark);
}

.consent-row-actions {
    display: flex;
    gap: 6px;
    align-items: center;
}

.consent-badge-status {
    font-size: var(--font-size-xs);
    margin-left: var(--spacing-xs);
}

.consent-badge-date {
    font-size: var(--font-size-xs);
}

.consent-no-terms {
    margin: 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
}

/* 공유 동의 섹션 */
.sharing-consent-card {
    background: var(--color-bg-white);
    border-radius: var(--radius-lg);
    padding: 1.25rem;
}

/* 마케팅 수신 동의 스위치 */
.marketing-switch-item {
    margin-bottom: var(--spacing-sm);
}

/* 개인정보 접근 아이콘 */
.privacy-icon-lg {
    color: var(--color-primary);
}

/* 동의 이력 테이블 */
.consent-history-table {
    margin-bottom: 0;
}

.consent-history-thead {
    background: var(--gradient-primary-table);
    color: var(--color-text-white);
}

.consent-history-thead th {
    padding: 0.875rem;
    font-weight: var(--font-weight-semibold);
    border: none;
}

.consent-history-row {
    border-bottom: 1px solid var(--color-border-light);
}

.consent-history-row td {
    padding: 0.875rem;
}

.consent-history-date {
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
    white-space: nowrap;
}

.consent-history-layer {
    font-size: var(--font-size-xs);
    background: var(--badge-bg);
    color: var(--badge-text);
    border-radius: var(--radius-pill);
    padding: 3px var(--spacing-xs);
}

.consent-history-label {
    font-size: var(--font-size-sm);
    color: var(--color-text-dark);
}

.consent-history-action .badge {
    font-size: var(--font-size-xs);
    padding: 5px var(--spacing-xs);
}

.consent-history-channel {
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
}

/* 모달 공통 */
.modal-meta-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
}

.modal-footer-col {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-sm);
}

.modal-loading-text {
    color: var(--color-text-subtle);
}

.modal-error-text {
    color: var(--color-danger);
}

/* 토스트 알림 */
.consent-toast {
    position: fixed;
    bottom: 1.25rem;
    right: 1.25rem;
    z-index: var(--z-tooltip);
    display: none;
}

.consent-toast-inner {
    padding: var(--spacing-sm) 1.25rem;
    border-radius: var(--radius-md);
    color: var(--color-text-white);
    font-size: var(--font-size-sm);
    box-shadow: var(--shadow-lg);
    min-width: 200px;
    text-align: center;
}

/* 공유 확인 모달 */
.sharing-confirm-modal .modal-content {
    max-width: 440px;
}

/* ============================================================
 * 인라인 스타일 추출 — mypage.php
 * ============================================================ */
.marketing-status-card {
    margin-top: var(--spacing-sm);
    padding: var(--spacing-sm) 1.25rem;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
}

.marketing-card-title {
    font-size: var(--font-size-base);
    margin: 0;
}

.marketing-card-link {
    font-size: var(--font-size-sm);
    color: var(--color-accent);
}

.marketing-grid-item {
    text-align: center;
    padding: var(--spacing-sm) var(--spacing-xs);
    border-radius: var(--radius-md);
}

.marketing-grid-icon {
    font-size: var(--font-size-md);
}

.marketing-grid-label {
    font-size: var(--font-size-xs);
    margin-top: 6px;
    color: var(--color-text-secondary);
}

.marketing-grid-status {
    font-size: var(--font-size-xs);
    margin-top: var(--spacing-2xs);
    font-weight: var(--font-weight-medium);
}

.sharing-header-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm);
    background: var(--color-bg-card);
    border-radius: var(--radius-lg);
    margin-bottom: 0.875rem;
}

.sharing-header-title {
    font-size: var(--font-size-base);
    color: var(--color-text-dark);
}

.sharing-header-desc {
    margin: var(--spacing-2xs) 0 0;
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
}

.sharing-info-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-subtle);
    margin-bottom: var(--spacing-xs);
}

.entity-optout-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm) var(--spacing-sm);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
}

.entity-optout-card.opted-out {
    background: #fff5f5;
    border-color: #f5c6cb;
}

.entity-optout-card:not(.opted-out) {
    background: var(--color-bg-white);
}

.entity-optout-info {
    flex: 1;
    min-width: 0;
}

.entity-optout-name {
    font-size: var(--font-size-sm);
    color: var(--color-text-dark);
    font-weight: var(--font-weight-medium);
}

.entity-optout-biz {
    font-size: var(--font-size-xs);
    color: #8c99b2;
    margin-top: 2px;
}

.entity-optout-actions {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    flex-shrink: 0;
}

.entity-optout-badge {
    font-size: var(--font-size-xs);
}

.sharing-notice-box {
    padding: var(--spacing-sm);
    background: var(--alert-warning-bg);
    border-radius: var(--radius-lg);
    font-size: var(--font-size-sm);
    color: var(--alert-warning-text);
}

/* ============================================================
 * 인라인 스타일 추출 — privacy_optout.php
 * ============================================================ */
.optout-info-box {
    background: var(--color-bg-light);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
}

.optout-info-title {
    font-size: 1.3rem;
    font-weight: var(--font-weight-semibold);
    margin-bottom: var(--spacing-sm);
}

.optout-divider {
    border-top: 1px solid var(--color-border);
    padding-top: var(--spacing-sm);
    margin-top: var(--spacing-sm);
}

.optout-notice-title {
    font-size: 1.1rem;
    margin-bottom: var(--spacing-sm);
}

.optout-list {
    margin: 0;
    padding-left: var(--spacing-md);
    line-height: var(--line-height-loose);
}

.optout-existing-box {
    background: var(--alert-danger-bg);
    border-color: var(--color-danger);
}

.optout-existing-title {
    font-size: var(--font-size-base);
    margin-bottom: var(--spacing-xs);
}

.optout-existing-text {
    margin: 0;
    font-size: 0.9rem;
    color: #721c24;
}

/* ============================================================
 * 인라인 스타일 추출 — privacy_access_dashboard.php
 * ============================================================ */
.access-stat-value {
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
}

/* ============================================================
 * 인라인 스타일 추출 — password_reset.php
 * ============================================================ */
.alert-gradient-blue {
    background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
}

/* 반응형 */
@media (max-width: 768px) {
    .grid-2-cols {
        grid-template-columns: 1fr;
    }

    .grid-3-cols {
        grid-template-columns: repeat(2, 1fr);
    }

    .entity-optout-card {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.625rem;
    }
}

/* ============================================================
 * Portal Page — index.php (독립 레이아웃)
 * ============================================================ */
body.portal-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--pk-font-body);
    color: var(--color-text-primary);
    background: linear-gradient(135deg, #4a5bc4 0%, #3d2d6b 50%, #2a1f4e 100%);
    position: relative;
    overflow-x: hidden;
}

body.portal-page::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(ellipse 600px 400px at 20% 30%, rgba(102, 126, 234, 0.15), transparent),
        radial-gradient(ellipse 500px 500px at 80% 70%, rgba(139, 107, 183, 0.12), transparent);
    pointer-events: none;
}

.portal-wrapper {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 900px;
    margin: var(--spacing-lg);
}

.portal-card {
    background: var(--color-bg-white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-2xl);
    overflow: hidden;
    animation: cardReveal 0.5s ease-out;
}

@keyframes cardReveal {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

/* 비로그인: 좌우 분할 */
.portal-split {
    display: grid;
    grid-template-columns: 5fr 7fr;
}

.portal-brand {
    background: linear-gradient(160deg, #f0f2ff 0%, #e8ecff 100%);
    padding: var(--spacing-2xl) var(--spacing-lg);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    border-right: 1px solid var(--color-border-lighter);
}

.portal-brand-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-lg);
    background: var(--gradient-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.5rem;
    margin-bottom: var(--spacing-md);
    box-shadow: 0 4px 16px rgba(85, 104, 211, 0.3);
}

.portal-brand h1 {
    font-family: var(--pk-font-heading);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-dark);
    margin-bottom: var(--spacing-xs);
    letter-spacing: -0.02em;
}

.portal-brand p {
    font-size: var(--pk-font-sm);
    color: var(--color-text-subtle);
    line-height: var(--line-height-relaxed);
}

.portal-login {
    padding: var(--spacing-2xl) var(--spacing-xl);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.portal-login h2 {
    font-family: var(--pk-font-heading);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-dark);
    margin-bottom: var(--spacing-md);
}

.portal-form-group { margin-bottom: var(--spacing-sm); }

.portal-form-group label {
    display: block;
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2xs);
}

.portal-form-group input[type="email"],
.portal-form-group input[type="password"] {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    font-size: var(--pk-font-md);
    font-family: var(--pk-font-body);
    background: var(--color-bg-white);
    color: var(--color-text-primary);
    transition: var(--transition-fast);
    box-shadow: var(--shadow-xs);
}

.portal-form-group input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: inset 0 0 0 1px var(--color-primary);
}

.portal-form-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--spacing-md);
}

.portal-checkbox {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--pk-font-sm);
    color: var(--color-text-muted);
    cursor: pointer;
}

.portal-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.portal-link {
    font-size: var(--pk-font-sm);
    color: var(--color-primary);
    text-decoration: none;
    transition: var(--transition-fast);
}

.portal-link:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

.portal-btn-login {
    width: 100%;
    padding: 0.8rem;
    border: none;
    border-radius: var(--radius-md);
    background: var(--gradient-primary);
    color: #fff;
    font-size: var(--pk-font-md);
    font-weight: var(--font-weight-semibold);
    font-family: var(--pk-font-body);
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 2px 8px rgba(85, 104, 211, 0.25);
}

.portal-btn-login:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(85, 104, 211, 0.35);
}

.portal-btn-login:active {
    transform: none;
    box-shadow: 0 1px 4px rgba(85, 104, 211, 0.2);
}

.portal-signup {
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--color-border-lighter);
}

.portal-signup-label {
    font-size: var(--pk-font-sm);
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-xs);
}

.portal-signup-platforms {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.portal-signup-platforms a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    font-size: var(--pk-font-xs);
    font-weight: var(--font-weight-medium);
    color: var(--color-text-secondary);
    text-decoration: none;
    transition: var(--transition-fast);
    background: var(--color-bg-light);
}

.portal-signup-platforms a:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: var(--color-primary-lightest);
}

.portal-signup-platforms a .badge-host-pill {
    font-size: var(--pk-font-2xs);
    color: var(--color-success-dark);
}

/* 로그인 상태: 포털 허브 */
.portal-hub {
    padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
}

.portal-profile { margin-bottom: var(--spacing-lg); }

.portal-avatar {
    width: 56px;
    height: 56px;
    border-radius: var(--radius-circle);
    background: var(--gradient-primary);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    font-family: var(--pk-font-display);
    margin-bottom: var(--spacing-sm);
    box-shadow: 0 4px 12px rgba(85, 104, 211, 0.25);
}

.portal-profile h1 {
    font-family: var(--pk-font-heading);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-dark);
    margin-bottom: var(--spacing-2xs);
}

.portal-profile-sub {
    font-size: var(--pk-font-sm);
    color: var(--color-text-subtle);
}

.portal-profile-sub .platform-tag {
    display: inline-block;
    background: var(--badge-bg);
    color: var(--badge-text);
    padding: 2px 8px;
    border-radius: var(--radius-pill);
    font-size: var(--pk-font-xs);
    font-weight: var(--font-weight-medium);
    margin: 2px;
}

.portal-profile-sub .platform-tag.host {
    background: var(--badge-success-bg);
    color: var(--badge-success-text);
}

.portal-shortcuts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-sm);
    margin-bottom: var(--spacing-lg);
}

.portal-shortcut {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-xs);
    padding: var(--spacing-md) var(--spacing-sm);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-border-light);
    background: var(--color-bg-white);
    text-decoration: none;
    color: var(--color-text-primary);
    transition: var(--transition);
}

.portal-shortcut:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--color-border);
    color: var(--color-text-primary);
    text-decoration: none;
}

.portal-shortcut-icon {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.portal-shortcut-icon.mypage { background: #eef0ff; color: var(--color-primary); }
.portal-shortcut-icon.consent { background: #e6f7ee; color: var(--color-success); }
.portal-shortcut-icon.password { background: #fff4e3; color: var(--color-warning-dark); }
.portal-shortcut-icon.platform { background: #e6f2ff; color: var(--color-info); }

.portal-shortcut-label {
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-medium);
}

.portal-logout {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--pk-font-sm);
    color: var(--color-text-muted);
    text-decoration: none;
    transition: var(--transition-fast);
}

.portal-logout:hover { color: var(--color-danger); }

@media (max-width: 768px) {
    .portal-wrapper { margin: var(--spacing-sm); }
    .portal-split { grid-template-columns: 1fr; }
    .portal-brand { padding: var(--spacing-lg) var(--spacing-md); border-right: none; border-bottom: 1px solid var(--color-border-lighter); }
    .portal-brand-icon { width: 48px; height: 48px; font-size: 1.2rem; margin-bottom: var(--spacing-sm); }
    .portal-brand h1 { font-size: var(--font-size-lg); }
    .portal-login { padding: var(--spacing-lg) var(--spacing-md); }
    .portal-hub { padding: var(--spacing-lg) var(--spacing-md); }
}

@media (max-width: 480px) {
    .portal-shortcuts { gap: var(--spacing-xs); }
    .portal-shortcut { padding: var(--spacing-sm) var(--spacing-xs); }
}

/* ============================================================
 * Mypage — mypage.php
 * ============================================================ */

/* ============================================================
 * Mypage Dashboard
 * ============================================================ */

/* 프로필 히어로 — 개인 공간 헤더 */
.mp-hero {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, #f0f2ff 0%, #e8ecff 60%, #f5f0ff 100%);
    border-radius: var(--radius-xl);
    border: 1px solid var(--color-border-card);
    margin-bottom: var(--spacing-md);
    position: relative;
    overflow: hidden;
}
/* 히어로 상단 gradient accent */
.mp-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--gradient-primary);
}

.mp-hero-avatar {
    width: 72px;
    height: 72px;
    border-radius: var(--radius-circle);
    flex-shrink: 0;
    overflow: hidden;
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px rgba(85, 104, 211, 0.25);
}
.mp-hero-avatar img { width: 100%; height: 100%; object-fit: cover; }
.mp-hero-avatar-placeholder {
    width: 100%;
    height: 100%;
    background: var(--gradient-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-2xl);
    font-weight: var(--font-weight-bold);
    font-family: var(--pk-font-display);
}

.mp-hero-info { flex: 1; min-width: 0; }

/* 인사말 */
.mp-hero-greeting {
    font-size: var(--pk-font-xs);
    color: var(--color-text-subtle);
    margin-bottom: 2px;
}

.mp-hero-name {
    font-family: var(--pk-font-heading);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-dark);
    margin-bottom: 4px;
}

.mp-hero-meta {
    font-size: var(--pk-font-xs);
    color: var(--color-text-subtle);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
}
.mp-hero-meta i { font-size: 0.85em; }

.mp-hero-actions { flex-shrink: 0; display: flex; gap: var(--spacing-xs); }

/* 아이콘 버튼 (히어로 액션 등) */
.mp-btn-icon,
.mp-btn-icon:hover,
.mp-btn-icon:focus,
.mp-btn-icon:active { text-decoration: none; }

.mp-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: var(--radius-md);
    border: 1px solid rgba(85, 104, 211, 0.15);
    background: rgba(255, 255, 255, 0.7);
    color: var(--color-text-muted);
    font-size: 0.95rem;
    cursor: pointer;
    transition: var(--transition-fast);
}
.mp-btn-icon:hover { border-color: var(--color-primary); color: var(--color-primary); background: var(--color-primary-lightest); }
.mp-btn-icon.danger:hover { border-color: var(--color-danger); color: var(--color-danger); background: var(--alert-danger-bg); }

/* 알림 배너 */
.mp-alerts { margin-bottom: var(--spacing-md); display: flex; flex-direction: column; gap: var(--spacing-xs); }

.mp-alert {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    font-size: var(--pk-font-sm);
    line-height: var(--line-height-relaxed);
}
.mp-alert.warning { background: var(--alert-warning-bg); border: 1px solid var(--alert-warning-border); color: var(--alert-warning-text); }
.mp-alert.danger { background: var(--alert-danger-bg); border: 1px solid var(--alert-danger-border); color: var(--alert-danger-text); }
.mp-alert.info { background: var(--alert-info-bg); border: 1px solid var(--alert-info-border); color: var(--alert-info-text); }
.mp-alert i { margin-top: 2px; flex-shrink: 0; }
.mp-alert-content { flex: 1; }
.mp-alert-content a { font-weight: var(--font-weight-semibold); text-decoration: underline; }
.mp-alert-action { flex-shrink: 0; align-self: center; }
.mp-alert-notice-list { margin: 4px 0 0; padding-left: 16px; }

/* 통계 카드 */
.mp-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-sm); margin-bottom: var(--spacing-md); }

.mp-stat {
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    padding: var(--spacing-md) var(--spacing-sm);
    text-align: center;
    text-decoration: none;
    color: var(--color-text-primary);
    transition: var(--transition);
    display: block;
    position: relative;
}
.mp-stat:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--color-border); color: var(--color-text-primary); text-decoration: none; }

.mp-stat-value { font-family: var(--pk-font-display); font-size: 1.6rem; font-weight: var(--font-weight-bold); line-height: 1.2; }
.mp-stat-value.primary { color: var(--color-primary); }
.mp-stat-value.success { color: var(--color-success); }
.mp-stat-value.info { color: var(--color-info); }
.mp-stat-value.warning { color: var(--color-warning-dark); }
.mp-stat-label { font-size: var(--pk-font-xs); color: var(--color-text-subtle); margin-top: 4px; }
.mp-stat-badge { display: inline-block; font-size: var(--pk-font-2xs); padding: 2px 8px; border-radius: var(--radius-pill); margin-top: 6px; font-weight: var(--font-weight-medium); }
.mp-stat-badge.warning { background: #fff3cd; color: #856404; }
.mp-stat-badge.success { background: var(--badge-success-bg); color: var(--badge-success-text); }

/* 섹션 카드 */
.mp-section { background: var(--color-bg-white); border: 1px solid var(--color-border-light); border-radius: var(--radius-lg); margin-bottom: var(--spacing-md); overflow: hidden; }
.mp-section-header { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-sm) var(--spacing-md); border-bottom: 1px solid var(--color-border-lighter); }
.mp-section-title { font-family: var(--pk-font-heading); font-size: var(--pk-font-md); font-weight: var(--font-weight-semibold); color: var(--color-text-dark); display: flex; align-items: center; gap: 8px; margin: 0; }
.mp-section-title i { color: var(--color-primary); font-size: 0.9em; }
.mp-section-action { font-size: var(--pk-font-sm); color: var(--color-primary); text-decoration: none; transition: var(--transition-fast); display: inline-flex; align-items: center; gap: 4px; }
.mp-section-action:hover { text-decoration: underline; }
.mp-section-body { padding: var(--spacing-md); }

/* 마케팅 그리드 — 상태 카드 */
.mp-marketing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-xs); }
.mp-marketing-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: var(--spacing-sm);
    border-radius: var(--radius-md);
    text-align: center;
    border: 1px solid transparent;
    transition: var(--transition-fast);
}
.mp-marketing-item.active { background: #f0f9f4; border-color: rgba(82, 199, 124, 0.2); }
.mp-marketing-item.inactive { background: var(--color-bg-light); }
.mp-marketing-icon { font-size: 1.4rem; line-height: 1; }
.mp-marketing-icon.active { color: var(--color-success); }
.mp-marketing-icon.inactive { color: var(--color-border-dark); }
.mp-marketing-label { font-size: var(--pk-font-xs); color: var(--color-text-secondary); font-weight: var(--font-weight-medium); }
.mp-marketing-status { font-size: var(--pk-font-2xs); font-weight: var(--font-weight-semibold); }
.mp-marketing-status.active { color: var(--color-success); }
.mp-marketing-status.inactive { color: var(--color-text-muted); }

/* 정보 제공 관리 */
.mp-sharing-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--color-bg-light);
    border-bottom: 1px solid var(--color-border-lighter);
}
.mp-sharing-title { font-size: var(--pk-font-sm); font-weight: var(--font-weight-semibold); color: var(--color-text-secondary); }
.mp-sharing-desc { font-size: var(--pk-font-xs); color: var(--color-text-muted); margin-top: 2px; }
.mp-sharing-form { margin: 0; }
.mp-sharing-info { display: flex; align-items: center; gap: 8px; padding: var(--spacing-sm) var(--spacing-md); font-size: var(--pk-font-sm); color: var(--color-info-dark); background: var(--alert-info-bg); }
.mp-sharing-info i { flex-shrink: 0; }

/* 엔티티 opt-out 목록 */
.mp-entity-list { padding: 0; }
.mp-entity-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid var(--color-border-lighter);
    font-size: var(--pk-font-sm);
    transition: background var(--transition-fast);
}
.mp-entity-item:last-child { border-bottom: none; }
.mp-entity-item:hover { background: var(--color-bg-light); }
.mp-entity-name { font-weight: var(--font-weight-medium); color: var(--color-text-primary); }
.mp-entity-biz { font-size: var(--pk-font-xs); color: var(--color-text-muted); margin-top: 2px; }
.mp-entity-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.mp-entity-badge { font-size: var(--pk-font-2xs); padding: 2px 8px; border-radius: var(--radius-pill); font-weight: var(--font-weight-semibold); }
.mp-entity-badge.active { background: var(--badge-success-bg); color: var(--badge-success-text); }
.mp-entity-badge.optout { background: var(--alert-danger-bg); color: var(--alert-danger-text); }

/* 엔티티 목록 접기/펼치기 */
.mp-entity-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: var(--spacing-xs) var(--spacing-md);
    font-size: var(--pk-font-xs);
    color: var(--color-text-muted);
    background: var(--color-bg-light);
    border: none;
    width: 100%;
    cursor: pointer;
    transition: var(--transition-fast);
}
.mp-entity-toggle:hover { color: var(--color-primary); background: var(--color-primary-lightest); }
.mp-entity-toggle i { font-size: 0.8em; transition: transform 0.2s ease; }
.mp-entity-toggle.expanded i { transform: rotate(180deg); }

/* 파트너 링크 */
.mp-partner-link { display: flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); background: var(--color-bg-light); text-decoration: none; color: var(--color-text-secondary); transition: var(--transition-fast); }
.mp-partner-link:hover { background: var(--color-bg-lighter); color: var(--color-text-primary); }
.mp-partner-link i:first-child { color: var(--color-primary); }
.mp-partner-link .mp-partner-arrow { margin-left: auto; color: var(--color-text-lighter); }

/* 빠른 메뉴 */
.mp-quick-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--spacing-sm); }
.mp-quick-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border-light);
    text-decoration: none;
    color: var(--color-text-primary);
    transition: var(--transition);
}
.mp-quick-item:hover { transform: translateY(-1px); box-shadow: var(--shadow-sm); border-color: var(--color-primary-light); color: var(--color-text-primary); text-decoration: none; }
.mp-quick-icon { width: 36px; height: 36px; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: 0.9rem; flex-shrink: 0; }
.mp-quick-icon.primary { background: #eef0ff; color: var(--color-primary); }
.mp-quick-icon.success { background: #f0f9f4; color: var(--color-success); }
.mp-quick-icon.warning { background: #fff4e3; color: var(--color-warning-dark); }
.mp-quick-icon.info { background: #e6f2ff; color: var(--color-info); }
.mp-quick-label { font-size: var(--pk-font-sm); font-weight: var(--font-weight-medium); }
.mp-quick-desc { font-size: var(--pk-font-xs); color: var(--color-text-muted); }

/* 플랫폼 선택 모달 */
.mp-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0, 0, 0, 0.5); z-index: var(--z-modal); align-items: center; justify-content: center; animation: mpFadeIn 0.2s ease; }
.mp-modal-overlay.show { display: flex; }
@keyframes mpFadeIn { from { opacity: 0; } to { opacity: 1; } }
.mp-modal { background: var(--color-bg-white); border-radius: var(--radius-xl); box-shadow: var(--shadow-2xl); width: 90%; max-width: 440px; max-height: 80vh; overflow: hidden; animation: mpSlideUp 0.25s ease; }
@keyframes mpSlideUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.mp-modal-header { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-md); border-bottom: 1px solid var(--color-border-lighter); }
.mp-modal-header h3 { font-family: var(--pk-font-heading); font-size: var(--pk-font-md); font-weight: var(--font-weight-semibold); color: var(--color-text-dark); margin: 0; }
.mp-modal-close { width: 32px; height: 32px; border: none; background: none; font-size: 1.4rem; color: var(--color-text-muted); cursor: pointer; border-radius: var(--radius-circle); display: flex; align-items: center; justify-content: center; transition: var(--transition-fast); }
.mp-modal-close:hover { background: var(--color-bg-light); color: var(--color-text-primary); }
.mp-modal-body { padding: var(--spacing-sm) var(--spacing-md) var(--spacing-md); overflow-y: auto; max-height: 60vh; }
.mp-platform-list { display: flex; flex-direction: column; gap: var(--spacing-xs); }
.mp-platform-item { display: flex; align-items: center; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--color-border-light); border-radius: var(--radius-md); text-decoration: none; color: var(--color-text-primary); transition: var(--transition-fast); }
.mp-platform-item:hover { border-color: var(--color-primary); background: var(--color-primary-lightest); color: var(--color-text-primary); text-decoration: none; }
.mp-platform-icon { width: 36px; height: 36px; border-radius: var(--radius-md); background: #eef0ff; color: var(--color-primary); display: flex; align-items: center; justify-content: center; font-size: 0.9rem; flex-shrink: 0; }
.mp-platform-item:hover .mp-platform-icon { background: var(--color-primary); color: #fff; }
.mp-platform-name { font-size: var(--pk-font-sm); font-weight: var(--font-weight-medium); }
.mp-platform-desc { font-size: var(--pk-font-xs); color: var(--color-text-muted); margin-top: 1px; }
.mp-platform-arrow { margin-left: auto; color: var(--color-text-lighter); font-size: var(--pk-font-xs); }
.mp-platform-empty { text-align: center; padding: var(--spacing-lg) var(--spacing-md); color: var(--color-text-muted); font-size: var(--pk-font-sm); }
.mp-platform-empty i { display: block; font-size: 2rem; margin-bottom: var(--spacing-xs); color: var(--color-success); }

/* 탈회 링크 */
.mp-withdraw-section { padding: var(--spacing-md) 0 var(--spacing-sm); }
.mp-withdraw-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-size: var(--pk-font-sm);
    color: var(--color-text-muted);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: var(--transition-fast);
}
.mp-withdraw-link:hover {
    color: var(--color-danger);
    border-color: var(--color-danger);
    text-decoration: none;
}

/* Mypage 반응형 */
@media (max-width: 768px) {
    .mp-hero { flex-direction: column; text-align: center; padding: var(--spacing-md); }
    .mp-hero-meta { justify-content: center; }
    .mp-hero-actions { justify-content: center; }
    .mp-stats { grid-template-columns: 1fr; }
    .mp-marketing-grid { grid-template-columns: 1fr; }
    .mp-entity-item { flex-direction: column; align-items: flex-start; gap: 8px; }
    .mp-entity-actions { width: 100%; justify-content: flex-end; }
    .mp-sharing-header { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 480px) {
    .mp-hero-avatar { width: 56px; height: 56px; }
    .mp-hero-name { font-size: var(--font-size-lg); }
    .mp-quick-grid { grid-template-columns: 1fr; }
}

/* ============================================================
 * Apply Page — apply.php
 * ============================================================ */

/* 스텝 인디케이터 */
.ap-steps {
    display: flex;
    justify-content: center;
    gap: 4px;
    padding: 14px 16px;
    margin-bottom: var(--spacing-md);
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--color-border-lighter);
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.ap-step {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 16px;
    border-radius: var(--radius-pill);
    font-size: var(--pk-font-sm);
    color: var(--color-text-lighter);
    transition: var(--transition);
    cursor: default;
    text-decoration: none;
}

.ap-step.active {
    color: var(--color-primary-dark);
    background: var(--color-primary-lightest);
    font-weight: var(--font-weight-semibold);
}

.ap-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: var(--radius-circle);
    background: var(--color-bg-lighter);
    font-size: var(--pk-font-2xs);
    font-weight: var(--font-weight-bold);
    flex-shrink: 0;
}

.ap-step.active .ap-step-num { background: var(--color-primary); color: #fff; }

@media (max-width: 576px) {
    .ap-step-text { display: none; }
    .ap-step { padding: 6px 10px; }
}

/* 폼 섹션 오버라이드 */
.apply-page .form-section { background: var(--color-bg-white); border: 1px solid var(--color-border-light); border-radius: var(--radius-lg); padding: 0; margin-bottom: var(--spacing-md); box-shadow: none; overflow: hidden; transition: var(--transition); }
.apply-page .form-section:hover { box-shadow: var(--shadow-xs); }
.apply-page .section-header { padding: var(--spacing-sm) var(--spacing-md); margin-bottom: 0; border-bottom: 1px solid var(--color-border-lighter); background: transparent; }
.apply-page .section-title { font-family: var(--pk-font-heading); font-size: var(--pk-font-md); font-weight: var(--font-weight-semibold); color: var(--color-text-dark); margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.apply-page .section-title i { color: var(--color-primary); font-size: 0.9em; }
.apply-page .section-subtitle { font-size: var(--pk-font-xs); color: var(--color-text-muted); margin-top: 2px; margin-bottom: 0; }

/* 섹션 본문 패딩 — .section-body 래퍼 방식 (우선) */
.apply-page .section-body {
    padding: var(--spacing-md);
}

/* 하위 호환: .section-body 없이 직접 자식인 경우 */
.apply-page .form-section > .form-grid,
.apply-page .form-section > .form-group,
.apply-page .form-section > .row,
.apply-page .form-section > .usage-guide,
.apply-page .form-section > .address-group,
.apply-page .form-section > #sns_container,
.apply-page .form-section > #add_sns_btn,
.apply-page .form-section > #biz_category_rows_container,
.apply-page .form-section > .file-upload-area,
.apply-page .form-section > .file-list { margin-left: var(--spacing-md); margin-right: var(--spacing-md); }

.apply-page .form-section > .form-grid:first-of-type,
.apply-page .form-section > .row:first-of-type,
.apply-page .form-section > .form-group:first-of-type,
.apply-page .form-section > #biz_category_rows_container { margin-top: var(--spacing-md); }

.apply-page .form-section > .form-grid:last-child,
.apply-page .form-section > .form-group:last-child,
.apply-page .form-section > .row:last-child,
.apply-page .form-section > .usage-guide:last-child,
.apply-page .form-section > #add_sns_btn { margin-bottom: var(--spacing-md); }

/* 동의 섹션 */
.apply-page .privacy-consent-section { padding: 0; }
.apply-page .privacy-consent-section .section-header { padding: var(--spacing-sm) var(--spacing-md); }
.apply-page .consent-group { margin: 0 var(--spacing-md) var(--spacing-sm); }
.apply-page .consent-all { margin: 0 var(--spacing-md) var(--spacing-md); }

/* 제출 섹션 */
.apply-page .submit-section { background: transparent; border: none; padding: var(--spacing-sm) 0; overflow: visible; }
.apply-page .submit-section:hover { box-shadow: none; }
.apply-page .submit-buttons { display: flex; gap: var(--spacing-sm); justify-content: center; }
.apply-page .submit-buttons .btn { min-width: 160px; padding: 0.8rem var(--spacing-md); border-radius: var(--radius-md); font-weight: var(--font-weight-semibold); }
.apply-page .submit-buttons .btn-primary { background: var(--gradient-primary); border: none; box-shadow: 0 2px 8px rgba(85, 104, 211, 0.25); }
.apply-page .submit-buttons .btn-primary:hover { transform: translateY(-1px); box-shadow: 0 4px 16px rgba(85, 104, 211, 0.35); }

/* 개인정보 안내 박스 */
.apply-page .privacy-info-box { background: linear-gradient(135deg, #f0f2ff 0%, #e8ecff 60%, #f5f0ff 100%); border: 1px solid var(--color-border-card); border-radius: var(--radius-lg); }

/* 파일 업로드 */
.apply-page .file-upload-area { border-radius: var(--radius-lg); border-color: var(--color-border); background: var(--color-bg-light); }
.apply-page .file-upload-area:hover { border-color: var(--color-primary); background: var(--color-primary-lightest); }

@media (max-width: 768px) {
    .apply-page .section-body { padding: var(--spacing-sm); }
    .apply-page .form-section > .form-grid,
    .apply-page .form-section > .form-group,
    .apply-page .form-section > .row,
    .apply-page .form-section > .usage-guide,
    .apply-page .form-section > .address-group,
    .apply-page .form-section > #sns_container,
    .apply-page .form-section > #add_sns_btn,
    .apply-page .form-section > #biz_category_rows_container { margin-left: var(--spacing-sm); margin-right: var(--spacing-sm); }
    .apply-page .consent-group,
    .apply-page .consent-all { margin-left: var(--spacing-sm); margin-right: var(--spacing-sm); }
    .apply-page .submit-buttons { flex-direction: column; }
    .apply-page .submit-buttons .btn { min-width: auto; }
}

/* ============================================================
 * Password Reset — password_reset.php (portal-page 재사용)
 * ============================================================ */

.pw-reset-inner {
    padding: var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);
}

.pw-reset-hero {
    text-align: center;
    margin-bottom: var(--spacing-lg);
}

.pw-reset-icon-circle {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-circle);
    background: var(--color-primary-lightest);
    color: var(--color-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: var(--spacing-sm);
}

.pw-reset-icon-circle.success { background: #e6f7ee; color: var(--color-success); }
.pw-reset-icon-circle.danger { background: var(--alert-danger-bg); color: var(--color-danger); }

.pw-reset-hero h1 {
    font-family: var(--pk-font-heading);
    font-size: var(--font-size-xl);
    font-weight: var(--font-weight-bold);
    color: var(--color-text-dark);
    margin-bottom: var(--spacing-2xs);
}

.pw-reset-hero p {
    font-size: var(--pk-font-sm);
    color: var(--color-text-subtle);
    margin: 0;
}

/* 폼 */
.pw-form-group {
    margin-bottom: var(--spacing-md);
}

.pw-form-group label {
    display: block;
    font-size: var(--pk-font-sm);
    font-weight: var(--font-weight-semibold);
    color: var(--color-text-secondary);
    margin-bottom: var(--spacing-2xs);
}

.pw-form-group label i {
    margin-right: 4px;
    color: var(--color-primary);
    font-size: 0.85em;
}

.pw-form-group .form-control:focus,
.pw-form-group .input-group .form-control:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: none;
}

/* 비밀번호 강도 */
.pw-strength {
    margin-top: var(--spacing-xs);
}

.pw-strength-bar {
    width: 100%;
    height: 4px;
    background: var(--color-bg-lighter);
    border-radius: 2px;
    overflow: hidden;
}

.pw-strength-fill {
    height: 100%;
    border-radius: 2px;
    transition: width 0.3s ease, background-color 0.3s ease;
}

.pw-strength-fill.weak { background: var(--color-danger); }
.pw-strength-fill.fair { background: var(--color-warning); }
.pw-strength-fill.good { background: var(--color-primary); }
.pw-strength-fill.strong { background: var(--color-success); }

.pw-strength-text {
    display: block;
    font-size: var(--pk-font-xs);
    font-weight: var(--font-weight-medium);
    margin-top: 4px;
}

.pw-strength-text.weak { color: var(--color-danger); }
.pw-strength-text.fair { color: var(--color-warning-dark); }
.pw-strength-text.good { color: var(--color-primary); }
.pw-strength-text.strong { color: var(--color-success); }

/* 일치 확인 */
.pw-match-text {
    display: block;
    font-size: var(--pk-font-xs);
    margin-top: 4px;
}

.pw-match-text.match { color: var(--color-success); }
.pw-match-text.mismatch { color: var(--color-danger); }

/* 요구사항 안내 */
.pw-requirements {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: var(--spacing-sm);
    background: var(--color-bg-light);
    border-radius: var(--radius-md);
    font-size: var(--pk-font-xs);
    color: var(--color-text-muted);
    margin-bottom: var(--spacing-md);
}

.pw-requirements i { color: var(--color-primary); flex-shrink: 0; }

/* 하단 링크 */
.pw-reset-footer {
    text-align: center;
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-sm);
    border-top: 1px solid var(--color-border-lighter);
}

@media (max-width: 480px) {
    .pw-reset-inner { padding: var(--spacing-lg) var(--spacing-md); }
    .pw-reset-hero h1 { font-size: var(--font-size-lg); }
}