@charset "utf-8";

/* splash */
.splash {width: 100%; height: 100dvh; display: flex; justify-content: center; align-items: center; background: #fff;}
.splash img {width: 100%; height: 100%; object-fit: cover;}

/* layout */
.wrap {width: 100%; min-height: 100dvh; padding-top: 60px; padding-bottom: calc(60px + env(safe-area-inset-bottom));}
.wrap--login {display: flex; justify-content: center; align-items: center;}
.wrap--auth {padding-bottom: 0;}

main {padding: 20px 0;}
main.auth {padding-bottom: 0;}
.inner {max-width: 640px; width: 100%; padding: 0 20px; margin: 0 auto;}

/* HEADER */
.app-header {position: fixed; top: 0; left: 0; right: 0; height: 60px; display: flex; align-items: center; background: #fff; z-index: 1000;}
.app-header .inner {display: flex; align-items: center; gap: 16px; margin: 0 auto; position: relative;}
.btn-back {display: block; width: 24px; height: 24px; border: none; background: none; cursor: pointer;}
.page-title {font-size: 24px; font-weight: 700; line-height: 1.3; color: #1B1C1E; overflow: hidden; white-space: nowrap;  text-overflow: ellipsis;}

/* BOTTOM NAV */
.bottom-nav {position: fixed; left: 0; right: 0; bottom: 0; height: calc(60px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); display: flex; border-radius: 16px 16px 0 0; background: #FFF; box-shadow: 0 0 16px 0 rgba(0, 0, 0, 0.15); z-index: 100;}
.nav-item {flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px;}
.nav-item span {font-size: 11px; font-weight: 500; line-height: 1.3; color: #999; text-align: center;}
.nav-item.is-active span {background: var(--Primary-Gra, linear-gradient(180deg, #00ADEE 0%, #AED230 100%)); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;}
.nav-item .icon-active {display: none;}
.nav-item.is-active .icon-default {display: none;}
.nav-item.is-active .icon-active {display: block;}

/* 공통 */
.input {width: 100%; height: 52px; padding: 16px 20px; border: 1px solid #EEE; border-radius: 12px; font-size: 16px; line-height: 1.3 ; color: #222; background: #fff; outline: none;}
.input::placeholder {color: #B5B5B5;}
.input:focus {border-color: #32A6EB;}
.input--readonly {color: #999; pointer-events: none;}
.input.input--readonly:focus {border-color: #EEE;}

.btn {display: flex; justify-content: center; align-items: center; width: 100%; height: 52px; border-radius: 8px; font-size: 16px; font-weight: 700; border: none; cursor: pointer;}
.btn-primary {background: linear-gradient(94deg, #00ADEE 23.79%, #AED230 120.42%); color: #fff;}
.btn-submit.btn-primary {background: linear-gradient(94deg, #00ADEE 23.79%, #AED230 120.42%); color: #fff; cursor: pointer;}
.btn-cancle {border: 1px solid #999; background: rgba(248, 248, 248, 0.97); color: #999;}
.btn-small {width: auto; height: 32px; padding: 0 10px; font-size: 12px; font-weight: 600; line-height: 30px; letter-spacing: -0.24px; color: #32A6EB; border-radius: 8px; border: 1px solid rgba(50, 166, 235, 0.20); background: rgba(50, 166, 235, 0.10);}
.btn-small--gray {color: #666; border-radius: 8px; border: 1px solid #ccc; background: rgba(206, 220, 228, 0.10);;}
.btn:disabled {background: rgba(248, 248, 248, 0.97); color: #ccc; cursor: not-allowed;}
.btn.is-disabled {background: rgba(248, 248, 248, 0.97); color: #ccc; cursor: not-allowed;}
.btn-more--expand {width: 100%; height: 52px; display: flex; justify-content: center; align-items: center; gap: 4px; border-radius: 8px; background: #eee; font-size: 14px; font-weight: 500; line-height: 1.3; color: #444;}

/* 팝업 */
.dim {display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 1000;}
.modal {display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: #fff; width: calc(100% - 80px); max-width: 310px; border-radius: 32px; z-index: 1001; padding: 28px 20px 20px; text-align: center;}
.dim.is-active,
.modal.is-active {display: block;}
.modal-character {position: absolute; top: -96px; left: 50%; transform: translateX(-50%); z-index: 10;}
.modal-title {font-size: 20px; font-weight: 700; line-height: 1.4; letter-spacing: -0.4px; color: #1B1C1E; margin-bottom: 16px;}
.modal-desc {font-size: 14px; font-weight: 500; line-height: 1.3; color: #464646; margin-bottom: 24px;}
.modal-desc span {color: #00AEEF;}
.modal-footer .button-wrap {display: flex; gap: 8px;}
.modal-footer .button-wrap button {flex: 1;}

/* 체크박스 — sub.css 에서 옮겨왔다. 홈 팝업이 sub.css 를 로드하지 않는데 같은 모양이 필요하다. */
.check-wrap {display: flex; justify-content: center; gap: 8px; cursor: pointer; margin-bottom: 24px;}
.check-wrap input {display: none;}
.check-icon svg circle {fill: #ccc; transition: .2s;}
.check-wrap input:checked + .check-icon svg circle {fill: #00AEEF;}
.check-wrap .check-text {font-size: 14px; font-weight: 500; line-height: 1.3; color: #4B4B4B; text-align: left; text-decoration-line: underline; text-underline-offset: 3px;}

/* 홈 팝업 (SB v1.9 p.10)
   가로는 고정, 세로는 내용에 따라 늘어나고 한계를 넘으면 본문만 스크롤된다.

   ⚠️ 가로를 공통 .modal(310px)보다 넓게 잡는다 — 기획 검증 요청(2026-09-03).
   이미지형 팝업에서 사진이 너무 작게 보였는데, 좁은 폭 자체보다 <b>안쪽 여백이 이중</b>인 것이 컸다.
   288px 기준으로 모달 패딩 18*2 + 본문 패딩 6*2 = 48px 가 빠져 이미지에 남는 폭이 240px 뿐이었다.
   폭을 올리면서 그 이중 여백도 함께 줄여, 같은 화면에서 이미지 가용 폭이 240 -> 308px 가 된다.
   width 도 같이 덮어야 한다 — 공통 규칙의 calc(100% - 80px)가 390px 화면에서 310px 로 먼저 걸린다. */
.modal--home-popup {width: calc(100% - 40px); max-width: 340px; border-radius: 29px; padding: 24px 16px 18px;}
.modal--home-popup .popup-body {max-height: 60vh; padding: 0 2px; overflow-y: auto; -webkit-overflow-scrolling: touch;
    font-size: 14px; font-weight: 400; line-height: 20px; color: #454B51;}
.modal--home-popup .popup-footer {margin-top: 30px;}
.modal--home-popup .check-wrap {justify-content: flex-end; align-items: center; margin-bottom: 12px;}
.modal--home-popup .check-text {font-weight: 400; line-height: 18px; letter-spacing: -0.28px; color: #6B6B6B; text-decoration-line: none;}

/* 본문은 BO 웹에디터 HTML 이다. reset.css 가 문단 여백·목록 마커·링크 밑줄·제목 크기를 전부
   지우므로, 여기서 되살리지 않으면 에디터로 잡은 서식이 하나도 안 보인다. */
.modal--home-popup .popup-body p + p {margin-top: 8px;}
.modal--home-popup .popup-body h1,
.modal--home-popup .popup-body h2 {font-size: 20px; font-weight: 700; line-height: 1.3; color: #000; margin-bottom: 10px;}
.modal--home-popup .popup-body h3,
.modal--home-popup .popup-body h4 {font-size: 16px; font-weight: 700; line-height: 1.3; color: #000; margin-bottom: 8px;}
.modal--home-popup .popup-body ul,
.modal--home-popup .popup-body ol {margin: 8px 0; padding-left: 20px; text-align: left;}
.modal--home-popup .popup-body ul {list-style: disc;}
.modal--home-popup .popup-body ol {list-style: decimal;}
.modal--home-popup .popup-body a {color: #00AEEF; text-decoration: underline;}
.modal--home-popup .popup-body strong,
.modal--home-popup .popup-body b {font-weight: 700;}
/* 이미지형 — 팝업 가로에 맞춰 자동 조정(SB p.10 ⑤) */
.modal--home-popup .popup-body img {max-width: 100%; height: auto;}