/* Route01 — Apple-inspired UI (design-md/apple DESIGN.md + preview.html tokens) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --pure-black:#000000;
  --ink:#1d1d1f;
  --ink2:#424245;
  --ink3:#6e6e73;
  --gray-80:rgba(0,0,0,0.8);
  --gray-48:rgba(0,0,0,0.48);
  --bg:#f5f5f7;
  --bg2:#ffffff;
  --bg3:#e8e8ed;
  --filter-bg:#fafafc;
  --white:#ffffff;
  --brand-main:#8B1A1A;
  --brand-main-press:#721616;
  --brand-point:#1a3a6e;
  --brand-point-press:#152d58;
  --apple-blue:var(--brand-point);
  --apple-blue-press:var(--brand-point-press);
  --cta:var(--brand-main);
  --cta-press:var(--brand-main-press);
  --link-blue:var(--brand-point);
  --link-blue-dark:#2a4a8a;
  --border:#d2d2d7;
  --border2:#c7c7cc;
  --pri:var(--brand-main);
  --accent:var(--brand-point);
  --r:8px;
  --r-lg:12px;
  --r-panel:18px;
  --shadow-sm:0 1px 2px rgba(0,0,0,.06);
  --shadow-md:rgba(0,0,0,0.22) 3px 5px 30px 0px;
  --shadow-card:0 4px 24px rgba(0,0,0,.06);
  --ring-blue:0 0 0 3px rgba(26,58,110,0.22);
  --ring-dark:0 0 0 2px rgba(255,255,255,0.2);
  --ease:cubic-bezier(.2,.8,.2,1);
  --nav-glass:rgba(0,0,0,0.8);
  --font-display:'Inter',-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-text:'Inter',-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  --font-sans:var(--font-text);
}
body{
  font-family:var(--font-text);
  background:var(--bg);
  color:var(--ink);
  min-height:100vh;
  display:flex;
  flex-direction:column;
  font-size:17px;
  font-weight:400;
  line-height:1.47;
  letter-spacing:-0.374px;
  -webkit-font-smoothing:antialiased;
}

/* shared */
:where(button,input,textarea){font-family:inherit}
:where(button){-webkit-tap-highlight-color:transparent}
:where(button:focus-visible,input:focus-visible,textarea:focus-visible){outline:none;box-shadow:var(--ring-blue)}
#app :where(button:focus-visible,input:focus-visible,textarea:focus-visible){box-shadow:var(--ring-blue)}
#auth :where(.auth-btn:focus-visible){box-shadow:0 0 0 3px rgba(26,58,110,0.35)}

.brand-name{font-family:var(--font-display);font-weight:700;letter-spacing:-0.03em}
.brand-sub{font-size:13px;color:var(--ink3);font-family:var(--font-text);margin-left:2px;font-weight:400}
.brand-sub--header{font-size:12px}

