/* ============================================================
   app.css — AllTrails 스타일 5탭 앱 (Blog / Chat / Trip / Trade / Profile)
   모바일 우선 + 데스크톱 중앙 컬럼. base.css 위에 로드됨.
   ============================================================ */
:root{
  --app-bg:#ffffff;
  --app-page:#f3f4f6;        /* 데스크톱 바깥 배경 */
  --app-ink:#1b1b1d;         /* 본문/제목 */
  --app-ink-soft:#6f7276;    /* 지역 등 보조 텍스트 */
  --app-ink-faint:#9b9ea3;   /* 날짜 등 흐린 텍스트 */
  --app-line:#e7e8ea;        /* 경계선 */
  --app-chip-line:#dcdee1;
  --app-field:#f0f1f2;       /* 검색바 배경 */
  --app-accent:#2f8f4e;      /* 포인트 그린 (활성 탭/포인트) */
  --app-like:#ff3b5c;        /* 좋아요 활성 */
  --app-shadow:0 1px 3px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.05);
  --app-col:480px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{
  font-family:'Inter','Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;
  background:var(--app-page);
  color:var(--app-ink);
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}

/* ===== 앱 셸 ===== */
.app{
  position:relative;
  max-width:var(--app-col);
  margin:0 auto;
  min-height:100vh;
  min-height:100dvh;
  background:var(--app-bg);
  display:flex;
  flex-direction:column;
}
@media (min-width:520px){
  .app{
    min-height:calc(100vh - 32px);
    margin:16px auto;
    border-radius:24px;
    overflow:hidden;
    box-shadow:var(--app-shadow);
  }
}

/* ===== 상단 영역 (헤더 + 검색바 + 카테고리) ===== */
.app__top{
  position:sticky;top:0;z-index:20;
  background:var(--app-bg);
  padding-top:max(10px,env(safe-area-inset-top));
  border-bottom:1px solid transparent;
  transition:border-color .2s;
}
.app__top.is-stuck{border-bottom-color:var(--app-line);}
.app__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 18px 10px;
}
.app__brand{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--app-ink);}
.app__brand span{color:var(--app-accent);}
.app__head-btn{
  width:38px;height:38px;border-radius:50%;border:none;background:var(--app-field);
  display:grid;place-items:center;color:var(--app-ink);cursor:pointer;
}

/* 검색바 */
.search{padding:2px 16px 12px;}
.search__field{
  display:flex;align-items:center;gap:10px;
  height:46px;padding:0 16px;border-radius:23px;background:var(--app-field);
}
.search__field svg{flex:0 0 auto;color:var(--app-ink-soft);}
.search__field input{
  flex:1;min-width:0;border:none;background:transparent;outline:none;
  font-size:16px;color:var(--app-ink);font-family:inherit;
}
.search__field input::placeholder{color:var(--app-ink-faint);}
.search__clear{
  border:none;background:transparent;color:var(--app-ink-faint);
  font-size:18px;cursor:pointer;padding:4px;display:none;
}
.search__clear.is-on{display:block;}

