
:root{
  
  --nnc-accent:#74d5ca;      /* 브랜드 민트 — 상담창의 주색 */
  --nnc-accent-2:#aeaeae;    /* 민트 hover */
  --nnc-on-accent:#464646;   /* 민트 «위» 글자·아이콘 */
  --nnc-mint:#74d5ca;        /* 브랜드 민트 — 포인트로만 */
  --nnc-dark:#464646;
  --nnc-cream:#F7F8F8;
  --nnc-border:#d5d5d5;
  --nnc-font:'Pretendard','Inter','Noto Sans KR','Apple SD Gothic Neo',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ── 런처 + 말풍선 — 우측 하단. 모바일에서는 하단 고정 상담바(52px) 위로 띄운다 ── */
.nnc-launcher-wrap{position:fixed;right:18px;bottom:24px;z-index:9600;display:flex;
  align-items:center;gap:8px;font-family:var(--nnc-font);
  transition:opacity .25s ease,transform .25s ease}
.nnc-launcher-wrap.nnc-hide{opacity:0;transform:scale(.92);pointer-events:none}
@media (max-width:760px){
  .nnc-launcher-wrap{right:14px;bottom:calc(60px + env(safe-area-inset-bottom,0px) + 14px)}
}
/* PC 에도 하단 고정 상담바(60px)가 생겼다 — 런처가 그 위에 앉게 올린다. */
@media (min-width:761px){
  .nnc-launcher-wrap{bottom:74px}
  .nnc-panel{bottom:calc(74px + 68px)}
}
.nnc-launcher{width:68px;height:68px;border-radius:9999px;border:0;cursor:pointer;
  background:var(--nnc-accent);color:var(--nnc-on-accent);display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 34px rgba(44,107,101,.34),0 3px 10px rgba(44,107,101,.20);
  transition:transform .18s ease,background .18s ease}
.nnc-launcher{animation:nncPulse 2.6s ease-in-out infinite}
.nnc-launcher:hover{transform:scale(1.06);animation:none;background:var(--nnc-accent-2)}
.nnc-launcher:active{transform:scale(.95)}
.nnc-launcher svg{width:30px;height:30px}

.nnc-bubble{position:relative;display:flex;align-items:center;gap:7px;background:#fff;
  border:1px solid var(--nnc-border);border-radius:9999px;padding:11px 11px 11px 16px;
  box-shadow:0 8px 20px rgba(70, 70, 70,.16);overflow:visible}
.nnc-bubble__dot{width:7px;height:7px;border-radius:9999px;background:#74d5ca;flex:0 0 auto;
  animation:nncDot 1.8s ease-in-out infinite}
.nnc-bubble__text{font-size:13.5px;font-weight:600;color:var(--nnc-dark);white-space:nowrap;line-height:1}
.nnc-bubble__close{box-sizing:border-box;width:44px;height:44px;margin:-12px -12px -12px -6px;
  border-radius:9999px;border:0;background:transparent;
  display:flex;align-items:center;justify-content:center;color:#969696;cursor:pointer;flex:0 0 auto}
.nnc-bubble__close:hover{background:radial-gradient(circle at center,var(--nnc-cream) 0 10px,transparent 10px);color:var(--nnc-dark)}
.nnc-bubble__close svg{width:11px;height:11px}
.nnc-bubble__tail{position:absolute;right:-4px;top:50%;transform:translateY(-50%) rotate(45deg);
  width:8px;height:8px;background:#fff;border-right:1px solid var(--nnc-border);
  border-top:1px solid var(--nnc-border)}
.nnc-bubble__sheen{position:absolute;inset:0;border-radius:9999px;overflow:hidden;pointer-events:none}
.nnc-bubble__sheen::before{content:'';position:absolute;top:-20%;bottom:-20%;left:0;width:34%;
  background:linear-gradient(100deg,rgba(70, 70, 70,0) 0%,rgba(70, 70, 70,.26) 50%,rgba(70, 70, 70,0) 100%);
  transform:translateX(-160%) skewX(-18deg);animation:nncSheen 2.8s ease-in-out 4}
.nnc-launcher--halo{animation:nncHalo 2.8s ease-out 4}
@keyframes nncSheen{0%{transform:translateX(-160%) skewX(-18deg);opacity:0}
  35%{opacity:1}100%{transform:translateX(320%) skewX(-18deg);opacity:0}}
@keyframes nncHalo{0%{box-shadow:0 0 0 0 rgba(116,213,202,.55)}
  70%{box-shadow:0 0 0 14px rgba(116,213,202,0)}100%{box-shadow:0 0 0 0 rgba(116,213,202,0)}}
@keyframes nncDot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}
@media (prefers-reduced-motion:reduce){
  .nnc-bubble__sheen::before,.nnc-bubble__dot,.nnc-launcher--halo{animation:none}
}

/* ── 채팅 패널 ── */
.nnc-panel{position:fixed;right:18px;bottom:calc(24px + 68px);z-index:9700;width:376px;
  max-width:calc(100vw - 36px);height:min(560px,calc(100vh - 160px));background:#fff;
  border-radius:18px;box-shadow:0 24px 60px rgba(70, 70, 70,.28),0 4px 16px rgba(70, 70, 70,.14);
  display:flex;flex-direction:column;overflow:hidden;font-family:var(--nnc-font);
  opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .22s ease,transform .22s ease}
.nnc-panel.nnc-panel--open{opacity:1;transform:translateY(0);pointer-events:auto}

@media (min-width:761px){ .nnc-panel{right:88px} }
@media (max-width:760px){
  .nnc-panel{right:8px;left:8px;width:auto;max-width:none;
    bottom:calc(60px + env(safe-area-inset-bottom,0px) + 12px);height:min(72vh,560px)}
}
.nnc-panel__head{background:var(--nnc-dark);color:#fff;padding:14px 16px;display:flex;
  align-items:center;justify-content:space-between;flex:0 0 auto}
.nnc-panel__head-title{font-size:14.5px;font-weight:700;letter-spacing:-.01em}
.nnc-panel__head-sub{font-size:11.5px;color:rgba(255,255,255,.68);margin-top:2px}
.nnc-panel__close{box-sizing:border-box;width:44px;height:44px;border-radius:9999px;border:0;
  background:rgba(255,255,255,.12);color:#fff;display:flex;align-items:center;
  justify-content:center;cursor:pointer;flex:0 0 auto}
.nnc-panel__close:hover{background:rgba(255,255,255,.22)}
.nnc-panel__close svg{width:13px;height:13px}
.nnc-panel__body{flex:1 1 auto;overflow-y:auto;padding:14px 14px 6px;display:flex;
  flex-direction:column;gap:10px;background:var(--nnc-cream)}
.nnc-msg{max-width:84%;font-size:13.5px;line-height:1.55;padding:10px 12px;border-radius:14px;
  white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere}
.nnc-msg--assistant{align-self:flex-start;background:#fff;border:1px solid var(--nnc-border);
  color:#2d2d2d;border-bottom-left-radius:4px}
.nnc-msg--user{align-self:flex-end;background:var(--nnc-accent);color:var(--nnc-on-accent);border-bottom-right-radius:4px}
.nnc-msg--pending{align-self:flex-start;color:#969696;font-size:12.5px}
.nnc-quick{display:flex;flex-wrap:wrap;gap:6px;padding:2px 14px 10px;flex:0 0 auto}
.nnc-quick__chip{box-sizing:border-box;min-height:44px;display:inline-flex;align-items:center;
  border:1px solid var(--nnc-border);background:#fff;border-radius:9999px;
  font-size:11.5px;color:var(--nnc-dark);padding:6px 14px;cursor:pointer;white-space:nowrap;
  font-family:inherit}
.nnc-quick__chip:hover{border-color:var(--nnc-accent);color:#464646}
.nnc-panel__foot{flex:0 0 auto;border-top:1px solid var(--nnc-border);background:#fff;
  padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.nnc-inputrow{display:flex;align-items:center;gap:8px}
.nnc-input{box-sizing:border-box;min-height:44px;flex:1 1 auto;border:1px solid var(--nnc-border);border-radius:9999px;
  padding:10px 14px;font-size:16px;font-family:inherit;color:var(--nnc-dark);outline:none;
  min-width:0;background:#fff}
.nnc-input:focus{border-color:var(--nnc-accent)}
.nnc-send{box-sizing:border-box;width:44px;height:44px;border-radius:9999px;border:0;background:var(--nnc-accent);
  color:var(--nnc-on-accent);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}
.nnc-send:disabled{background:#c2c2c2;cursor:default}
.nnc-send svg{width:17px;height:17px}

.nnc-disclaimer{font-size:10.5px;color:#646464;line-height:1.5}
.nnc-disclaimer{font-size:10.5px;color:#464646;line-height:1.5}
.nnc-disclaimer a{color:#464646;font-weight:600;text-decoration:none}

/* 런처가 화면에서 눈에 띄게 — 가장자리 파동 */
@keyframes nncPulse{
  0%,100%{ box-shadow:0 14px 34px rgba(44,107,101,.34),0 3px 10px rgba(44,107,101,.20),0 0 0 0 rgba(44,107,101,.34); }
  70%{ box-shadow:0 14px 34px rgba(44,107,101,.34),0 3px 10px rgba(44,107,101,.20),0 0 0 14px rgba(44,107,101,0); }
}
@media (prefers-reduced-motion: reduce){
  .nnc-launcher{ animation:none }
  .nnc-bubble__dot{ animation:none }
}
