/* ──────────────────────────────────────────────────────────────
   Ponte 데모 — 카카오톡(고객) ↔ 슬랙(담당자) 실시간 흐름
   모든 클래스는 pd- 접두사. 호스트는 --pd-* 토큰만 바꾼다.
   카카오톡 · 슬랙 화면 자체의 색은 실제 제품과 같게 고정.
   움직임은 transform · opacity (진행 막대만 width).
   ────────────────────────────────────────────────────────────── */

.pd-demo{
  /* ── 호스트가 바꿀 수 있는 토큰 ── */
  --pd-bg: transparent;                         /* 무대 배경 */
  --pd-frame: #141416;                          /* 폰 테두리 */
  --pd-frame-edge: rgba(255,255,255,.16);       /* 폰 테두리 하이라이트 */
  --pd-accent: #1f7a5c;                         /* 흐름 색 (패킷 · 커서 강조) */
  --pd-line: rgba(120,120,130,.45);             /* 연결선 */
  --pd-shadow: 0 50px 90px -40px rgba(0,0,0,.55), 0 20px 36px -20px rgba(0,0,0,.35);
  --pd-slack-shadow: 0 30px 70px -36px rgba(0,0,0,.35), 0 0 0 1px rgba(0,0,0,.06);
  --pd-font: "Pretendard", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
  --pd-gap: 24px;

  /* ── 내부 ── */
  --pd-phone-w: 330; --pd-phone-h: 636;
  --pd-slack-w: 660; --pd-slack-h: 636;
  --pd-link-w: 72;  --pd-link-h: 120;
  --pd-ease: cubic-bezier(.16,1,.3,1);
  --pd-pop: cubic-bezier(.34,1.45,.64,1);

  position:relative;
  container-type:inline-size;
  container-name:pd;
  width:100%;
  background:var(--pd-bg);
  font-family:var(--pd-font);
  color:#1d1c1d;
  line-height:1.4;
  -webkit-font-smoothing:antialiased;
  word-break:keep-all;
  box-sizing:border-box;
}
.pd-demo *, .pd-demo *::before, .pd-demo *::after{box-sizing:border-box}
.pd-demo svg{display:block}
.pd-demo button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:default}

/* 무대 */
.pd-stage{
  /* JS 가 없으면 CSS 로 맞춘다 (tan/atan2 로 길이 → 비율) */
  --pd-fit: min(1, tan(atan2(100cqw, 1062px)));
  --pd-ps: var(--pd-fit);
  --pd-ss: var(--pd-fit);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  width:100%;
  padding:8px 0;
}

/* 고정 크기로 그린 뒤 비율로 줄인다 */
.pd-phone{flex:0 0 auto;width:calc(var(--pd-phone-w) * 1px * var(--pd-ps));height:calc(var(--pd-phone-h) * 1px * var(--pd-ps));position:relative}
.pd-phone-in{width:calc(var(--pd-phone-w) * 1px);height:calc(var(--pd-phone-h) * 1px);transform:scale(var(--pd-ps));transform-origin:0 0;position:relative}
.pd-slack{flex:0 0 auto;width:calc(var(--pd-slack-w) * 1px * var(--pd-ss));height:calc(var(--pd-slack-h) * 1px * var(--pd-ss));position:relative}
.pd-slack-in{width:calc(var(--pd-slack-w) * 1px);height:calc(var(--pd-slack-h) * 1px);transform:scale(var(--pd-ss));transform-origin:0 0;position:relative}
.pd-link{flex:0 0 auto;width:calc(var(--pd-link-w) * 1px * var(--pd-ps));height:calc(var(--pd-link-h) * 1px * var(--pd-ps));position:relative;z-index:3}

/* 세로 쌓기 (좁은 화면) */
@container pd (max-width: 0px){
  .pd-stage{
    --pd-fit: min(1, tan(atan2(100cqw, 330px)));
    --pd-ps: var(--pd-fit);
    --pd-ss: min(1, tan(atan2(100cqw, 432px)));
    --pd-slack-w: 432;
    --pd-slack-h: 560;
    --pd-link-w: 200;
    --pd-link-h: 64;
    flex-direction:column;
  }
  .pd-link{width:100%;height:calc(var(--pd-link-h) * 1px * var(--pd-ps))}
  .pd-stage .pd-sb{display:none}
}