/* 카테고리 칩 */
.chips{
  display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;
  padding:2px 16px 14px;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;cursor:grab;
}
.chips.is-grabbing{cursor:grabbing;}
.chips.is-grabbing .chip{pointer-events:none;}
.chips::-webkit-scrollbar{display:none;}
.chip{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;
  height:38px;padding:0 15px;border-radius:20px;
  border:1.5px solid var(--app-chip-line);background:var(--app-bg);
  font-size:14px;font-weight:600;color:#3d4043;cursor:pointer;white-space:nowrap;
  font-family:inherit;
  transition:border-color .15s,color .15s,background .15s;
}
.chip svg{width:16px;height:16px;}
.chip.is-active{border-color:var(--app-ink);color:var(--app-ink);background:#fff;}

/* ===== 피드 (스크롤 영역) ===== */
.feed{
  flex:1 1 auto;overflow-y:auto;
  padding:6px 16px calc(84px + env(safe-area-inset-bottom));
  -webkit-overflow-scrolling:touch;
}

/* 포스팅 카드 */
.card{margin-bottom:22px;display:block;}
.card__media{
  position:relative;width:100%;aspect-ratio:4/3;border-radius:16px;overflow:hidden;
  background:#e9eaec;
}
.card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background-size:cover;background-position:center;}
.card__img--empty{display:grid;place-items:center;color:#c4c6ca;
  background:linear-gradient(160deg,#eef0f2,#dfe2e6);}
.card__img--empty svg{width:48px;height:48px;}
/* 좋아요 버튼 (우상단, 북마크 대체) */
.card__like{
  position:absolute;top:12px;right:12px;
  height:38px;padding:0 6px;
  display:inline-flex;align-items:center;gap:5px;
  border:none;border-radius:20px;background:rgba(255,255,255,.92);
  box-shadow:0 2px 8px rgba(0,0,0,.18);cursor:pointer;color:var(--app-ink);
  backdrop-filter:blur(4px);font-family:inherit;
}
.card__like svg{width:22px;height:22px;display:block;}
.card__like .heart-fill{display:none;color:var(--app-like);}
.card__like.is-liked .heart-fill{display:block;}
.card__like.is-liked .heart-line{display:none;}
.card__like-count{
  font-size:13px;font-weight:700;min-width:8px;text-align:center;padding-right:4px;
}
.card__like.is-liked .card__like-count{color:var(--app-like);}

.card__title{
  margin:11px 2px 0;font-size:17px;font-weight:700;letter-spacing:-.01em;
  color:var(--app-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.card__region{
  margin:3px 2px 0;font-size:14px;color:var(--app-ink-soft);
  display:flex;align-items:center;gap:4px;
}
.card__region svg{width:13px;height:13px;flex:0 0 auto;color:var(--app-ink-faint);}
.card__date{margin:3px 2px 0;font-size:13px;color:var(--app-ink-faint);font-variant-numeric:tabular-nums;}

/* 빈 상태 */
.empty{display:none;text-align:center;color:var(--app-ink-faint);padding:60px 20px;font-size:15px;}
.empty.is-on{display:block;}
.feed__empty{text-align:center;color:var(--app-ink-faint);padding:80px 20px;font-size:15px;}

/* ===== 하단 5탭 ===== */
.tabbar{
  flex:0 0 auto;position:sticky;bottom:0;z-index:20;
  display:flex;background:var(--app-bg);border-top:1px solid var(--app-line);
  padding-bottom:env(safe-area-inset-bottom);
}
.tab{
  flex:1;border:none;background:transparent;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:9px 0 8px;color:var(--app-ink-faint);font-family:inherit;
}
.tab svg{width:24px;height:24px;}
.tab span{font-size:11px;font-weight:600;letter-spacing:-.01em;}
.tab.is-active{color:var(--app-accent);}

/* ===== 상세 페이지 ===== */
.detail-scroll{
  flex:1 1 auto;overflow-y:auto;
  padding-bottom:calc(84px + env(safe-area-inset-bottom));
  -webkit-overflow-scrolling:touch;
}
.detail__bar{
  position:sticky;top:0;z-index:20;background:var(--app-bg);
  display:flex;align-items:center;gap:10px;
  padding:max(10px,env(safe-area-inset-top)) 12px 10px;
  border-bottom:1px solid var(--app-line);
}
.detail__back{
  width:38px;height:38px;border-radius:50%;border:none;background:var(--app-field);
  display:grid;place-items:center;color:var(--app-ink);cursor:pointer;flex:0 0 auto;
}
.detail__bar-title{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.detail__hero{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#e9eaec;}
.detail__body{padding:18px 18px 8px;}
.detail__cat{
  display:inline-block;font-size:12px;font-weight:700;color:var(--app-accent);
  background:rgba(47,143,78,.1);padding:4px 10px;border-radius:12px;margin-bottom:10px;
}
.detail__title{font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.3;margin:0 0 8px;}
.detail__region{font-size:15px;color:var(--app-ink-soft);display:flex;align-items:center;gap:5px;margin:0 0 3px;}
.detail__region svg{width:15px;height:15px;color:var(--app-ink-faint);}
.detail__date{font-size:13px;color:var(--app-ink-faint);font-variant-numeric:tabular-nums;margin:0 0 6px;}
.detail__meta-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--app-line);margin-bottom:16px;}
.detail__like{
  display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--app-chip-line);
  background:#fff;border-radius:20px;height:38px;padding:0 14px;cursor:pointer;
  font-family:inherit;font-weight:700;font-size:14px;color:var(--app-ink);
}
.detail__like svg{width:20px;height:20px;}
.detail__like .heart-fill{display:none;color:var(--app-like);}
.detail__like.is-liked{border-color:var(--app-like);color:var(--app-like);}
.detail__like.is-liked .heart-fill{display:block;}
.detail__like.is-liked .heart-line{display:none;}
.detail__author{font-size:13px;color:var(--app-ink-faint);}
.detail__content{font-size:16px;line-height:1.75;color:#2a2c2f;}
.detail__content p{margin:0 0 16px;}
.detail__content img,
.detail__content .landing_browser_detail_image{max-width:100%;height:auto;border-radius:12px;display:block;}
.detail__content figure,
.detail__content .landing_browser_detail_figure{margin:0 0 18px;}
.detail__content figcaption,
.detail__content .landing_browser_detail_caption{font-size:13px;color:var(--app-ink-faint);text-align:center;margin-top:6px;}

/* 댓글 */
.comments{padding:20px 18px 0;border-top:8px solid #f4f5f6;margin-top:8px;}
.comments__title{font-size:16px;font-weight:800;margin:0 0 14px;}
.comment{padding:12px 0;border-bottom:1px solid var(--app-line);}
.comment__head{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.comment__name{font-size:14px;font-weight:700;}
.comment__date{font-size:12px;color:var(--app-ink-faint);}
.comment__del{margin-left:auto;border:none;background:transparent;color:var(--app-ink-faint);font-size:12px;cursor:pointer;}
.comment__body{font-size:14px;line-height:1.6;color:#3a3c3f;white-space:pre-wrap;word-break:break-word;}
.comment-form{display:flex;gap:8px;padding:14px 0 4px;}
.comment-form textarea{
  flex:1;min-width:0;border:1px solid var(--app-chip-line);border-radius:12px;
  padding:10px 12px;font-family:inherit;font-size:14px;resize:vertical;min-height:44px;max-height:160px;outline:none;
}
.comment-form button{
  flex:0 0 auto;border:none;border-radius:12px;background:var(--app-accent);color:#fff;
  font-family:inherit;font-weight:700;font-size:14px;padding:0 16px;cursor:pointer;
}
.comments__login{font-size:14px;color:var(--app-ink-faint);padding:12px 0;}
.comments__login a{color:var(--app-accent);font-weight:700;}

/* ===== 스텁 탭 (준비 중) ===== */
.stub{flex:1 1 auto;overflow-y:auto;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;
  padding:40px 24px calc(84px + env(safe-area-inset-bottom));gap:14px;}
.stub__icon{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;
  background:var(--app-field);color:var(--app-ink-soft);}
.stub__icon svg{width:36px;height:36px;}
.stub__title{font-size:22px;font-weight:800;margin:0;}
.stub__desc{font-size:15px;color:var(--app-ink-soft);margin:0;line-height:1.6;max-width:280px;}
.stub__link{margin-top:6px;font-size:14px;font-weight:700;color:var(--app-accent);
  border:1.5px solid var(--app-accent);border-radius:20px;padding:9px 20px;}

/* ===== 프로필 미니 ===== */
.profile-box{display:flex;flex-direction:column;align-items:center;gap:10px;}
.profile-box .stub__desc strong{color:var(--app-ink);}
