@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;600;700;800&display=swap');
/* 위젯 내부에만 적용되는 스코프 리셋. :where()로 특정성 0 유지 → 위젯 클래스 규칙(여백 등)을 덮어쓰지 않음 */
:where(#cj-root) *,:where(#cj-root) *::before,:where(#cj-root) *::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --primary:#059669;--primary-d:#047857;--primary-light:#ECFDF5;--primary-mid:#A7F3D0;
  --green:#2F9E44;--green-light:#EBFBEE;--green-border:#B2F2BB;
  --border:#E4E7EF;--text:#1A1D2E;--text-2:#4A5578;--text-3:#8B91A7;
  --surface:#FFFFFF;--shadow:0 8px 32px rgba(5,150,105,.18),0 0 0 1px rgba(5,150,105,.08);--r:20px;
}
#cj-root{font-family:'Noto Sans KR',system-ui,sans-serif;}

/* LAUNCHER POPUP */
#cj-popup{position:fixed;bottom:104px;right:28px;background:white;border-radius:16px;padding:13px 16px;box-shadow:0 4px 24px rgba(0,0,0,.14),0 0 0 1px rgba(0,0,0,.06);max-width:230px;z-index:9997;opacity:0;transform:translateY(8px) scale(.96);pointer-events:none;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.34,1.56,.64,1);}
#cj-popup.show{opacity:1;transform:translateY(0) scale(1);pointer-events:all;}
#cj-popup.hide{opacity:0;transform:translateY(8px) scale(.96);pointer-events:none;}
.popup-close{position:absolute;top:7px;right:9px;width:18px;height:18px;background:none;border:none;cursor:pointer;color:#8B91A7;font-size:13px;line-height:1;padding:0;font-family:inherit;display:flex;align-items:center;justify-content:center;}
.popup-close:hover{color:#1A1D2E;}
.popup-title{font-size:13px;font-weight:700;color:#1A1D2E;margin-bottom:4px;padding-right:16px;}
.popup-desc{font-size:12px;color:#4A5578;line-height:1.6;margin-bottom:7px;}
.popup-dday{display:inline-block;background:#ECFDF5;color:#047857;border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:700;}
.popup-dday.urgent{background:#047857;color:white;}
/* 꼬리 삼각형 */
#cj-popup::after{content:'';position:absolute;bottom:-8px;right:24px;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:9px solid white;filter:drop-shadow(0 2px 2px rgba(0,0,0,.08));}
@media(max-width:480px){#cj-popup{right:20px;max-width:200px;}}

/* FAB */
#cj-fab{position:fixed;bottom:28px;right:28px;width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#10B981);box-shadow:0 6px 24px rgba(5,150,105,.45),0 0 0 4px rgba(5,150,105,.15);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;z-index:9999;outline:none;}
#cj-fab:hover{transform:scale(1.08);}
#cj-fab:active{transform:scale(.95);}
#cj-fab .fi-chat,#cj-fab .fi-close{position:absolute;transition:opacity .2s,transform .2s;line-height:1;}
#cj-fab .fi-chat{opacity:1;transform:scale(1);}
#cj-fab .fi-close{opacity:0;transform:scale(.5) rotate(-90deg);font-size:22px;color:white;font-weight:700;}
#cj-fab.open .fi-chat{opacity:0;transform:scale(.5) rotate(90deg);}
#cj-fab.open .fi-close{opacity:1;transform:scale(1) rotate(0deg);}
#cj-badge{position:absolute;top:1px;right:1px;width:18px;height:18px;background:#F03E3E;border-radius:50%;border:2px solid white;font-size:10px;font-weight:700;color:white;display:flex;align-items:center;justify-content:center;animation:badge-pulse 2s ease-in-out infinite;transition:opacity .2s;}
@keyframes badge-pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.2);}}
#cj-badge.hidden{opacity:0;pointer-events:none;}

/* WIDGET */
#cj-widget{position:fixed;bottom:104px;right:28px;width:min(434px,calc(100vw - 40px));height:min(668px,calc(100dvh - 132px));max-height:calc(100dvh - 132px);background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;z-index:9998;opacity:0;transform:translateY(24px) scale(.97);pointer-events:none;transition:opacity .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.34,1.56,.64,1);}
#cj-widget.open{opacity:1;transform:translateY(0) scale(1);pointer-events:all;}
@media(max-width:480px){#cj-widget{bottom:0;right:0;width:100%;height:100%;border-radius:0;transform:translateY(100%);}#cj-widget.open{transform:translateY(0);}#cj-fab{bottom:20px;right:20px;}}

/* HEADER */
.header{background:linear-gradient(135deg,var(--primary) 0%,#10B981 60%,#34D399 100%);padding:16px 20px 12px;flex-shrink:0;position:relative;}
.header-top{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.avatar{width:42px;height:42px;background:rgba(255,255,255,.2);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid rgba(255,255,255,.3);padding:4px;}
.header-name{font-size:14.5px;font-weight:700;color:white;margin-bottom:2px;}
.header-status{display:flex;align-items:center;gap:5px;font-size:11.5px;color:rgba(255,255,255,.8);}
.status-dot{width:7px;height:7px;border-radius:50%;background:#69DB7C;box-shadow:0 0 0 2px rgba(105,219,124,.3);}
.quick-chips{display:flex;gap:5px;flex-wrap:wrap;}
.chip{padding:4px 10px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);border-radius:20px;font-size:11px;color:white;cursor:pointer;transition:background .15s;white-space:nowrap;font-family:inherit;}
.chip:hover{background:rgba(255,255,255,.32);}
.header-close{position:absolute;top:13px;right:15px;width:28px;height:28px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.25);border-radius:50%;color:white;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;font-family:inherit;}
.header-close:hover{background:rgba(255,255,255,.32);}

/* MESSAGES */
.messages{flex:1;overflow-y:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth;}
.messages::-webkit-scrollbar{width:4px;}
.messages::-webkit-scrollbar-thumb{background:var(--primary-mid);border-radius:4px;}
.msg-row{display:flex;gap:8px;max-width:100%;}
.msg-row.user{justify-content:flex-end;}
.msg-row.bot{justify-content:flex-start;width:100%;}
.msg-row.bot .msg-inner{flex:1;min-width:0;}
.bot-av{width:28px;height:28px;background:var(--primary-light);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;padding:3px;}
.msg-inner{display:flex;flex-direction:column;gap:4px;}
.msg-row.user .msg-inner{align-items:flex-end;}
.bubble{max-width:100%;padding:10px 14px;border-radius:16px;font-size:13.5px;line-height:1.6;word-break:keep-all;}
.msg-row.bot .bubble{background:white;color:var(--text);border:1px solid var(--border);border-top-left-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.msg-row.user .bubble{background:linear-gradient(135deg,var(--primary),var(--primary-d));color:white;border-top-right-radius:4px;}
.bubble-time{font-size:10px;color:var(--text-3);}

/* TYPING */
.typing-ind{display:flex;align-items:center;gap:5px;padding:10px 14px;background:white;border:1px solid var(--border);border-radius:16px;border-top-left-radius:4px;width:fit-content;box-shadow:0 1px 4px rgba(0,0,0,.06);}
.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--primary-mid);animation:tbounce 1.2s infinite;}
.typing-dot:nth-child(2){animation-delay:.2s;}.typing-dot:nth-child(3){animation-delay:.4s;}
@keyframes tbounce{0%,80%,100%{transform:translateY(0);opacity:.6;}40%{transform:translateY(-6px);opacity:1;}}

/* OPTIONS */
.opts-wrap{display:flex;flex-direction:column;gap:6px;}
.opt-btn{padding:9px 14px;background:white;border:1.5px solid var(--primary-mid);border-radius:10px;font-size:13px;color:var(--primary-d);cursor:pointer;text-align:left;font-family:inherit;font-weight:500;transition:all .15s;}
.opt-btn:hover{background:var(--primary-light);border-color:var(--primary);}
.opt-btn:disabled{opacity:.45;cursor:not-allowed;}

/* INFO CARD */
.info-card{background:var(--primary-light);border:1px solid var(--primary-mid);border-radius:14px;padding:14px 16px;font-size:13px;max-width:96%;line-height:1.7;}
.info-card-title{font-weight:700;color:var(--primary-d);font-size:13.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px;}
.info-card-row{color:var(--text-2);margin-bottom:4px;display:flex;gap:8px;align-items:flex-start;}
.info-card-label{color:var(--text-3);min-width:68px;font-size:12px;flex-shrink:0;}
.info-card-divider{height:1px;background:var(--primary-mid);margin:6px 0;}

/* COMING SOON BADGE */
.badge-live{display:inline-block;background:#EBFBEE;color:#2F9E44;border:1px solid #B2F2BB;border-radius:8px;padding:1px 7px;font-size:11px;font-weight:700;margin-left:4px;}
.badge-soon{display:inline-block;background:#FFF3CD;color:#E67700;border:1px solid #FFD43B;border-radius:8px;padding:1px 7px;font-size:11px;font-weight:700;margin-left:4px;}

/* PRICING GRID */
.pricing-card{background:white;border:1px solid var(--border);border-radius:14px;overflow:hidden;max-width:100%;font-size:12.5px;}
.pricing-card-title{background:linear-gradient(135deg,var(--primary),var(--primary-d));color:white;padding:11px 16px;font-size:13px;font-weight:700;}
.pricing-table{width:100%;border-collapse:collapse;}
.pricing-table th{background:#ECFDF5;color:var(--primary-d);padding:8px 12px;text-align:left;font-size:12px;font-weight:700;border-bottom:1px solid var(--primary-mid);}
.pricing-table td{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text-2);}
.pricing-table tr:last-child td{border-bottom:none;}
.pricing-table td:first-child{font-weight:600;color:var(--text);}
.p-badge{display:inline-block;background:var(--primary-light);color:var(--primary-d);font-weight:700;padding:1px 7px;border-radius:8px;font-size:12px;}

/* PKG GRID */
.pkg-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);}
.pkg-item{background:white;padding:11px 13px;display:flex;flex-direction:column;gap:2px;}
.pkg-item.hi{background:#FFF8F5;}
.pkg-name{font-size:12px;color:var(--text-3);}
.pkg-price{font-size:16px;font-weight:800;color:var(--text);}
.pkg-price span{font-size:11px;font-weight:400;color:var(--text-3);}
.pkg-point{font-size:12px;font-weight:700;color:var(--primary);}
.pkg-bonus{font-size:11px;font-weight:600;}
.pkg-note{padding:9px 14px;font-size:11.5px;color:var(--text-3);border-top:1px solid var(--border);}

/* STEP LIST */
.step-list{display:flex;flex-direction:column;gap:8px;max-width:96%;}
.step-item{display:flex;gap:10px;align-items:flex-start;background:white;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:12.5px;}
.step-num{width:22px;height:22px;border-radius:50%;background:var(--primary);color:white;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.step-content{color:var(--text-2);line-height:1.5;}
.step-content strong{color:var(--text);font-weight:600;}

/* EVENT BANNER */
.event-banner{background:linear-gradient(135deg,#059669,#10B981);border-radius:14px;padding:13px 15px;max-width:96%;color:white;}
.event-banner-title{font-size:13.5px;font-weight:700;margin-bottom:5px;display:flex;align-items:center;gap:6px;}
.event-banner-desc{font-size:12.5px;opacity:.92;line-height:1.6;}
.event-banner-dday{display:inline-block;background:rgba(255,255,255,.25);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700;margin-top:6px;}
.event-banner-dday.urgent{background:rgba(255,255,255,.9);color:#047857;}

/* COLLECT FORM */
.collect-form{background:white;border:1.5px solid var(--primary-mid);border-radius:14px;padding:15px;max-width:100%;width:100%;font-size:13px;}
.collect-title{font-weight:700;color:var(--primary-d);font-size:13.5px;margin-bottom:11px;}
.collect-field{margin-bottom:9px;}
.collect-label{font-size:11.5px;color:var(--text-2);font-weight:600;margin-bottom:4px;display:block;}
.collect-input{width:100%;border:1.5px solid var(--border);border-radius:8px;padding:8px 11px;font-family:inherit;font-size:13px;color:var(--text);outline:none;transition:border-color .15s;}
.collect-input:focus{border-color:var(--primary);}
.collect-submit{width:100%;background:linear-gradient(135deg,var(--primary),var(--primary-d));color:white;border:none;border-radius:9px;padding:11px;font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;margin-top:5px;transition:opacity .15s;display:flex;align-items:center;justify-content:center;gap:8px;}
.collect-submit:hover{opacity:.9;}
.collect-submit:disabled{opacity:.5;cursor:not-allowed;}

/* SUCCESS / WARN */
.success-box{background:var(--green-light);border:1px solid var(--green-border);border-radius:12px;padding:12px 14px;font-size:13px;color:#1B4332;max-width:100%;line-height:1.65;}
.success-box b{color:var(--green);}
.soon-box{background:#FFF9DB;border:1.5px solid #FFE066;border-radius:14px;padding:14px 16px;font-size:13px;color:#5C3800;max-width:96%;line-height:1.7;}
.soon-box strong{color:#E67700;}

/* INPUT */
.input-area{padding:10px 16px 13px;border-top:1px solid var(--border);background:white;flex-shrink:0;}
.input-row{display:flex;gap:8px;align-items:flex-end;}
textarea{flex:1;border:1.5px solid var(--border);border-radius:12px;padding:10px 14px;font-family:inherit;font-size:13px;line-height:1.4;resize:none;outline:none;min-height:42px;max-height:100px;color:var(--text);transition:border-color .15s;}
textarea:focus{border-color:var(--primary);}
textarea::placeholder{color:var(--text-3);}
.send-btn{width:42px;height:42px;background:linear-gradient(135deg,var(--primary),var(--primary-d));border:none;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .15s,transform .1s;flex-shrink:0;}
.send-btn:hover{opacity:.88;}
.send-btn:active{transform:scale(.95);}
.send-btn:disabled{opacity:.4;cursor:not-allowed;}
.send-btn svg{width:18px;height:18px;fill:white;}
.powered-by{margin-top:6px;font-size:10.5px;color:var(--text-3);text-align:center;}
.toast{position:absolute;bottom:76px;left:50%;transform:translateX(-50%) translateY(6px);background:#1A1D2E;color:white;padding:8px 18px;border-radius:20px;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;white-space:nowrap;z-index:10;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:spin .6s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
