/* 내집 검토 — 밝고 모던한 라이트 디자인. 데스크톱(사이드바) / 모바일(하단 탭) 반응형.
   Pretendard 로컬 내장. 나열은 콤마, 불릿·중점 미사용. */
@font-face{
  font-family:"Pretendard";
  src:url("PretendardVariable.woff2") format("woff2-variations");
  font-weight:45 920;font-display:swap;
}
:root{
  --bg:#f5f7fb;          /* 밝은 배경 */
  --surface:#ffffff;
  --tint:#eef2ff;        /* 브랜드 연한 틴트 */
  --ink:#1a2233;
  --muted:#6b7688;
  --line:#e9edf4;
  --brand:#3b64f5;       /* 밝은 모던 블루 */
  --brand-ink:#2647c9;
  --ok:#0ea36b; --warn:#e08a1e; --bad:#e5484d;
  --r:18px;
  --shadow:0 1px 2px rgba(20,30,60,.04), 0 8px 24px rgba(20,30,60,.06);
  --shadow-sm:0 1px 2px rgba(20,30,60,.05);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg)}
body{
  font-family:"Pretendard","Apple SD Gothic Neo",system-ui,sans-serif;
  color:var(--ink); -webkit-font-smoothing:antialiased; letter-spacing:-.01em;
  min-height:100vh;
}

/* 상단바 */
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);
  padding:14px 22px;padding-top:calc(14px + env(safe-area-inset-top));
}
.brand{font-weight:800;font-size:18px;display:flex;align-items:center;gap:8px}
.brand .logo{font-size:20px}
.who{font-size:12px;color:var(--muted)}

/* 셸 레이아웃 */
.shell{max-width:1080px;margin:0 auto;display:flex;gap:28px;padding:0 22px}
.sidebar{display:none}
.view{flex:1;min-width:0;padding:22px 0 40px;max-width:720px;margin:0 auto}