/* AUTH — light canvas + Apple CTAs */
#auth{
  position:fixed;inset:0;z-index:2000;
  background:var(--bg);
  display:flex;align-items:stretch;justify-content:center;
  padding:0;
  overflow:hidden;isolation:isolate
}
#auth.hidden{display:none}
/* auth-shell legacy removed */
/* auth-card legacy removed */
.auth-hero{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  width:100%;
}
.brand-logo{display:block;object-fit:contain;width:auto}
.brand-logo--header{height:40px}
.brand-logo--auth,.brand-logo--onboard{height:80px}
.brand-logo--auth{
  height:80px;
  width:auto;
  display:block;
  background:transparent;
  margin:0 auto
}
.auth-kicker{
  margin:4px auto 12px auto;
  padding:0;
  font-size:15px;
  color:#86868b;
  font-weight:500;
  letter-spacing:0.5px;
  text-align:center;
  text-transform:none;
  white-space:nowrap;
  word-break:normal;
  max-width:100%;
  line-height:1.2;
  width:100%;
  box-sizing:border-box;
  display:block;
}
.auth-title{
  margin-top:0;
  font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;
  font-size:clamp(28px,8vw,34px);
  font-weight:800;
  color:#1d1d1f;
  line-height:1.1;
  letter-spacing:-1px;
  word-break:normal;
  width:100%;
  max-width:none !important;
  padding:0;
  box-sizing:border-box;
  text-align:center;
  white-space:normal;
  overflow:visible;
  margin:0 auto 24px auto;
  display:block;
}
.auth-sub{display:none}
.auth-bullets{
  margin-top:28px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px;
  width:100%;
  max-width:100%;
  padding:0 4px;
  box-sizing:border-box
}
.auth-pill{
  font-size:12px;
  font-weight:500;
  color:var(--gray-80);
  background:var(--filter-bg);
  border:1px solid rgba(0,0,0,0.08);
  padding:6px 14px;
  border-radius:980px;
  white-space:nowrap;
}
.auth-actions{
  margin-top:28px;
  display:flex;
  flex-direction:column;
  gap:10px;
  width:100%;
  max-width:100%;
  padding:0 20px;
  box-sizing:border-box
}
.auth-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:12px 22px;border-radius:980px;
  border:1px solid transparent;
  background:var(--white);
  cursor:pointer;
  font-size:17px;font-weight:400;
  color:var(--ink);
  border-color:var(--border);
  transition:opacity .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease);
  width:100%;
  max-width:100%;
  box-sizing:border-box
}
.auth-btn:hover{opacity:.92;border-color:#86868b;background:var(--filter-bg)}
.auth-btn.primary{
  background:var(--cta);
  border-color:var(--cta);
  color:#fff
}
.auth-btn.primary:hover{opacity:.92;background:var(--cta-press);border-color:var(--cta-press)}
.auth-btn.secondary{font-size:15px;font-weight:400;color:var(--gray-80);background:var(--white)}
.auth-note{
  margin-top:2rem;
  font-size:12px;
  font-weight:400;
  color:var(--gray-48);
  line-height:1.43;
  letter-spacing:-0.12px;
  word-break:keep-all;
  width:100%;
  max-width:100%;
  padding:0 20px;
  box-sizing:border-box
}
.auth-footer{
  margin-top:1.25rem;
  padding-top:1.25rem;
  border-top:1px solid var(--border);
  font-size:11px;
  font-weight:500;
  color:var(--ink3);
  letter-spacing:0.02em;
  text-align:center;
  width:100%;
  max-width:100%;
  padding-left:20px;
  padding-right:20px;
  box-sizing:border-box
}
#auth .auth-hero-anim{opacity:0;transform:translateY(12px);will-change:opacity,transform}
#auth .auth-hero-anim.auth-hero-visible{opacity:1;transform:none;transition:opacity .62s var(--ease),transform .62s var(--ease)}
#auth p.auth-hero-sub.auth-hero-visible{transition-delay:95ms}
@media (max-width:480px){.auth-actions{gap:8px}}
@media (prefers-reduced-motion:reduce){.auth-btn{transition:none}#auth .auth-hero-anim,#auth .auth-hero-anim.auth-hero-visible{opacity:1;transform:none;transition:none}}

/* Auth0 설정 모달 */
#auth0-modal .auth0-field-label{font-size:12px;font-weight:600;color:var(--ink3);text-transform:none;letter-spacing:0;margin-bottom:6px;display:block}
#auth0-modal .auth0-flat-input{
  width:100%;border:1px solid var(--border);border-radius:var(--r);padding:10px 14px;
  font-size:17px;font-family:var(--font-text);background:#fff;color:var(--ink);
  outline:none;transition:border-color .15s,box-shadow .15s;margin-bottom:0;
  letter-spacing:-0.374px
}
#auth0-modal .auth0-flat-input:focus{border-color:var(--apple-blue);box-shadow:var(--ring-blue)}
#auth0-modal .auth0-flat-input::placeholder{color:#aeaeb2}
#auth0-modal .auth0-hint{font-size:12px;color:var(--gray-48);line-height:1.43;margin:10px 0 18px;word-break:break-all;letter-spacing:-0.12px}
#auth0-modal .modal-btn.pri{background:var(--cta);color:#fff;border-color:var(--cta)}
#auth0-modal .modal-btn.pri:hover{opacity:.92;background:var(--cta-press);border-color:var(--cta-press)}
#auth0-modal .modal-btn:not(.pri){background:#fff;border:1px solid var(--border);color:var(--ink)}
#auth0-modal .modal-btn:not(.pri):hover{border-color:#86868b;background:var(--filter-bg)}

/* ONBOARDING */
#onboarding{position:fixed;inset:0;z-index:1000;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;animation:fadeIn .4s ease}
#onboarding .modal-close{color:var(--ink3)}
#onboarding.hidden{display:none}
@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ob-card{
  background:var(--white);border:1px solid rgba(0,0,0,0.06);border-radius:var(--r-panel);
  padding:2.5rem 2.75rem;width:100%;max-width:560px;
  box-shadow:var(--shadow-md);max-height:calc(100vh - 4rem);overflow:auto
}
.ob-logo{font-family:var(--font-display);font-size:21px;font-weight:600;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:1.75rem;letter-spacing:-0.02em}
.ob-logo-text{display:flex;flex-direction:column;gap:4px}
.ob-logo-slogan-main{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-0.02em;word-spacing:0.18em}
.ob-logo-slogan-sub{font-size:13px;font-weight:400;color:var(--gray-80);line-height:1.4;letter-spacing:-0.12px}
.ob-card::-webkit-scrollbar{width:8px}
.ob-card::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:8px;border:2px solid transparent;background-clip:content-box}
.ob-card::-webkit-scrollbar-track{background:transparent}
.ob-title{font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1.14;letter-spacing:0.196px;margin-bottom:.5rem;color:var(--ink)}
.ob-sub{font-size:14px;color:var(--gray-80);margin-bottom:1.75rem;line-height:1.43;letter-spacing:-0.224px}
.ob-steps{display:flex;gap:6px;margin-bottom:1.75rem}
.ob-step{height:3px;border-radius:2px;flex:1;background:var(--bg3);transition:background .3s}
.ob-step.done{background:var(--brand-point)}
.ob-section{display:none;animation:fadeIn .3s ease}
.ob-section.active{display:block}
.ob-label{font-size:14px;font-weight:700;letter-spacing:-0.1px;text-transform:none;color:var(--ink);margin-bottom:6px;display:block}
.ob-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:1.25rem}
.ob-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:1.25rem}
.ob-chip{
  border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;cursor:pointer;text-align:center;
  font-size:13px;font-weight:500;color:var(--ink2);background:var(--white);
  transition:border-color .15s,background .15s;user-select:none;letter-spacing:-0.224px
}
.ob-chip:hover{border-color:#86868b;background:var(--filter-bg)}
.ob-chip.sel{border-color:var(--brand-point);background:rgba(26,58,110,0.08);color:var(--ink);font-weight:600}
.ob-chip .em{display:block;font-size:18px;margin-bottom:4px}
.ob-input{
  width:100%;border:1px solid var(--border);border-radius:var(--r);padding:10px 14px;
  font-size:17px;font-family:var(--font-text);background:var(--white);color:var(--ink);
  outline:none;transition:border-color .15s,box-shadow .15s;margin-bottom:1.25rem;
  letter-spacing:-0.374px
}
.ob-input:focus{border-color:var(--brand-point);box-shadow:var(--ring-blue)}
.ob-textarea{height:80px;resize:none;line-height:1.47}
.ob-btn-row{display:flex;gap:8px;margin-top:1rem}
.ob-btn{
  padding:10px 22px;border-radius:var(--r);border:1px solid var(--border);
  font-size:17px;font-weight:400;cursor:pointer;
  transition:opacity .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease)
}
.ob-btn:hover{opacity:.92}
.ob-btn.sec{background:var(--white);color:var(--ink2)}
.ob-btn.sec:hover{border-color:#86868b;background:var(--filter-bg)}
.ob-btn.pri{background:var(--cta);color:#fff;border-color:var(--cta);flex:1}
.ob-btn.pri:hover{opacity:.92;background:var(--cta-press);border-color:var(--cta-press)}
.ob-btn:disabled{opacity:.4;cursor:not-allowed}
.ob-skip{font-size:12px;color:var(--link-blue);text-align:center;margin-top:1rem;cursor:pointer;text-decoration:none}
.ob-skip:hover{text-decoration:underline}
.ind-tag{
  display:inline-flex;align-items:center;padding:6px 12px;border-radius:980px;border:1px solid var(--border);
  background:var(--white);font-size:12px;color:var(--ink2);cursor:pointer;
  transition:border-color .12s,background .12s;user-select:none;font-family:var(--font-text);
  letter-spacing:-0.12px
}
.ind-tag:hover{border-color:#86868b;background:var(--filter-bg);color:var(--ink)}
.ind-tag.sel{border-color:var(--brand-point);background:var(--brand-point);color:#fff;font-weight:600}
.ind-tag-other{border-style:dashed;}
.ind-tag-other.sel{background:var(--cta);border-color:var(--cta);border-style:solid;color:#fff;}

/* APP — dark glass header (Apple nav) */
#app{display:none;flex-direction:column;height:100vh;position:relative}
#app.visible{display:flex}
header{
  background:var(--nav-glass);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(255,255,255,0.08);
  padding:0 max(1.25rem,env(safe-area-inset-right)) 0 max(1.25rem,env(safe-area-inset-left));
  height:48px;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  position:sticky;top:0;z-index:100;flex-shrink:0
}
.logo{font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-0.02em;display:flex;align-items:center;gap:8px;color:#fff}
.brand-logo--header{height:32px;}
.logo-tagline{
  display:flex;flex-direction:column;gap:1px;
  margin-left:10px;white-space:nowrap;justify-content:center;
}
.logo-tagline::before{display:none}
/* AI STARTUP ADVISORY — 자간 좁게, 작게 (웰컴화면 ws-slogan-main 동일) */
.logo-slogan-main{
  font-size:9.5px;font-weight:700;
  color:rgba(255,255,255,0.55);
  letter-spacing:-0.04em;
  word-spacing:0.18em;
  text-transform:uppercase;
  line-height:1.1;
}
/* Finding your Route — 더 크게, 이탤릭 (웰컴화면 ws-slogan-sub 동일) */
.logo-slogan-sub{
  font-size:12.5px;font-weight:600;
  color:#c0392b;
  font-style:italic;
  letter-spacing:-0.02em;
  line-height:1.15;
}
@media (max-width:720px){.logo-tagline{display:none}}
.header-center{display:flex;justify-content:center;align-items:center;cursor:pointer}
.header-profile-name{
  font-size:12px;font-weight:400;color:#fff;
  padding:5px 12px;border-radius:980px;
  border:1px solid rgba(255,255,255,0.2);
  background:rgba(255,255,255,0.1);
  transition:background .15s,border-color .15s;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;
  letter-spacing:-0.08px
}
.header-center:hover .header-profile-name{background:rgba(255,255,255,0.16);border-color:rgba(255,255,255,0.35)}
.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.style-btn{
  display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:980px;
  border:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.08);
  cursor:pointer;font-size:12px;font-weight:400;color:rgba(255,255,255,0.92);
  transition:background .15s,border-color .15s
}
.style-btn:hover{background:rgba(255,255,255,0.14);border-color:rgba(255,255,255,0.28)}
.style-btn .chev{opacity:.7;font-weight:600}
.style-btn.danger{border-color:rgba(255,69,58,0.45);background:rgba(255,69,58,0.12);color:#ffccc7}

/* 헤더 홈 아이콘 버튼 */
.home-icon-btn {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 9px;
  color: rgba(255,255,255,0.85);
  cursor: pointer;
  transition: background .15s, color .15s;
  flex-shrink: 0;
}
.home-icon-btn:hover {
  background: rgba(255,255,255,0.22);
  color: #fff;
}
.style-btn.danger:hover{border-color:rgba(255,69,58,0.6);background:rgba(255,69,58,0.2)}
.key-btn{
  display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:980px;
  border:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.08);
  cursor:pointer;font-size:12px;font-weight:400;color:rgba(255,255,255,0.92);
  transition:background .15s,border-color .15s;margin-left:auto
}
.key-btn:hover{background:rgba(255,255,255,0.14)}
.key-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.key-dot-on{background:#30d158}
.key-dot-off{background:#ff9f0a}
.app-body{display:flex;flex:1;overflow:hidden}

/* SIDEBAR */
aside{width:272px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}
.s-top{flex:1;overflow-y:auto;padding:1rem 1rem 1.25rem}
.s-label{font-size:11px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase;color:var(--gray-48);padding:0 10px;margin-bottom:8px;display:block}
.d-btn{
  display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:var(--r);border:none;background:none;width:100%;
  text-align:left;cursor:pointer;font-family:var(--font-text);font-size:14px;color:var(--ink2);
  transition:background .12s;margin-bottom:2px;letter-spacing:-0.224px
}
.d-btn:hover{background:var(--bg)}
.d-btn.active{background:rgba(26,58,110,0.08);color:var(--ink);font-weight:600}
.d-ico{
  width:28px;height:28px;border-radius:var(--r);background:var(--bg);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  color:var(--ink2)
}
.d-ico .domain-svg{display:block;width:17px;height:17px;flex-shrink:0}
.d-btn.active .d-ico{background:rgba(26,58,110,0.12);color:var(--apple-blue)}
.d-btn-grant .d-ico{background:var(--cta);color:#fff}
.d-btn-grant .d-ico .domain-svg{width:16px;height:16px}
.d-btn-grant{
  margin-top:12px;padding-top:10px;border-radius:var(--r-lg);
  border:1px solid var(--border);background:var(--white);font-weight:600;color:var(--ink)
}
.d-btn-grant:hover{background:var(--filter-bg)}
.d-btn-grant .d-sub{display:block;font-size:11px;font-weight:400;color:var(--ink3);margin-top:2px;letter-spacing:-0.08px}
.grant-field{margin-bottom:1.1rem}
.grant-field-label{font-size:12px;font-weight:600;color:var(--ink);display:block;margin-bottom:6px;letter-spacing:-0.12px}
.grant-field-hint{font-size:12px;color:var(--gray-80);margin-bottom:8px;line-height:1.43;letter-spacing:-0.224px}
.grant-add-btn{
  display:inline-flex;align-items:center;padding:6px 14px;border-radius:980px;
  border:1px solid var(--border);background:var(--white);font-size:13px;font-weight:400;
  cursor:pointer;margin-bottom:8px;font-family:var(--font-text);color:var(--link-blue)
}
.grant-add-btn:hover{background:rgba(26,58,110,0.06);border-color:rgba(26,58,110,0.35)}
.grant-list{min-height:0;margin-bottom:4px}
.s-divider{height:1px;background:var(--border);margin:10px 0}
.pop-wrap{padding:0 1rem 1.25rem}
.pop-title{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--gray-48);padding:0 8px;margin-bottom:8px;display:block}
.pop-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:var(--r);cursor:pointer;transition:background .12s;border:none;background:none;width:100%;text-align:left;font-family:var(--font-text)}
.pop-item:hover{background:var(--bg)}
.pop-rank{min-width:18px;height:18px;border-radius:4px;background:var(--bg2);color:var(--ink3);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.pop-rank.top{background:var(--bg);color:var(--ink)}
.pop-text{font-size:12px;color:var(--ink2);line-height:1.4;letter-spacing:-0.12px}
.pop-cnt{font-size:10px;color:var(--ink3);margin-top:2px}
.pop-empty{font-size:12px;color:var(--gray-48);padding:8px 10px;line-height:1.43}

/* MAIN */
main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.d-bar{
  background:var(--bg2);border-bottom:1px solid var(--border);
  padding:1rem 1.75rem;display:flex;align-items:center;gap:14px;flex-shrink:0
}
.d-bar-icon{
  width:40px;height:40px;border-radius:var(--r);background:var(--bg);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  color:var(--ink)
}
.d-bar-icon .domain-svg{width:21px;height:21px;display:block}
.d-bar-info h2{font-family:var(--font-display);font-size:21px;font-weight:600;line-height:1.19;letter-spacing:0.231px;margin-bottom:2px;color:var(--ink)}
.d-bar-info p{font-size:14px;color:var(--gray-80);line-height:1.43;letter-spacing:-0.224px}
.d-bar-badges{margin-left:auto;display:flex;gap:8px}
.p-badge{background:var(--bg);border:1px solid rgba(0,0,0,0.06);border-radius:var(--r);padding:8px 12px}
.p-badge-style .pb-label{color:var(--ink3)}
.p-badge-style .pb-info{color:var(--ink)}
.pb-label{color:var(--ink3);font-weight:600;font-size:11px;letter-spacing:0;text-transform:none;margin-bottom:2px}
.pb-info{color:var(--ink);font-size:12px;font-weight:600;letter-spacing:-0.08px}

/* CHAT */
.chat{flex:1;overflow-y:auto;padding:2rem 1.75rem 1.75rem;display:flex;flex-direction:column;gap:1.5rem;background:var(--bg)}
.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;text-align:center;gap:1.25rem;padding:2rem}
.w-title{font-family:var(--font-display);font-size:40px;font-weight:600;line-height:1.1;letter-spacing:-0.28px;color:var(--ink)}
.w-title em{font-style:normal;font-weight:600;color:var(--ink)}
.w-title-row{display:inline-flex;align-items:center;justify-content:center;gap:0.55rem;flex-wrap:wrap;text-align:left}
.w-title-ico{display:inline-flex;align-items:center;color:var(--apple-blue)}
.w-title-ico .domain-svg{width:36px;height:36px;display:block}
.w-sub{font-size:17px;color:var(--gray-80);max-width:480px;line-height:1.47;letter-spacing:-0.374px}
.p-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:560px}
.p-card{
  background:var(--bg2);border:1px solid rgba(0,0,0,0.06);border-radius:var(--r-lg);padding:14px 16px;cursor:pointer;text-align:left;
  font-family:var(--font-text);transition:border-color .15s,box-shadow .15s,background .15s
}
.p-card:hover{border-color:rgba(26,58,110,0.35);box-shadow:var(--shadow-sm)}
.p-tag{font-size:11px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase;color:var(--gray-48);margin-bottom:6px}
.p-text{font-size:13px;color:var(--ink);line-height:1.43;letter-spacing:-0.224px}
.message{display:flex;gap:10px;align-items:flex-start}
.message.user-msg{flex-direction:row-reverse;justify-content:flex-start}
.m-av{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;margin-top:2px}
.m-av.ai{background:var(--bg2);color:var(--ink);display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,0.06)}
.m-av.ai .m-av-logo{width:22px;height:22px;object-fit:contain;display:block}
.m-av.user{background:var(--brand-point);color:#fff;font-weight:600}
.m-body{flex:1;min-width:0}
.m-body.user-body{flex:0 1 auto;max-width:72%;min-width:0;text-align:right}
.m-name{font-size:11px;font-weight:600;color:var(--ink3);margin-bottom:8px;letter-spacing:0.02em;text-transform:uppercase}
.m-bubble{
  background:#fff;border:1px solid rgba(0,0,0,0.06);border-radius:var(--r);padding:14px 16px;
  font-family:var(--font-text);font-size:14px;line-height:1.47;letter-spacing:-0.224px;
  color:var(--ink);box-shadow:var(--shadow-sm)
}
.m-bubble.u{background:var(--brand-point);color:#fff;border-color:transparent;text-align:left}
.report-card{
  background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  border:1px solid rgba(0,0,0,0.06);overflow:hidden;max-width:860px
}
.report-card .report-bubble{
  background:transparent;border:none;border-radius:0;box-shadow:none;
  padding:1.35rem 1.5rem 1.25rem;
  font-family:var(--font-text);font-size:14px;line-height:1.47;letter-spacing:-0.224px;color:var(--ink)
}
.report-card .report-bubble p{margin:0 0 1rem}
.report-card .report-bubble p:last-child{margin-bottom:0}
.report-card .report-bubble h1,.report-card .report-bubble h2,.report-card .report-bubble h3{
  font-family:var(--font-display);color:var(--ink);font-weight:600;line-height:1.2;margin:.75rem 0 .5rem;letter-spacing:-0.02em
}
.report-card .report-bubble h1{font-size:21px}
.report-card .report-bubble h2{font-size:17px}
.report-card .report-bubble h3{font-size:15px}
.report-card .report-bubble strong{font-weight:600;color:var(--ink)}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) :is(ul, ol){
  margin:.5rem 0 .7rem;
  margin-left:0;
  padding-left:2rem !important;
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) li{
  list-style-position:outside !important;
  padding-left:.5rem;
  margin-bottom:.5rem;
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) ul{
  list-style-type:disc !important;
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) ol{
  list-style-type:decimal !important;
}
/* 과거 커스텀 불릿/체크박스/색상(빨강/초록) 잔재를 차단 */
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) li::before,
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) li::after{
  content:none !important;
  display:none !important;
}
/* 마커 색상은 회색으로 고정(ul/ol 공통) */
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) :is(ul,ol) > li::marker{
  color:var(--ink3) !important;
  font-variant-numeric:tabular-nums;
}
/* 중첩 리스트: 단계마다 1.5rem씩 추가 들여쓰기 */
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) li > :is(ul, ol){
  margin-top:.35rem;
  margin-bottom:.35rem;
  margin-left:1.5rem;
}
:is(.chat-msg-text, .report-card .report-bubble, .hist-block-body--answer) li > p{
  margin:0 0 .35em;
  color:var(--ink);
}
:is(.chat-msg-text, .report-card .report-bubble, .hist-block-body--answer) li > p:last-child{margin-bottom:0}
:is(.chat-msg-text, .report-card .report-bubble, .hist-block-body--answer) li > p:only-child{
  display:inline;
  vertical-align:top;
}
:is(.chat-msg-text, .report-card .report-bubble, .hist-block-body--answer) blockquote :is(ul, ol){
  margin:.35rem 0;
}

/* 답변 내 표 — Apple 자문 리포트 톤 */
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) table{
  width:100%;
  margin:.85rem 0;
  border-collapse:collapse;
  border:1px solid var(--border);
  border-radius:var(--r);
  overflow:hidden;
  font-size:13px;
  background:var(--bg2);
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) th,
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) td{
  padding:10px;
  border:1px solid var(--border);
  vertical-align:top;
  text-align:left;
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) th{
  text-align:center !important;
  background:var(--bg);
  color:var(--ink);
  font-size:12px;
  font-weight:600;
  letter-spacing:-0.06em;
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) td:first-child{
  text-align:center !important;
  font-weight:600;
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) td{
  color:var(--ink);
  background:var(--bg2);
  line-height:1.5;
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) tbody tr:nth-child(even) td{
  background:rgba(245,245,247,.55);
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) tbody tr:hover td{
  background:var(--bg3);
}
:where(.chat-msg-text, .report-bubble, .hist-block-body--answer) caption{
  caption-side:top;
  text-align:left;
  font-weight:600;
  color:var(--ink2);
  font-size:12px;
  margin:0 0 .45rem;
  letter-spacing:-0.02em;
}
.nachim-hr{
  border:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(0,0,0,.14), transparent);
  margin:14px 0;
}
.report-card .answer-actions{margin-top:0;padding:0 1.5rem 1.25rem;background:#fff}
.m-bubble code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Apple SD Gothic Neo","Malgun Gothic","맑은 고딕",system-ui,sans-serif;font-size:12.5px;background:var(--bg);border:1px solid var(--border);padding:1px 6px;border-radius:6px;font-style:normal;line-height:inherit;vertical-align:baseline;white-space:normal;word-break:keep-all}
.m-bubble pre{margin:.75rem 0;padding:12px 14px;border-radius:var(--r-lg);background:var(--bg);color:var(--ink);overflow:auto;border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Apple SD Gothic Neo","Malgun Gothic","맑은 고딕",system-ui,sans-serif;font-size:13.5px;font-style:normal;line-height:1.55}
.m-bubble pre code{background:transparent;border:none;padding:0;color:inherit;font-family:inherit;font-style:normal;font-size:inherit;font-weight:400}
.m-bubble hr{border:none;height:1px;background:var(--border);margin:1rem 0}
.m-bubble a{color:var(--link-blue);text-decoration:none}
.m-bubble a:hover{text-decoration:underline}
.m-bubble table{width:100%;margin:.75rem 0;border-collapse:collapse;border:1px solid #e6e8ee;border-radius:var(--r);overflow:hidden}
.m-bubble th,.m-bubble td{padding:12px 14px;border:1px solid #e6e8ee;vertical-align:top}
.m-bubble th{background:var(--brand-main);color:#fff;font-size:12px;font-weight:600;text-align:center;white-space:nowrap;letter-spacing:-0.08px}
.m-bubble caption{caption-side:top;text-align:center;font-weight:600;color:var(--ink);margin:0 0 .5rem;font-size:13px}
.m-bubble td{font-size:13px;color:var(--ink);line-height:1.47;letter-spacing:-0.224px}
.m-bubble tbody tr:nth-child(even) td{background:var(--bg)}
.m-bubble tbody tr:hover td{background:var(--bg3)}
.m-bubble blockquote{margin:.85rem 0;padding:12px 14px;border-left:3px solid var(--apple-blue);background:var(--bg);border-radius:0 var(--r) var(--r) 0;color:var(--ink2);font-size:13.5px;line-height:1.47}
.dots{display:flex;gap:4px;padding:4px 0}
.dots span{width:5px;height:5px;border-radius:50%;background:var(--ink3);animation:bounce 1.1s infinite}
.dots span:nth-child(2){animation-delay:.18s}
.dots span:nth-child(3){animation-delay:.36s}
@keyframes bounce{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-5px);opacity:1}}

/* INPUT */
.input-area{
  background:rgba(255,255,255,.9);
  border-top:1px solid var(--border);
  padding:1rem 1.75rem 1.25rem;flex-shrink:0;
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  position:sticky;bottom:0;z-index:220
}
.input-area-inner{
  max-width:860px;
  margin:0 auto;
  width:100%;
}
.domain-banner{margin:0 0 10px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg2);padding:12px 14px;box-shadow:var(--shadow-sm)}
.domain-banner .db-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.domain-banner .db-left{min-width:240px}
.domain-banner .db-title{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-0.224px;margin-bottom:2px}
.domain-banner .db-desc{font-size:13px;color:var(--gray-80);line-height:1.43}
.domain-banner .db-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.domain-banner .db-btn{
  display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:980px;
  border:1px solid var(--border);background:#fff;font-size:12px;font-weight:400;color:var(--ink);
  cursor:pointer;transition:opacity .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease)
}
.domain-banner .db-btn:hover{opacity:.92;border-color:#86868b;background:var(--filter-bg)}
.domain-banner .db-btn.primary{background:var(--cta);border-color:var(--cta);color:#fff}
.domain-banner .db-btn.primary:hover{opacity:.88;color:#fff}
.domain-banner .db-btn.ghost{background:transparent}
.input-row{display:flex;gap:8px;align-items:flex-end}
.chat-in{
  flex:1;border:1px solid var(--border);border-radius:var(--r);background:var(--bg2);
  min-height:44px;padding:10px 14px;font-size:17px;color:var(--ink);resize:none;outline:none;
  line-height:22px;max-height:120px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease);
  pointer-events:auto;letter-spacing:-0.374px
}
.chat-in:focus{border-color:var(--apple-blue);box-shadow:var(--ring-blue)}
.chat-in::placeholder{color:var(--gray-48)}
.send{
  width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--r);
  background:var(--cta);border:1px solid var(--cta);cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:opacity .15s var(--ease);box-sizing:border-box
}
.send:hover{opacity:.88}
.send:disabled{opacity:.35;cursor:not-allowed}
.send svg{width:18px;height:18px;fill:#fff}
.hint{font-size:12px;color:var(--gray-48);margin-top:8px;display:flex;flex-wrap:wrap;gap:12px;letter-spacing:-0.12px}

/* MODAL */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:2500;display:none;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(4px)}
#terms-modal{z-index:3000;}
.modal-bg.open{display:flex}
.modal{
  background:var(--bg2);border-radius:var(--r-lg);padding:1.75rem 2rem;width:420px;max-width:92vw;max-height:85vh;overflow-y:auto;
  box-shadow:var(--shadow-md);border:1px solid rgba(0,0,0,0.06)
}
.modal-wide{width:640px}
.modal-title{font-family:var(--font-display);font-size:24px;font-weight:600;line-height:1.14;letter-spacing:0.196px;color:var(--ink);margin-bottom:.35rem}
.modal-sub{font-size:14px;color:var(--gray-80);margin-bottom:1.25rem;line-height:1.43;letter-spacing:-0.224px}
.modal-close{
  float:right;background:rgba(0,0,0,0.06);border:none;width:28px;height:28px;border-radius:50%;
  font-size:18px;line-height:1;cursor:pointer;color:var(--ink3);margin:-4px -4px 0 0;
  display:flex;align-items:center;justify-content:center;transition:background .15s
}
.modal-close:hover{background:rgba(0,0,0,0.1)}
.modal-row{margin-bottom:.85rem}
.m-label{font-size:12px;font-weight:600;text-transform:none;letter-spacing:-0.12px;color:var(--ink3);margin-bottom:6px;display:block}
.m-val{font-size:14px;color:var(--ink);font-weight:400;letter-spacing:-0.224px}
.modal-edit{
  width:100%;margin-top:1rem;padding:10px 14px;border-radius:var(--r);
  background:var(--cta);color:#fff;border:1px solid var(--cta);
  font-size:15px;font-weight:500;cursor:pointer;transition:opacity .15s;
}
.modal-edit:hover{opacity:.88;}
.modal-edit:hover{opacity:.88}
.modal-btn-row{display:flex;gap:8px;margin-top:1.25rem;flex-wrap:wrap}
.modal-btn{
  flex:1;min-width:100px;padding:10px 12px;border-radius:var(--r);border:1px solid var(--border);
  font-size:17px;font-weight:400;cursor:pointer;background:var(--bg2);color:var(--ink);
  transition:opacity .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease)
}
.modal-btn:hover{opacity:.92;border-color:#86868b;background:var(--filter-bg)}
.modal-btn.pri{background:var(--cta);color:#fff;border-color:var(--cta)}
.modal-btn.pri:hover{opacity:.92;background:var(--cta-press);border-color:var(--cta-press)}

/* API 키 모달 필드 (HTML 인라인 보완) */
.apple-field-label{font-size:12px;font-weight:600;color:var(--ink3);display:block;margin-bottom:8px;letter-spacing:-0.12px}
.apple-field-input{
  width:100%;border:1px solid var(--border);border-radius:var(--r);padding:10px 40px 10px 14px;
  font-size:17px;font-family:var(--font-text);background:#fff;color:var(--ink);outline:none;
  letter-spacing:-0.374px;transition:border-color .15s,box-shadow .15s
}
.apple-field-input:focus{border-color:var(--apple-blue);box-shadow:var(--ring-blue)}
.apple-callout{background:var(--bg);border-radius:var(--r);padding:14px 16px;margin-bottom:1.25rem;border:1px solid var(--border)}
.apple-callout-title{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;letter-spacing:-0.224px}
.apple-callout ol{font-size:13px;color:var(--gray-80);line-height:1.47;padding-left:18px;margin:0;letter-spacing:-0.224px}
.apple-callout a{color:var(--link-blue);text-decoration:underline}

.key-input-wrap{position:relative}
.key-vis-toggle{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;color:var(--ink3);font-size:16px;padding:4px;line-height:1
}
.key-vis-toggle:hover{color:var(--ink)}
.key-status-msg{font-size:11px;margin-top:6px;color:var(--gray-48);letter-spacing:-0.12px}
.modal-btn--danger{background:#fff;color:#c41e1a;border-color:rgba(196,30,26,0.35)}
.modal-btn--danger:hover{background:#fff5f5;border-color:rgba(196,30,26,0.5)}

/* ASIDE TABS */
.aside-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg2)}
.aside-tab{
  flex:1;padding:11px 0;font-size:12px;font-weight:400;color:rgba(0,0,0,0.48);
  background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;
  transition:color .15s,border-color .15s;font-family:var(--font-text);letter-spacing:-0.08px
}
.aside-tab:hover{color:var(--ink)}
.aside-tab.active{color:var(--ink);border-bottom-color:var(--apple-blue);font-weight:600}
.aside-panel{flex:1;overflow-y:auto}

/* HISTORY */
.hist-domain-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:-4px -4px 12px;border-radius:var(--r);border:1px solid rgba(0,0,0,0.06);background:var(--bg2);box-shadow:var(--shadow-sm)}
.hist-domain-bar .hdb-ico{
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  color:var(--apple-blue)
}
.hist-domain-bar .hdb-ico .domain-svg{width:20px;height:20px;display:block}
.hist-domain-bar .hdb-main{min-width:0;flex:1}
.hist-domain-bar .hdb-title{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-0.224px;line-height:1.25}
.hist-item{padding:9px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}
.hist-item:hover{background:var(--bg)}
.hist-domain{display:none}
.hist-q{font-size:12px;color:var(--ink2);line-height:1.4;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-0.12px}
.hist-time{font-size:10px;color:var(--ink3);margin-top:3px}
.hist-filter-btn{font-size:10px;font-weight:600;padding:3px 8px;border-radius:980px;border:1px solid var(--border);background:var(--white);color:var(--ink3);cursor:pointer;font-family:var(--font-text);transition:all .12s}
.hist-filter-btn:hover{border-color:#86868b;color:var(--ink)}
.hist-filter-btn.active{background:rgba(26,58,110,0.08);border-color:rgba(26,58,110,0.35);color:var(--ink);font-weight:600}

.dl-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:1rem}
.dl-btn{
  display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;
  border:1px solid var(--border);border-radius:var(--r-lg);cursor:pointer;background:var(--bg2);
  transition:border-color .15s,background .15s,box-shadow .15s;font-family:var(--font-text)
}
.dl-btn:hover{border-color:rgba(26,58,110,0.35);background:var(--filter-bg);box-shadow:var(--shadow-sm)}
.dl-btn-icon{font-size:22px}
.dl-btn-label{font-size:12px;font-weight:600;color:var(--ink2);letter-spacing:-0.12px}
.dl-btn-sub{font-size:10px;color:var(--ink3)}

/* ANSWER ACTIONS — export = Apple blue pill */
.answer-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px}
.a-act{
  display:inline-flex;align-items:center;gap:6px;padding:7px 16px;border-radius:980px;
  border:1px solid var(--border);background:var(--bg2);font-size:12px;font-weight:400;color:var(--ink);
  cursor:pointer;transition:opacity .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease);
  letter-spacing:-0.08px
}
.a-act:hover{opacity:.92;border-color:#86868b;background:var(--filter-bg)}
.a-act.gold{border-color:var(--brand-main);background:var(--brand-main);color:#fff}
.a-act.gold:hover{opacity:.92;border-color:var(--brand-main-press);background:var(--brand-main-press)}
.a-act:disabled{opacity:.45;cursor:not-allowed}

/* FILE UPLOAD */
.upload-zone{
  border:1px dashed var(--border);border-radius:var(--r-lg);padding:18px;text-align:center;cursor:pointer;
  transition:border-color .15s,background .15s;margin-bottom:1rem;background:var(--filter-bg)
}
.upload-zone:hover,.upload-zone.drag{border-color:rgba(26,58,110,0.45);background:rgba(26,58,110,0.04)}
.upload-zone-icon{font-size:22px;margin-bottom:6px}
.upload-zone-text{font-size:13px;color:var(--ink2);font-weight:500;letter-spacing:-0.224px}
.upload-zone-sub{font-size:11px;color:var(--gray-48);margin-top:3px;letter-spacing:-0.12px}
.file-list{display:flex;flex-direction:column;gap:6px;margin-bottom:1rem}
.file-item{display:flex;align-items:center;gap:10px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:8px 12px}
.file-item-icon{font-size:16px;flex-shrink:0}
.file-item-info{flex:1;min-width:0}
.file-item-name{font-size:12px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-item-size{font-size:10px;color:var(--ink3);margin-top:1px}
.file-item-status{font-size:10px;font-weight:600;padding:2px 7px;border-radius:10px;flex-shrink:0}
.file-item-status.ok{background:rgba(26,58,110,0.12);color:var(--apple-blue)}
.file-item-status.err{background:#fee2e2;color:#991b1b}
.file-item-status.loading{background:var(--bg2);color:var(--ink3)}
.file-remove{background:none;border:none;cursor:pointer;color:var(--ink3);font-size:15px;padding:0 2px;line-height:1;flex-shrink:0}
.file-remove:hover{color:var(--ink)}
.chat-file-btn{
  width:44px;height:44px;min-width:44px;min-height:44px;border-radius:var(--r);
  border:1px solid var(--border);background:var(--bg2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:opacity .15s var(--ease),border-color .15s var(--ease),background .15s var(--ease),color .15s var(--ease);
  color:var(--ink3);box-sizing:border-box;padding:0
}
.chat-file-btn:hover{opacity:.92;border-color:rgba(26,58,110,0.35);background:rgba(26,58,110,0.06);color:var(--apple-blue)}
.chat-file-btn svg{width:18px;height:18px;flex-shrink:0}
.chat-files-preview{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.chat-file-chip{
  display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--border);
  border-radius:980px;padding:4px 11px;font-size:11px;color:var(--ink);font-weight:400;letter-spacing:-0.08px
}
.chat-file-chip button{background:none;border:none;cursor:pointer;color:var(--ink3);font-size:13px;line-height:1;padding:0;margin-left:2px}

/* style modal grid buttons */
#style-modal-grid .modal-btn{flex:none;width:100%;text-align:left;border-radius:var(--r);margin:0}

@media (max-width:900px){
  aside{width:240px}
}
.confirm-q-box{
  font-size:14px;color:var(--gray-80);line-height:1.47;letter-spacing:-0.224px;
  margin:1rem 0;padding:14px 16px;background:var(--bg);border-radius:var(--r-lg);
  border:1px solid var(--border);border-left:3px solid var(--apple-blue)
}
.confirm-q-hint{font-size:12px;color:var(--gray-48);margin-bottom:.5rem;letter-spacing:-0.12px}

.hist-block{margin-bottom:1rem;border-radius:var(--r-lg);padding:14px 16px;border:1px solid rgba(0,0,0,0.06)}
.hist-block--q{background:var(--bg)}
.hist-block--a{background:var(--bg2);box-shadow:var(--shadow-sm)}
.hist-block-label{font-size:11px;font-weight:600;color:var(--ink3);margin-bottom:8px;letter-spacing:0.04em;text-transform:uppercase}
.hist-block-body{font-size:14px;color:var(--ink);line-height:1.47;letter-spacing:-0.224px}
.hist-block-body--answer{font-size:13px;line-height:1.7}

@media (max-width:720px){
  .d-bar{flex-wrap:wrap;padding:0.85rem 1rem}
  .d-bar-badges{width:100%;margin-left:0;margin-top:8px}
  .chat{padding:1.25rem 1rem}
  .input-area{padding:0.85rem 1rem 1rem}
  .w-title{font-size:28px}
  .w-title-ico .domain-svg{width:28px;height:28px}
}


/* ══════════════════════════════
   AUTH 2단 레이아웃
══════════════════════════════ */
#auth{position:fixed;inset:0;z-index:2000;background:var(--bg);display:flex;align-items:stretch;justify-content:center;overflow:hidden;}
#auth.hidden{display:none}
.auth-shell{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:1100px;height:100vh;margin:0 auto;overflow:hidden;}

/* 왼쪽 브랜드 */
.auth-brand{background:linear-gradient(145deg,#0f1f4a 0%,#1a3a6e 45%,#8B1A1A 100%);display:flex;align-items:center;justify-content:center;padding:2rem 2.5rem;position:relative;overflow-y:auto;overflow-x:hidden;}
.auth-brand::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 70%,rgba(139,26,26,.35) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(26,58,110,.45) 0%,transparent 50%);pointer-events:none;}
.auth-brand-inner{position:relative;z-index:1;max-width:400px;width:100%;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.6rem;}
.auth-brand-logo{height:64px;width:auto;display:block;margin-bottom:0;filter:drop-shadow(0 2px 12px rgba(0,0,0,.3));}
.auth-brand-kicker{font-size:12px;font-weight:600;color:rgba(255,255,255,.6);letter-spacing:.1em;text-transform:uppercase;margin-bottom:0;}
.auth-brand-title{font-family:var(--font-display);font-size:clamp(22px,2.5vw,34px);font-weight:800;color:#fff;line-height:1.1;letter-spacing:-1.5px;margin-bottom:0.9rem;}
.auth-brand-desc{font-size:15px;color:rgba(255,255,255,.68);line-height:1.6;margin-bottom:2rem;}
.auth-brand-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1.25rem;justify-content:center;}
.auth-pill{font-size:12px;font-weight:500;color:rgba(255,255,255,.88);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:5px 12px;border-radius:980px;white-space:nowrap;}
.auth-brand-mentors{margin-top:0;text-align:center;}
.auth-mentor-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:10px;}
.auth-mentor-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;}
.auth-mentor-label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:10px;}
.auth-mentor-chips{display:flex;flex-wrap:wrap;gap:6px;}
.auth-mentor-chip{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:rgba(255,255,255,.92);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:6px 12px;border-radius:8px;}

/* 오른쪽 로그인 */
.auth-right{background:var(--white);display:flex;align-items:center;justify-content:center;padding:0 2.5rem;overflow-y:auto;overflow-x:hidden;position:relative;z-index:1;}
.auth-right-inner{width:100%;max-width:360px;padding:2rem 0;position:relative;z-index:1;}

/* 탭 */
.auth-tabs-bar{display:flex;border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:1.5rem;position:relative;z-index:2;}
.auth-tab{flex:1;padding:9px 16px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--ink3);cursor:pointer;transition:background .15s,color .15s;font-family:var(--font-text);position:relative;z-index:1;}
.auth-tab.active{background:var(--ink);color:#fff;}
.auth-tab:hover:not(.active){background:var(--bg);}

/* 소셜 버튼 */
.auth-social-wrap{display:flex;flex-direction:column;gap:8px;margin-bottom:1rem;}
.auth-btn{display:flex;align-items:center;justify-content:center;gap:9px;padding:11px 18px;border-radius:var(--r);border:1px solid var(--border);background:var(--white);cursor:pointer;font-size:14px;font-weight:500;color:var(--ink);transition:background .15s,border-color .15s,opacity .15s;width:100%;box-sizing:border-box;font-family:var(--font-text);}
.auth-btn:hover{background:var(--filter-bg);border-color:#86868b;}
.auth-submit-btn{background:var(--cta);border-color:var(--cta);color:#fff;font-size:15px;padding:12px;}
.auth-submit-btn:hover{opacity:.9;background:var(--cta-press);}
.auth-social-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.google-btn{border-color:#e0e0e0;}
.apple-btn{background:#000;border-color:#000;color:#fff;}
.apple-btn:hover{background:#222;}
.naver-btn{background:#03C75A;border-color:#03C75A;color:#fff;}
.naver-btn:hover{opacity:.9;}
.kakao-btn{background:#FEE500;border-color:#FEE500;color:#3A1D1D;}
.kakao-btn:hover{opacity:.9;}

/* 구분선 */
.auth-or-divider{display:flex;align-items:center;gap:12px;margin:.9rem 0;color:var(--ink3);font-size:12px;}
.auth-or-divider::before,.auth-or-divider::after{content:'';flex:1;height:1px;background:var(--border);}

/* 폼 */
.aform{display:flex;flex-direction:column;gap:10px;}
.afield{display:flex;flex-direction:column;gap:5px;}
.afield-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--ink3);}
.afield-input{width:100%;border:1px solid var(--border);border-radius:var(--r);padding:10px 12px;font-size:15px;font-family:var(--font-text);background:var(--white);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;}
.afield-input:focus{border-color:var(--brand-point);box-shadow:var(--ring-blue);}
.afield-input::placeholder{color:#aeaeb2;}
.apw-wrap{position:relative;}
.apw-wrap .afield-input{padding-right:40px;}
.apw-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:14px;padding:4px;color:var(--ink3);}
.aforgot-btn{background:none;border:none;font-size:11px;color:var(--link-blue);cursor:pointer;padding:0;}
.aforgot-btn:hover{text-decoration:underline;}
.alink-btn{background:none;border:none;font-size:13px;color:var(--ink3);cursor:pointer;padding:4px 0;display:block;width:100%;text-align:center;}
.alink-btn:hover{color:var(--ink);}
.aerr{font-size:13px;color:#b91c1c;min-height:16px;line-height:1.4;}

/* 약관 */
.aterms-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:8px;}
.aterms-row{display:flex;align-items:center;gap:8px;}
.aterms-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--brand-point);cursor:pointer;flex-shrink:0;}
.aterms-label{flex:1;font-size:13px;color:var(--ink2);cursor:default;}
.aterms-label-all{flex:1;font-size:13px;font-weight:600;color:var(--ink);cursor:default;}
.aterms-all-row{cursor:default;}
.aterms-all-row input{cursor:pointer;}
.aterms-divider{height:1px;background:var(--border);margin:2px 0;}
/* 하위 호환 */
.acheck-row{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--ink2);}
.acheck-row input[type=checkbox]{width:15px;height:15px;accent-color:var(--brand-point);cursor:pointer;flex-shrink:0;}
.acheck-row span{flex:1;}
.acheck-all-row span{font-weight:600;color:var(--ink);}
.acheck-item{display:flex;align-items:center;justify-content:space-between;gap:4px;}
.acheck-item .acheck-row{flex:1;}
.aterms-divider{height:1px;background:var(--border);margin:2px 0;}
.aview-btn{background:none;border:none;font-size:11px;color:var(--link-blue);cursor:pointer;padding:0;flex-shrink:0;}
.aview-btn:hover{text-decoration:underline;}

/* 하단 */
.auth-bottom-row{display:flex;flex-direction:column;gap:6px;margin-top:.75rem;}
.auth-demo-btn{background:none;border:1px solid var(--border);border-radius:var(--r);padding:9px;font-size:13px;font-weight:500;color:var(--ink2);cursor:pointer;font-family:var(--font-text);}
.auth-demo-btn:hover{background:var(--bg);}
.auth-settings-btn{background:none;border:none;font-size:11px;color:var(--ink3);cursor:pointer;padding:2px 0;text-align:center;}
.auth-settings-btn:hover{text-decoration:underline;color:var(--ink);}
.auth-copy{margin-top:1.25rem;font-size:11px;color:var(--ink3);text-align:center;}
.auth-copy a{color:var(--link-blue);text-decoration:none;}
.auth-copy a:hover{text-decoration:underline;}

/* 모바일 */
@media(max-width:760px){
  .auth-shell{grid-template-columns:1fr;min-height:auto;}
  .auth-brand{padding:2rem 1.5rem;}
  .auth-brand-logo{height:56px;margin-bottom:1rem;}
  .auth-brand-title{font-size:26px;}
  .auth-brand-desc,.auth-brand-mentors{display:none;}
  .auth-right{padding:2rem 1.5rem 2.5rem;}
}

/* 약관 스크롤 */
.terms-scroll{max-height:50vh;overflow-y:auto;padding:1rem 1.25rem;margin:.75rem 0;font-size:13px;color:var(--ink2);line-height:1.7;border:1px solid var(--border);border-radius:var(--r);}
.terms-scroll h3{font-size:14px;font-weight:600;color:var(--ink);margin:1rem 0 .35rem;}
.terms-scroll h3:first-child{margin-top:0;}
.terms-scroll p{margin-bottom:.65rem;}
.terms-scroll ol,.terms-scroll ul{padding-left:1.5rem;margin-bottom:.65rem;}
.terms-scroll li{margin-bottom:.3rem;}

/* ══════════════════════════
   온보딩 로고 중앙 정렬
══════════════════════════ */
.ob-logo{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-bottom:1.75rem;}
.ob-logo-text{display:flex;flex-direction:column;gap:4px;align-items:center;}
.ob-logo-slogan-main{font-size:15px;font-weight:600;color:var(--ink);letter-spacing:-.02em;word-spacing:0.18em;}
.ob-logo-slogan-sub{font-size:13px;font-weight:400;color:var(--gray-80);line-height:1.4;letter-spacing:-.12px;}

/* ══════════════════════════
   사이드바 히스토리 전용
══════════════════════════ */
.aside-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 8px;border-bottom:1px solid var(--border);flex-shrink:0;}
.aside-hdr-title{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gray-48);}
.aside-hdr-clear{font-size:11px;color:var(--ink3);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px;}
.aside-hdr-clear:hover{background:var(--bg);color:var(--ink);}
/* 사이드바 하단 상태 배지 */
.aside-status-badges {
  margin-top: auto;
  border-top: 1px solid var(--border);
  padding: 12px 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex-shrink: 0;
}
.aside-status-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: var(--bg);
  border: 1px solid rgba(0,0,0,.07);
  border-radius: 10px;
  padding: 8px 12px;
  cursor: pointer;
  transition: border-color .12s, background .12s;
}
.aside-status-item:hover {
  border-color: rgba(26,58,110,.25);
  background: rgba(26,58,110,.04);
}
.aside-status-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ink3);
}
.aside-status-val {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
  word-break: keep-all;
}
.hist-item{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border-radius:var(--r);cursor:pointer;transition:background .12s;border:none;background:none;width:100%;text-align:left;font-family:var(--font-text);margin-bottom:2px;}
.hist-item:hover{background:var(--bg);}
.hist-item-q{font-size:12px;color:var(--ink);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.hist-item-meta{font-size:11px;color:var(--ink3);}

/* ══════════════════════════
   통합 질문 영역
══════════════════════════ */
#unified-area{
  padding:1.25rem 1.75rem .5rem;
  flex-shrink:0;
  overflow-y:auto;
  max-height:calc(100vh - 200px);
}
#unified-area::-webkit-scrollbar{width:4px}
#unified-area::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:4px}
.unified-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:1rem;}
.unified-info h2{font-family:var(--font-display);font-size:21px;font-weight:600;color:var(--ink);letter-spacing:-.02em;margin-bottom:3px;}
.unified-info p{font-size:13px;color:var(--ink3);line-height:1.4;}
.unified-badges{display:flex;gap:8px;flex-shrink:0;}
.sug-domain-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.sug-dc{padding:5px 12px;border-radius:980px;border:1px solid var(--border);background:var(--white);font-size:12px;font-weight:500;color:var(--ink2);cursor:pointer;transition:background .12s,border-color .12s;font-family:var(--font-text);}
.sug-dc:hover{border-color:#86868b;background:var(--filter-bg);}
.sug-dc.active{background:var(--ink);border-color:var(--ink);color:#fff;}
.sug-dc-grant{border-color:var(--cta);color:var(--cta);}
.sug-dc-grant:hover{background:rgba(139,26,26,.06);}
.sug-chips-wrap{display:flex;flex-wrap:wrap;gap:6px;padding-bottom:.75rem;}
.sug-chip{padding:7px 14px;border-radius:var(--r);border:1px solid var(--border);background:var(--bg2);font-size:13px;color:var(--ink2);cursor:pointer;text-align:left;transition:background .12s,border-color .12s;font-family:var(--font-text);}
.sug-chip:hover{border-color:rgba(26,58,110,.4);background:rgba(26,58,110,.04);color:var(--ink);}

/* 프로필 배너 */
.profile-banner{background:linear-gradient(90deg,rgba(26,58,110,.06),rgba(139,26,26,.04));border-bottom:1px solid rgba(26,58,110,.15);padding:10px 1.75rem;display:flex;align-items:center;gap:10px;flex-shrink:0;}
.pb-icon{font-size:18px;flex-shrink:0;}
.pb-text{flex:1;min-width:0;}
.pb-text strong{display:block;font-size:13px;font-weight:600;color:var(--ink);line-height:1.3;}
.pb-text span{font-size:12px;color:var(--ink3);}
.pb-set-btn{background:var(--brand-point);color:#fff;border:none;border-radius:980px;padding:6px 14px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0;font-family:var(--font-text);}
.pb-set-btn:hover{opacity:.88;}
.pb-close-btn{background:none;border:none;font-size:16px;color:var(--ink3);cursor:pointer;padding:2px 4px;flex-shrink:0;}
.pb-close-btn:hover{color:var(--ink);}

/* 면책 고지 */
.disclaimer{display:flex;align-items:flex-start;gap:5px;margin-top:6px;font-size:11px;color:var(--ink3);line-height:1.5;}
.disclaimer svg{flex-shrink:0;margin-top:1px;}

/* 인증 코드 데모 박스 */
.averify-demo-box{background:var(--bg);border:1px dashed var(--border2);border-radius:var(--r);padding:12px 16px;margin-bottom:16px;text-align:center;}

/* 로고 + kicker 밀착 */
.auth-logo-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:1.25rem;}
.auth-logo-wrap .auth-brand-logo{margin-bottom:0;}
.auth-logo-wrap .auth-brand-kicker{margin-bottom:0;}

.auth-mentor-desc{font-size:15px;font-weight:500;color:rgba(255,255,255,.88);line-height:1.6;margin-bottom:1rem;text-align:center;letter-spacing:-0.2px;}

/* 이메일 중복 안내 — 이메일 필드 바로 아래 */
#aerr-email-dup{
  font-size:12px;
  color:#b91c1c;
  line-height:1.5;
  margin-top:5px;
  padding:8px 10px;
  background:rgba(185,28,28,.06);
  border:1px solid rgba(185,28,28,.2);
  border-radius:var(--r);
  display:block;
}
#aerr-email-dup:empty{display:none;}
#aerr-email-dup strong{color:#991b1b;}

/* ══════════════════════════════════════
   WELCOME SCREEN — ChatGPT/Claude 방식
   질문 전: 중앙 배치 / 질문 후: 하단 input-area
══════════════════════════════════════ */

/* main 기본: flex column, chat이 남은 공간 차지 */
main {
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow: hidden;
  min-width: 0;
  position: relative;
}

/* 채팅 영역: 평소엔 숨김, 대화 시작 후 표시 */
.chat {
  flex: 1;
  overflow-y: auto;
  padding: 1.5rem 1.75rem 1rem;
  display: none; /* 웰컴 화면일 때 숨김 */
  flex-direction: column;
  gap: 1.5rem;
  background: var(--bg);
}
.chat.active {
  display: flex;
}

/* 웰컴 화면: 전체 공간 차지, 중앙 정렬 */
.welcome-screen {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.5rem 4rem; /* 하단 여백: 배지 공간 */
  overflow-y: auto;
  background: var(--bg);
  position: relative;
}
.welcome-screen.hidden {
  display: none;
}

.ws-content {
  width: 100%;
  max-width: 680px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}

/* 인사말 */
.ws-greeting {
  text-align: center;
}
.ws-logo {
  margin-bottom: 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.ws-logo-slogans {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.ws-slogan-main {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--ink3);
  letter-spacing: -0.04em;
  text-transform: uppercase;
  font-stretch: condensed;
  word-spacing: 0.24em;
}
.ws-slogan-sub {
  font-size: 15px;                /* Finding... 더 크게 */
  font-weight: 600;
  color: var(--brand-main);
  font-style: italic;
  letter-spacing: -0.02em;
}
.ws-title {
  font-family: var(--font-display);
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.03em;
  margin-bottom: 0.5rem;
}
.ws-sub {
  font-size: 15px;
  color: var(--ink3);
  line-height: 1.5;
}

/* 웰컴 입력창 */
.ws-input-wrap {
  width: 100%;
}
.ws-input-card {
  background: linear-gradient(135deg, #ffffff 0%, #f8f8fb 100%);
  border: none;
  outline: none;
  border-radius: 20px;
  padding: 18px 16px 12px 22px;
  box-shadow: 0 8px 40px rgba(0,0,0,.10), 0 2px 8px rgba(0,0,0,.06);
  transition: box-shadow .25s, transform .15s;
}
.ws-input-card:focus-within {
  box-shadow: 0 12px 48px rgba(26,58,110,.13), 0 2px 8px rgba(0,0,0,.06);
  transform: translateY(-1px);
}
.ws-input {
  width: 100%; border: none; outline: none !important;
  background: transparent;
  resize: none; font-size: 15.5px;
  font-family: var(--font-text); color: var(--ink);
  line-height: 1.65; padding: 0;
  min-height: 52px; max-height: 240px;
  overflow-y: auto;
  letter-spacing: -0.2px;
  -webkit-appearance: none;
  box-shadow: none !important;
}
.ws-input:focus { outline: none !important; box-shadow: none !important; }
.ws-input::placeholder { color: #b8b8be; font-size: 15px; }
.ws-input-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.ws-file-btn {
  display: flex; align-items: center;
  background: none; border: none; cursor: pointer;
  color: var(--ink3); padding: 6px 8px;
  border-radius: 8px; flex-shrink: 0;
  transition: background .12s, color .12s;
}
.ws-file-btn:hover { background: var(--bg); color: var(--ink); }
.ws-send-btn {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 12px;
  background: var(--cta); border: none; cursor: pointer;
  flex-shrink: 0; color: #fff;
  transition: opacity .15s, transform .12s;
  box-shadow: 0 2px 10px rgba(139,26,26,.28);
}
.ws-send-btn:hover { opacity: .88; transform: scale(1.04); }
.ws-send-btn:disabled { opacity: .35; cursor: not-allowed; transform: none; }
.ws-disclaimer {
  display: flex; align-items: center; gap: 5px;
  font-size: 11px; color: var(--ink3);
  margin-top: 6px; padding: 0 4px;
}

/* 분야 필터 */
.ws-domain-bar {
  display: flex; flex-wrap: wrap; gap: 6px;
  justify-content: center;
}
.ws-dc {
  padding: 5px 14px; border-radius: 980px;
  border: 1px solid var(--border);
  background: var(--white); font-size: 12px;
  font-weight: 500; color: var(--ink2);
  cursor: pointer; transition: background .12s, border-color .12s;
  font-family: var(--font-text);
}
.ws-dc:hover { border-color: #86868b; background: var(--filter-bg); }
.ws-dc.active { background: var(--ink); border-color: var(--ink); color: #fff; }
.ws-dc-grant { border-color: var(--cta); color: var(--cta); }
.ws-dc-grant:hover { background: rgba(139,26,26,.06); }

/* 추천 질문 칩 */
.ws-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
  justify-content: center;
}
.sug-chip {
  padding: 8px 16px; border-radius: 980px;
  border: 1px solid var(--border);
  background: var(--bg2); font-size: 13px;
  color: var(--ink2); cursor: pointer; text-align: left;
  transition: background .12s, border-color .12s, box-shadow .12s;
  font-family: var(--font-text); line-height: 1.4;
}
.sug-chip:hover {
  border-color: rgba(26,58,110,.4);
  background: rgba(26,58,110,.04);
  color: var(--ink);
  box-shadow: 0 1px 6px rgba(0,0,0,.08);
}

/* 배지 */
.ws-badges {
  display: flex; gap: 10px; flex-wrap: wrap;
  justify-content: center;
}
.ws-badge {
  display: flex; align-items: center; gap: 5px;
  background: var(--bg); border: 1px solid rgba(0,0,0,.06);
  border-radius: 980px; padding: 5px 12px;
  font-size: 12px;
}
.ws-badge-label { color: var(--ink3); }
.ws-badge-val { color: var(--ink); font-weight: 600; }

/* 하단 input-area: 대화 시작 후에만 표시 */
.input-area {
  display: none; /* 기본 숨김 */
}
.input-area.active {
  display: block;
}

/* ── 웰컴 화면 추가 스타일 ── */

/* 회사명 이탤릭 + 강조색 */
.ws-company {
  font-style: italic;
  color: var(--brand-main);
  font-weight: 800;
}

/* 추천 질문 안내 문구 */
.ws-sug-guide {
  font-size: 12px;
  color: var(--ink3);
  text-align: center;
  margin-bottom: -4px;
}

/* 도메인 칩 - PRO 뱃지 */
.ws-pro-badge {
  font-size: 9px;
  font-weight: 700;
  background: var(--cta);
  color: #fff;
  padding: 1px 5px;
  border-radius: 4px;
  margin-left: 3px;
  vertical-align: middle;
  letter-spacing: 0.03em;
}

/* 추천 질문 칩 — 2열 그리드, 균일 간격 */
.ws-chips {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  width: 100%;
}
.sug-chip {
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg2);
  font-size: 13px;
  color: var(--ink2);
  cursor: pointer;
  text-align: left;
  line-height: 1.4;
  transition: background .12s, border-color .12s, box-shadow .12s;
  font-family: var(--font-text);
  word-break: keep-all;
}
.sug-chip:hover {
  border-color: rgba(26,58,110,.35);
  background: rgba(26,58,110,.04);
  color: var(--ink);
  box-shadow: 0 1px 6px rgba(0,0,0,.07);
}

/* 로딩 상태 */
.ws-chips-loading {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px;
  color: var(--ink3);
  font-size: 13px;
}

/* 배지 — 좌하단 정렬 */
.ws-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-start; /* 좌측 정렬 */
  width: 100%;
  margin-top: 4px;
}
.ws-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--bg);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 980px;
  padding: 4px 12px;
  font-size: 12px;
}
.ws-badge-label { color: var(--ink3); }
.ws-badge-val   { color: var(--ink); font-weight: 600; }

/* 웰컴 화면 배지 — 좌하단 고정 */
.ws-badges-fixed {
  position: absolute;
  bottom: 1.25rem;
  left: 1.5rem;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  z-index: 1;
}
.ws-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--bg2);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 980px;
  padding: 5px 12px;
  font-size: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
  cursor: pointer;
  transition: border-color .12s;
}
.ws-badge:hover { border-color: rgba(26,58,110,.3); }
.ws-badge-label { color: var(--ink3); }
.ws-badge-val   { color: var(--ink); font-weight: 600; }