/* ─────────────── 연결선 · 패킷 ─────────────── */
.pd-link-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pd-link-path{fill:none;stroke:var(--pd-line);stroke-width:1.5;stroke-dasharray:3 6;stroke-linecap:round}
.pd-link-node{fill:var(--pd-line)}
.pd-packet{
  position:absolute;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;
  border-radius:50%;background:var(--pd-accent);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--pd-accent) 22%, transparent), 0 0 18px 2px color-mix(in srgb, var(--pd-accent) 55%, transparent);
  opacity:0;will-change:transform;pointer-events:none;
}
.pd-packet-tail{
  position:absolute;left:0;top:0;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--pd-accent) 40%, transparent), transparent 70%);
  opacity:0;will-change:transform;pointer-events:none;filter:blur(2px);
}
.pd-packet.pd-in, .pd-packet-tail.pd-in{opacity:1}
.pd-live .pd-packet, .pd-live .pd-packet-tail{transition:opacity .18s}

/* ─────────────── 공통: 나타남 ─────────────── */
.pd-live .pd-anim{opacity:0;transform:translateY(8px);transition:opacity .38s var(--pd-ease),transform .55s var(--pd-ease)}
.pd-live .pd-anim.pd-in{opacity:1;transform:none}
.pd-live .pd-pop{transform:translateY(6px) scale(.94);transition:opacity .26s ease-out,transform .5s var(--pd-pop)}
.pd-live .pd-pop.pd-in{transform:none}
.pd-live .pd-slide{transform:translateX(-14px);transition:opacity .34s var(--pd-ease),transform .6s var(--pd-ease)}
.pd-live .pd-slide.pd-in{transform:none}
.pd-live .pd-tmp:not(.pd-in){display:none}
.pd-live .pd-tmp.pd-in{animation:pd-popin .5s var(--pd-pop) both}
@keyframes pd-popin{from{opacity:0;transform:translateY(6px) scale(.94)}to{opacity:1;transform:none}}
.pd-demo:not(.pd-live) .pd-tmp{display:none}
.pd-demo:not(.pd-live) .pd-unread{display:none}
.pd-demo.pd-fading .pd-anim, .pd-demo.pd-fading .pd-tmp{opacity:0 !important;transition:opacity .5s ease}
.pd-demo.pd-notrans *{transition:none !important}

