/* 작업 화면 함께 보기: 대화(왼쪽) : 결과 화면(오른쪽) = 1 : 3(대화는 최소 340px) — 결과 화면 진행 단계 이름이 잘리지 않도록 결과 쪽을 넓게 */
:root { --floating-left: 116px; --floating-top: 94px; --floating-bottom: 24px; --floating-chat-width: max(450px, calc((100vw - var(--floating-left) - 24px) * .25 + 110px)); }   /* 작업 화면 함께 보기: 왼쪽 대화 폭 +110px */
.floating-chat { position:fixed; z-index:50; left:50%; bottom:28px; transform:translateX(-50%); width:min(760px,calc(100vw - 48px)); border:1px solid #e7ebe8; border-radius:20px; background:#fff; box-shadow:0 14px 54px #24342a29,0 3px 12px #24342a0d; font-family:var(--font-main); overflow:hidden; transition:left 1.2s ease,width 1.2s ease,top 1.2s ease,bottom 1.2s ease,transform 1.2s ease,border-radius 1.2s ease; }
.floating-chat button { font:inherit; cursor:pointer; }
.floating-chat button:focus-visible, .floating-result-heading button:focus-visible { outline:2px solid #168550; outline-offset:2px; }
.floating-head { display:none; box-sizing:border-box; min-height:54px; padding:10px 18px; border-bottom:1px solid #edf0ee; align-items:center; justify-content:flex-end; gap:12px; background:linear-gradient(115deg,#f8fcf9,#fff); }
.floating-identity { display:flex; align-items:center; gap:7px; min-width:0; min-height:34px; }
.floating-agent-logo { display:block; width:auto; height:27px; flex:none; }
.floating-agent-word { display:inline-flex; align-items:center; height:27px; color:#303732; font-size:22px; font-weight:850; line-height:1; letter-spacing:-.035em; }
.floating-agent-tier { display:inline-flex; align-items:center; justify-content:center; flex:none; min-width:max-content; min-height:26px; margin-left:4px; padding:3px 8px; border:1px solid #d8ddd9; border-radius:7px; background:#f7f8f7; color:#747d76; font-size:14px; font-weight:700; line-height:1; white-space:nowrap; word-break:keep-all; }
.floating-identity small { color:#92a097; font-size: 14px; }
.floating-demo { background:#eef3ef; color:#8a978e; border:1px solid #e3eae5; border-radius:5px; font-size: 14px; padding:3px 5px; }
.floating-controls { display:flex; align-items:center; gap:8px; }
.floating-controls button { color:#779082; background:white; border:1px solid #e1e9e4; border-radius:7px; padding:7px 9px; font-size: 14px; white-space:nowrap; }
#floating-minimize { font-size:20px; line-height:1; padding:4px 8px; }
.floating-columns { display:block; min-width:0; min-height:0; overflow:hidden; }
.floating-conversation { display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
.floating-history-toolbar { display:none; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px 8px; color:#617269; }
.floating-history-toolbar strong { font-size:14px; font-weight:750; }
#floating-new { border:1px solid #dde7e0; border-radius:7px; padding:6px 9px; color:#52705e; background:#fff; font-size:14px; font-weight:650; white-space:nowrap; }
.floating-log { display:none; padding:24px 24px 12px; overflow-y:auto; overscroll-behavior:contain; scroll-behavior:auto; }
.floating-turn { margin:0 0 28px; }
.floating-turn + .floating-turn { margin-top:4px; padding-top:26px; border-top:1px solid #e7ede9; }
.floating-turn:last-child { margin-bottom:22px; }
.floating-entry { margin:0; }
.floating-entry.user { margin-bottom:26px; }
/* 사용자 질문 없이 이어지는 에이전트 답변끼리도 단락 간격을 둡니다. */
.floating-entry.assistant + .floating-entry.assistant { margin-top:26px; padding-top:22px; border-top:1px dashed #e7ede9; }
.floating-entry .floating-result-link { margin-top:12px; }
.floating-author { display:flex; align-items:center; gap:5px; margin-bottom:9px; color:#303732; }
.floating-author .floating-agent-logo { height:23px; }
.floating-author .floating-agent-word { height:23px; font-size:19px; position:relative; top:1px; }   /* 로고 ‘TasOn’ 기준 ‘Agent’ 높이(측정값 3px에서 2px 올림) */
.floating-author .floating-agent-tier { min-height:23px; padding:2px 7px; font-size:13px; }
.floating-entry p { font-size:14px; line-height:1.85; letter-spacing:-.15px; color:#37463d; margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.floating-entry.user { display:flex; justify-content:flex-end; }
.floating-entry.user p { box-sizing:border-box; width:min(90%,420px); background:#eef6f1; border:1px solid #e5eee8; color:#30513c; max-width:90%; border-radius:15px 15px 4px 15px; padding:12px 16px; }
/* 에이전트 처리 중: 무지개 고리 ✦ + 반짝이는 문구 + 실시간 경과 시간 + 흐르는 진행 바 */
.floating-thinking { display:flex; align-items:center; gap:10px; min-height:34px; }
.floating-thinking-icon { position:relative; isolation:isolate; display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; border-radius:50%; background:#fff; }
/* 로딩 고리: 대화창 테두리와 같은 방식 — 고리 모양은 고정하고 무지개 색 각도만 360도 돌려 가장자리가 흔들리지 않습니다. 뒤에는 같은 색의 은은한 빛. */
.floating-thinking-icon::before { content:''; position:absolute; inset:0; padding:3px; border-radius:50%; background:conic-gradient(from var(--floating-glow-angle),#388dff 0deg,#9654f5 60deg,#ef5cab 120deg,#ffc052 180deg,#63c879 240deg,#29cbb9 300deg,#388dff 360deg); -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite:exclude; animation:floating-rainbow-border 1.8s linear infinite; }
.floating-thinking-icon::after { content:''; position:absolute; z-index:-1; inset:-2px; border-radius:50%; background:conic-gradient(from var(--floating-glow-angle),#388dff 0deg,#9654f5 60deg,#ef5cab 120deg,#ffc052 180deg,#63c879 240deg,#29cbb9 300deg,#388dff 360deg); filter:blur(6px); opacity:.45; -webkit-mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2px)); mask:radial-gradient(closest-side,transparent calc(100% - 3px),#000 calc(100% - 2px)); animation:floating-rainbow-border 1.8s linear infinite; }   /* 빛은 고리 바깥에만(안쪽 흰 원은 그대로) */
.floating-thinking-icon i { font-style:normal; font-size:15px; line-height:1; color:#21804e; animation:floating-thinking-pulse 1.8s ease-in-out infinite; }
/* 처리 중 문구: 굵게 + 진한 바탕색 위로 무지개 띠(아이콘 테두리와 같은 색 계열을 조금 더 진하게)가 흘러갑니다 */
.floating-thinking-text { min-width:0; font-size:14px; font-weight:750; letter-spacing:-.15px; color:transparent; background:linear-gradient(90deg,#4f6157 0%,#4f6157 30%,#2f6fe0 38%,#7b3fe0 45%,#d0428f 52%,#d98a00 59%,#2e9a52 66%,#4f6157 74%,#4f6157 100%) 0 0/250% 100%; -webkit-background-clip:text; background-clip:text; animation:floating-thinking-shine 2.2s linear infinite; }
.floating-thinking-time { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; height:22px; padding:2px 10px 0; border-radius:999px; background:#f1f6f3; color:#3f5a49; font-size:12.5px; font-weight:700; line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; text-box:trim-both cap alphabetic; }   /* 글자 위·아래 여백을 자르고, 위 2px 여백으로 글자를 1px 내려 정중앙에 맞춤 */
@keyframes floating-thinking-pulse { 0%,100% { transform:scale(.92); opacity:.8; } 50% { transform:scale(1.08); opacity:1; } }
@keyframes floating-thinking-shine { from { background-position:100% 0; } to { background-position:-150% 0; } }
@media(prefers-reduced-motion:reduce) { .floating-thinking-icon::before, .floating-thinking-icon::after, .floating-thinking-icon i, .floating-thinking-text { animation:none; } .floating-thinking-text { color:#4f6157; background:none; } }
/* 처리 완료: ChatGPT 생각 모드처럼 실제 걸린 시간과 완료 시각 */
.floating-elapsed { display:inline-flex; align-items:center; gap:6px; margin:0 0 8px; padding:3px 10px 3px 4px; border-radius:999px; background:#f3f7f4; color:#4d6656; font-size:12.5px; font-weight:600; font-variant-numeric:tabular-nums; }
.floating-elapsed-check { display:grid; width:18px; height:18px; place-items:center; border-radius:50%; background:#dcefe3; color:#21804e; font-size:11px; font-weight:800; }
.floating-elapsed small { color:#8a9a90; font-size:11.5px; font-weight:500; }
.floating-elapsed small::before { content:'·'; margin-right:6px; }
/* 요청 상태 배지: 추론 상/중/하 · 쾌속 */
.floating-mode { display:inline-flex; align-items:center; gap:4px; box-sizing:border-box; height:22px; padding:0 9px 0 6px; border:1px solid #dfe9e3; border-radius:999px; background:#fff; color:#2f8a55; cursor:help; }
.floating-mode:focus-visible { outline:2px solid #21804e; outline-offset:2px; }
.floating-mode svg { display:block; flex:none; }
.floating-mode .mode-bolt { width:11px; height:11px; fill:currentColor; }
.floating-mode .mode-robot { width:16px; height:16px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.floating-mode .robot-light, .floating-mode .robot-eyes circle { fill:currentColor; stroke:none; }
.floating-mode .mode-word { font-size:12px; font-weight:750; line-height:1; letter-spacing:-.01em; white-space:nowrap; text-box:trim-both cap alphabetic; padding-top:1px; }
.floating-mode.is-fast { border-color:#f2dca4; background:#fff8e8; color:#b07800; }
/* 처리 중: 안테나 불빛이 천천히 깜빡이고, 눈이 좌우로 굴렀다가 한 번 깜빡입니다(생각하는 로봇). */
.floating-mode.is-live { animation:mode-glow 2.4s ease-in-out infinite; }
.floating-mode.is-live .robot-light { animation:robot-light 1.2s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
.floating-mode.is-live .robot-eyes { animation:robot-look 3.2s ease-in-out infinite; }
.floating-mode.is-live .robot-eyes circle { animation:robot-blink 3.2s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
@keyframes robot-light { 0%,100% { opacity:.35; transform:scale(.8); } 50% { opacity:1; transform:scale(1.15); } }
@keyframes robot-look { 0%,18% { transform:translateX(0); } 28%,44% { transform:translateX(-1.6px); } 54%,70% { transform:translateX(1.6px); } 80%,100% { transform:translateX(0); } }
@keyframes robot-blink { 0%,86%,100% { transform:scaleY(1); } 91% { transform:scaleY(.15); } }
@keyframes mode-glow { 0%,100% { box-shadow:0 0 0 0 rgba(47,138,85,0); } 50% { box-shadow:0 0 0 3px rgba(47,138,85,.12); } }
@media(prefers-reduced-motion:reduce) { .floating-mode.is-live, .floating-mode.is-live .robot-light, .floating-mode.is-live .robot-eyes, .floating-mode.is-live .robot-eyes circle { animation:none; } }
.floating-elapsed .floating-mode { height:18px; padding:0 7px 0 5px; gap:3px; }
.floating-elapsed .floating-mode .mode-robot { width:13px; height:13px; }
.floating-elapsed .floating-mode .mode-word { font-size:11px; }
#floating-submit:disabled { opacity:.45; cursor:default; }
.floating-entry.user p.is-typing::after { content:'▏'; display:inline-block; margin-left:2px; color:#21804e; animation:floatingTypingCursor .8s steps(1,end) infinite; }
@keyframes floatingTypingCursor { 0%,45% { opacity:1; } 46%,100% { opacity:0; } }
.floating-artifact { display:none!important; }
.floating-result-link { display:flex; align-items:center; gap:10px; width:100%; min-height:42px; padding:9px 12px; border:1px solid #dbe7df; border-radius:9px; background:#fbfdfb; color:#3d614a; text-align:left; }
.floating-result-link-text { min-width:0; flex:1; overflow:hidden; font-size:16px; font-weight:600; line-height:1.45; text-overflow:ellipsis; white-space:nowrap; }
.floating-result-link-open { flex:none; color:#1f6b3f; font-size:15px; font-weight:800; white-space:nowrap; }
.floating-result-link-icon { display:grid; width:26px; height:26px; flex:0 0 26px; place-items:center; border-radius:7px; background:#edf6f0; color:#277348; font-size:17px; font-weight:800; }
.floating-result-link:hover { border-color:#bcd8c6; background:#f7fbf8; }
.floating-prompts { display:none; gap:8px; flex-wrap:wrap; margin-top:14px; padding:16px 18px 14px; border-top:1px solid #edf1ee; border-bottom:1px solid #edf1ee; background:#fafcfb; }
.floating-prompts-title { flex:0 0 100%; margin-bottom:2px; color:#617269; font-size:14px; font-weight:750; }
.floating-prompts button { border:1px solid #d8e5dd; background:#f2f7f4; border-radius:8px; padding:7px 10px; color:#3f624d; font-size:14px; transition:transform 160ms ease,border-color 160ms ease,background 160ms ease; }
.floating-prompts button:nth-of-type(3n+2) { border-color:#dbe3ed; background:#f3f6fa; color:#4d6075; }
.floating-prompts button:nth-of-type(3n) { border-color:#e7dfd5; background:#f8f5f0; color:#685c4e; }
.floating-prompts button:hover { transform:translateY(-1px); border-color:#b9cdc0; background:#fff; }
.floating-form { display:flex; gap:12px; align-items:center; padding:15px 18px; margin:0; background:linear-gradient(125deg,#fff,#fafcfa); }
.floating-input-spark { color:#147c48; font-size:28px; line-height:1; flex:none; }
#floating-input { display:block; flex:1; width:0; min-width:0; min-height:28px; height:28px; max-height:120px; overflow-y:auto; resize:none; border:0; outline:0; background:transparent; padding:2px 0; font-family:var(--font-main); font-size:16px; line-height:24px; color:#304c3b; }
#floating-input::placeholder { color:#89968e; }
.floating-form:focus-within { box-shadow:inset 0 0 0 1px #b2cebb; }
/* 대화 보기: 말풍선 아이콘 하나(질문 수·설명은 툴팁) */
#floating-resume { display:grid; place-items:center; flex:none; width:28px; height:28px; padding:0; border:0; border-radius:9px; color:#197e48; background:transparent; transition:background .15s ease; }
#floating-resume svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#floating-resume:hover { background:#eef6f1; }
#floating-submit { border:0; background:#13814b; color:white; width:34px; height:34px; border-radius:10px; font-size:24px; line-height:1; flex:none; box-shadow:0 3px 8px #16824b18; }
.floating-disclaimer { display:none; text-align:center; color:#9ba69f; font-size: 14px; margin:0; padding:0 12px 11px; }
.floating-chat.is-expanded .floating-head { display:flex; }
.floating-chat.is-expanded .floating-history-toolbar { display:flex; }
.floating-chat.is-expanded .floating-log { display:block; height:var(--floating-log-height,180px); max-height:calc(75dvh - 205px); }
.floating-chat.is-expanded .floating-prompts { display:flex; }
.floating-chat.is-expanded .floating-disclaimer { display:block; }
.floating-chat.is-expanded .floating-form { border:1px solid #dce8e0; border-radius:12px; margin:14px 14px 10px; padding:11px 12px; }
.floating-chat.is-expanded .floating-input-spark { font-size:22px; }
.floating-chat.is-expanded #floating-input { font-size:14px; }
.floating-result-slot,.floating-mobile-tabs { display:none; }
.floating-result-heading[hidden],.floating-chat [hidden] { display:none!important; }
.floating-sr-only { position:absolute; width:1px; height:1px; clip:rect(0,0,0,0); overflow:hidden; }
/* 분할 시에도 기존 화면을 이동하거나 다시 만들지 않아 입력 상태가 유지됩니다. */
body.floating-split .floating-chat { left:var(--floating-left); right:auto; top:var(--floating-top); bottom:var(--floating-bottom); width:calc(100vw - var(--floating-left) - 24px); transform:none; display:flex; flex-direction:column; border-radius:18px; }
body.floating-split .floating-head { height:54px; min-height:54px; }
body.floating-split .floating-columns { flex:1; display:grid; grid-template-columns:var(--floating-chat-width) minmax(0,1fr); }
body.floating-split .floating-conversation { border-right:1px solid #e5ebe7; }
body.floating-split .floating-log { flex:1; height:auto; max-height:none; padding:24px 20px 8px; }
body.floating-split .floating-form { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:8px; }
body.floating-split #floating-input { width:100%; min-height:28px; flex-basis:auto; }
body.floating-split #floating-new { margin-left:auto; }
body.floating-split #floating-resume { display:none!important; }
body.floating-split .floating-result-slot { display:block; background:#f8faf9; }
body.floating-split .workspace-pages { position:fixed; z-index:51; left:calc(var(--floating-left) + var(--floating-chat-width) + 1px); right:25px; top:calc(var(--floating-top) + 105px); bottom:calc(var(--floating-bottom) + 1px); overflow:auto; overscroll-behavior:contain; padding:16px; background:#f8faf9; border-radius:0 0 17px 0; }
body.floating-split.floating-dedicated-result .workspace-pages { display:none!important; }
body.floating-split.floating-dedicated-result .floating-result-slot { display:flex; min-width:0; min-height:0; padding-top:50px; overflow:hidden; }
.floating-dedicated-frame { display:block; width:100%; height:100%; min-width:0; border:0; background:#f8faf9; }
body.floating-split .workspace-frame { max-width:100%; }
.floating-result-heading { position:fixed; z-index:52; top:calc(var(--floating-top) + 55px); left:calc(var(--floating-left) + var(--floating-chat-width) + 1px); right:25px; height:50px; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 18px; background:white; border-bottom:1px solid #e6ece8; transition:top 2s ease; }
.floating-result-heading > div { display:flex; align-items:center; gap:8px; }
.floating-result-heading span { color:#23844f; }
.floating-result-heading strong { font-size: 14px; }
.floating-result-heading small { font-size: 14px; color:#98a39b; }
.floating-result-heading button { font-family:var(--font-main); font-size: 14px; color:#789081; border:0; background:transparent; cursor:pointer; }
body.floating-split .workspace { min-height:calc(100dvh - 108px); }
@media(max-width:1100px) { :root { --floating-chat-width:max(430px, calc((100vw - var(--floating-left) - 24px) * .25 + 110px)); } .floating-result-heading small { display:none; } }
@media(max-width:800px) {
 .floating-chat { width:calc(100vw - 24px); bottom:12px; border-radius:16px; }
 .floating-form { gap:8px; padding:12px; } #floating-input { font-size: 14px; } .floating-input-spark { font-size:24px; } #floating-new { font-size: 14px; } #floating-resume { font-size: 14px; } .floating-head { padding:12px; gap:6px; } .floating-identity { gap:6px; } .floating-agent-logo { height:23px; } .floating-agent-word { height:23px; font-size:19px; } .floating-agent-tier { min-height:23px; padding-inline:7px; font-size:13px; } .floating-identity small { display:none; } .floating-demo { display:none; } .floating-controls { gap:5px; } .floating-controls button { font-size: 14px; padding:6px; }
 .floating-log { padding:18px 16px 6px; } .floating-entry p { font-size: 14px; } .floating-disclaimer { font-size: 14px; }
 body.floating-split .floating-chat { left:12px; right:12px; top:94px; bottom:12px; }
 body.floating-split .floating-head { height:54px; min-height:54px; }
 body.floating-split .floating-mobile-tabs { display:flex; border-bottom:1px solid #e6ece8; height:40px; min-height:40px; padding:0 12px; gap:18px; }
 .floating-mobile-tabs button { border:0; border-bottom:2px solid transparent; background:white; color:#84958a; padding:8px; font-size: 14px; }
 .floating-mobile-tabs button[aria-selected="true"] { border-bottom-color:#18834e; color:#18834e; font-weight:700; }
 body.floating-split .floating-columns { display:flex; }
 body.floating-split .floating-conversation { width:100%; border:0; }
 body.floating-split .floating-result-slot { display:none; }
 body.floating-split .workspace-pages,body.floating-split .floating-result-heading { display:none; }
 body.floating-split.floating-show-result .floating-conversation { visibility:hidden; }
 body.floating-split.floating-show-result .workspace-pages { display:block; left:13px; right:13px; top:238px; bottom:13px; padding:8px; border-radius:0 0 15px 15px; }
 body.floating-split.floating-show-result .floating-result-heading { display:flex; left:13px; right:13px; top:188px; height:50px; padding-inline:12px; }
 body.floating-split.floating-dedicated-result.floating-show-result .floating-conversation { display:none; }
 body.floating-split.floating-dedicated-result.floating-show-result .floating-result-slot { display:flex; width:100%; height:100%; padding-top:50px; }
}
@media(prefers-reduced-motion:reduce) { .floating-chat,.floating-result-heading { transition:none; } .floating-log { scroll-behavior:auto; } }
/* 얇은 무지개 테두리와 은은하게 움직이는 외곽 빛 */
@property --floating-glow-angle {
  syntax: '<angle>';
  initial-value: 0deg;
  inherits: false;
}
.floating-chat,
.floating-chat button,
.floating-chat textarea,
.floating-result-heading,
.floating-result-heading button {
  font-family: "Pretendard Variable", Pretendard, sans-serif;
}
.floating-chat {
  overflow: visible;
  isolation: isolate;
  animation: floating-soft-glow 7s ease-in-out infinite alternate;
}
.floating-chat::before {
  content: '';
  position: absolute;
  z-index: 3;
  inset: -3px;
  padding: 3.5px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--floating-glow-angle),
    #388dff 0deg, #9654f5 60deg, #ef5cab 120deg,
    #ffc052 180deg, #63c879 240deg, #29cbb9 300deg, #388dff 360deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  opacity: 1;
  animation: floating-rainbow-border 4s linear infinite;
}
.floating-head { border-radius: 19px 19px 0 0; }
.floating-form { border-radius: 19px; }
.floating-columns { border-radius: 0 0 19px 19px; overflow: hidden; }
@keyframes floating-rainbow-border {
  from { --floating-glow-angle: 0deg; }
  to { --floating-glow-angle: 360deg; }
}
@keyframes floating-soft-glow {
  from {
    box-shadow: 0 20px 48px -12px #1b28332b,
      0 6px 16px -5px #1b28331a,
      -10px 0 22px -9px #8ebaff48,
      10px 0 22px -9px #e2a3d848,
      0 8px 20px -9px #a2d8ba52;
  }
  to {
    box-shadow: 0 22px 52px -12px #1b283330,
      0 7px 18px -5px #1b28331c,
      -10px 0 26px -8px #c2a2eb50,
      10px 0 26px -8px #a2dbc050,
      0 8px 24px -8px #edc7a354;
  }
}
@media (prefers-reduced-motion: reduce) {
  .floating-chat, .floating-chat::before { animation: none; }
}
/* 입력창을 화면 하단에서 띄워 접근성을 높입니다. */
body:not(.floating-split) .floating-chat { bottom:76px; }
@media(max-width:800px) {
  body:not(.floating-split) .floating-chat { bottom:32px; }
}
/* 기본은 원형으로 접고, ✦ 버튼으로 입력창을 펼치거나 접습니다. */
#floating-toggle { display:grid; place-items:center; width:28px; height:28px; padding:0; border:0; background:transparent; color:#147c48; transition:transform .25s ease; }
#floating-toggle:hover { transform:rotate(18deg) scale(1.12); }
.floating-form { position:relative; }
.floating-form > :not(#floating-toggle) { transition:opacity .25s ease .2s, visibility 0s linear 0s; }
.floating-chat.is-toggling { transition:width .7s cubic-bezier(.22,1,.36,1), border-radius .7s cubic-bezier(.22,1,.36,1), left .7s cubic-bezier(.22,1,.36,1), bottom .7s cubic-bezier(.22,1,.36,1); }
.floating-chat.is-collapsed { width:66px; border-radius:34px; }
.floating-chat.is-collapsed .floating-form { overflow:hidden; padding:15px 18px; gap:12px; border-radius:33px; }
.floating-chat.is-collapsed .floating-form > :not(#floating-toggle) { opacity:0; visibility:hidden; transition:opacity .15s ease, visibility 0s linear .15s; }
.floating-chat.is-collapsed #floating-toggle::after { content:''; position:absolute; inset:0; border-radius:inherit; }
@media(max-width:800px) { .floating-chat.is-collapsed { width:66px; } }
@media(prefers-reduced-motion:reduce) { .floating-chat.is-toggling, .floating-form > *, #floating-toggle { transition:none; } }
/* 원·입력창·대화창 모두 은은하게 번지는 무지개 빛과 ✦ 반짝임을 줍니다. */
.floating-chat::after {
  content:''; position:absolute; z-index:-1; inset:-4px; border-radius:inherit; pointer-events:none;
  background:conic-gradient(from var(--floating-glow-angle),#388dff,#9654f5,#ef5cab,#ffc052,#63c879,#29cbb9,#388dff);
  filter:blur(12px); opacity:0;
  animation:floating-rainbow-border 4s linear infinite, floating-orb-breathe 3.2s ease-in-out infinite;
}
.floating-chat:not(.is-collapsed)::after { inset:-2px; filter:blur(14px); animation:floating-rainbow-border 4s linear infinite, floating-bar-breathe 3.2s ease-in-out infinite; }
.floating-chat #floating-toggle { animation:floating-orb-twinkle 3.2s ease-in-out infinite; }
.floating-chat.is-collapsed:hover::after { animation:floating-rainbow-border 4s linear infinite; opacity:.6; transform:scale(1.15); transition:opacity .3s ease, transform .3s ease; }
.floating-chat #floating-toggle:hover, .floating-chat.is-collapsed:hover #floating-toggle { animation:none; transform:rotate(18deg) scale(1.15); }
@keyframes floating-orb-breathe {
  0%, 100% { opacity:0; transform:scale(.9); }
  45% { opacity:.55; transform:scale(1.18); }
  70% { opacity:.15; transform:scale(1.3); }
}
@keyframes floating-orb-twinkle {
  0%, 30%, 100% { transform:scale(1) rotate(0); }
  42% { transform:scale(1.2) rotate(20deg); }
  54% { transform:scale(.95) rotate(0); }
}
@keyframes floating-bar-breathe {
  0%, 100% { opacity:.08; }
  50% { opacity:.42; }
}
@media(prefers-reduced-motion:reduce) {
  .floating-chat::after, .floating-chat:not(.is-collapsed)::after { animation:none; opacity:.3; }
  .floating-chat #floating-toggle { animation:none; }
}
/* 빛이 창 안쪽으로 비치지 않도록 내용 영역에 배경을 깝니다. */
.floating-columns, .floating-mobile-tabs { background:#fff; }
.floating-chat:not(.is-expanded) .floating-columns { border-radius:inherit; }
/* 접힌 원은 LNB에 머물다가, 펼치면 화면 하단 가운데로 이동합니다. */
body:not(.floating-split) .floating-chat.is-collapsed { left:var(--orb-left,50%); bottom:var(--orb-bottom,76px); }
@media(max-width:800px) { body:not(.floating-split) .floating-chat.is-collapsed { bottom:var(--orb-bottom,32px); } }
.floating-chat.is-booting { transition:none!important; }
/* 대화 기록 제목과 새 대화 버튼을 헤더 줄로 올려 세로 공간을 아낍니다. */
.floating-head-title { margin-right:auto; color:#20242b; font-size:19px; font-weight:800; letter-spacing:-.02em; white-space:nowrap; }
.floating-chat .floating-head #floating-new { margin-left:0; }
/* 대화 말풍선 아래 후보 고르기 · 다음 단계 버튼 */
.floating-choices { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.floating-chat .floating-choice { max-width:100%; padding:8px 16px; border:1px solid #15803d; border-radius:999px; background:#16a34a; color:#fff; font:inherit; font-size:14.5px; font-weight:800; line-height:1.35; letter-spacing:-.01em; text-align:left; cursor:pointer; box-shadow:0 4px 12px rgba(22,163,74,.22); transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease; }
/* 후보 고르기 · 다음 단계 버튼 모두 같은 초록 버튼(굵은 글자 + 살짝 띄운 그림자 + →) */
.floating-chat .floating-choice:hover { border-color:#12863d; background:#12863d; box-shadow:0 6px 14px rgba(18,134,61,.26); transform:translateY(-1px); }
.floating-choice:focus-visible { outline:2px solid #168550; outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { .floating-choice { transition:none; } }
/* 접힌 원 아래 ‘✦ AI 마케팅’ 배지: 대시보드 ‘AI 대화’ 배지와 같은 보라색으로 클릭을 유도합니다(원이 펼쳐지면 숨김). */
.floating-orb-badge { display:none; }
.floating-chat.is-collapsed { cursor:pointer; }   /* 원 전체가 클릭 영역 */
.floating-chat.is-collapsed .floating-orb-badge {
  position:absolute; z-index:4; top:calc(100% + 10px); left:50%; display:inline-flex; align-items:center; gap:4px; padding:5px 11px;
  border:0; border-radius:999px; color:#fff; font:750 12.5px/1.2 "Pretendard Variable",Pretendard,sans-serif; letter-spacing:-.01em; white-space:nowrap; cursor:pointer;
  /* 보라 그라데이션 위로 흰 빛이 계속 훑고 지나갑니다(빛 훑기) */
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%) 0 0 / 260% 100% no-repeat,linear-gradient(135deg,#7c3aed,#a161f7);
  box-shadow:0 6px 16px rgba(124,58,237,.34); transform:translateX(-50%);
  animation:floating-orb-badge-in .4s ease both, floating-orb-badge-bob 2.6s ease-in-out .4s infinite, floating-orb-badge-shine 2.8s ease-in-out .6s infinite;
}
/* 배지 둘레로 보라 링이 번져 나갑니다(나 여기 있어) */
.floating-chat.is-collapsed .floating-orb-badge::before {
  content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; box-shadow:0 0 0 0 rgba(139,92,246,.55);
  animation:floating-orb-badge-ping 2.2s ease-out .8s infinite;
}
.floating-orb-badge .orb-badge-star { display:inline-block; animation:floating-orb-badge-star 2.2s ease-in-out infinite; }
.floating-chat.is-collapsed .floating-orb-badge:hover { filter:brightness(1.08); box-shadow:0 8px 20px rgba(124,58,237,.42); }
.floating-chat.is-toggling .floating-orb-badge { display:none; }
@keyframes floating-orb-badge-in { from { opacity:0; transform:translate(-50%,6px); } to { opacity:1; transform:translate(-50%,0); } }
@keyframes floating-orb-badge-bob { 0%,100% { transform:translate(-50%,0); } 50% { transform:translate(-50%,-3px); } }
@keyframes floating-orb-badge-shine { 0% { background-position:130% 0,0 0; } 55%,100% { background-position:-40% 0,0 0; } }
@keyframes floating-orb-badge-ping { 0% { box-shadow:0 0 0 0 rgba(139,92,246,.55); } 70%,100% { box-shadow:0 0 0 9px rgba(139,92,246,0); } }
@keyframes floating-orb-badge-star { 0%,40%,100% { transform:scale(1) rotate(0); } 52% { transform:scale(1.35) rotate(25deg); } 64% { transform:scale(.95) rotate(0); } }
@media(prefers-reduced-motion:reduce) { .floating-chat.is-collapsed .floating-orb-badge, .floating-chat.is-collapsed .floating-orb-badge::before, .floating-orb-badge .orb-badge-star { animation:none; } }
/* 대화창만 크게(왼쪽 ‘AI 캠페인 만들기’): 왼쪽 메뉴 오른쪽부터 화면 끝까지 대화창 하나, 대화는 가운데 최대 880px */
body.floating-focus .floating-chat { left:var(--floating-left); right:auto; top:var(--floating-top); bottom:var(--floating-bottom); width:calc(100vw - var(--floating-left) - 24px); transform:none; display:flex; flex-direction:column; border-radius:18px; }
body.floating-focus .floating-mobile-tabs, body.floating-focus .floating-result-slot { display:none; }
body.floating-focus .floating-columns { flex:1; display:flex; min-height:0; }
body.floating-focus .floating-conversation { flex:1; width:100%; max-width:880px; min-height:0; margin:0 auto; }
body.floating-focus .floating-chat .floating-log { flex:1 1 auto; height:auto !important; max-height:none !important; min-height:0; }
@media(max-width:800px) { body.floating-focus .floating-chat { left:12px; right:12px; top:94px; bottom:12px; width:auto; } }
/* 펼친 대화창(작업 화면 분할 제외): 입력창을 작은 입력 막대와 같은 디자인으로 — 무지개 테두리 · 은은한 빛 · 둥근 19px · 28px ✦ · 16px 글꼴 */
body:not(.floating-split) .floating-chat.is-expanded .floating-form {
  position:relative; isolation:isolate; margin:12px 16px 16px; padding:15px 18px; gap:12px; border:0; border-radius:19px;
  background:linear-gradient(125deg,#fff,#fafcfa); animation:floating-soft-glow 7s ease-in-out infinite alternate;
}
body:not(.floating-split) .floating-chat.is-expanded .floating-form::before {
  content:''; position:absolute; z-index:3; inset:-3px; padding:3.5px; border-radius:22px; pointer-events:none;
  background:conic-gradient(from var(--floating-glow-angle),#388dff 0deg,#9654f5 60deg,#ef5cab 120deg,#ffc052 180deg,#63c879 240deg,#29cbb9 300deg,#388dff 360deg);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite:exclude;
  animation:floating-rainbow-border 4s linear infinite;
}
body:not(.floating-split) .floating-chat.is-expanded .floating-form:focus-within { box-shadow:0 14px 40px -12px #1b28332b, 0 0 0 3px #e3f1e8; }
body:not(.floating-split) .floating-chat.is-expanded .floating-input-spark { font-size:28px; }
/* ✦가 글자보다 낮게 보이지 않게: 상속된 줄 높이(1.45)를 1로 — 28px 상자 안 가운데 */
.floating-chat.is-expanded #floating-toggle.floating-input-spark { line-height:1; }
body:not(.floating-split) .floating-chat.is-expanded #floating-toggle.floating-input-spark { position:relative; top:-1px; }
/* 대화창만 크게: 넓은 화면이라 여백과 글꼴을 조금 더 키웁니다. */
body.floating-focus .floating-chat.is-expanded .floating-form { margin:12px 18px 22px; }
body.floating-focus .floating-chat.is-expanded #floating-input { font-size:18px; font-weight:700; line-height:28px; min-height:34px; color:#304c3b; }
body.floating-focus .floating-chat.is-expanded #floating-input::placeholder { font-size:18px; font-weight:700; color:#6c7e72; opacity:1; }
/* 대화창 테두리가 두 겹으로 보이지 않게, 펼친 대화창에서는 바깥 무지개 테두리를 옅게 */
body:not(.floating-split) .floating-chat.is-expanded::before { opacity:.35; }
@media(prefers-reduced-motion:reduce) { body:not(.floating-split) .floating-chat.is-expanded .floating-form, body:not(.floating-split) .floating-chat.is-expanded .floating-form::before { animation:none; } }
@media(max-width:800px) { body:not(.floating-split):not(.floating-focus) .floating-chat.is-expanded .floating-form { margin:10px 12px 12px; padding:12px; gap:8px; } body:not(.floating-split):not(.floating-focus) .floating-chat.is-expanded #floating-input { font-size:16px; } body:not(.floating-split):not(.floating-focus) .floating-chat.is-expanded .floating-input-spark { font-size:24px; } }

/* 과거 대화 목록(헤더 아래 펼침) */
.floating-head { position:relative; }
.floating-controls #floating-history b { display:inline-grid; place-items:center; min-width:18px; height:18px; margin-left:4px; padding:0 5px; border-radius:9px; background:#e8f4ec; color:#147c48; font-size:12px; font-weight:800; }
.floating-history-list { position:absolute; z-index:30; top:calc(100% + 6px); right:18px; width:min(400px,calc(100% - 36px)); max-height:min(440px,60vh); overflow-y:auto; overscroll-behavior:contain; padding:12px; border:1px solid #e1e9e4; border-radius:14px; background:#fff; box-shadow:0 18px 44px -14px #1b283340,0 4px 14px -6px #1b28331f; }
.floating-history-list[hidden] { display:none; }
.floating-history-head { display:flex; align-items:baseline; gap:8px; margin:2px 4px 10px; }
.floating-history-head strong { color:#20242b; font-size:15px; font-weight:800; }
.floating-history-head small { color:#8a9a90; font-size:12.5px; }
.floating-history-list ul { display:grid; gap:4px; margin:0; padding:0; list-style:none; }
.floating-history-list li button { display:grid; gap:3px; width:100%; padding:10px 12px; border:1px solid transparent; border-radius:10px; background:transparent; text-align:left; cursor:pointer; }
.floating-history-list li + li button { border-top-color:#f0f3f1; }
.floating-history-list li button:hover, .floating-history-list li button:focus-visible { background:#f3f9f5; border-color:#dcebe1; outline:0; }
.floating-history-list li button strong { overflow:hidden; color:#304c3b; font-size:14.5px; font-weight:700; line-height:1.45; text-overflow:ellipsis; white-space:nowrap; }
.floating-history-list li button small { color:#8a9a90; font-size:12.5px; }

/* 지표 답변(대시보드·CDP) 왼쪽 대화: 결론 한 줄 + 핵심 숫자 카드 최대 3개(자세한 근거는 오른쪽 결과 화면) */
.floating-chat .floating-entry .floating-answer { display:grid; gap:12px; }
.floating-chat .floating-entry .floating-answer-head { display:flex; align-items:flex-start; gap:8px; margin:0; font-size:18px; line-height:1.5; }
.floating-chat .floating-entry .floating-answer-tag { flex:none; margin-top:2px; padding:2px 8px; border-radius:999px; background:#16a34a; color:#fff; font-size:13px; font-weight:800; line-height:1.5; }
.floating-chat .floating-entry .floating-answer-head strong { color:#1d3a2a; font-size:18px; font-weight:800; letter-spacing:-.01em; }
.floating-chat .floating-entry .floating-answer-stats { display:grid; grid-template-columns:repeat(var(--count,3),minmax(0,1fr)); gap:8px; }
.floating-chat .floating-entry .floating-answer-stat { display:grid; gap:2px; min-width:0; padding:10px 12px; border-radius:12px; background:#f4f8f5; }
.floating-chat .floating-entry .floating-answer-stat strong { overflow:hidden; color:#1d3a2a; font-size:17px; font-weight:800; font-variant-numeric:tabular-nums; letter-spacing:-.01em; text-overflow:ellipsis; white-space:nowrap; }
.floating-chat .floating-entry .floating-answer-stat span { overflow:hidden; color:#6b7d72; font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.floating-chat .floating-entry .floating-answer-bar { display:block; height:4px; margin-top:6px; border-radius:999px; background:linear-gradient(90deg,#16a34a var(--w),#e2eae5 0); }
.floating-chat .floating-entry .floating-answer-bar.is-down { background:linear-gradient(90deg,#e05555 var(--w),#f1e3e3 0); }

/* 답변 방식(⚡ 빠르게 · 추론 하·중·상): 입력창 오른쪽, 보내기 버튼 앞에 좁게. 단계 글자는 손잡이 안에 넣어 폭을 줄입니다. */
/* 입력줄 오른쪽 아이콘 묶음(대화 보기 · ⚡ · 슬라이더)은 촘촘하게: 입력 칸 공간 확보 */
.floating-tools { display:flex; align-items:center; gap:2px; flex:none; margin-left:-8px; margin-right:-2px; }
.floating-chat #floating-fast { display:grid; place-items:center; width:28px; height:28px; padding:0; border:0; border-radius:8px; background:transparent; color:#8a978f; transition:background .15s ease,color .15s ease; }
.floating-chat #floating-fast svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; }
.floating-chat #floating-fast:hover { background:#f1f5f2; color:#3f5a49; }
.floating-chat #floating-fast[aria-pressed="true"] { background:#fff3d1; color:#c81e1e; }   /* 쾌속 켜짐: 진한 빨간 번개 */
.floating-chat #floating-fast[aria-pressed="true"] svg { fill:currentColor; }
/* 추론 슬라이더: 굵은 트랙(12px) + 단계 점 3개 + 글자 손잡이(24px). 하 → 중 → 상으로 갈수록 채움이 길어지고 초록이 진해집니다. */
@property --effort-pos { syntax:'<number>'; inherits:true; initial-value:1; }
@property --effort-tone { syntax:'<color>'; inherits:true; initial-value:#11743a; }
.floating-effort { --effort-pos:1; --effort-tone:#11743a; position:relative; display:block; flex:none; width:68px; height:26px; margin:0 0 0 3px; cursor:pointer; transition:--effort-pos .25s ease,--effort-tone .25s ease; }
.floating-effort[data-level="low"] { --effort-pos:0; --effort-tone:#7fcb9b; }
.floating-effort[data-level="medium"] { --effort-pos:.5; --effort-tone:#2b9d5a; }
.floating-effort[data-level="high"] { --effort-pos:1; --effort-tone:#11743a; }
/* 단계 점: 초록 채움 위는 흰 점, 빈 트랙 위는 회색 점(왼쪽 점은 늘 채움 위, 오른쪽 점은 늘 빈 트랙 위, 가운데 점은 ‘상’일 때만 채움 위) */
#floating-effort { --dot-on:radial-gradient(circle,rgba(255,255,255,.85) 0 2px,transparent 2.5px); --dot-off:radial-gradient(circle,rgba(20,45,30,.22) 0 2px,transparent 2.5px);
  --track:var(--dot-on) 9px 50%/6px 6px no-repeat,var(--dot-off) 50% 50%/6px 6px no-repeat,var(--dot-off) calc(100% - 9px) 50%/6px 6px no-repeat,
          linear-gradient(90deg,var(--effort-tone) calc(12px + (100% - 24px) * var(--effort-pos)),#e2e8e4 0);
  -webkit-appearance:none; appearance:none; display:block; width:100%; height:26px; margin:0; padding:0; background:transparent; cursor:pointer; }
.floating-effort[data-level="high"] #floating-effort { --dot-off:radial-gradient(circle,rgba(255,255,255,.85) 0 2px,transparent 2.5px); }   /* 상: 가운데 점도 채움 위(오른쪽 점은 손잡이에 가려짐) */
#floating-effort::-webkit-slider-runnable-track { height:12px; border-radius:999px; background:var(--track); }
#floating-effort::-moz-range-track { height:12px; border-radius:999px; background:var(--track); }
/* 실제 손잡이는 투명하게 두고(끌기·키보드는 그대로), 위에 글자 손잡이를 겹쳐 그립니다. */
#floating-effort::-webkit-slider-thumb { -webkit-appearance:none; appearance:none; width:24px; height:24px; margin-top:-6px; border:0; background:transparent; }
#floating-effort::-moz-range-thumb { width:24px; height:24px; border:0; background:transparent; }
#floating-effort:focus { outline:0; }
.floating-effort-knob { position:absolute; top:1px; left:calc((100% - 24px) * var(--effort-pos)); display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#fff;
  color:var(--effort-tone); font-size:12px; font-weight:800; line-height:1; pointer-events:none;
  box-shadow:0 1px 4px rgba(20,40,30,.28),0 0 0 2px var(--effort-tone); transition:transform .15s ease; }
.floating-effort[data-level="low"] .floating-effort-knob { color:#3d8f5c; }   /* 연한 고리여도 글자는 읽히게 */
.floating-effort[data-level="high"] .floating-effort-knob { box-shadow:0 1px 4px rgba(20,40,30,.28),0 0 0 2px var(--effort-tone),0 0 10px rgba(17,116,58,.38); }
.floating-effort:hover .floating-effort-knob, #floating-effort:active + .floating-effort-knob { transform:scale(1.08); }
#floating-effort:focus-visible + .floating-effort-knob { outline:2px solid #168550; outline-offset:2px; }
/* 맞춤 툴팁: 아이콘·슬라이더 위쪽에 쉬운 한 문장 설명(항상 한 줄) */
.floating-tip { position:fixed; z-index:1000; padding:8px 12px; white-space:pre; border-radius:10px; background:#1f2b24; color:#fff; font-size:13px; font-weight:600; line-height:1.5; letter-spacing:-.01em; word-break:keep-all; box-shadow:0 10px 24px -8px rgba(15,30,20,.45); pointer-events:none; animation:floating-tip-in .12s ease; }
.floating-tip[hidden] { display:none; }
.floating-tip::after { content:''; position:absolute; top:100%; left:var(--arrow-x,50%); transform:translateX(-50%); border:6px solid transparent; border-top-color:#1f2b24; }
@keyframes floating-tip-in { from { opacity:0; transform:translateY(3px); } to { opacity:1; transform:none; } }
body.floating-split .floating-effort { width:60px; }
@media(max-width:800px) { .floating-effort { width:60px; } }
@media(prefers-reduced-motion:reduce) { .floating-chat #floating-fast, .floating-effort, .floating-effort-knob, .floating-tip { transition:none; animation:none; } }

/* 되묻기 후보 카드(대상 고객 찾기 등): 번호 · 굵은 캠페인 이름 · 조건 칩, 카드 전체를 눌러 고릅니다(줄표 없이). */
.floating-chat .floating-entry .floating-options { display:grid; gap:8px; margin-top:12px; }
.floating-chat .floating-entry .floating-option { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; width:100%; padding:11px 12px; border:1px solid #dfe8e2; border-radius:12px; background:#fff; color:inherit; text-align:left; font:inherit; transition:border-color .15s ease,background .15s ease,transform .15s ease; }
.floating-chat .floating-entry button.floating-option:not(:disabled):hover { border-color:#16a34a; background:#f6fbf8; transform:translateY(-1px); }
.floating-chat .floating-entry button.floating-option:disabled { cursor:default; opacity:.55; }
.floating-chat .floating-entry .floating-option.is-chosen { border-color:#16a34a; background:#f1f9f4; opacity:1; }
.floating-chat .floating-entry .floating-option-no { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:#e9f5ee; color:#137d3a; font-size:12.5px; font-weight:800; line-height:1; }
.floating-chat .floating-entry .floating-option.is-chosen .floating-option-no { background:#16a34a; color:#fff; }
.floating-chat .floating-entry .floating-option-body { display:grid; gap:5px; min-width:0; }
.floating-chat .floating-entry .floating-option-tag { justify-self:start; padding:1px 7px; border-radius:6px; background:#eef2ff; color:#4f5fb3; font-size:12px; font-weight:700; }
.floating-chat .floating-entry .floating-option-body strong { color:#1d3a2a; font-size:16px; font-weight:800; line-height:1.4; }
.floating-chat .floating-entry .floating-option-chips { display:flex; flex-wrap:wrap; gap:4px; }
.floating-chat .floating-entry .floating-option-chips span { padding:2px 8px; border-radius:6px; background:#f1f5f2; color:#4f6357; font-size:13px; font-weight:600; line-height:1.5; }
.floating-chat .floating-entry .floating-option-go { color:#9aaba1; font-size:22px; font-weight:700; line-height:1; }
.floating-chat .floating-entry .floating-option-more { margin:0; color:#7b8b81; font-size:13.5px; font-weight:600; }
@media(prefers-reduced-motion:reduce) { .floating-chat .floating-entry .floating-option { transition:none; } }

/* 작업 화면 함께 보기: 대화 | 결과 화면 사이 세로 선을 끌어 너비 조절(가운데 둥근 손잡이). 창이 다 펼쳐진 뒤(1.2초) 나타납니다. */
.floating-resizer { display:none; }
body.floating-split .floating-resizer { position:fixed; z-index:54; top:calc(var(--floating-top) + 55px); bottom:calc(var(--floating-bottom) + 1px); left:calc(var(--floating-left) + var(--floating-chat-width) - 7px);
  display:flex; align-items:center; justify-content:center; width:14px; cursor:col-resize; touch-action:none; outline:0; animation:floating-resizer-in .3s ease 1.2s both; }
body.floating-split .floating-resizer::before { content:''; position:absolute; top:0; bottom:0; left:6px; width:2px; border-radius:2px; background:transparent; transition:background .15s ease; }
body.floating-split .floating-resizer:hover::before, body.floating-resizing .floating-resizer::before, body.floating-split .floating-resizer:focus-visible::before { background:#16a34a; }
.floating-resizer-grip { position:relative; display:block; width:14px; height:46px; border:1px solid #d5e2da; border-radius:999px; background:#fff; box-shadow:0 2px 8px rgba(20,40,30,.14); transition:border-color .15s ease; }
.floating-resizer-grip::before { content:''; position:absolute; inset:14px 3px; background:radial-gradient(circle,#8fa79a 0 1.1px,transparent 1.5px) 0 0/4px 4px; }
body.floating-split .floating-resizer:hover .floating-resizer-grip, body.floating-resizing .floating-resizer-grip, body.floating-split .floating-resizer:focus-visible .floating-resizer-grip { border-color:#16a34a; }
body.floating-split .floating-resizer:focus-visible .floating-resizer-grip { outline:2px solid #168550; outline-offset:2px; }
body.floating-resizing { cursor:col-resize; user-select:none; }
body.floating-resizing iframe { pointer-events:none; }   /* 끄는 동안 결과 화면(iframe)이 마우스를 가져가지 않게 */
@keyframes floating-resizer-in { from { opacity:0; } to { opacity:1; } }
@media(max-width:800px) { body.floating-split .floating-resizer { display:none; } }
@media(prefers-reduced-motion:reduce) { body.floating-split .floating-resizer { animation:none; } }

/* 대화창 헤더 버튼(과거 대화 보기 · 새 대화 · 작업 화면 함께 보기/작은 창으로 · 접기): 크기 · 글꼴 · 테두리 · 아이콘을 하나로 통일 */
#floating-chat .floating-controls button { display:inline-flex; align-items:center; justify-content:center; gap:6px; box-sizing:border-box; height:36px; min-height:36px; padding:0 12px;
  border:1px solid #dde6e0; border-radius:10px; background:#fff; color:#3e5a49; font-size:14.5px; font-weight:700; line-height:1; letter-spacing:-.01em; white-space:nowrap;
  transition:border-color .15s ease,background .15s ease,color .15s ease; }
#floating-chat .floating-controls button:hover { border-color:#b9d6c4; background:#f5faf7; color:#1f5a37; }
#floating-chat .floating-controls button[aria-expanded="true"] { border-color:#16a34a; background:#f1f9f4; color:#1f5a37; }
#floating-chat .floating-controls button svg { flex:none; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
#floating-chat .floating-controls #floating-history b { min-width:20px; height:20px; margin:0; padding:0 6px; border-radius:10px; font-size:12px; line-height:20px; }
#floating-chat .floating-controls #floating-minimize { width:36px; padding:0; }
#floating-chat .floating-controls button[hidden] { display:none; }
@media(max-width:800px) { #floating-chat .floating-controls button { height:34px; min-height:34px; padding:0 10px; font-size:13.5px; } #floating-chat .floating-controls #floating-minimize { width:34px; } }
/* 결과 화면 단계 바의 ‘지금 할 일’과 같은 추천 요청 칩: 단계 바와 같은 보라색 테두리 + 위쪽 ‘현재 AI 추천 선택’ 툴팁 */
.floating-prompts button.is-ai-next { position:relative; border-color:#6d70e0; background:#f8f8ff; color:#3d40a8; font-weight:750; animation:floating-next-glow 2s ease-in-out infinite; }
.floating-prompts button.is-ai-next::before { content:attr(data-next-tip); position:absolute; z-index:3; left:50%; bottom:calc(100% + 7px); transform:translateX(-50%); padding:3px 9px; border-radius:999px; background:#5b5fd6; color:#fff; font-size:12px; font-weight:750; line-height:1.4; white-space:nowrap; box-shadow:0 6px 14px -6px rgba(60,62,170,.55); pointer-events:none; animation:floating-next-tip 1.6s ease-in-out infinite; }
.floating-prompts button.is-ai-next::after { content:''; position:absolute; z-index:3; left:50%; bottom:calc(100% + 2px); transform:translateX(-50%); border:5px solid transparent; border-bottom:0; border-top-color:#5b5fd6; pointer-events:none; animation:floating-next-tip 1.6s ease-in-out infinite; }
@keyframes floating-next-tip { 0%,100% { translate:0 0; } 50% { translate:0 -3px; } }
@keyframes floating-next-glow { 0%,100% { box-shadow:0 0 0 0 rgba(109,112,224,0); } 50% { box-shadow:0 0 0 4px rgba(109,112,224,.16); } }
@media(prefers-reduced-motion:reduce) { .floating-prompts button.is-ai-next, .floating-prompts button.is-ai-next::before, .floating-prompts button.is-ai-next::after { animation:none; } }