/* ══════════════════════════════════════
   온보딩 멘토 카드 (5인 그리드)
══════════════════════════════════════ */
.ob-mentor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 16px;
}
.ob-mentor-card {
  background: var(--bg2);
  border: 2px solid var(--border);
  border-radius: 14px;
  padding: 14px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
  text-align: left;
  position: relative;
}
.ob-mentor-card:hover {
  border-color: rgba(26,58,110,.35);
  box-shadow: 0 3px 14px rgba(0,0,0,.08);
}
.ob-mentor-card.sel {
  border-color: var(--cta);
  background: #fffbf8;
  box-shadow: 0 0 0 3px rgba(139,26,26,.08);
}
.ob-mentor-top {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 6px;
}
.ob-mentor-tag {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  letter-spacing: 0.02em;
}
.ob-mentor-emoji { font-size: 18px; margin-left: auto; }
.ob-mentor-name {
  font-size: 14px;
  font-weight: 750;
  color: var(--ink);
  letter-spacing: -0.3px;
  margin-bottom: 2px;
}
.ob-mentor-kw {
  font-size: 11px;
  font-weight: 600;
  color: var(--ink3);
  margin-bottom: 5px;
  letter-spacing: -0.1px;
}
.ob-mentor-desc {
  font-size: 11.5px;
  color: var(--ink2);
  line-height: 1.55;
  letter-spacing: -0.1px;
}
/* 5번째 카드는 전체 너비 */
.ob-mentor-grid .ob-mentor-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