/* 데스크톱: 좌측 사이드바 내비, 하단 탭 숨김 */
@media (min-width:860px){
  .sidebar{display:flex;flex-direction:column;width:220px;flex:0 0 220px;padding-top:26px;position:sticky;top:64px;height:max-content}
  .sidenav{display:flex;flex-direction:column;gap:4px}
  .nav{display:flex;align-items:center;gap:11px;background:none;border:none;border-radius:12px;
    font-family:inherit;font-size:15px;font-weight:600;color:var(--muted);padding:11px 13px;cursor:pointer;text-align:left}
  .nav .ico{font-size:17px}
  .nav:hover{background:var(--surface)}
  .nav.active{background:var(--tint);color:var(--brand-ink)}
  .sidenote{margin-top:22px;padding:15px 16px;font-size:13px;line-height:1.66;color:#54607a;
    background:var(--tint);border:1px solid #dfe6fb;border-radius:14px}
  .sidenote strong{display:block;color:var(--ink);font-weight:800;font-size:13.5px;margin-bottom:6px}
  .tabbar{display:none}
  body{padding-bottom:0}
  .view{padding:28px 0 60px}
}
@media (max-width:859px){ body{padding-bottom:calc(66px + env(safe-area-inset-bottom))} }

/* 카드 */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:22px;margin-bottom:16px;box-shadow:var(--shadow-sm)}
.card.hero{background:linear-gradient(180deg,var(--tint),var(--surface));border-color:#dfe6fb}
.card h2{margin:0 0 8px;font-size:19px;font-weight:800}
.card p.sub{margin:0 0 16px;color:var(--muted);font-size:14px;line-height:1.62}

/* 버튼·입력 (터치 타깃 ≥44px) */
button,.btn{font-family:inherit;font-size:15px;font-weight:700;border:none;border-radius:13px;
  min-height:50px;padding:0 20px;cursor:pointer;transition:transform .05s, background .15s, box-shadow .15s}
button:active{transform:scale(.985)}
.btn-primary{background:var(--brand);color:#fff;width:100%;box-shadow:0 6px 16px rgba(59,100,245,.28)}
.btn-primary:hover{background:var(--brand-ink)}
.btn-primary:disabled{opacity:.45;box-shadow:none}
.btn-ghost{background:var(--surface);color:var(--brand-ink);border:1px solid var(--line)}
.btn-ghost:hover{background:var(--tint)}
textarea,input[type=text]{width:100%;font-family:inherit;font-size:15px;padding:13px 14px;border:1px solid var(--line);
  border-radius:13px;background:#fbfcfe;color:var(--ink);min-height:50px;transition:border .15s, box-shadow .15s}
textarea:focus,input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px rgba(59,100,245,.12)}
textarea{min-height:96px;resize:vertical;line-height:1.55}

/* 업로드 드롭존 */
.drop{border:1.5px dashed #c8d3ef;border-radius:var(--r);padding:30px 20px;text-align:center;color:var(--muted);
  margin-bottom:16px;background:#fbfcff;transition:.15s;cursor:pointer}
.drop:hover{border-color:var(--brand);background:var(--tint)}
.drop strong{color:var(--ink);font-size:16px}
.filelist{list-style:none;padding:0;margin:12px 0 0;font-size:13px}
.filelist li{padding:8px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--ink)}

/* 진행 표시 */
.steps{display:flex;gap:6px;margin:14px 0}
.steps .s{flex:1;height:7px;border-radius:99px;background:var(--line)}
.steps .s.done{background:var(--ok)}
.steps .s.now{background:var(--brand);animation:pulse 1.1s infinite}
@keyframes pulse{50%{opacity:.4}}
.phase{font-size:13px;color:var(--muted);text-align:center}

/* 리포트 뷰어 */
.report-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.report-wrap iframe{width:100%;border:0;min-height:72vh;background:#fff}
.report-actions{display:flex;gap:10px;padding:14px}

/* 배지 */
.badge{display:inline-block;padding:4px 11px;border-radius:99px;font-size:12px;font-weight:700}
.badge.ok{background:color-mix(in srgb,var(--ok) 14%,#fff);color:var(--ok)}
.badge.warn{background:color-mix(in srgb,var(--warn) 16%,#fff);color:var(--warn)}
.badge.bad{background:color-mix(in srgb,var(--bad) 14%,#fff);color:var(--bad)}

/* 상담 */
.chat{display:flex;flex-direction:column;gap:11px;margin-bottom:16px}
.msg{max-width:82%;padding:12px 15px;border-radius:17px;font-size:14.5px;line-height:1.58;white-space:pre-wrap}
.msg.me{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:5px}
.msg.ai{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:5px;box-shadow:var(--shadow-sm)}
.composer{display:flex;gap:9px;align-items:stretch;position:sticky;bottom:calc(74px + env(safe-area-inset-bottom))}
.composer textarea{flex:1;min-height:50px}
.composer button{flex:0 0 auto;white-space:nowrap;min-width:84px}
@media (min-width:860px){ .composer{bottom:16px} }

/* 도면 성립성·재검산 라인 */
.flagline{padding:10px 13px;margin-top:7px;border-radius:11px;background:var(--tint);border:1px solid #e2e8fb;
  font-size:13.5px;line-height:1.55;color:var(--ink)}
.flagline.warn{background:color-mix(in srgb,var(--warn) 10%,#fff);border-color:color-mix(in srgb,var(--warn) 30%,#fff)}

/* 입력 필드 라벨·도움말 */
.field-label{display:block;font-size:13.5px;font-weight:700;color:var(--ink);margin:0 0 4px}
.field-label span{font-weight:500;color:var(--muted)}
.field-help{margin:0 0 8px;font-size:12.5px;line-height:1.55;color:var(--muted)}

/* 기록 */
.hitem{display:flex;justify-content:space-between;align-items:center;padding:16px;border:1px solid var(--line);
  border-radius:15px;margin-bottom:11px;background:var(--surface);box-shadow:var(--shadow-sm)}
.hitem .t{font-weight:700;font-size:15px}
.hitem .d{font-size:12.5px;color:var(--muted);margin-top:2px}
.empty{color:var(--muted);text-align:center;padding:48px 0}

/* 하단 탭바 (모바일) */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;
  font-size:21px;color:var(--muted);min-height:66px;padding:9px 0}
.tab span{font-size:11px;font-weight:700}
.tab.active{color:var(--brand)}

.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%);background:var(--ink);color:#fff;
  padding:11px 18px;border-radius:99px;font-size:13px;z-index:30;opacity:0;transition:.2s;box-shadow:var(--shadow)}
.toast.show{opacity:1}
@media (min-width:860px){ .toast{bottom:28px} }
