@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 {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-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;}