/* ══════════════════════════════════════
   답변 화면 테이블 — 높이 균일 fix
══════════════════════════════════════ */
.m-bubble table {
  width: 100%;
  border-collapse: collapse;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  margin: 12px 0;
  font-size: 13.5px;
  line-height: 1.4;
  table-layout: auto;
}
.m-bubble th {
  background: var(--brand-main) !important;
  color: #fff !important;
  font-weight: 700;
  font-size: 12.5px;
  padding: 8px 11px;
  text-align: center;
  border: 1px solid rgba(255,255,255,.15);
  vertical-align: middle;
  white-space: nowrap;
  -webkit-print-color-adjust: exact;
}
.m-bubble td {
  padding: 7px 11px;
  border: 1px solid var(--border);
  vertical-align: top;
  font-size: 13px;
  line-height: 1.45;
  /* 높이 팽창 방지 */
  height: auto !important;
  min-height: 0 !important;
  box-sizing: border-box;
}
.m-bubble td p {
  margin: 0 0 4px;
}
.m-bubble td p:last-child { margin-bottom: 0; }
.m-bubble tbody tr:nth-child(even) td {
  background: rgba(0,0,0,.025);
}
.m-bubble tbody tr:hover td {
  background: rgba(26,58,110,.03);
}

/* ══════════════════════════════════════
   답변 화면 전체 — 애플 스타일 개선
══════════════════════════════════════ */
.report-card {
  max-width: 100%;
}
.report-bubble {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink);
  letter-spacing: -0.2px;
}
.report-bubble h2 {
  font-size: 17px;
  font-weight: 750;
  color: var(--ink);
  margin: 1.4rem 0 0.5rem;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
  letter-spacing: -0.4px;
  line-height: 1.3;
}
.report-bubble h3 {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin: 1.1rem 0 0.4rem;
  letter-spacing: -0.3px;
}
.report-bubble p {
  margin: 0 0 0.85rem;
  letter-spacing: -0.2px;
}
.report-bubble ul, .report-bubble ol {
  margin: 0.4rem 0 0.85rem;
  padding-left: 1.5rem;
}
.report-bubble li {
  margin-bottom: 0.35rem;
  line-height: 1.6;
}
.report-bubble blockquote {
  margin: 1rem 0;
  padding: 11px 15px;
  border-left: 3px solid var(--brand-point);
  background: rgba(26,58,110,.05);
  border-radius: 0 8px 8px 0;
  color: var(--ink2);
  font-size: 14px;
  line-height: 1.6;
}
.report-bubble strong {
  font-weight: 700;
  color: var(--ink);
}
.report-bubble code {
  font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  font-size: 13px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 1px 6px;
  color: var(--ink);
}
.report-bubble pre {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 16px;
  overflow-x: auto;
  margin: 0.85rem 0;
}
.report-bubble hr.nachim-hr {
  border: none;
  border-top: 1px dashed var(--border);
  margin: 1.25rem 0 0.75rem;
}

