@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap');

/* ========== 모바일 기본 (767px 이하) ========== */
html { overflow-y: scroll; overflow-x: hidden; }
*, *::before, *::after { font-family: 'S-CoreDream-3Light', sans-serif !important; margin: 0; padding: 0; box-sizing: border-box; }
h1, h2, h3, h4, h5, h6 { font-family: 'S-CoreDream-6Bold', sans-serif !important; }
strong, b { font-family: 'S-CoreDream-5Medium', sans-serif !important; }
label { font-family: 'S-CoreDream-5Medium', sans-serif !important; }
input, select, textarea, option { font-family: 'S-CoreDream-3Light', sans-serif !important; }
input::placeholder, textarea::placeholder { font-family: 'S-CoreDream-3Light', sans-serif !important; color: #c0c0c0; }
button { font-family: 'S-CoreDream-5Medium', sans-serif !important; }
a { font-family: 'S-CoreDream-3Light', sans-serif !important; }
.eng, .section-label, .stat-label, .step-label, .menu-link, .footer-label, .badge-text { font-family: 'Montserrat', sans-serif !important; }

body { background: #ffffff; color: #0a0a0a; line-height: 1.6; min-height: 100vh; overflow-x: hidden; font-size: 14px; padding-top: 140px; }
.app-layout { display: block; min-height: 100vh; }

/* 모바일 헤더 - 2단 */
.top-header { padding: 0; flex-direction: column; gap: 0; border-bottom: 1px solid #ddd; background: white; position: fixed; top: 0; left: 0; right: 0; z-index: 1000; display: flex; }
.header-right { order: 1; display: flex; align-items: center; width: 100%; background: #f5f5f5; padding: 10px 16px; justify-content: flex-end; gap: 14px; border-bottom: 1px solid #ddd; margin: 0; }
.header-right #guestArea { display: flex; align-items: center; gap: 16px; }
.header-right #userArea { display: flex; align-items: center; gap: 12px; }
.header-user { font-size: 12px; color: #666; }
.header-login { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #000; text-decoration: none; font-weight: 600; letter-spacing: 0.05em; margin-right: 0; }
.header-signup { font-family: 'Montserrat', sans-serif !important; font-size: 12px; padding: 6px 14px; background: #000; color: white; text-decoration: none; font-weight: 600; letter-spacing: 0.05em; transition: all 0.2s; }
.header-signup:hover { background: #e74c3c; }
.header-logout { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; background: none; border: none; cursor: pointer; padding: 0; }
.header-logout:hover { color: #e74c3c; }
.header-left { order: 2; display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; align-items: center; width: 100%; background: white; }
.header-logo { font-size: 19px; font-weight: 800; letter-spacing: -0.01em; color: #000; text-decoration: none; }
.header-logo .accent { color: #e74c3c; }
.header-nav { display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; }
.header-nav a { font-family: 'Montserrat', sans-serif !important; font-size: 13px; color: #999; text-decoration: none; font-weight: 500; transition: color 0.2s; position: relative; padding: 4px 0; }
.header-nav a:hover { color: #000; }
.header-nav > a.active, .header-nav > .dropdown > a.active { color: #e74c3c; font-weight: 600; }
.header-nav > a.active::after, .header-nav > .dropdown > a.active::after { display: none; }
/* 드롭다운 메뉴 */
.dropdown { position: relative; display: inline-block; padding-bottom: 12px; margin-bottom: -12px; }
.dropdown-toggle { cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.dropdown-menu { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); background: white; border: 1px solid #ddd; min-width: 160px; z-index: 1001; padding: 8px 0; box-shadow: 0 4px 12px rgba(0,0,0,0.08); margin-top: 0; }
.dropdown-menu::before { content: ''; position: absolute; top: -12px; left: 0; right: 0; height: 12px; background: transparent; }
.dropdown:hover .dropdown-menu { display: block; }
.dropdown-menu a { display: block; padding: 12px 20px; font-size: 14px; color: #666; text-decoration: none; font-family: 'Montserrat', sans-serif !important; font-weight: 500; transition: all 0.15s; white-space: nowrap; }
.dropdown-menu a:hover { background: #fafafa; color: #e74c3c; }
.dropdown-menu a.active { color: #e74c3c !important; font-weight: 700 !important; }
.dropdown-menu a::after, .dropdown-menu a.active::after { display: none !important; content: none !important; }

.main-area { padding: 0; min-height: calc(100vh - 76px); }

/* 모바일 - 히어로 */
.hero-section { padding: 30px 16px 24px 16px; max-width: 1400px; margin: 0 auto; }
.section-label { font-size: 11px; color: #999; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 600; margin-bottom: 16px; }
.hero-title { font-size: 32px; font-weight: 800; line-height: 1.1; letter-spacing: -0.04em; margin: 0 0 16px 0; color: #000; word-break: keep-all; }
.hero-title .accent-text { color: #e74c3c; }
.typing-cursor { display: inline-block; width: 3px; height: 28px; background: #e74c3c; vertical-align: middle; margin-left: 8px; animation: blink 0.8s infinite; }
@keyframes blink { 0%, 50% { opacity: 1; } 51%, 100% { opacity: 0; } }
.hero-desc { font-size: 14px; color: #666; margin: 0; max-width: 680px; line-height: 1.6; }
.hero-desc strong { color: #000; }

/* 모바일 - 통계 */
.stats-section { padding: 0 16px 24px 16px; max-width: 1400px; margin: 0 auto; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; }
.stat-item { padding: 16px 8px 16px 0; border-right: 1px solid #ddd; }
.stat-item:nth-child(2) { padding-left: 8px; padding-right: 8px; }
.stat-item:last-child { padding-left: 8px; padding-right: 0; border-right: none; }
.stat-item.accent .stat-label { color: #e74c3c; }
.stat-item.accent .stat-value { color: #e74c3c; }
.stat-label { font-family: 'Montserrat', sans-serif !important; font-size: 9px; color: #999; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700; margin-bottom: 6px; }
.stat-value { font-family: 'Montserrat', sans-serif !important; font-size: 24px; font-weight: 800; color: #000; letter-spacing: -0.03em; line-height: 1; }

/* 모바일 - 입력 */
.input-section { padding: 24px 16px 40px 16px; max-width: 1400px; margin: 0 auto; }
.input-grid-layout { display: grid; grid-template-columns: 1fr; gap: 28px; padding-top: 24px; border-top: 1px solid #ddd; }
.input-side { position: static; }
.input-side-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 14px; }
.input-side-title { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 14px 0; line-height: 1.1; }
.input-side-desc { font-size: 13px; color: #666; line-height: 1.7; }
.input-side-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: #fef2f2; color: #991b1b; margin-top: 22px; font-size: 11px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.1em; }
.input-side-badge-dot { width: 6px; height: 6px; background: #e74c3c; border-radius: 50%; }

.input-form { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.input-row { display: grid; grid-template-columns: 1fr; gap: 22px; min-width: 0; }
.input-row > * { min-width: 0; }
.input-field { display: flex; flex-direction: column; min-width: 0; }
.input-field-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700; margin-bottom: 10px; }
.input-field-label.required::before { content: '* '; color: #e74c3c; }
.input-field input, .input-field select { width: 100%; padding: 12px 0; border: none; border-bottom: 1px solid #ddd; font-size: 16px; background: transparent; outline: none; transition: border-color 0.3s; color: #000; }
.input-field input:focus, .input-field select:focus { border-bottom-color: #e74c3c; }
.input-field .radio-group { display: flex; gap: 30px; padding: 12px 0; align-items: center; flex-wrap: nowrap; }
.input-field .radio-group label { font-family: 'S-CoreDream-3Light', sans-serif !important; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; color: #000; white-space: nowrap; flex-shrink: 0; margin: 0; }
.input-field .radio-group input[type="radio"] { accent-color: #e74c3c; width: 16px; height: 16px; flex-shrink: 0; margin: 0; cursor: pointer; }

.char-counter { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; margin-top: 8px; letter-spacing: 0.1em; }
.char-counter.good { color: #10b981; }
.char-counter.warn { color: #f59e0b; }

.info-box { display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: #fafafa; border-left: 3px solid #e74c3c; font-size: 13px; color: #666; margin-top: 8px; }

.btn-generate { padding: 16px 28px; background: #000; color: white; border: none; font-family: 'S-CoreDream-6Bold', sans-serif !important; font-size: 14px; font-weight: 700; letter-spacing: 0.1em; cursor: pointer; display: inline-flex; align-items: center; gap: 16px; transition: all 0.3s; align-self: flex-start; margin-top: 18px; position: relative; overflow: hidden; width: 100%; justify-content: center; }
.btn-generate:hover:not(:disabled) { background: #e74c3c; }
.btn-generate:disabled { background: #ccc; cursor: not-allowed; }
.btn-generate-arrow { font-family: 'Montserrat', sans-serif !important; font-size: 20px; }

/* 모바일 - 로딩 */
.loading { text-align: center; padding: 40px 16px; max-width: 1400px; margin: 0 auto; }
.spinner { width: 36px; height: 36px; margin: 0 auto 22px; border: 2px solid #ddd; border-top: 2px solid #e74c3c; border-radius: 50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* 모바일 - 결과 */
.result-section { padding: 24px 16px 40px 16px; max-width: 1400px; margin: 0 auto; border-top: 1px solid #ddd; }
.result-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; flex-wrap: wrap; gap: 18px; padding-top: 24px; }
.status-success { font-family: 'Montserrat', sans-serif !important; font-size: 13px; color: #10b981; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; display: flex; align-items: center; gap: 10px; }
.status-success::before { content: ''; width: 8px; height: 8px; background: #10b981; border-radius: 50%; }
.regenerate-btn { background: transparent; color: #000; border: 1px solid #000; padding: 12px 28px; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; cursor: pointer; font-family: 'Montserrat', sans-serif !important; transition: all 0.2s; }
.regenerate-btn:hover { background: #000; color: white; }

.result-section h3 { font-size: 18px; margin-top: 28px; margin-bottom: 18px; color: #000; font-weight: 800; letter-spacing: -0.02em; }
.title-list { list-style: none; padding: 0; }
.title-list li { padding: 14px 0; border-bottom: 1px solid #ddd; font-size: 14px; color: #000; }
.title-list li:last-child { border-bottom: none; }
.title-list li strong { color: #e74c3c; margin-right: 14px; font-family: 'Montserrat', sans-serif !important; }
.meta-box { background: #fafafa; color: #000; padding: 16px; font-size: 14px; line-height: 1.7; border-left: 3px solid #e74c3c; }
.char-count { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; margin-top: 10px; margin-bottom: 18px; letter-spacing: 0.1em; }
.content-box { background: #fafafa; padding: 18px; line-height: 1.9; white-space: pre-wrap; font-size: 14px; color: #000; }
.highlight-yellow { background: linear-gradient(transparent 60%, #fef08a 60%); padding: 0 2px; }
.highlight-blue { color: #e74c3c; font-family: 'S-CoreDream-5Medium', sans-serif !important; }
.highlight-bold { font-family: 'S-CoreDream-6Bold', sans-serif !important; color: #000; }
.faq-item { border-bottom: 1px solid #ddd; padding: 22px 0; }
.faq-item:last-child { border-bottom: none; }
.faq-item .question { font-family: 'S-CoreDream-6Bold', sans-serif !important; margin-bottom: 10px; color: #000; font-size: 14px; }
.faq-item .answer { color: #666; font-size: 13px; line-height: 1.7; }
.hashtags { color: #e74c3c; font-size: 14px; line-height: 1.9; font-family: 'S-CoreDream-5Medium', sans-serif !important; }
.result-section textarea { width: 100%; padding: 22px; border: 1px solid #ddd; font-size: 14px; resize: vertical; background: #fafafa; color: #000; }
.action-buttons { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; margin-top: 18px; }
.action-buttons button { padding: 14px; border: 1px solid #000; background: white; color: #000; font-size: 13px; font-weight: 700; cursor: pointer; letter-spacing: 0.05em; transition: all 0.2s; font-family: 'Montserrat', sans-serif !important; }
.action-buttons button:hover { background: #fafafa; }
.action-buttons button.primary { background: #000; color: white; }
.action-buttons button.primary:hover { background: #e74c3c; border-color: #e74c3c; }

.error { color: #dc2626; background: #fef2f2; padding: 18px 22px; margin: 18px 0; font-size: 15px; border-left: 3px solid #dc2626; }
.image-tools { display: grid; grid-template-columns: 1fr; gap: 14px; margin: 22px 0 26px 0; }
.tool-btn { display: block; text-align: center; padding: 20px; background: white; border: 1px solid #ddd; color: #000; text-decoration: none; font-size: 14px; font-weight: 600; transition: all 0.2s; }
.tool-btn:hover { border-color: #e74c3c; color: #e74c3c; }
.image-prompt-card { background: #000; padding: 18px; margin-bottom: 16px; color: #f5f5f5; }
.prompt-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid #2a2a2a; }
.prompt-style { font-family: 'Montserrat', sans-serif !important; font-size: 14px; color: #e74c3c; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.prompt-num { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #888; }
.prompt-row { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: center; }
.prompt-text { font-size: 13px; line-height: 1.7; padding: 16px 18px; background: rgba(255, 255, 255, 0.05); word-break: break-word; }
.copy-prompt-btn { background: #e74c3c; color: white; border: none; padding: 12px 22px; font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.1em; width: 100%; }
.copy-prompt-btn:hover { background: white; color: #000; }

/* 모바일 - 인증 페이지 */
.auth-page { max-width: 1400px; margin: 30px auto; padding: 0 16px; }
.auth-box { background: white; padding: 0; }
.auth-box h1 { font-size: 36px; font-weight: 800; margin-bottom: 14px; color: #000; letter-spacing: -0.03em; line-height: 1.1; }
.auth-box .subtitle { color: #666; font-size: 14px; margin-bottom: 28px; }
.auth-form { margin-bottom: 28px; }
.form-group { margin-bottom: 28px; }
.form-group label { font-family: 'Montserrat', sans-serif !important; display: block; font-size: 12px; font-weight: 700; color: #999; margin-bottom: 14px; letter-spacing: 0.15em; text-transform: uppercase; }
.form-group input { width: 100%; padding: 12px 0; border: none; border-bottom: 1px solid #ddd; font-size: 16px; background: transparent; outline: none; }
.form-group input:focus { border-bottom-color: #e74c3c; }
.form-group .hint { font-size: 13px; color: #999; margin-top: 10px; }
.submit-btn { width: 100%; padding: 16px; background: #000; color: white; border: none; font-size: 14px; font-weight: 700; cursor: pointer; margin-top: 18px; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif !important; transition: background 0.2s; }
.submit-btn:hover:not(:disabled) { background: #e74c3c; }
.submit-btn:disabled { background: #ccc; cursor: not-allowed; }
.auth-links { text-align: center; margin-top: 32px; font-size: 13px; color: #666; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 12px; flex-wrap: nowrap; }
.auth-links span { color: #ccc; display: none; }
.auth-links a { color: #000; text-decoration: none; font-weight: 600; border-bottom: 1px solid #000; padding-bottom: 2px; white-space: nowrap; }
.auth-links a:hover { color: #e74c3c; border-bottom-color: #e74c3c; }
.error-msg { background: #fef2f2; color: #991b1b; padding: 16px 20px; margin-bottom: 18px; font-size: 14px; display: none; border-left: 3px solid #dc2626; }
.success-msg { background: #ecfdf5; color: #065f46; padding: 16px 20px; margin-bottom: 18px; font-size: 14px; display: none; border-left: 3px solid #10b981; }
.password-strength { display: flex; gap: 4px; margin-top: 12px; }
.strength-bar { height: 3px; flex: 1; background: #ddd; }
.strength-bar.weak { background: #dc2626; }
.strength-bar.medium { background: #f59e0b; }
.strength-bar.strong { background: #10b981; }
.strength-text { font-size: 12px; margin-top: 12px; color: #999; }
.strength-text.weak { color: #dc2626; }
.strength-text.medium { color: #92400e; }
.strength-text.strong { color: #065f46; }
.agreement { margin: 22px 0; padding: 18px; background: #fafafa; font-size: 14px; color: #666; }
.agreement label { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.agreement input { margin-top: 4px; accent-color: #e74c3c; width: 18px; height: 18px; }

/* 모바일 - 페이지 헤더 */
.page-header { padding: 30px 16px 24px 16px; max-width: 1400px; margin: 0 auto; border-bottom: 1px solid #ddd; }
.page-header-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 600; margin-bottom: 14px; }
.page-header h1 { font-size:30px; font-weight: 800; margin: 0; color: #000; letter-spacing: -0.04em; line-height: 1; }

/* 모바일 - 히스토리 */
.history-section { padding: 24px 16px 40px 16px; max-width: 1400px; margin: 0 auto; }
.history-stats-row { display: grid; grid-template-columns: 1fr; border-bottom: 1px solid #ddd; margin-bottom: 24px; }
.history-stat-card { padding: 16px 0; border-right: none; border-bottom: 1px solid #ddd; }
.history-stat-card:nth-child(2) { padding-left: 0; padding-right: 0; }
.history-stat-card:last-child { padding-left: 0; padding-right: 0; border-bottom: none; }
.history-stat-card .label { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 12px; }
.history-stat-card .value { font-family: 'Montserrat', sans-serif !important; font-size: 32px; font-weight: 800; color: #e74c3c; letter-spacing: -0.03em; }

.search-bar { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 36px; }
.search-bar input { padding: 16px 0; border: none; border-bottom: 1px solid #ddd; font-size: 16px; background: transparent; outline: none; }
.search-bar input:focus { border-bottom-color: #e74c3c; }
.search-bar button { padding: 12px; border: 1px solid #000; background: white; cursor: pointer; font-size: 13px; font-weight: 700; color: #000; white-space: nowrap; letter-spacing: 0.05em; font-family: 'Montserrat', sans-serif !important; transition: all 0.2s; width: 100%; }
.search-bar button:hover { background: #000; color: white; }
.search-bar button.danger { border-color: #dc2626; color: #dc2626; }
.search-bar button.danger:hover { background: #dc2626; color: white; }

.year-group { margin-bottom: 26px; border-bottom: 1px solid #ddd; padding-bottom: 26px; }
.year-header { padding: 18px 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.year-header h2 { font-family: 'Montserrat', sans-serif !important; font-size: 20px; margin: 0; color: #000; font-weight: 800; letter-spacing: -0.02em; }
.year-header .count { background: #000; color: white; font-size: 12px; padding: 5px 14px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; }
.month-group { margin: 18px 0; padding-left: 14px; border-left: 2px solid #e74c3c; }
.month-header { padding: 14px 18px; background: #fafafa; cursor: pointer; display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.month-header h3 { font-family: 'Montserrat', sans-serif !important; font-size: 14px; margin: 0; color: #000; font-weight: 700; }
.day-group { margin: 14px 0; }
.day-label { font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 700; color: #666; padding: 10px 0; margin-bottom: 12px; letter-spacing: 0.05em; }
.history-item-card { background: white; border: 1px solid #ddd; padding: 14px 16px; margin-bottom: 12px; display: flex; flex-direction: column; align-items: stretch; gap: 12px; transition: all 0.2s; }
.history-item-card:hover { border-color: #000; }
.item-content { flex: 1; min-width: 0; }
.item-title { font-weight: 700; font-size: 14px; color: #000; margin-bottom: 8px; }
.item-time-detail { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.05em; }
.item-buttons { display: flex; gap: 10px; flex-shrink: 0; width: 100%; }
.item-btn { padding: 10px; font-size: 12px; cursor: pointer; border: 1px solid #000; background: white; color: #000; font-weight: 600; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; transition: all 0.2s; flex: 1; }
.item-btn:hover { background: #000; color: white; }
.item-btn.delete { border-color: #dc2626; color: #dc2626; }
.item-btn.delete:hover { background: #dc2626; color: white; }
.empty-state { text-align: center; padding: 80px 20px; color: #999; font-size: 18px; }

.toggle-icon { font-family: 'Montserrat', sans-serif !important; font-size: 14px; color: #999; }
.collapsed .year-content, .collapsed .month-content { display: none; }

/* 모바일 - 마이페이지 */
.info-card { background: white; border-top: 1px solid #ddd; padding: 24px 0; }
.info-card:first-child { border-top: none; padding-top: 0; }
.info-card h2 { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 18px; }
.info-row { display: flex; justify-content: space-between; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid #ddd; flex-direction: column; gap: 6px; }
.info-row:last-child { border-bottom: none; }
.info-label { font-weight: 700; color: #000; font-size: 13px; }
.info-value { color: #666; font-size: 14px; font-family: 'Montserrat', sans-serif !important; word-break: break-all; }
.action-btn { display: block; padding: 14px; background: #000; color: white; border: none; font-size: 13px; font-weight: 700; cursor: pointer; text-decoration: none; margin: 6px 0; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.1em; transition: all 0.2s; width: 100%; text-align: center; }
.action-btn:hover { background: #e74c3c; }
.action-btn.danger { background: white; color: #dc2626; border: 1px solid #dc2626; }
.action-btn.danger:hover { background: #dc2626; color: white; }
.action-btn.outline { background: white; color: #000; border: 1px solid #000; }
.action-btn.outline:hover { background: #000; color: white; }

/* 모바일 - 가이드 */
.guide-page { max-width: 1400px; margin: 0 auto; padding: 0 16px 40px 16px; }
.guide-section { padding: 36px 0; border-bottom: 1px solid #ddd; }
.guide-section:last-child { border-bottom: none; }
.guide-section-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
.guide-section-side .step-num { font-family: 'Montserrat', sans-serif !important; font-size: 13px; color: #e74c3c; letter-spacing: 0.25em; font-weight: 700; margin-bottom: 14px; }
.guide-section-side h2 { font-size:20px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; margin-bottom: 14px; color: #000; }
.guide-section-side p { font-size: 14px; color: #666; line-height: 1.7; }
.guide-section-content { font-size: 14px; color: #444; line-height: 1.8; word-break:keep-all;}
.options-grid-new { display: grid; grid-template-columns: 1fr; gap: 14px; }
.option-card-new { padding: 20px 0; border-top: 1px solid #ddd; }
.option-card-new.required .option-card-new-title { color: #e74c3c; }
.option-card-new-title { font-family: 'Montserrat', sans-serif !important; font-size: 14px; font-weight: 700; color: #000; margin-bottom: 12px; letter-spacing: 0.05em; }
.option-card-new-desc { font-size: 13px; color: #666; line-height: 1.7; }
.faq-list-new { display: flex; flex-direction: column; }
.faq-item-new { border-top: 1px solid #ddd; }
.faq-item-new:last-child { border-bottom: 1px solid #ddd; }
.faq-item-new summary { padding: 20px 0; cursor: pointer; font-size: 14px; font-weight: 700; color: #000; display: flex; align-items: center; gap: 18px; list-style: none; }
.faq-item-new summary::-webkit-details-marker { display: none; }
.faq-item-new summary::after { content: '+'; margin-left: auto; font-size: 22px; color: #999; font-weight: 300; transition: transform 0.2s; font-family: 'Montserrat', sans-serif !important; }
.faq-item-new[open] summary::after { transform: rotate(45deg); color: #e74c3c; }
.faq-answer-new { padding: 0 0 20px 0; font-size: 13px; color: #666; line-height: 1.8; }

.warning-card { padding: 18px 20px; background: #fafafa; border-left: 3px solid #f59e0b; margin: 24px 0; }
.warning-card-title { font-weight: 800; color: #000; font-size: 15px; margin-bottom: 12px; }
.warning-card-text { font-size: 13px; color: #666; line-height: 1.7; }

.cta-new { background: #000; color: white; padding: 60px 24px; text-align: center; margin-top: 40px; }
.cta-new-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #e74c3c; letter-spacing: 0.3em; text-transform: uppercase; font-weight: 700; margin-bottom: 16px; }
.cta-new h2 { font-size: 32px; font-weight: 800; margin-bottom: 22px; letter-spacing: -0.03em; line-height: 1.05; }
.cta-new p { font-size: 14px; color: #999; margin-bottom: 26px; }
.cta-new-btn { display: inline-block; padding: 16px 32px; background: #e74c3c; color: white; font-size: 13px; font-weight: 700; text-decoration: none; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif !important; transition: background 0.2s; }
.cta-new-btn:hover { background: white; color: #000; }

/* 모바일 - 푸터 */
.footer { padding: 50px 16px 30px 16px; border-top: 1px solid #ddd; background: #f5f5f5; margin-top: 60px; max-width: none; margin-left: 0; margin-right: 0; width: 100%; }
.footer-top { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; margin-bottom: 30px; flex-wrap: wrap; gap: 30px; max-width: 1400px; margin-left: auto; margin-right: auto; }
.footer-brand { max-width: 100%; }
.footer-logo { font-size: 28px; font-weight: 800; margin-bottom: 14px; letter-spacing: -0.02em; }
.footer-logo .accent { color: #e74c3c; }
.footer-info { font-size: 13px; color: #666; line-height: 2.2; }
.footer-section { min-width: 0; width: 100%; }
.footer-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 14px; }
.footer-section ul { list-style: none; }
.footer-section li { margin-bottom: 8px; }
.footer-section a { font-size: 14px; color: #666; text-decoration: none; transition: color 0.2s; }
.footer-section a:hover { color: #e74c3c; }
.footer-bottom { padding-top: 24px; border-top: 1px solid #ddd; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 10px; max-width: 1400px; margin-left: auto; margin-right: auto; }
.footer-copyright { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.1em; }

.toast { font-family: 'S-CoreDream-5Medium', sans-serif !important; }

.fade-in { animation: fadeIn 0.8s ease forwards; opacity: 0; }
.fade-in-1 { animation-delay: 0.1s; }
.fade-in-2 { animation-delay: 0.2s; }
.fade-in-3 { animation-delay: 0.3s; }
.fade-in-4 { animation-delay: 0.4s; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }

/* 모바일 - 위젯 (숨김) */
.content-with-sidebar { display: grid; grid-template-columns: 1fr; gap: 0; max-width: 1700px; margin: 0 auto; padding: 0; }
.content-main { min-width: 0; }
.widget-sidebar { display: none; }
.widget-card { background: #f5f5f5; border: 1px solid #ddd; padding: 24px; transition: all 0.2s; }
.widget-card:hover { border-color: #999; }
.widget-title { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.widget-title-dot { width: 6px; height: 6px; background: #e74c3c; border-radius: 50%; }
.widget-calc { transition: border-color 0.2s; }
.widget-calc.active { border-color: #e74c3c; border-width: 2px; padding: 23px; }
.widget-calc.active .widget-title { color: #e74c3c; }
.widget-calc.active .widget-title::after { content: '⌨ KEYBOARD ON'; font-size: 9px; color: #e74c3c; margin-left: auto; }
.calc-display { background: white; padding: 14px; font-family: 'Montserrat', sans-serif !important; font-size: 22px; font-weight: 700; text-align: right; margin-bottom: 10px; min-height: 24px; word-break: break-all; color: #000; }
.calc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.calc-btn { padding: 12px; background: white; border: 1px solid #ddd; cursor: pointer; font-size: 14px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; transition: all 0.15s; }
.calc-btn:hover { background: #fafafa; }
.calc-btn.op { color: #e74c3c; border-color: #fee; }
.calc-btn.op:hover { background: #e74c3c; color: white; border-color: #e74c3c; }
.calc-btn.eq { background: #000; color: white; border-color: #000; grid-column: span 2; }
.calc-btn.eq:hover { background: #e74c3c; border-color: #e74c3c; }
.calc-btn.clear { background: #fef2f2; color: #dc2626; border-color: #fef2f2; }
.cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
.cal-month { font-family: 'Montserrat', sans-serif !important; font-size: 16px; font-weight: 800; }
.cal-nav { display: flex; gap: 4px; }
.cal-nav-btn { background: white; border: 1px solid #ddd; width: 26px; height: 26px; cursor: pointer; font-size: 11px; font-weight: 700; }
.cal-nav-btn:hover { background: #000; color: white; border-color: #000; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal-day-label { font-family: 'Montserrat', sans-serif !important; font-size: 9px; color: #999; text-align: center; padding: 4px 0; font-weight: 700; }
.cal-day { font-family: 'Montserrat', sans-serif !important; font-size: 12px; text-align: center; padding: 6px 0; font-weight: 500; cursor: default; }
.cal-day.other { color: #ccc; }
.cal-day.today { background: #e74c3c; color: white; font-weight: 800; }
.cal-day.sunday { color: #dc2626; }
.rate-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid #ddd; }
.rate-item:last-child { border-bottom: none; }
.rate-currency { font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 700; }
.rate-currency .small { color: #999; font-weight: 500; font-size: 11px; }
.rate-value { font-family: 'Montserrat', sans-serif !important; font-size: 14px; font-weight: 800; color: #000; }
.rate-update { font-family: 'Montserrat', sans-serif !important; font-size: 10px; color: #999; text-align: right; margin-top: 8px; }
.weather-loading { text-align: center; padding: 20px 0; color: #999; font-size: 13px; }
.weather-main { display: flex; align-items: center; justify-content: space-between; padding: 8px 0 14px; }
.weather-temp { font-family: 'Montserrat', sans-serif !important; font-size: 38px; font-weight: 800; line-height: 1; }
.weather-icon { font-size: 36px; }
.weather-info { padding-top: 12px; border-top: 1px solid #ddd; }
.weather-row { display: flex; justify-content: space-between; font-size: 12px; padding: 4px 0; }
.weather-label { color: #999; font-family: 'Montserrat', sans-serif !important; font-weight: 700; }
.weather-value { color: #000; font-weight: 600; }

/* 모바일 - 구독 페이지 */
.subscribe-menu { color: #e74c3c !important; font-weight: 800 !important; }
.subscribe-menu:hover { color: #c0392b !important; }
.subscribe-menu.active::after { background: #e74c3c !important; }
.subscribe-page { max-width: 1400px; margin: 0 auto; padding: 0 16px 40px 16px; }
.price-cards-row { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 24px 0; }
.price-card-item { background: white; border: 1px solid #ddd; padding: 36px 24px; position: relative; transition: all 0.2s; }
.price-card-item:hover { border-color: #000; }
.price-card-item.premium { background: #000; color: white; border-color: #000; }
.price-card-item.premium .price-label { color: #999; }
.price-card-item.premium .price-desc { color: #ccc; }
.price-card-item.premium .benefit-list { border-color: #333; }
.price-card-item.premium .benefit-list li { color: white; }
.price-card-badge { font-family: 'Montserrat', sans-serif !important; position: absolute; top: 20px; right: 20px; background: #f5f5f5; padding: 6px 14px; font-size: 10px; font-weight: 800; letter-spacing: 0.15em; color: #666; }
.price-card-badge.premium-badge { background: #e74c3c; color: white; }
.price-info { margin-bottom: 40px; }
.price-label { font-family: 'Montserrat', sans-serif !important; font-size: 13px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 14px; }
.price-amount { font-family: 'Montserrat', sans-serif !important; display: flex; align-items: baseline; gap: 4px; margin-bottom: 14px; }
.price-currency { font-size: 22px; font-weight: 700; color: #e74c3c; }
.price-number { font-size: 48px; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.price-period { font-size: 16px; color: #999; margin-left: 8px; }
.price-desc { font-size: 14px; color: #666; }
.benefit-list { list-style: none; padding: 0; margin: 0; padding-top: 24px; border-top: 1px solid #ddd; }
.benefit-list li { padding: 10px 0; font-size: 14px; display: flex; align-items: center; gap: 14px; }
.benefit-check { color: #e74c3c; font-weight: 800; font-size: 18px; }
.pay-btn-card { width: 100%; padding: 16px; background: white; color: #000; border: 1px solid #000; font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; cursor: pointer; transition: all 0.3s; margin-top: 24px; }
.pay-btn-card:hover { background: #000; color: white; }
.pay-btn-card.primary { background: #e74c3c; color: white; border-color: #e74c3c; }
.pay-btn-card.primary:hover { background: white; color: #e74c3c; }

.trial-notice { display: flex; flex-direction: column; text-align: center; align-items: center; gap: 12px; background: #fff8e1; border-left: 4px solid #f59e0b; padding: 20px; margin: 24px 0; }
.trial-icon { font-size: 36px; }
.trial-content h3 { font-size: 16px; font-weight: 800; margin-bottom: 6px; color: #000; }
.trial-content p { font-size: 13px; color: #666; margin: 0; }

.payment-section { padding: 36px 0; border-top: 1px solid #ddd; }
.payment-section h2 { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 24px; }
.payment-tabs { display: grid; grid-template-columns: 1fr; gap: 0; margin-bottom: 40px; border-bottom: 2px solid #ddd; }
.payment-tab { background: white; border: none; padding: 14px 16px; cursor: pointer; font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 700; color: #999; letter-spacing: 0.1em; transition: all 0.2s; position: relative; }
.payment-tab.active { color: #000; }
.payment-tab.active::after { content: ''; position: absolute; bottom: -2px; left: 0; right: 0; height: 2px; background: #e74c3c; }
.payment-content { display: none; }
.payment-content.active { display: block; }
.payment-desc { font-size: 14px; color: #666; margin-bottom: 24px; line-height: 1.7; }
.payment-summary { background: #fafafa; padding: 20px; margin-bottom: 28px; }
.summary-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid #ddd; }
.summary-row:last-child { border-bottom: none; padding-top: 14px; }
.summary-row span { color: #666; font-size: 14px; }
.summary-row strong { font-size: 14px; color: #000; font-family: 'Montserrat', sans-serif !important; font-weight: 700; }
.summary-row .amount { font-size: 18px; color: #e74c3c; font-weight: 800; }
.pay-btn { width: 100%; padding: 18px; background: #000; color: white; border: none; font-family: 'Montserrat', sans-serif !important; font-size: 14px; font-weight: 700; letter-spacing: 0.1em; cursor: pointer; transition: all 0.3s; }
.pay-btn:hover { background: #e74c3c; }
.pay-btn.primary { background: #e74c3c; }
.pay-btn.primary:hover { background: #000; }
.payment-note { font-size: 12px; color: #999; margin-top: 16px; text-align: center; line-height: 1.6; }
.bank-info { background: #fafafa; padding: 20px; margin-bottom: 32px; }
.bank-row { display: flex; align-items: center; padding: 10px 0; border-bottom: 1px solid #ddd; gap: 16px; flex-wrap: wrap; }
.bank-row:last-child { border-bottom: none; }
.bank-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700; min-width: 60px; }
.bank-row strong { font-size: 14px; color: #000; flex: 1; }
.bank-row .amount { color: #e74c3c; font-size: 18px; font-weight: 800; font-family: 'Montserrat', sans-serif !important; }
.copy-btn { background: #000; color: white; border: none; padding: 8px 16px; font-size: 12px; font-weight: 700; cursor: pointer; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; }
.copy-btn:hover { background: #e74c3c; }
.bank-guide { background: white; padding: 20px; border: 1px solid #ddd; }
.bank-guide h3 { font-size: 16px; font-weight: 800; margin-bottom: 18px; color: #000; }
.bank-guide ol { padding-left: 24px; }
.bank-guide ol li { padding: 8px 0; font-size: 13px; color: #444; line-height: 1.8; }
.bank-guide ol ul { margin-top: 8px; padding-left: 20px; list-style: none; }
.bank-guide ol ul li { padding: 4px 0; font-size: 13px; color: #666; }
.bank-guide strong { color: #000; }
.faq-section { padding: 36px 0; border-top: 1px solid #ddd; }
.faq-section h2 { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 24px; }

/* 모바일 - 구독 상태 카드 */
.subscription-status-card { display: grid; grid-template-columns: 1fr; gap: 24px; align-items: stretch; background: white; border: 1px solid #ddd; padding: 24px; margin-bottom: 24px; transition: all 0.2s; }
.subscription-status-card.subscribed { background: #000; color: white; border-color: #000; }
.subscription-status-card.subscribed .sub-status-label { color: #e74c3c; }
.subscription-status-card.subscribed .sub-status-detail { color: #ccc; }
.subscription-status-card.subscribed .usage-label { color: #999; }
.subscription-status-card.subscribed .usage-bar { background: #333; }
.sub-status-left { flex: 1; }
.sub-status-label { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 12px; }
.sub-status-name { font-size: 24px; font-weight: 800; margin-bottom: 8px; letter-spacing: -0.02em; }
.sub-status-detail { font-size: 14px; color: #666; }
.sub-status-right { display: flex; flex-direction: column; align-items: stretch; gap: 16px; min-width: 0; }
.usage-display { width: 100%; }
.usage-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; margin-bottom: 8px; }
.usage-numbers { font-family: 'Montserrat', sans-serif !important; margin-bottom: 10px; }
.usage-current { font-size: 32px; font-weight: 800; color: #e74c3c; }
.usage-separator { font-size: 22px; color: #999; margin: 0 4px; }
.usage-limit { font-size: 22px; font-weight: 700; color: #999; }
.usage-bar { width: 100%; height: 4px; background: #f0f0f0; overflow: hidden; }
.usage-bar-fill { height: 100%; background: #e74c3c; transition: width 0.5s ease; }
.sub-cta-btn { display: block; padding: 14px; background: white; color: #000; border: 1px solid #000; text-decoration: none; font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 700; letter-spacing: 0.1em; transition: all 0.2s; text-align: center; }
.sub-cta-btn:hover { background: #000; color: white; }
.sub-cta-btn.urgent { background: #e74c3c; color: white; border-color: #e74c3c; }
.sub-cta-btn.urgent:hover { background: #c0392b; border-color: #c0392b; }
.subscription-status-card.subscribed .sub-cta-btn { background: #e74c3c; color: white; border-color: #e74c3c; }
.subscription-status-card.subscribed .sub-cta-btn:hover { background: white; color: #000; border-color: white; }

/* 모바일 - CTA 풀와이드 */
.cta-fullwide { background: #000; color: white; padding: 70px 24px; text-align: center; margin-top: 0; width: 100%; }
.cta-fullwide-inner { max-width: 1200px; margin: 0 auto; }
.cta-fullwide .cta-new-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #e74c3c; letter-spacing: 0.3em; text-transform: uppercase; font-weight: 700; margin-bottom: 16px; }
.cta-fullwide h2 { font-size: 36px; font-weight: 800; margin-bottom: 22px; letter-spacing: -0.03em; line-height: 1.05; }
.cta-fullwide p { font-size: 14px; color: #999; margin-bottom: 26px; }
.cta-fullwide .cta-new-btn { display: inline-block; padding: 18px 36px; background: #e74c3c; color: white; font-size: 13px; font-weight: 700; text-decoration: none; letter-spacing: 0.1em; font-family: 'Montserrat', sans-serif !important; transition: background 0.2s; }
.cta-fullwide .cta-new-btn:hover { background: white; color: #000; }

/* ========================================== */
/* 커뮤니티 페이지 - 1400px 통일 */
/* ========================================== */

/* 공지사항 + FAQ + QnA 공통 */
.notice-page,
.notice-detail,
.notice-write,
.faq-page,
.faq-write,
.qna-page,
.qna-detail,
.qna-write {
    max-width: 1400px;
    margin: 0 auto;
    padding: 30px 16px 40px 16px;
}

/* 공지사항 테이블 */
.notice-table { width: 100%; border-collapse: collapse; }
.notice-table thead { border-top: 2px solid #000; border-bottom: 1px solid #ddd; }
.notice-table th { padding: 16px 12px; text-align: left; font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; letter-spacing: 0.15em; text-transform: uppercase; font-weight: 700; }
.notice-table tbody tr { border-bottom: 1px solid #ddd; transition: background 0.15s; }
.notice-table tbody tr:hover { background: #fafafa; }
.notice-table td { padding: 18px 12px; font-size: 14px; color: #000; }
.notice-table .col-no { width: 100px; text-align: center; color: #999; font-family: 'Montserrat', sans-serif !important; font-weight: 700; font-size: 13px; }
.notice-table .col-title { font-weight: 500; }
.notice-table .col-title strong { font-weight: 800; color: #000; }
.notice-table .col-date { width: 130px; color: #999; font-family: 'Montserrat', sans-serif !important; font-size: 13px; }
.notice-table .col-views { width: 80px; text-align: center; color: #999; font-family: 'Montserrat', sans-serif !important; font-size: 13px; }
.pinned-badge { display: inline-block; background: #e74c3c; color: white; padding: 3px 8px; font-size: 10px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0; white-space: nowrap; line-height: 1.4; }
/* 공지사항 상세 */
.notice-detail-header { padding: 30px 0; border-top: 2px solid #000; border-bottom: 1px solid #ddd; }
.notice-detail-meta { display: flex; gap: 20px; font-size: 13px; color: #999; font-family: 'Montserrat', sans-serif !important; margin-bottom: 12px; flex-wrap: wrap; }
.notice-detail-title { font-size: 24px; font-weight: 800; color: #000; letter-spacing: -0.02em; line-height: 1.3; }
.notice-detail-content { padding: 40px 0; min-height: 200px; font-size: 15px; line-height: 1.9; color: #000; white-space: pre-wrap; }
.notice-detail-footer { padding: 24px 0; border-top: 1px solid #ddd; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.notice-back-btn { display: inline-block; padding: 12px 24px; background: white; color: #000; border: 1px solid #000; text-decoration: none; font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 700; letter-spacing: 0.05em; transition: all 0.2s; }
.notice-back-btn:hover { background: #000; color: white; }
.notice-admin-actions { display: flex; gap: 10px; }
.notice-admin-actions button { padding: 12px 20px; background: white; color: #000; border: 1px solid #000; cursor: pointer; font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 700; }
.notice-admin-actions button.danger { color: #dc2626; border-color: #dc2626; }
.notice-admin-actions button.danger:hover { background: #dc2626; color: white; }
.notice-admin-actions button:hover { background: #000; color: white; }

/* 공지 작성 */
.notice-write .form-group { margin-bottom: 28px; }
.notice-write input[type="text"] { width: 100%; padding: 14px 0; border: none; border-bottom: 1px solid #ddd; font-size: 18px; background: transparent; outline: none; }
.notice-write input[type="text"]:focus { border-bottom-color: #e74c3c; }
.notice-write textarea { width: 100%; padding: 20px; border: 1px solid #ddd; font-size: 15px; line-height: 1.7; min-height: 400px; resize: vertical; background: #fafafa; outline: none; font-family: 'S-CoreDream-3Light', sans-serif !important; }
.notice-write textarea:focus { border-color: #e74c3c; }
.notice-write .pinned-check { display: flex; align-items: center; gap: 10px; padding: 16px 20px; background: #fafafa; }
.notice-write .pinned-check input { width: 18px; height: 18px; accent-color: #e74c3c; }
.notice-write-actions { display: flex; gap: 14px; padding-top: 20px; border-top: 1px solid #ddd; flex-wrap: wrap; }
.notice-write-actions button { padding: 16px 32px; font-family: 'Montserrat', sans-serif !important; font-size: 14px; font-weight: 700; cursor: pointer; letter-spacing: 0.1em; transition: all 0.2s; }
.notice-write-actions button.primary { background: #000; color: white; border: 1px solid #000; }
.notice-write-actions button.primary:hover { background: #e74c3c; border-color: #e74c3c; }
.notice-write-actions button.outline { background: white; color: #000; border: 1px solid #000; }
.notice-write-actions button.outline:hover { background: #000; color: white; }

/* FAQ 작성 버튼 */
.faq-write-btn { display: inline-block; padding: 10px 20px; background: #e74c3c; color: white; border: none; text-decoration: none; font-family: 'Montserrat', sans-serif !important; font-size: 12px; font-weight: 700; letter-spacing: 0.05em; transition: all 0.2s; }
.faq-write-btn:hover { background: #c0392b; color: white; }

/* FAQ 카테고리 필터 */
.faq-filter { display: flex; gap: 8px; padding: 24px 0; border-bottom: 1px solid #ddd; flex-wrap: wrap; align-items: center; }
.faq-filter-btn { padding: 10px 18px; background: white; color: #666; border: 1px solid #ddd; cursor: pointer; font-family: 'Montserrat', sans-serif !important; font-size: 12px; font-weight: 700; letter-spacing: 0.05em; transition: all 0.2s; }
.faq-filter-btn:hover { background: #fafafa; color: #000; }
.faq-filter-btn.active { background: #000; color: white; border-color: #000; }

/* FAQ 목록 */
.faq-list-page { padding: 16px 0; }
.faq-page-item { border-bottom: 1px solid #ddd; transition: all 0.2s; }
.faq-page-item summary { padding: 24px 0; cursor: pointer; display: flex; align-items: center; gap: 16px; list-style: none; }
.faq-page-item summary::-webkit-details-marker { display: none; }
.faq-page-item summary::after { content: '+'; margin-left: auto; font-size: 24px; color: #999; font-weight: 300; transition: transform 0.2s; font-family: 'Montserrat', sans-serif !important; flex-shrink: 0; }
.faq-page-item[open] summary::after { transform: rotate(45deg); color: #e74c3c; }
.faq-page-item[open] { background: #fafafa; padding: 0 16px; }
.faq-page-item[open] summary { padding: 24px 0; }
.faq-category-badge { display: inline-block; background: #fef2f2; color: #e74c3c; padding: 4px 10px; font-size: 11px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; flex-shrink: 0; }
.faq-question { font-family: 'S-CoreDream-6Bold', sans-serif !important; font-size: 15px; color: #000; flex: 1; }
.faq-answer-page { padding: 0 0 24px 0; font-size: 14px; color: #444; line-height: 1.9; white-space: pre-wrap; }
.faq-admin-actions { display: flex; gap: 8px; padding: 0 0 16px 0; }
.faq-admin-actions button { padding: 8px 16px; background: white; color: #000; border: 1px solid #000; cursor: pointer; font-family: 'Montserrat', sans-serif !important; font-size: 12px; font-weight: 700; }
.faq-admin-actions button:hover { background: #000; color: white; }
.faq-admin-actions button.danger { color: #dc2626; border-color: #dc2626; }
.faq-admin-actions button.danger:hover { background: #dc2626; color: white; }

/* FAQ 작성 페이지 */
.faq-write .form-group { margin-bottom: 28px; }
.faq-write select { width: 100%; padding: 14px 0; border: none; border-bottom: 1px solid #ddd; font-size: 16px; background: transparent; outline: none; }
.faq-write select:focus { border-bottom-color: #e74c3c; }
.faq-write input[type="text"] { width: 100%; padding: 14px 0; border: none; border-bottom: 1px solid #ddd; font-size: 18px; background: transparent; outline: none; }
.faq-write input[type="text"]:focus { border-bottom-color: #e74c3c; }
.faq-write textarea { width: 100%; padding: 20px; border: 1px solid #ddd; font-size: 15px; line-height: 1.7; min-height: 300px; resize: vertical; background: #fafafa; outline: none; font-family: 'S-CoreDream-3Light', sans-serif !important; }
.faq-write textarea:focus { border-color: #e74c3c; }

/* ============================================ */
/* 태블릿 (min-width: 768px) */
/* ============================================ */
@media (min-width: 768px) {
    body { padding-top: 76px; font-size: 16px; }
    
    /* 헤더 */
    .top-header { padding: 20px 40px; flex-direction: row; gap: 0; justify-content: space-between; }
    .header-left { order: 0; flex-direction: row; gap: 40px; padding: 0; background: transparent; width: auto; align-items: center; }
    .header-right { order: 0; width: auto; background: transparent; padding: 0; border-bottom: none; gap: 20px; margin-left: auto; }
    .header-right #guestArea { gap: 30px; }
    .header-right #userArea { gap: 20px; }
    .header-logo { font-size: 22px; }
    .header-nav { gap: 26px; flex-wrap: nowrap; }
    .header-nav a { font-size: 14px; }
.header-nav > a.active::after, .header-nav > .dropdown > a.active::after { display: none; }
    .header-user { font-size: 14px; }
    .header-login { font-size: 13px; margin-right: 16px; }
    .header-signup { padding: 10px 20px; font-size: 13px; }
    .header-logout { font-size: 13px; }
    
    /* 히어로 */
    .hero-section { padding: 70px 40px 50px 40px; }
    .section-label { font-size: 12px; margin-bottom: 26px; letter-spacing: 0.25em; }
    .hero-title { font-size: 60px; margin-bottom: 22px; }
    .typing-cursor { height: 56px; width: 4px; }
    .hero-desc { font-size: 17px; }
    
    /* 통계 */
    .stats-section { padding: 0 40px 50px 40px; }
    .stat-item { padding: 30px 24px 30px 0; }
    .stat-item:nth-child(2) { padding-left: 24px; padding-right: 24px; }
    .stat-item:last-child { padding-left: 24px; padding-right: 0; }
    .stat-label { font-size: 11px; margin-bottom: 12px; }
    .stat-value { font-size: 44px; }
    
    /* 입력 */
    .input-section { padding: 30px 40px 60px 40px; }
    .input-grid-layout { grid-template-columns: 240px 1fr; gap: 50px; padding-top: 36px; }
    .input-side { position: sticky; top: 100px; }
    .input-side-label { font-size: 12px; margin-bottom: 14px; }
    .input-side-title { font-size: 32px; margin-bottom: 14px; }
    .input-side-desc { font-size: 14px; }
    .input-side-badge { font-size: 11px; padding: 8px 14px; }
    .input-form { gap: 28px; }
    .input-row { grid-template-columns: 1fr 1fr; gap: 28px; }
    .input-field-label { font-size: 12px; margin-bottom: 12px; }
    .input-field input, .input-field select { font-size: 18px; padding: 14px 0; }
    .input-field .radio-group { gap: 40px; padding: 14px 0; }
    .input-field .radio-group label { font-size: 16px; }
    .info-box { padding: 16px 20px; font-size: 14px; }
    .btn-generate { padding: 18px 32px; font-size: 15px; width: auto; }
    
    /* 결과 */
    .result-section { padding: 30px 40px 60px 40px; }
    .result-header { padding-top: 36px; margin-bottom: 30px; }
    .result-section h3 { font-size: 22px; margin-top: 36px; }
    .title-list li { font-size: 16px; padding: 16px 0; }
    .meta-box { padding: 20px 22px; font-size: 15px; }
    .content-box { padding: 24px; font-size: 15px; }
    .faq-item .question { font-size: 16px; }
    .faq-item .answer { font-size: 15px; }
    .hashtags { font-size: 16px; }
    .image-tools { grid-template-columns: 1fr 1fr; }
    .image-prompt-card { padding: 22px; }
    .prompt-row { grid-template-columns: 1fr auto; }
    .copy-prompt-btn { width: auto; padding: 14px 22px; }
.action-buttons { grid-template-columns: 1fr 1fr 1fr; }
    .action-buttons button { padding: 16px; font-size: 14px; }
    
    /* 인증 */
    .auth-page { margin: 70px auto; padding: 0 40px; }
    .auth-box h1 { font-size: 42px; }
    .auth-box .subtitle { font-size: 16px; margin-bottom: 36px; }
    .form-group input { font-size: 17px; padding: 14px 0; }
    .submit-btn { padding: 18px; font-size: 14px; }
    .auth-links { flex-direction: row; gap: 16px; font-size: 14px; }
    .auth-links span { display: inline; }
    
    /* 페이지 헤더 */
    .page-header { padding: 70px 40px 40px 40px; }
    .page-header-label { font-size: 12px; margin-bottom: 18px; letter-spacing: 0.25em; }
    .page-header h1 { font-size: 56px; }
    
    /* 히스토리 */
    .history-section { padding: 30px 40px 60px 40px; }
    .history-stats-row { grid-template-columns: repeat(3, 1fr); margin-bottom: 36px; }
    .history-stat-card { padding: 24px 24px 24px 0; border-right: 1px solid #ddd; border-bottom: none; }
    .history-stat-card:nth-child(2) { padding-left: 24px; padding-right: 24px; }
    .history-stat-card:last-child { padding-left: 24px; padding-right: 0; border-right: none; }
    .history-stat-card .value { font-size: 40px; }
    .search-bar { grid-template-columns: 1fr auto auto; gap: 14px; }
    .search-bar button { padding: 14px 26px; width: auto; }
    .year-header h2 { font-size: 24px; }
    .month-header h3 { font-size: 16px; }
    .month-group { padding-left: 24px; }
    .history-item-card { flex-direction: row; align-items: center; padding: 18px 22px; gap: 18px; }
    .item-title { font-size: 16px; }
    .item-time-detail { font-size: 13px; }
    .item-buttons { width: auto; }
    .item-btn { flex: none; padding: 12px 20px; font-size: 13px; }
    
    /* 마이페이지 */
    .info-card { padding: 30px 0; }
    .info-card h2 { font-size: 13px; margin-bottom: 24px; }
    .info-row { padding: 18px 0; flex-direction: row; align-items: center; gap: 0; }
    .info-label { font-size: 16px; }
    .info-value { font-size: 16px; }
    .action-btn { display: inline-block; padding: 16px 30px; margin-right: 12px; margin-bottom: 12px; width: auto; font-size: 14px; }
    
    /* 구독 상태 카드 */
    .subscription-status-card { grid-template-columns: 1fr auto; gap: 30px; padding: 30px 32px; }
    .sub-status-name { font-size: 28px; }
    .sub-status-right { align-items: flex-end; min-width: 260px; }
    .usage-numbers { text-align: right; }
    .usage-label { text-align: right; }
    .sub-cta-btn { display: inline-block; padding: 14px 26px; }
    
    /* 가이드 */
    .guide-page { padding: 0 40px 60px 40px; }
    .guide-section { padding: 50px 0; }
    .guide-section-grid { grid-template-columns: 240px 1fr; gap: 50px; }
    .guide-section-side h2 { font-size: 32px; }
    .guide-section-side p { font-size: 15px; }
    .guide-section-content { font-size: 16px; }
    .options-grid-new { grid-template-columns: 1fr 1fr; gap: 20px; }
    .option-card-new { padding: 24px 0; }
    .option-card-new-title { font-size: 15px; }
    .option-card-new-desc { font-size: 14px; }
    .faq-item-new summary { font-size: 16px; padding: 24px 0; }
    .faq-item-new summary::after { font-size: 24px; }
    .faq-answer-new { font-size: 15px; padding-bottom: 24px; }
    .warning-card { padding: 22px 26px; margin: 30px 0; }
    .warning-card-title { font-size: 16px; }
    .warning-card-text { font-size: 14px; }
    .cta-new { padding: 80px 40px; margin-top: 60px; }
    .cta-new-label { font-size: 12px; margin-bottom: 20px; }
    .cta-new h2 { font-size: 48px; }
    .cta-new p { font-size: 16px; margin-bottom: 32px; }
    .cta-new-btn { padding: 18px 38px; font-size: 14px; }
    
    /* CTA 풀와이드 */
    .cta-fullwide { padding: 90px 40px; }
    .cta-fullwide h2 { font-size: 56px; }
    .cta-fullwide p { font-size: 16px; }
    .cta-fullwide .cta-new-btn { padding: 20px 44px; font-size: 14px; }
    
    /* 구독 페이지 */
    .subscribe-page { padding: 0 40px 60px 40px; }
    .price-cards-row { grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .price-card-item { padding: 44px 32px; }
    .price-currency { font-size: 24px; }
    .price-number { font-size: 56px; }
    .price-period { font-size: 17px; }
    .price-desc { font-size: 14px; }
    .benefit-list li { font-size: 15px; }
    .trial-notice { flex-direction: row; text-align: left; padding: 24px 28px; }
    .payment-section { padding: 50px 0; }
    .payment-section h2 { font-size: 13px; margin-bottom: 30px; }
    .payment-tabs { grid-template-columns: 1fr 1fr; }
    .payment-tab { font-size: 14px; padding: 16px 22px; }
    .payment-summary { padding: 24px; }
    .summary-row .amount { font-size: 22px; }
    .pay-btn { padding: 20px; font-size: 15px; }
    .bank-info { padding: 26px; }
    .bank-row { flex-wrap: nowrap; padding: 12px 0; }
    .bank-label { min-width: 80px; font-size: 12px; }
    .bank-row strong { font-size: 16px; }
    .bank-row .amount { font-size: 20px; }
    .bank-guide { padding: 28px; }
    .bank-guide h3 { font-size: 17px; }
    .bank-guide ol li { font-size: 14px; }
    .faq-section { padding: 50px 0; }
    .faq-section h2 { font-size: 13px; margin-bottom: 30px; }
    
    /* 커뮤니티 페이지 - 태블릿 */
    .notice-page,
    .notice-detail,
    .notice-write,
    .faq-page,
    .faq-write,
    .qna-page,
    .qna-detail,
    .qna-write {
        padding: 40px 40px 60px 40px;
    }
    
    .notice-table th { padding: 18px 16px; font-size: 13px; }
    .notice-table td { padding: 20px 16px; font-size: 15px; }
    .notice-detail-title { font-size: 32px; }
    .notice-detail-content { font-size: 16px; padding: 50px 0; }
    .notice-write input[type="text"] { font-size: 22px; }
    .faq-question { font-size: 17px; }
    .faq-answer-page { font-size: 15px; padding-bottom: 30px; }
    .faq-write input[type="text"] { font-size: 22px; }
    
    /* 푸터 */
    .footer { padding: 70px 40px 40px 40px; margin-top: 80px; }
    .footer-top { flex-direction: row; gap: 40px; margin-bottom: 40px; }
    .footer-brand { max-width: 400px; }
    .footer-logo { font-size: 34px; margin-bottom: 18px; }
    .footer-info { font-size: 15px; }
    .footer-section { min-width: 200px; width: auto; }
    .footer-label { font-size: 12px; margin-bottom: 18px; }
    .footer-section li { margin-bottom: 10px; }
    .footer-section a { font-size: 15px; }
    .footer-bottom { padding-top: 28px; flex-direction: row; gap: 14px; align-items: center; }
    .footer-copyright { font-size: 12px; }
}

/* ============================================ */
/* PC (min-width: 1100px) */
/* ============================================ */
@media (min-width: 1100px) {
    body { font-size: 17px; }
    
    /* 헤더 */
    .top-header { padding: 22px 60px; justify-content: space-between; }
    .header-left { gap: 100px; }
    .header-right { margin-left: auto; }
    .header-nav { gap: 36px; }
    .header-nav a { font-size: 15px; }
.header-nav > a.active::after, .header-nav > .dropdown > a.active::after { display: none; }
    .header-right #guestArea { gap: 40px; }
    .header-login { margin-right: 30px; font-size: 14px; }
    .header-signup { padding: 12px 24px; font-size: 14px; }
    .header-user { font-size: 15px; }
    
    /* 히어로 */
    .hero-section { padding: 100px 60px 60px 60px; }
    .section-label { font-size: 13px; margin-bottom: 32px; letter-spacing: 0.3em; }
    .hero-title { font-size:70px; margin-bottom: 28px; }
    .typing-cursor { height: 88px; width: 5px; }
    .hero-desc { font-size: 19px; }
    
    /* 통계 */
    .stats-section { padding: 0 60px 60px 60px; }
    .stat-item { padding: 40px 36px 40px 0; }
    .stat-item:nth-child(2) { padding-left: 36px; padding-right: 36px; }
    .stat-item:last-child { padding-left: 36px; padding-right: 0; }
    .stat-label { font-size: 12px; letter-spacing: 0.25em; margin-bottom: 14px; }
    .stat-value { font-size: 64px; }
    
    /* 입력 */
    .input-section { padding: 40px 60px 80px 60px; }
    .input-grid-layout { grid-template-columns: 300px 1fr; gap: 70px; padding-top: 44px; }
    .input-side-label { font-size: 13px; }
    .input-side-title { font-size: 38px; }
    .input-side-desc { font-size: 15px; }
    .input-side-badge { font-size: 12px; }
    .input-form { gap: 32px; }
    .input-row { grid-template-columns: 1fr 1fr; gap: 36px; }
    .input-field-label { font-size: 13px; letter-spacing: 0.15em; margin-bottom: 14px; }
    .input-field input, .input-field select { font-size: 20px; padding: 16px 0; }
    .input-field .radio-group { gap: 50px; padding: 16px 0; }
    .input-field .radio-group label { font-size: 17px; gap: 12px; }
    .input-field .radio-group input[type="radio"] { width: 18px; height: 18px; }
    .info-box { padding: 18px 22px; font-size: 15px; }
    .btn-generate { padding: 22px 40px; font-size: 16px; }
    
    /* 로딩 */
    .loading { padding: 80px 20px; }
    .spinner { width: 50px; height: 50px; }
    
    /* 결과 */
    .result-section { padding: 40px 60px 80px 60px; }
    .result-header { padding-top: 44px; margin-bottom: 36px; }
    .result-section h3 { font-size: 26px; margin-top: 44px; }
    .title-list li { font-size: 18px; padding: 18px 0; }
    .meta-box { padding: 22px 26px; font-size: 17px; }
    .content-box { padding: 30px; font-size: 17px; }
    .faq-item .question { font-size: 17px; }
    .faq-item .answer { font-size: 16px; }
    .hashtags { font-size: 17px; }
    .image-prompt-card { padding: 26px; }
    .copy-prompt-btn { padding: 14px 22px; }
    .action-buttons button { padding: 18px; }
    
    /* 인증 */
    .auth-page { margin: 100px auto; padding: 0 60px; }
    .auth-box h1 { font-size: 48px; }
    .auth-box .subtitle { font-size: 17px; margin-bottom: 44px; }
    .form-group input { font-size: 19px; padding: 16px 0; }
    .submit-btn { padding: 20px; font-size: 15px; }
    .auth-links { gap: 20px; font-size: 15px; }
    
    /* 페이지 헤더 */
    .page-header { padding: 100px 0px 50px 0px; }
    .page-header-label { font-size: 13px; letter-spacing: 0.3em; margin-bottom: 22px; }
    .page-header h1 { font-size: 72px; }
    
    /* 히스토리 */
    .history-section { padding: 40px 0px 80px 0px; }
    .history-stat-card { padding: 32px 36px 32px 0; }
    .history-stat-card:nth-child(2) { padding-left: 36px; padding-right: 36px; }
    .history-stat-card:last-child { padding-left: 36px; padding-right: 0; }
    .history-stat-card .label { font-size: 12px; }
    .history-stat-card .value { font-size: 48px; }
    .search-bar input { font-size: 18px; }
    .year-header h2 { font-size: 28px; }
    .month-header h3 { font-size: 18px; }
    .month-group { padding-left: 26px; }
    .item-title { font-size: 17px; }
    .item-time-detail { font-size: 13px; }
    
    /* 마이페이지 */
    .info-card { padding: 36px 0; }
    .info-card h2 { font-size: 14px; margin-bottom: 28px; }
    .info-row { padding: 20px 0; }
    .info-label { font-size: 17px; }
    .info-value { font-size: 17px; }
    .action-btn { padding: 16px 32px; font-size: 14px; }
    
    /* 구독 상태 카드 */
    .subscription-status-card { padding: 36px 40px; gap: 40px; margin-bottom: 44px; }
    .sub-status-name { font-size: 32px; }
    .sub-status-right { min-width: 280px; }
    .usage-current { font-size: 36px; }
    .usage-separator { font-size: 24px; }
    .usage-limit { font-size: 24px; }
    .sub-cta-btn { padding: 14px 28px; }
    
    /* 가이드 */
    .guide-page { padding: 0 0px 80px 0px; }
    .guide-section { padding: 70px 0; }
    .guide-section-grid { grid-template-columns: 300px 1fr; gap: 70px; }
    .guide-section-side .step-num { font-size: 13px; }
    .guide-section-side h2 { font-size: 38px; }
    .guide-section-side p { font-size: 16px; }
    .guide-section-content { font-size: 17px; }
    .options-grid-new { gap: 24px; }
    .option-card-new { padding: 28px 0; }
    .option-card-new-title { font-size: 16px; }
    .option-card-new-desc { font-size: 15px; }
    .faq-item-new summary { font-size: 18px; padding: 28px 0; }
    .faq-item-new summary::after { font-size: 28px; }
    .faq-answer-new { font-size: 16px; padding-bottom: 28px; }
    .warning-card { padding: 28px 32px; margin: 36px 0; }
    .warning-card-title { font-size: 18px; }
    .warning-card-text { font-size: 15px; }
    .cta-new { padding: 90px 60px; margin-top: 70px; }
    .cta-new-label { font-size: 13px; margin-bottom: 22px; }
    .cta-new h2 { font-size: 64px; }
    .cta-new p { font-size: 18px; margin-bottom: 40px; }
    .cta-new-btn { padding: 20px 44px; font-size: 15px; }
    
    /* CTA 풀와이드 */
    .cta-fullwide { padding: 120px 60px; }
    .cta-fullwide .cta-new-label { font-size: 13px; }
    .cta-fullwide h2 { font-size: 80px; }
    .cta-fullwide p { font-size: 18px; margin-bottom: 40px; }
    .cta-fullwide .cta-new-btn { padding: 22px 50px; font-size: 15px; }
    
    /* 구독 페이지 */
    .subscribe-page { padding: 0 0px 80px 0px; }
    .price-cards-row { gap: 30px; margin: 40px 0; }
    .price-card-item { padding: 50px 40px; }
    .price-currency { font-size: 28px; }
    .price-number { font-size: 72px; }
    .price-period { font-size: 18px; }
    .price-desc { font-size: 16px; }
    .benefit-list li { font-size: 16px; }
    .trial-notice { padding: 24px 28px; gap: 20px; }
    .trial-content h3 { font-size: 18px; }
    .trial-content p { font-size: 14px; }
    .payment-section { padding: 60px 0; }
    .payment-section h2 { font-size: 14px; margin-bottom: 36px; }
    .payment-tab { padding: 18px 24px; font-size: 14px; }
    .payment-desc { font-size: 16px; margin-bottom: 32px; }
    .payment-summary { padding: 28px; margin-bottom: 28px; }
    .summary-row { padding: 12px 0; }
    .summary-row span { font-size: 15px; }
    .summary-row strong { font-size: 16px; }
    .summary-row .amount { font-size: 24px; }
    .pay-btn { padding: 22px; font-size: 16px; }
    .bank-info { padding: 32px; margin-bottom: 32px; }
    .bank-row { padding: 14px 0; }
    .bank-row strong { font-size: 17px; }
    .bank-row .amount { font-size: 22px; }
    .bank-guide { padding: 32px; }
    .bank-guide h3 { font-size: 18px; }
    .bank-guide ol li { font-size: 15px; }
    .faq-section { padding: 60px 0; }
    .faq-section h2 { font-size: 14px; margin-bottom: 36px; }
    
    /* 커뮤니티 페이지 - PC */
    .notice-page,
    .notice-detail,
    .notice-write,
    .faq-page,
    .faq-write,
    .qna-page,
    .qna-detail,
    .qna-write {
        padding: 50px 0px 80px 0px;
    }
    
    .notice-table th { padding: 20px; font-size: 13px; }
    .notice-table td { padding: 22px 20px; font-size: 16px; }
    .notice-detail-title { font-size: 36px; }
    .notice-detail-content { font-size: 17px; padding: 60px 0; line-height: 2; }
    .faq-question { font-size: 18px; }
    .faq-answer-page { font-size: 16px; padding-bottom: 36px; line-height: 2; }
    
    /* 푸터 */
    .footer { padding: 100px 60px 60px 60px; margin-top: 120px; }
    .footer-top { gap: 50px; margin-bottom: 60px; }
    .footer-brand { max-width: 400px; }
    .footer-logo { font-size: 42px; margin-bottom: 24px; }
    .footer-info { font-size: 17px; }
    .footer-section { min-width: 200px; }
    .footer-label { font-size: 14px; margin-bottom: 24px; }
    .footer-section li { margin-bottom: 14px; }
    .footer-section a { font-size: 17px; }
    .footer-bottom { padding-top: 36px; }
    .footer-copyright { font-size: 14px; }
    

    
}


@media (min-width: 1300px) {
    .content-with-sidebar { grid-template-columns: 1fr 380px !important; gap: 120px !important; padding: 0 20px !important; }
    .widget-sidebar { display: flex !important; flex-direction: column; gap: 24px; position: sticky; top: 100px; align-self: start; padding: 100px 30px 60px 0; }
}

@media (min-width: 1100px) and (max-width: 1299px) {
    .content-with-sidebar { grid-template-columns: 1fr !important; gap: 0 !important; padding: 0 !important; max-width: 1400px !important; margin: 0 auto !important; }
    .widget-sidebar { display: none !important; }
}






/* 관리자 페이지 (admin.html) */
.admin-page { max-width: 1400px; margin: 0 auto; padding: 30px 16px 40px 16px; }
.admin-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 30px; }
.admin-stat-card { background: white; border: 1px solid #ddd; padding: 20px; transition: all 0.2s; }
.admin-stat-card:hover { border-color: #000; }
.admin-stat-label { font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; margin-bottom: 10px; }
.admin-stat-value { font-family: 'Montserrat', sans-serif !important; font-size: 32px; font-weight: 800; color: #000; letter-spacing: -0.03em; line-height: 1; }
.admin-stat-value.accent { color: #e74c3c; }
.admin-quick-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 40px; }
.quick-action-card { background: white; border: 1px solid #ddd; padding: 24px 16px; text-align: center; text-decoration: none; color: #000; transition: all 0.2s; cursor: pointer; }
.quick-action-card:hover { background: #000; color: white; border-color: #000; }
.quick-action-icon { font-size: 32px; margin-bottom: 10px; }
.quick-action-label { font-family: 'Montserrat', sans-serif !important; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; }
.admin-section { padding: 30px 0; border-top: 1px solid #ddd; }
.admin-section-title { font-family: 'Montserrat', sans-serif !important; font-size: 13px; color: #999; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 700; margin-bottom: 20px; }
.admin-search-bar { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 24px; }
.admin-search-bar input { padding: 12px 14px; border: 1px solid #ddd; font-size: 14px; background: white; outline: none; transition: border-color 0.2s; }
.admin-search-bar input:focus { border-color: #e74c3c; }
.admin-search-bar select { padding: 12px 14px; border: 1px solid #ddd; font-size: 14px; background: white; outline: none; }
.admin-search-bar button { padding: 12px 20px; font-size: 13px; font-weight: 700; }
.admin-table-wrap { overflow-x: auto; border: 1px solid #ddd; }
.admin-table { width: 100%; border-collapse: collapse; min-width: 800px; }
.admin-table thead { background: #fafafa; border-bottom: 1px solid #ddd; }
.admin-table th { padding: 14px 12px; text-align: left; font-family: 'Montserrat', sans-serif !important; font-size: 11px; color: #999; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; white-space: nowrap; }
.admin-table tbody tr { border-bottom: 1px solid #ddd; transition: background 0.15s; }
.admin-table tbody tr:hover { background: #fafafa; }
.admin-table tbody tr:last-child { border-bottom: none; }
.admin-table td { padding: 16px 12px; font-size: 13px; color: #000; vertical-align: middle; }
.badge-subscribed { display: inline-block; background: #e74c3c; color: white; padding: 4px 10px; font-size: 11px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; }
.badge-free { display: inline-block; background: #f0f0f0; color: #666; padding: 4px 10px; font-size: 11px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; }
.badge-used { display: inline-block; background: #fff8e1; color: #92400e; padding: 4px 10px; font-size: 11px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; }
.badge-not-used { display: inline-block; background: #ecfdf5; color: #065f46; padding: 4px 10px; font-size: 11px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; }
.admin-action-btn { padding: 6px 12px; background: white; color: #000; border: 1px solid #000; cursor: pointer; font-family: 'Montserrat', sans-serif !important; font-size: 11px; font-weight: 700; letter-spacing: 0.05em; margin: 2px; transition: all 0.2s; white-space: nowrap; }
.admin-action-btn:hover { background: #000; color: white; }
.admin-action-btn.primary { background: #e74c3c; color: white; border-color: #e74c3c; }
.admin-action-btn.primary:hover { background: #c0392b; border-color: #c0392b; }
.admin-action-btn.danger { color: #dc2626; border-color: #dc2626; }
.admin-action-btn.danger:hover { background: #dc2626; color: white; }
.admin-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); z-index: 2000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.admin-modal-content { background: white; max-width: 500px; width: 100%; padding: 30px; max-height: 90vh; overflow-y: auto; }
.admin-modal-content h2 { font-size: 24px; font-weight: 800; color: #000; margin-bottom: 20px; letter-spacing: -0.02em; }
.admin-modal-info { background: #fafafa; padding: 20px; margin-bottom: 24px; }
.modal-info-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid #ddd; flex-wrap: wrap; gap: 10px; }
.modal-info-row:last-child { border-bottom: none; }
.modal-info-row span { color: #999; font-size: 13px; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; }
.modal-info-row strong { color: #000; font-size: 14px; font-weight: 700; }
.admin-modal-content .form-group { margin-bottom: 20px; }
.admin-modal-content select { width: 100%; padding: 12px 14px; border: 1px solid #ddd; font-size: 14px; background: white; outline: none; }
.admin-modal-content select:focus { border-color: #e74c3c; }
.admin-modal-actions { display: flex; gap: 10px; margin-top: 24px; }
.admin-modal-actions .action-btn { flex: 1; margin: 0; width: auto; }

@media (min-width: 768px) {
    .admin-page { padding: 40px 40px 60px 40px; }
    .admin-stats { grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 40px; }
    .admin-stat-card { padding: 24px; }
    .admin-stat-value { font-size: 40px; }
    .admin-quick-actions { grid-template-columns: repeat(4, 1fr); gap: 16px; }
    .quick-action-icon { font-size: 36px; }
    .quick-action-label { font-size: 13px; }
    .admin-search-bar { grid-template-columns: 1fr auto auto; gap: 14px; }
    .admin-table th { padding: 16px 14px; font-size: 12px; }
    .admin-table td { padding: 18px 14px; font-size: 14px; }
}

@media (min-width: 1100px) {
    .admin-page { padding: 50px 60px 80px 60px; }
    .admin-stat-card { padding: 30px; }
    .admin-stat-label { font-size: 12px; margin-bottom: 14px; }
    .admin-stat-value { font-size: 48px; }
    .quick-action-card { padding: 30px 20px; }
    .quick-action-icon { font-size: 40px; margin-bottom: 14px; }
    .quick-action-label { font-size: 14px; }
    .admin-section-title { font-size: 14px; margin-bottom: 24px; }
    .admin-table th { padding: 18px 16px; font-size: 12px; }
    .admin-table td { padding: 20px 16px; font-size: 15px; }
    .admin-action-btn { padding: 8px 14px; font-size: 12px; }
    .admin-modal-content { padding: 40px; max-width: 600px; }
    .admin-modal-content h2 { font-size: 28px; margin-bottom: 24px; }
}

.hamburger-btn { display: none; }

@media (max-width: 767px) {
    body { padding-top: 60px; }
    .top-header { padding: 14px 16px !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; gap: 0 !important; height: 60px; }
    .hamburger-btn { display: flex !important; flex-direction: column; justify-content: center; align-items: center; width: 40px; height: 40px; background: transparent; border: none; cursor: pointer; padding: 0; gap: 5px; z-index: 1001; }
    .hamburger-btn span { display: block; width: 22px; height: 2px; background: #000; transition: all 0.3s; }
    .hamburger-btn.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger-btn.active span:nth-child(2) { opacity: 0; }
    .hamburger-btn.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.header-logo { position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; font-size: 20px !important; display: flex !important; align-items: center !important; }
.header-logo img { height: 24px !important; width: auto !important; }
    .header-left { order: 0 !important; flex-direction: row !important; gap: 0 !important; padding: 0 !important; background: transparent !important; width: auto !important; border-bottom: none !important; position: static !important; align-items: center !important; }
    .header-right { order: 0 !important; width: auto !important; background: transparent !important; padding: 0 !important; border-bottom: none !important; flex-direction: row !important; gap: 14px !important; margin-left: 0 !important; }
    .header-right #guestArea { display: flex !important; align-items: center !important; gap: 14px !important; }
    .header-login { font-size: 12px !important; margin-right: 0 !important; white-space: nowrap; }
    .header-signup { padding: 8px 14px !important; font-size: 11px !important; white-space: nowrap; }
    .header-user { font-size: 12px !important; white-space: nowrap; max-width: 80px; overflow: hidden; text-overflow: ellipsis; }
    .header-logout { font-size: 11px !important; white-space: nowrap; }
    .header-nav { display: none !important; position: fixed !important; top: 60px !important; left: 0 !important; right: 0 !important; background: white !important; flex-direction: column !important; align-items: stretch !important; gap: 0 !important; padding: 0 !important; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important; z-index: 1000 !important; border-top: 1px solid #ddd; max-height: calc(100vh - 60px); overflow-y: auto; }
    .header-nav.open { display: flex !important; }
    .header-nav > a, .header-nav > .dropdown { padding: 16px 20px !important; border-bottom: 1px solid #f0f0f0; text-align: left !important; font-size: 16px !important; font-weight: 700 !important; margin: 0 !important; background: transparent !important; }
    .header-nav > a:hover { background: #fafafa !important; color: #e74c3c !important; }
    .header-nav > a.active::after { display: none !important; }
    .header-nav > a.subscribe-menu { background: #fef2f2 !important; color: #e74c3c !important; text-align: center !important; margin-top: 10px !important; border-radius: 0 !important; border-bottom: none !important; }
    .dropdown { padding: 0 !important; margin: 0 !important; }
    .dropdown > a { padding: 16px 20px !important; font-size: 16px !important; font-weight: 700 !important; border-bottom: 1px solid #f0f0f0; display: block !important; }
.dropdown-toggle::after { display: none !important; }
.dropdown-menu { display: block !important; position: static !important; background: #fafafa !important; border: none !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; transform: none !important; }
.dropdown-menu::before { display: none !important; }
    .dropdown-menu a { padding: 14px 40px !important; font-size: 14px !important; font-weight: 500 !important; color: #666 !important; text-align: left !important; border-bottom: 1px solid #eee !important; background: transparent !important; display: block !important; }
    .dropdown-menu a:hover { background: #f0f0f0 !important; color: #e74c3c !important; }
    .dropdown-menu a.active { color: #e74c3c !important; background: white !important; }
}

.history-item-content { background: #fafafa; border: 1px solid #ddd; margin-top: -12px; margin-bottom: 12px; }
.history-item-content-inner { padding: 24px; }
.history-item-meta { display: flex; gap: 20px; flex-wrap: wrap; font-size: 13px; color: #999; font-family: 'Montserrat', sans-serif !important; padding-bottom: 16px; border-bottom: 1px solid #ddd; }
.history-item-result { font-size: 14px; color: #000; line-height: 1.9; white-space: pre-wrap; word-break: break-word; padding: 20px 0; }
.history-item-actions { display: flex; gap: 10px; padding-top: 20px; border-top: 1px solid #ddd; flex-wrap: wrap; }
.history-item-actions .action-btn { padding: 12px 20px; font-size: 13px; width: auto; margin: 0; }

@media (min-width: 768px) {
    .history-item-content-inner { padding: 30px; }
    .history-item-result { font-size: 15px; }
}



.mobile-auth-toggle { display: none; }
.pc-auth-area { display: flex; align-items: center; }
.user-toggle-wrap { position: relative; }
.user-toggle-btn { display: flex; align-items: center; gap: 6px; background: transparent; border: 1px solid #ddd; padding: 6px 10px; cursor: pointer; border-radius: 0; font-family: 'Apple SD Gothic Neo', sans-serif; font-size: 12px; font-weight: 600; transition: all 0.2s; }
.user-toggle-btn:hover { background: #f5f5f5; border-color: #000; }
.user-toggle-btn.active { background: #000; color: white; border-color: #000; }
.user-toggle-btn.active .toggle-arrow { transform: rotate(180deg); }
.toggle-arrow { font-size: 9px; transition: transform 0.2s; }
.user-toggle-menu { display: none; position: absolute; top: calc(100% + 8px); right: 0; background: white; border: 1px solid #ddd; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); min-width: 200px; z-index: 1000; }
.user-toggle-menu.open { display: block; }
.user-menu-name { padding: 16px 20px; border-bottom: 1px solid #eee; font-size: 14px; font-weight: 700; color: #000; background: #fafafa; }
.user-menu-item { display: flex; align-items: center; gap: 10px; padding: 14px 20px; color: #333; text-decoration: none; font-size: 14px; font-weight: 500; border-bottom: 1px solid #f0f0f0; background: white; border-left: none; border-right: none; border-top: none; width: 100%; cursor: pointer; text-align: left; font-family: 'Apple SD Gothic Neo', sans-serif; }
.user-menu-item:hover { background: #f5f5f5; color: #e74c3c; }
.user-menu-item:last-child { border-bottom: none; }
.user-menu-item.logout { color: #e74c3c; }
.user-menu-item.logout:hover { background: #fef2f2; }

@media (max-width: 767px) {
    .pc-auth-area { display: none !important; }
    .mobile-auth-toggle { display: block !important; position: relative; }
}

@media (max-width: 767px) {
    .user-toggle-btn { padding:5px 16px !important; font-size: 14px !important; gap: 8px !important; min-width: 70px; justify-content: center; }
    .user-toggle-btn #userIcon { font-size: 16px; font-weight: 700; }
    .toggle-arrow { font-size: 11px !important; }
}


.social-divider { display: flex; align-items: center; text-align: center; margin: 30px 0; color: #999; font-size: 13px; }
.social-divider::before, .social-divider::after { content: ''; flex: 1; border-bottom: 1px solid #ddd; }
.social-divider span { padding: 0 16px; }
.google-btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 14px; background: white; border: 1px solid #ddd; cursor: pointer; font-family: 'Apple SD Gothic Neo', sans-serif; font-size: 15px; font-weight: 600; color: #333; transition: all 0.2s; }
.google-btn:hover { background: #f5f5f5; border-color: #000; }
.google-btn:disabled { opacity: 0.6; cursor: not-allowed; }


.mobile-auth-toggle { display: none !important; }
.pc-auth-area { display: flex !important; align-items: center; }
@media (max-width: 767px) {
    .pc-auth-area { display: none !important; }
    .mobile-auth-toggle { display: block !important; }
}

.hist-section-title { font-size: 13px; font-weight: 800; color: #e74c3c; margin: 20px 0 8px 0; font-family: 'Montserrat', sans-serif; letter-spacing: 0.05em; }
.hist-section-title:first-of-type { margin-top: 0; }



.qna-item { border: 1px solid #ddd; margin-bottom: 12px; background: white; }
.qna-item-head { display: flex; justify-content: space-between; align-items: center; padding: 18px 20px; cursor: pointer; gap: 16px; transition: background 0.15s; }
.qna-item-head:hover { background: #fafafa; }
.qna-item-info { display: flex; align-items: center; gap: 14px; min-width: 0; flex: 1; }
.qna-item-title { font-size: 15px; font-weight: 700; color: #000; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qna-item-date { font-family: 'Montserrat', sans-serif !important; font-size: 12px; color: #999; white-space: nowrap; flex-shrink: 0; }
.qna-status { display: inline-block; padding: 4px 10px; font-size: 11px; font-weight: 700; font-family: 'Montserrat', sans-serif !important; letter-spacing: 0.05em; flex-shrink: 0; }
.qna-status.answered { background: #ecfdf5; color: #065f46; }
.qna-status.waiting { background: #fff8e1; color: #92400e; }
.qna-item-body { padding: 0 20px 20px 20px; border-top: 1px solid #eee; }
.qna-question { padding: 20px 0; }
.qna-answer { padding: 20px 0; border-top: 1px dashed #ddd; }
.qna-answer-waiting { padding: 20px; background: #fafafa; color: #999; font-size: 14px; text-align: center; margin-top: 20px; border-top: 1px dashed #ddd; }
.qna-label { font-family: 'Montserrat', sans-serif !important; font-size: 13px; font-weight: 800; color: #e74c3c; margin-bottom: 12px; letter-spacing: 0.05em; }
.qna-text { font-size: 14px; line-height: 1.8; color: #000; white-space: pre-wrap; word-break: break-word; }


.footer {padding:30px 16px;margin-top:40px;border-top:1px solid #ddd;background:#f5f5f5}
.footer-inner {max-width:1400px;margin:0 auto;text-align:center}
.footer-info {font-size:13px;color:#666;line-height:1.8;margin-bottom:16px}
.footer-info a {color:#666;text-decoration:none}
.footer-policy {margin-bottom:12px}
.footer-policy a {color:#999;font-size:13px;margin:0 12px;text-decoration:none;font-family:'Montserrat',sans-serif;letter-spacing:0.05em}
.footer-policy a:hover {color:#000}
.footer-policy span {color:#ddd}
.footer-copyright {font-family:'Montserrat',sans-serif;font-size:11px;color:#999;letter-spacing:0.1em}


@media (max-width: 767px) {
    .notice-table .col-no {width:50px}
    .notice-table .col-date {width:80px;font-size:11px}
    .notice-table .col-views {display:none}
    .notice-table th.col-views {display:none}
    .notice-table .col-title {word-break:keep-all;word-wrap:break-word;white-space:normal}
    .notice-table td {padding:12px 8px;font-size:13px}
    .notice-table th {padding:12px 8px;font-size:11px}
}