/* ─────────────── 휴대폰 ─────────────── */
.pd-phone-in{
  border-radius:50px;padding:10px;
  background:linear-gradient(160deg,#2a2a2e,var(--pd-frame) 40%,#232326);
  box-shadow:0 0 0 1.5px #0a0a0b, inset 0 0 0 1.5px var(--pd-frame-edge), var(--pd-shadow);
}
.pd-phone-in::before, .pd-phone-in::after{content:"";position:absolute;background:#2b2b2e;border-radius:2px}
.pd-phone-in::before{left:-3px;top:132px;width:3px;height:28px;box-shadow:0 40px 0 #2b2b2e, 0 86px 0 #2b2b2e}  /* 무음 · 볼륨 */
.pd-phone-in::after{right:-3px;top:180px;width:3px;height:68px}                                             /* 전원 */
.pd-screen{
  position:relative;width:310px;height:616px;border-radius:41px;overflow:hidden;
  background:#b2c7d9;display:flex;flex-direction:column;color:#000;
}
.pd-island{position:absolute;top:9px;left:50%;width:98px;height:29px;margin-left:-49px;background:#000;border-radius:16px;z-index:5}
.pd-island::after{content:"";position:absolute;right:11px;top:9.5px;width:10px;height:10px;border-radius:50%;background:#0d0d14;box-shadow:inset 0 0 0 2px #1d1d26}
.pd-status{height:46px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 24px 4px 30px;font-size:15px;font-weight:600;letter-spacing:-.01em}
.pd-status-r{display:flex;align-items:center;gap:7px}
.pd-status-r svg{height:11px;width:auto;fill:#000}
.pd-batt{width:25px;height:12px;border:1.5px solid rgba(0,0,0,.55);border-radius:4.5px;position:relative;padding:2px}
.pd-batt::before{content:"";display:block;height:100%;width:88%;background:#000;border-radius:2px}
.pd-batt::after{content:"";position:absolute;right:-4.5px;top:3.5px;width:2px;height:4px;background:rgba(0,0,0,.45);border-radius:0 2px 2px 0}

/* 카카오톡 머리 */
.pd-kk-head{height:44px;display:flex;align-items:center;padding:0 14px 0 10px;gap:4px}
.pd-kk-back{width:32px;height:32px;display:grid;place-items:center}
.pd-kk-back svg{width:11px;height:18px;stroke:#1a1a1a;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pd-kk-title{flex:1;font-size:16px;font-weight:600;letter-spacing:-.01em;padding-left:2px}
.pd-kk-ic{width:32px;height:32px;display:grid;place-items:center}
.pd-kk-ic svg{width:20px;height:20px;stroke:#1a1a1a;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}

/* 대화 */
.pd-kk-body{flex:1;padding:10px 10px 6px;display:flex;flex-direction:column;gap:9px;font-size:15px;line-height:1.45;overflow:hidden}
.pd-kk-date{align-self:center;background:rgba(0,0,0,.18);color:#fff;font-size:11.5px;font-weight:500;padding:4px 12px;border-radius:20px;margin-bottom:4px}
.pd-kk-row{display:flex;align-items:flex-end;gap:6px;max-width:100%}
.pd-kk-row.pd-me{flex-direction:row-reverse}
.pd-kk-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;color:#4e6478;line-height:1;padding-bottom:2px;flex:0 0 auto}
.pd-kk-row.pd-me .pd-kk-meta{align-items:flex-end}
.pd-kk-row.pd-you .pd-kk-meta{align-items:flex-start}
.pd-unread{color:#f5d400;font-weight:700;font-size:12px;transition:opacity .4s ease}
.pd-read .pd-unread{opacity:0}
.pd-kk-bub{max-width:214px;padding:8px 11px;border-radius:14px;position:relative;word-break:break-word}
.pd-kk-row.pd-me .pd-kk-bub{background:#fee500;color:#1a1a1a;border-top-right-radius:4px}
.pd-kk-row.pd-you .pd-kk-bub{background:#fff;color:#1a1a1a;border-top-left-radius:4px}
.pd-kk-ava{width:36px;height:36px;border-radius:14px;background:#2b3f58;color:#fff;font-weight:600;font-size:15px;display:grid;place-items:center;flex:0 0 auto;align-self:flex-start;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.pd-kk-grp{display:flex;flex-direction:column;gap:5px;min-width:0}
.pd-kk-name{font-size:12px;color:#3f4f5f;padding-left:2px}
.pd-kk-row.pd-you{gap:8px}
.pd-kk-row.pd-you .pd-kk-meta{margin-bottom:2px}
.pd-kk-you-line{display:flex;align-items:flex-end;gap:6px}

/* 파일 말풍선 */
.pd-kk-file{display:flex;align-items:center;gap:9px;min-width:180px}
.pd-xls{width:30px;height:36px;border-radius:6px;background:#1d7f4b;color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;letter-spacing:.02em;position:relative;flex:0 0 auto}
.pd-xls::before{content:"";position:absolute;right:0;top:0;border-style:solid;border-width:0 10px 10px 0;border-color:transparent #b2c7d9 transparent transparent;border-radius:0 6px 0 0}
.pd-kk-row.pd-me .pd-xls::before{border-right-color:#fee500}
.pd-kk-fname{font-size:14px;font-weight:500;line-height:1.3}
.pd-kk-fsub{font-size:12px;color:#5a5a3a;margin-top:2px}
.pd-kk-prog{height:4px;border-radius:2px;background:rgba(0,0,0,.14);margin-top:6px;overflow:hidden;width:132px}
.pd-kk-prog-fill{height:100%;width:0;background:#1a1a1a;border-radius:2px}
.pd-live .pd-kk-prog-fill.pd-go{width:100%;transition:width 1.05s cubic-bezier(.3,.1,.2,1)}

/* 입력 중 */
.pd-kk-typing{display:flex;gap:4px;align-items:center;padding:12px 13px;min-width:0}
.pd-kk-typing i{width:7px;height:7px;border-radius:50%;background:#9aa6b2;display:block;animation:pd-dot 1.1s infinite ease-in-out}
.pd-kk-typing i:nth-child(2){animation-delay:.15s}
.pd-kk-typing i:nth-child(3){animation-delay:.3s}
@keyframes pd-dot{0%,60%,100%{transform:translateY(0);opacity:.55}30%{transform:translateY(-4px);opacity:1}}

/* 입력창 */
.pd-kk-input{height:52px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 10px 0 8px;flex:0 0 auto}
.pd-kk-plus{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;transition:transform .12s ease,background .12s ease}
.pd-kk-plus svg{width:20px;height:20px;stroke:#333;stroke-width:2;fill:none;stroke-linecap:round}
.pd-kk-plus.pd-press{transform:scale(.86);background:rgba(0,0,0,.07)}
.pd-kk-field{flex:1;min-height:34px;max-height:60px;background:#f1f3f5;border-radius:18px;padding:6px 12px;font-size:15px;line-height:1.35;color:#1a1a1a;display:flex;align-items:center;flex-wrap:wrap;overflow:hidden}
.pd-kk-text{white-space:pre-wrap;word-break:break-word}
.pd-caret{display:inline-block;width:2px;height:17px;background:#1a1a1a;vertical-align:-4px;margin-left:1px;animation:pd-blink 1s steps(2,start) infinite}
.pd-demo:not(.pd-live) .pd-caret{display:none}
@keyframes pd-blink{to{visibility:hidden}}
.pd-kk-mic, .pd-kk-send{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto}
.pd-kk-mic svg{width:20px;height:20px;stroke:#333;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pd-kk-send{background:#fee500;transition:transform .14s ease,opacity .2s ease}
.pd-kk-send svg{width:16px;height:16px;fill:#1a1a1a}
.pd-kk-send.pd-press{transform:scale(.82)}
.pd-kk-input .pd-kk-send{display:none}
.pd-kk-input.pd-has-text .pd-kk-send{display:grid}
.pd-kk-input.pd-has-text .pd-kk-mic{display:none}
.pd-home{height:26px;background:#fff;display:grid;place-items:center;flex:0 0 auto}
.pd-home::before{content:"";width:110px;height:4px;border-radius:3px;background:#000}

/* ─────────────── 슬랙 ─────────────── */
.pd-slack-in{
  border-radius:12px;overflow:hidden;background:#fff;
  box-shadow:var(--pd-slack-shadow);
  display:flex;flex-direction:column;font-size:13px;color:#1d1c1d;
}
.pd-sl-title{height:38px;background:#f7f6f7;border-bottom:1px solid #e3e1e4;display:flex;align-items:center;padding:0 12px;position:relative;flex:0 0 auto}
.pd-lights{display:flex;gap:8px}
.pd-lights i{width:12px;height:12px;border-radius:50%;display:block}
.pd-lights i:nth-child(1){background:#ff5f57;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.12)}
.pd-lights i:nth-child(2){background:#febc2e;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.12)}
.pd-lights i:nth-child(3){background:#28c840;box-shadow:inset 0 0 0 .5px rgba(0,0,0,.12)}
.pd-sl-title-t{position:absolute;left:0;right:0;text-align:center;font-size:12.5px;color:#616061;font-weight:500;pointer-events:none}
.pd-sl-body{flex:1;display:flex;min-height:0}

/* 사이드바 */
.pd-sb{width:188px;flex:0 0 auto;background:#3f0e40;color:rgba(255,255,255,.72);padding:10px 0 12px;display:flex;flex-direction:column;gap:2px}
.pd-sb-ws{display:flex;align-items:center;justify-content:space-between;color:#fff;font-weight:700;font-size:14px;padding:4px 14px 10px;letter-spacing:-.01em}
.pd-sb-ws svg{width:12px;height:12px;stroke:#fff;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.pd-sb-sec{font-size:12px;padding:6px 14px 4px;display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.6)}
.pd-sb-sec svg{width:9px;height:9px;fill:rgba(255,255,255,.6)}
.pd-sb-ch{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 22px;margin:0 8px;border-radius:6px;font-size:14px;line-height:1.4;white-space:nowrap}
.pd-sb-ch .pd-hash{opacity:.7;font-weight:400}
.pd-sb-ch.pd-on{background:#1164a3;color:#fff}
.pd-sb-ch.pd-bold{color:#fff;font-weight:700}
.pd-badge{margin-left:auto;min-width:18px;height:18px;padding:0 6px;border-radius:9px;background:#e01e5a;color:#fff;font-size:11.5px;font-weight:700;display:grid;place-items:center;line-height:1}
.pd-live .pd-badge.pd-anim{transform:scale(.6)}
.pd-live .pd-badge.pd-anim.pd-in{transform:none}
.pd-badge-s{background:rgba(255,255,255,.14)}

/* 본문 */
.pd-day{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:#1d1c1d;margin:-2px 0 -4px}
.pd-day::before,.pd-day::after{content:"";flex:1;height:1px;background:#e3e1e4}
.pd-day span{border:1px solid #e3e1e4;border-radius:20px;padding:3px 10px}
.pd-main{flex:1;min-width:0;display:flex;flex-direction:column;background:#fff;position:relative}
.pd-ch-head{height:46px;border-bottom:1px solid #e3e1e4;display:flex;align-items:center;gap:10px;padding:0 16px;flex:0 0 auto}
.pd-ch-name{font-weight:800;font-size:15px;letter-spacing:-.01em}
.pd-ch-name .pd-hash{opacity:.55;font-weight:600;margin-right:2px}
.pd-ch-sub{font-size:12.5px;color:#616061;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd-ch-sub b{font-weight:600;color:#1d1c1d}
.pd-msgs{flex:1;min-height:0;padding:16px 18px 6px;display:flex;flex-direction:column;gap:14px;overflow:hidden}
.pd-msg{display:flex;gap:9px;align-items:flex-start}
.pd-ava{width:34px;height:34px;border-radius:7px;flex:0 0 auto;display:grid;place-items:center;font-weight:800;font-size:14px}
.pd-ava-k{background:#fee500;color:#1a1a1a}
.pd-ava-ai{background:#1d1c1d;color:#fff;font-size:11.5px;letter-spacing:.02em}
.pd-msg-c{min-width:0;flex:1}
.pd-msg-h{display:flex;align-items:baseline;gap:6px;line-height:1.3;margin-bottom:2px}
.pd-msg-h b{font-weight:800;font-size:14px}
.pd-msg-h span{font-size:12px;color:#616061}
.pd-tag{font-size:10.5px;font-weight:700;color:#616061;background:#eeedee;border-radius:3px;padding:1px 4px;line-height:1.3;vertical-align:1px}
.pd-msg-t{font-size:14px;line-height:1.5}
.pd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.pd-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;line-height:1;padding:6px 9px;border-radius:7px;border:1px solid #e3e1e4;background:#fff;color:#1d1c1d;white-space:nowrap}
.pd-chip-id{border-color:#cfe6d6;background:#f1f9f4;color:#1f4a3a;font-weight:500}
.pd-chip-id svg{width:13px;height:13px;stroke:#1f7a5c;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pd-chip .pd-sep{opacity:.4}
.pd-fchip{display:inline-flex;align-items:center;gap:9px;padding:7px 11px 7px 8px;border:1px solid #e3e1e4;border-radius:9px;background:#fff;margin-top:7px;max-width:100%}
.pd-fchip .pd-xls{width:28px;height:33px;font-size:8.5px;border-radius:5px}
.pd-fchip .pd-xls::before{border-right-color:#fff;border-width:0 8px 8px 0}
.pd-fchip-n{font-size:13.5px;font-weight:600;line-height:1.25}
.pd-fchip-s{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#616061;margin-top:3px;min-height:15px}
.pd-fchip-s svg{width:13px;height:13px;stroke:#1f7a5c;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pd-fchip-s svg path{stroke-dasharray:14;stroke-dashoffset:0}
.pd-live .pd-fchip-s{opacity:0;transition:opacity .3s}
.pd-live .pd-fchip-s.pd-in{opacity:1}
.pd-live .pd-fchip-s svg path{stroke-dashoffset:14;transition:stroke-dashoffset .4s ease-out .1s}
.pd-live .pd-fchip-s.pd-in svg path{stroke-dashoffset:0}
.pd-fchip-s b{color:#1d1c1d;font-weight:600}

/* AI 답변안 */
.pd-ai{margin-left:43px;border-left:3px solid var(--pd-accent);padding:8px 12px 10px;background:#fafafa;border-radius:0 8px 8px 0;position:relative}
.pd-ai-l{display:flex;align-items:center;gap:7px;font-size:12px;color:#616061;margin-bottom:5px}
.pd-ai-l .pd-ava{width:20px;height:20px;border-radius:5px;font-size:9px}
.pd-ai-l b{font-weight:700;color:#1d1c1d}
.pd-ai-l .pd-sep{opacity:.5}
.pd-ai-t{font-size:14px;line-height:1.55;min-height:1.55em;position:relative}
.pd-ai-t::after{content:"";display:inline-block;width:2px;height:1em;background:var(--pd-accent);vertical-align:-2px;margin-left:2px;opacity:0}
.pd-ai.pd-writing .pd-ai-t::after{opacity:1;animation:pd-blink .8s steps(2,start) infinite}
.pd-shimmer{height:14px;width:60%;border-radius:7px;margin:4px 0 6px;background:linear-gradient(90deg,#e8e8e8 20%,#f7f7f7 50%,#e8e8e8 80%);background-size:200% 100%;animation:pd-shim 1s linear infinite}
.pd-shimmer + .pd-shimmer{width:84%;margin-top:0}
@keyframes pd-shim{to{background-position:-200% 0}}
.pd-demo:not(.pd-live) .pd-shimmer{display:none}
.pd-ai-btns{display:flex;gap:6px;margin-top:9px}
.pd-demo .pd-btn{font-size:13px;font-weight:700;padding:6px 11px;border-radius:5px;line-height:1.3;transition:transform .12s ease,filter .12s ease,background .12s ease}
.pd-demo .pd-btn-go{background:#007a5a;color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.12)}
.pd-demo .pd-btn-edit{border:1px solid #bbbabb;color:#1d1c1d;background:#fff}
.pd-demo .pd-btn.pd-press{transform:scale(.94);filter:brightness(.88)}
.pd-demo .pd-btn-go.pd-hover{filter:brightness(1.06)}

/* 담당자 전송 줄 */
.pd-sent{display:flex;align-items:center;gap:7px;margin-left:43px;font-size:12.5px;color:#616061}
.pd-sent svg{width:14px;height:14px;stroke:#1f7a5c;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pd-sent b{font-weight:700;color:#1d1c1d}

/* 입력 */
.pd-comp{margin:6px 16px 14px;border:1px solid #bbbabb;border-radius:8px;height:58px;display:flex;flex-direction:column;justify-content:space-between;padding:8px 10px 6px;flex:0 0 auto}
.pd-comp-line{height:6px;width:0}
.pd-comp-bar{display:flex;align-items:center;gap:10px}
.pd-comp-bar svg{width:16px;height:16px;stroke:#616061;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.pd-comp-send{margin-left:auto;width:26px;height:24px;border-radius:4px;background:#e8e8e8;display:grid;place-items:center}
.pd-comp-send svg{width:13px;height:13px;stroke:#9a9a9a;fill:none;stroke-width:2}

/* 커서 */
.pd-cursor{position:absolute;left:0;top:0;width:22px;height:26px;z-index:6;opacity:0;pointer-events:none;will-change:transform;transition:opacity .25s ease}
.pd-cursor.pd-in{opacity:1}
.pd-cursor svg{width:100%;height:100%;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.pd-cursor-ring{position:absolute;left:-10px;top:-10px;width:22px;height:22px;border-radius:50%;border:2px solid var(--pd-accent);opacity:0;transform:scale(.5)}
.pd-cursor.pd-click .pd-cursor-ring{animation:pd-ring .5s ease-out}
@keyframes pd-ring{0%{opacity:.8;transform:scale(.4)}100%{opacity:0;transform:scale(1.6)}}
.pd-demo:not(.pd-live) .pd-cursor{display:none}

/* 움직임 줄이기 */
@media (prefers-reduced-motion: reduce){
  .pd-demo *{animation:none !important;transition:none !important}
}