/* ══════════════════════════════════════
   헤더 마이페이지 버튼
══════════════════════════════════════ */
header .style-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 13px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg2);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: background .12s, border-color .12s;
  font-family: var(--font-text);
  white-space: nowrap;
}
header .style-btn:hover {
  background: var(--bg);
  border-color: #86868b;
}
header .style-btn.danger {
  color: #c41e1a;
  border-color: rgba(196,30,26,.25);
}
header .style-btn.danger:hover {
  background: #fff5f5;
}

/* ══════════════════════════════════════
   마이페이지 / 요금제 모달 스타일
══════════════════════════════════════ */
#mypage-modal .modal,
#pricing-modal .modal {
  max-height: 90vh;
  overflow-y: auto;
}
#mypage-body .modal-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 8px;
}
#mypage-body .m-label {
  min-width: 90px;
  flex-shrink: 0;
  padding-top: 1px;
}
#mypage-body .m-val {
  flex: 1;
}

/* 요금제 카드 hover 효과 */
#pricing-body > div > div:hover {
  transform: translateY(-2px);
  transition: transform .15s;
}

/* ══════════════════════════════════════
   멘토 스타일 선택 모달 — 카드형
══════════════════════════════════════ */
#style-modal-grid {
  display: flex !important;
  flex-direction: column;
  gap: 8px;
}
#style-modal-grid button {
  width: 100%;
  text-align: left;
  border-radius: 12px;
  padding: 14px 16px;
  cursor: pointer;
  transition: box-shadow .15s, border-color .15s;
}
#style-modal-grid button:hover {
  box-shadow: 0 3px 16px rgba(0,0,0,.10);
}

