/* 챙김 디자인 토큰 — 시안 v3 단일 소스 (mockup_v3.html과 동일 값) */
:root {
  --brand:#0E7A5F; --brand-dark:#0A5C47; --brand-light:#EAF6F1; --brand-mid:#CBE8DC;
  --ink:#1A221E; --body:#3A4540; --muted:#6F8078; --line:#D9E7DF; --bg:#EDF5F0; --card:#FFFFFF;
  --warn:#B3372B; --warn-bg:#FBEEEC; --check:#B8860B; --check-bg:#FCF6E6;
  --r-card:16px; --r-chip:8px; --r-btn:12px;
  --sh-1:0 1px 3px rgba(20,40,33,.06); --sh-2:0 6px 18px rgba(14,122,95,.14);
  --t-fast:150ms ease; --t-base:220ms ease;
}
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--bg); color:var(--body); font-family:'Noto Sans KR','Pretendard',-apple-system,sans-serif; font-size:15px; line-height:1.65; word-break:keep-all; }
a { color:inherit; text-decoration:none; }
.wrap { max-width:860px; margin:0 auto; padding:0 16px; }
/* 공통 셸 */
.nav { background:var(--card); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10; }
.nav-in { max-width:860px; margin:0 auto; padding:10px 16px; display:flex; align-items:center; gap:18px; }
.nav img.logo { height:38px; width:auto; display:block; }
.nav .tagline { font-size:12px; color:var(--muted); }
.nav .menu { margin-left:auto; display:flex; gap:14px; align-items:center; }
.nav .menu a { font-size:14px; font-weight:600; color:var(--muted); transition:color var(--t-fast); }
.nav .menu a.on, .nav .menu a:hover { color:var(--brand-dark); }
.btn { display:inline-block; border:0; cursor:pointer; border-radius:var(--r-btn); padding:11px 18px; font-weight:700; font-size:14.5px; font-family:inherit; transition:background var(--t-fast); }
.btn.pri { background:var(--brand); color:#fff; } .btn.pri:hover { background:var(--brand-dark); }
.btn.sec { background:var(--card); color:var(--brand-dark); border:1.5px solid var(--brand-mid); }
.btn.dis { background:var(--line); color:var(--muted); pointer-events:none; }
/* 히어로 */
.hero { background:linear-gradient(155deg,#0E7A5F,#0A5C47); color:#fff; padding:56px 0 48px; }
.hero h1 { font-size:clamp(24px,5vw,34px); font-weight:900; line-height:1.45; letter-spacing:-.01em; }
.hero p { margin:14px 0 22px; opacity:.9; max-width:560px; }
.hero .btn.pri { background:#fff; color:var(--brand-dark); }
.vals { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin:26px auto; }
.val { background:var(--card); border:1px solid var(--line); border-radius:var(--r-card); padding:18px; box-shadow:var(--sh-1); }
.val b { display:block; color:var(--ink); margin-bottom:4px; }
.val span { font-size:13.5px; color:var(--muted); }
/* 카드 */
.mcard { background:var(--card); border:1px solid var(--line); border-radius:var(--r-card); padding:16px; margin-bottom:12px; box-shadow:var(--sh-1); display:block; transition:box-shadow var(--t-base), transform var(--t-base); }
.mcard:hover { box-shadow:var(--sh-2); transform:translateY(-2px); }
.mcard.hot { border:1.5px solid var(--brand); }
.chiprow { display:flex; gap:7px; align-items:center; flex-wrap:wrap; margin-bottom:7px; }
.chip { font-size:12px; font-weight:700; border-radius:var(--r-chip); padding:2.5px 9px; }
.chip.fit { background:var(--brand); color:#fff; }
.chip.mid { background:var(--brand-mid); color:var(--brand-dark); }
.chip.dday { background:var(--warn-bg); color:var(--warn); }
.chip.org { background:#E4F0E9; color:#56695F; border:1px solid var(--line); }
.mtitle { font-size:16px; font-weight:700; color:var(--ink); line-height:1.5; }
.mmeta { font-size:13px; color:var(--muted); margin-top:3px; }
/* 판정 */
.pill { font-size:12.5px; font-weight:800; border-radius:999px; padding:3px 12px; white-space:nowrap; }
.pill.ok { background:var(--brand-light); color:var(--brand-dark); }
.pill.no { background:var(--warn-bg); color:var(--warn); }
.pill.need { background:var(--check-bg); color:var(--check); }
.check-item { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:13px 15px; margin-bottom:10px; }
.ck-head { display:flex; justify-content:space-between; align-items:center; gap:8px; font-weight:700; color:var(--ink); font-size:14.5px; }
.ck-ev { margin-top:7px; font-size:13px; color:var(--muted); background:var(--bg); border-left:3px solid var(--brand-mid); padding:8px 11px; border-radius:0 8px 8px 0; }
.verdict { background:var(--brand-light); border:1px solid var(--brand-mid); border-radius:12px; padding:13px 15px; font-weight:600; color:var(--brand-dark); margin:14px 0; }
.warnbox { background:var(--check-bg); border-radius:10px; padding:11px 14px; font-size:13px; color:#6b5300; margin:12px 0; }
/* 채팅(온보딩) */
.chat { display:flex; flex-direction:column; gap:10px; padding:18px 0; min-height:50vh; }
.bub { max-width:85%; padding:11px 14px; border-radius:14px; font-size:14.5px; }
.bub.ai { background:var(--card); border:1px solid var(--line); color:var(--ink); border-top-left-radius:4px; align-self:flex-start; }
.bub.me { background:var(--brand); color:#fff; border-top-right-radius:4px; align-self:flex-end; }
.quickrow { display:flex; gap:7px; flex-wrap:wrap; }
.quick { border:1.5px solid var(--brand-mid); color:var(--brand-dark); background:var(--card); border-radius:999px; padding:7px 14px; font-size:13.5px; font-weight:600; cursor:pointer; font-family:inherit; }
.inputbar { position:sticky; bottom:0; background:var(--bg); padding:12px 0 18px; display:flex; gap:8px; }
.inputbar input { flex:1; background:var(--card); border:1px solid var(--line); border-radius:999px; padding:12px 18px; font-size:14.5px; font-family:inherit; color:var(--ink); }
.empty { text-align:center; padding:34px 16px; color:var(--muted); background:var(--card); border:1.5px dashed var(--line); border-radius:var(--r-card); }
.empty b { display:block; color:var(--body); margin-bottom:4px; }
.section-title { font-size:17px; font-weight:800; color:var(--ink); margin:22px 0 10px; }
.section-title small { display:block; font-weight:500; color:var(--muted); font-size:12.5px; }
.profile-tags { display:flex; flex-wrap:wrap; gap:6px; margin:6px 0; }
.tag { background:#E4F0E9; border:1px solid var(--line); color:#56695F; font-size:12px; border-radius:6px; padding:2px 9px; }
footer { padding:30px 0 40px; text-align:center; color:var(--muted); font-size:12.5px; }

/* ---- 공고 달력 ---- */
.cal-head { display:flex; align-items:center; gap:14px; margin:14px 0 10px; }
.cal-ym { font-size:19px; font-weight:800; }
.cal-nav { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:10px; border:1px solid var(--line); background:var(--card); color:var(--brand-dark); text-decoration:none; font-size:13px; }
.cal-nav:hover { background:var(--brand-tint); }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-dow { text-align:center; font-size:12px; font-weight:700; color:var(--muted); padding:6px 0; }
.cal-cell { min-height:86px; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:6px; overflow:hidden; }
.cal-cell.empty { background:transparent; border-color:transparent; }
.cal-cell.today { border-color:var(--brand); box-shadow:0 0 0 2px var(--brand-tint); }
.cal-date { font-size:12px; font-weight:700; color:var(--muted); margin-bottom:4px; }
.cal-cell.today .cal-date { color:var(--brand-dark); }
.cal-chip { display:block; font-size:11px; line-height:1.3; padding:3px 6px; margin-bottom:3px; border-radius:7px; background:var(--brand-tint); color:var(--brand-dark); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-chip.hot { background:var(--brand); color:#fff; font-weight:700; }
.cal-more { font-size:11px; color:var(--muted); }
@media (max-width:640px){ .cal-cell{min-height:58px;padding:4px} .cal-chip{font-size:0;padding:0;height:6px;border-radius:3px} .cal-date{margin-bottom:2px} }

/* ---- 공통 푸터 ---- */
.site-footer { border-top:1px solid var(--line); margin-top:40px; padding:26px 0 36px; color:var(--muted); font-size:12.5px; }
.site-footer .foot-in { max-width:1040px; margin:0 auto; padding:0 20px; }
.site-footer .foot-links { margin-bottom:10px; }
.site-footer .foot-links a { color:var(--text); font-weight:700; text-decoration:none; margin-right:14px; }
.site-footer .foot-links a:hover { color:var(--brand-dark); }
.site-footer .biz { line-height:1.8; }
.policy-body { max-width:760px; margin:0 auto; padding:10px 20px 40px; line-height:1.75; font-size:14.5px; }
.policy-body h2 { font-size:17px; margin:26px 0 8px; }
.policy-body li { margin:4px 0 4px 18px; list-style:disc; }

/* ---- FAQ·공지 ---- */
.faq-item { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:14px 18px; margin:10px 0; }
.faq-item summary { font-weight:700; cursor:pointer; }
.faq-item p { margin-top:10px; color:var(--text); }