/* ══════════════════════════════════════
   인증화면 항목 개선
══════════════════════════════════════ */
.aform { display: flex; flex-direction: column; }
.terms-scroll {
  max-height: 360px;
  overflow-y: auto;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ink2);
  padding: 2px 0;
}
.terms-scroll h3 {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  margin: 1rem 0 0.4rem;
}
.terms-scroll p, .terms-scroll li {
  margin-bottom: 0.4rem;
}
.terms-scroll ol, .terms-scroll ul {
  padding-left: 1.4rem;
}

/* ══════════════════════════════════════
   반응형 — 모바일
══════════════════════════════════════ */
@media (max-width: 640px) {
  .ob-mentor-grid {
    grid-template-columns: 1fr;
  }
  .ob-mentor-grid .ob-mentor-card:last-child:nth-child(odd) {
    grid-column: auto;
  }
  header .style-btn span { display: none; }
}

/* ══════════════════════════════════════
   로그인 화면 — 뷰포트 꽉 맞춤 (잘림 방지)
══════════════════════════════════════ */

/* 전체 페이지 스크롤 완전 차단 */
#auth { overflow: hidden !important; }
.auth-shell { overflow: hidden !important; }

/* 왼쪽: 세로 중앙 정렬, 내부만 스크롤 */
.auth-brand {
  align-items: center !important;
  justify-content: center !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 2.5rem 3rem !important;
}

/* 오른쪽: 내부 스크롤 */
.auth-right { overflow-y: auto !important; overflow-x: hidden !important; }

/* 브랜드 내부 — 넉넉한 줄간격 */
.auth-brand-inner { gap: 0 !important; }
.auth-brand-logo  { height: 72px !important; margin-bottom: 6px !important; }
.auth-brand-kicker { margin-bottom: 4px !important; font-size: 12px !important; }
.auth-brand-title {
  font-size: clamp(24px, 3.2vh, 38px) !important;
  margin-bottom: 1.5rem !important;
}
.auth-brand-pills {
  margin-bottom: 1.75rem !important;
  gap: 8px !important;
}
.auth-pill { padding: 5px 12px !important; font-size: 12px !important; }
.auth-brand-mentors { margin-top: 0 !important; }
.auth-mentor-desc   { font-size: 14px !important; line-height: 1.6 !important; margin-bottom: 1.25rem !important; }
.auth-mentor-label  { margin-bottom: 10px !important; font-size: 12px !important; }
.auth-mentor-chips  { gap: 8px !important; }
.auth-mentor-chip   { padding: 7px 13px !important; font-size: 13px !important; line-height: 1.4 !important; }

/* ══════════════════════════════════════
   온보딩 Step1 — 필수 표시 + 컴팩트 칩
══════════════════════════════════════ */

/* 필수 배지 */
.ob-required {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  color: var(--brand-main);
  background: rgba(139,26,26,.08);
  border: 1px solid rgba(139,26,26,.2);
  border-radius: 4px;
  padding: 1px 5px;
  margin-left: 4px;
  letter-spacing: 0.02em;
  vertical-align: middle;
  text-transform: none;
}

/* 컴팩트 칩 그리드 — 위아래 폭 최소화 */
.ob-chip-grid--compact { margin-bottom: 0.75rem !important; }

.ob-chip--sm {
  padding: 7px 10px !important;
  font-size: 13px !important;
}

/* 선택 시 강조 색상 — 업종 태그와 동일한 스타일 */
/* stage/target 칩 선택 색 — 명시도 높여서 기본 .ob-chip.sel 덮어쓰기 */
#stage-grid .ob-chip.sel,
#target-grid .ob-chip.sel {
  border-color: var(--brand-point) !important;
  background: rgba(26,58,110,0.12) !important;
  color: var(--brand-point) !important;
  font-weight: 700 !important;
}

/* ══════════════════════════════════════
   멘토 리스트형 UI (온보딩 + 모달 통일)
══════════════════════════════════════ */
.ob-mentor-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 1rem;
}
#style-modal-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
}
.ob-mentor-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 2px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
  cursor: pointer;
  transition: border-color .15s, background .15s, box-shadow .15s;
}
.ob-mentor-row:hover {
  border-color: rgba(26,58,110,.3);
  box-shadow: 0 2px 10px rgba(0,0,0,.07);
}
.ob-mentor-row.sel {
  border-color: var(--cta);
  background: #fffbf8;
  box-shadow: 0 0 0 3px rgba(139,26,26,.07);
}
.ob-mentor-row--locked {
  opacity: .72;
  background: var(--bg);
}
.ob-mentor-row--locked:hover {
  border-color: rgba(139,26,26,.25);
  background: rgba(139,26,26,.03);
}
.ob-mentor-row-left {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  flex: 1;
  min-width: 0;
}
.ob-mentor-row-emoji {
  font-size: 22px;
  flex-shrink: 0;
  margin-top: 1px;
}
.ob-mentor-row-info {
  flex: 1;
  min-width: 0;
}
.ob-mentor-row-name {
  font-size: 14px;
  font-weight: 750;
  color: var(--ink);
  margin-bottom: 2px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.ob-mentor-row-tag {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 20px;
  letter-spacing: 0.02em;
}
.ob-mentor-row-kw {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink3);
  margin-bottom: 3px;
  letter-spacing: -0.1px;
}
.ob-mentor-row-desc {
  font-size: 12px;
  color: var(--ink2);
  line-height: 1.55;
  letter-spacing: -0.1px;
}
.ob-mentor-row-badge {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: 0.04em;
  align-self: flex-start;
}
.free-badge {
  background: rgba(26,58,110,.1);
  color: var(--brand-point);
}
.pro-badge {
  background: rgba(139,26,26,.1);
  color: var(--cta);
}

/* 파일 업로드 잠금 */
.upload-zone--locked {
  opacity: .7;
  cursor: pointer;
  border-color: rgba(139,26,26,.25) !important;
  background: rgba(139,26,26,.02) !important;
}
.ob-pro-lock {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  color: var(--cta);
  background: rgba(139,26,26,.08);
  border: 1px solid rgba(139,26,26,.2);
  border-radius: 4px;
  padding: 1px 6px;
  margin-left: 5px;
  vertical-align: middle;
  text-transform: none;
}

/* step2 team/invest 칩 선택 색 */
#team-grid .ob-chip.sel,
#invest-grid .ob-chip.sel {
  border-color: var(--brand-point) !important;
  background: rgba(26,58,110,0.10) !important;
  color: var(--brand-point) !important;
  font-weight: 700 !important;
}

/* ══════════════════════════════════════
   답변 화면 — 애플 스타일 완전 통일
   채팅 너비 — 중앙 정렬 + 최대 너비
══════════════════════════════════════ */

/* 채팅 영역 중앙 정렬 — Claude처럼 */
.chat {
  padding: 2rem max(1.75rem, calc((100% - 760px) / 2)) 1.75rem !important;
}
.input-area-inner {
  max-width: 760px !important;
  margin: 0 auto !important;
}
.welcome-screen .ws-content {
  max-width: 720px !important;
}

/* ── 글머리 기호 완전 통일 ── */
/* 빨간 동그라미 등 커스텀 bullet 제거 */
.report-bubble ul,
.report-bubble ol {
  margin: 0.5rem 0 0.85rem !important;
  padding-left: 1.6rem !important;
}
.report-bubble ul { list-style-type: disc !important; }
.report-bubble ol { list-style-type: decimal !important; }

.report-bubble li {
  margin-bottom: 0.4rem !important;
  line-height: 1.65 !important;
  color: var(--ink) !important;
}
/* marker 색상 — 브랜드 컬러로 통일 */
.report-bubble ul > li::marker {
  color: var(--brand-point) !important;
  font-size: 0.85em;
}
.report-bubble ol > li::marker {
  color: var(--brand-main) !important;
  font-weight: 700;
}
/* ::before / ::after 완전 제거 */
.report-bubble li::before,
.report-bubble li::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* ── h2 섹션 헤더 — 브랜드 라인 */
.report-bubble h2 {
  font-size: 16px !important;
  font-weight: 750 !important;
  color: var(--ink) !important;
  margin: 1.4rem 0 0.55rem !important;
  padding-bottom: 6px !important;
  border-bottom: 2px solid var(--brand-main) !important;
  letter-spacing: -0.3px !important;
}
.report-bubble h3 {
  font-size: 14.5px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  margin: 1rem 0 0.4rem !important;
  letter-spacing: -0.2px !important;
}

/* ── 표 — 브랜드 헤더 색상 */
.report-bubble table,
.m-bubble table {
  width: 100% !important;
  border-collapse: collapse !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  border: 1px solid var(--border) !important;
  margin: 0.85rem 0 !important;
  font-size: 13px !important;
}
.report-bubble th,
.m-bubble th {
  background: var(--brand-main) !important;
  color: #fff !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  padding: 8px 11px !important;
  text-align: center !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  white-space: nowrap;
  -webkit-print-color-adjust: exact;
}
.report-bubble td,
.m-bubble td {
  padding: 7px 11px !important;
  border: 1px solid var(--border) !important;
  vertical-align: top !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: var(--ink) !important;
}
.report-bubble tbody tr:nth-child(even) td,
.m-bubble tbody tr:nth-child(even) td {
  background: rgba(26,58,110,.03) !important;
}

/* ── blockquote */
.report-bubble blockquote {
  margin: 0.85rem 0 !important;
  padding: 10px 14px !important;
  border-left: 3px solid var(--brand-point) !important;
  background: rgba(26,58,110,.04) !important;
  border-radius: 0 8px 8px 0 !important;
  color: var(--ink2) !important;
  font-size: 13.5px !important;
  line-height: 1.6 !important;
}

/* ── strong */
.report-bubble strong {
  font-weight: 700 !important;
  color: var(--ink) !important;
}
