/* Shared messenger UI for the homepage and interior consultation frame. */
#chat-panel {
  --chat-blue:#176fa6; --chat-ink:#193247; --chat-muted:#52677a; --chat-line:#d6e2eb;
  position:fixed; display:flex; flex-direction:column; width:520px; height:840px;
  max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); right:24px; bottom:16px;
  overflow:hidden; border:1px solid #c9d9e5; border-radius:24px; background:#fff; color:var(--chat-ink);
  font-size:16px; font-weight:550; line-height:1.65; letter-spacing:-.025em;
  box-shadow:0 24px 90px #15334f33,0 4px 16px #15334f12; isolation:isolate; outline:none;
  animation:chat-panel-in .22s ease-out;
}
#chat-panel[hidden],#chat-panel [hidden]{display:none!important}
#chat-panel *,#chat-panel *::before,#chat-panel *::after{box-sizing:border-box}
#chat-panel :is(button,input,textarea){font-family:inherit;letter-spacing:inherit}
#chat-panel :is(button,a,summary,input,textarea):focus-visible{outline:3px solid #176fa6;outline-offset:3px}
#chat-panel button{cursor:pointer}
#chat-panel button:disabled{cursor:default;opacity:.55}
/* Brand header: automatic guidance, without a fictional staff presence indicator. */
#chat-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px 20px;flex-shrink:0;background:#267dad;color:#fff}
#chat-panel header h2{margin:0;color:#fff;font-size:20px;font-weight:800;line-height:1.25;letter-spacing:-.055em}
#chat-panel header p{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 0;font-size:14px;line-height:1.45;color:#fff;font-weight:550}
#chat-panel .chat-auto-label{display:inline-flex;padding:2px 7px;border:1px solid #ffffff70;border-radius:5px;color:#fff;font-size:12px;font-weight:700;line-height:1.5}
#chat-panel #chat-close{width:44px;height:44px;flex-shrink:0;padding:0 0 3px;margin:0;border:0;border-radius:50%;background:#ffffff19;color:#fff;font-size:32px;font-weight:400;line-height:1}
#chat-panel #chat-close:hover{background:#ffffff30}
#chat-panel #chat-close:focus-visible{outline-color:#fff}
/* Readable messages and touch-friendly suggested replies. */
#chat-panel .chat-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 20px;border:0;background:#eaf1f6;scrollbar-width:thin;scrollbar-color:#a8bfce transparent}
#chat-panel .chat-messages{display:flex;flex-direction:column;flex:none;gap:14px;min-height:0;overflow:visible;padding:0;background:transparent}
#chat-panel .chat-bubble{max-width:94%;padding:16px 18px;flex-shrink:0;border-radius:6px 18px 18px;font-size:16px;font-weight:550;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;word-break:keep-all;animation:chat-bubble-in .22s ease-out}
#chat-panel .chat-bubble.bot{align-self:flex-start;border:1px solid #dbe5ec;background:#fff;color:var(--chat-ink);box-shadow:0 2px 3px #244a6810}
#chat-panel .chat-bubble.user{align-self:flex-end;padding:12px 18px;border:1px solid #c3dff2;border-radius:18px 6px 18px 18px;background:#d8edfc;color:#143e5e;font-weight:650}
#chat-panel .chat-bubble strong{display:block;margin:0 0 9px;font-size:17px;font-weight:750;line-height:1.5}
#chat-panel .chat-bubble p{margin:0}
#chat-panel .chat-bubble a{display:block;margin-top:14px;padding-top:12px;border-top:1px solid var(--chat-line);color:var(--chat-blue);font-size:16px;font-weight:700;line-height:1.6}
#chat-panel .chat-topics{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding:0;background:transparent}
#chat-panel .chat-topics:empty{display:none}
#chat-panel .chat-messages:empty+.chat-topics{margin-top:0}
#chat-panel .chat-topics>button{min-height:48px;padding:12px 16px;border:1px solid #accbdf;border-radius:14px;background:#fff;color:#155e8a;font-size:16px;font-weight:700;line-height:1.5;text-align:left;transition:background .15s,border-color .15s,transform .15s}
#chat-panel .chat-topics>button:hover{background:#f5fbff;border-color:#3285b6}
#chat-panel .chat-topics>button:active{transform:scale(.98)}
#chat-panel[data-field=interest] .chat-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
#chat-panel[data-field=interest] .chat-topics>button{min-height:54px;padding:12px 10px;text-align:center}
#chat-panel .chat-topics .chat-skip{background:transparent;border-style:dashed;color:var(--chat-muted)}
#chat-panel .chat-topics .chat-skip-all{width:100%;text-align:center;background:#f5faff;color:#155e8a}
#chat-panel .chat-topics .chat-back{width:100%;min-height:44px;padding:8px 2px;border:0;background:transparent;color:var(--chat-muted);font-size:14px}
#chat-panel[data-field=dailyVolume] .chat-topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
#chat-panel[data-field=dailyVolume] .chat-topics>button{text-align:center}
#chat-panel[data-field=dailyVolume] .chat-topics>:is(.chat-skip-all,.chat-back){grid-column:1/-1}
/* The composer remains outside the scrolling conversation. */
#chat-panel #chat-form{display:block;flex-shrink:0;margin:0;padding:14px 20px 10px;border:0;border-top:1px solid var(--chat-line);background:#fff}
#chat-panel #chat-input-label{display:block;position:static;width:auto;height:auto;overflow:visible;clip:auto;margin:0 0 8px 4px;color:#39556b;font-size:14px;font-weight:700;line-height:1.4}
#chat-panel .chat-compose{display:flex;align-items:center;gap:8px;padding:5px;border:1px solid #c2d3e0;border-radius:30px;background:#f6f9fb;transition:border-color .2s,box-shadow .2s}
#chat-panel .chat-compose:focus-within{border-color:var(--chat-blue);box-shadow:0 0 0 3px #2581b519}
#chat-panel #chat-input{flex:1;min-width:0;min-height:46px;width:100%;padding:9px 10px 9px 14px;border:0;outline:none;border-radius:0;background:transparent;color:var(--chat-ink);font-size:16px;font-weight:550;line-height:1.5}
#chat-panel #chat-input::placeholder{color:#5e7384;opacity:1}
#chat-panel #chat-form button{display:grid;place-items:center;width:46px;height:46px;min-height:46px;flex-shrink:0;padding:0;border:0;border-radius:50%;background:#207eaf;color:#fff}
#chat-panel #chat-form button:hover{background:#155f89}
#chat-panel #chat-form button svg{width:23px;height:23px;transform:translateX(-1px)}
#chat-panel .chat-footer{display:block;flex-shrink:0;padding:0 20px 10px;border:0;background:#fff}
#chat-panel .chat-footer>span{display:none}
#chat-panel .chat-direct-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#chat-panel .chat-direct-links a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px;border:1px solid var(--chat-line);border-radius:10px;background:#f6f9fb;color:#294d65;font-size:14px;font-weight:750;line-height:1.4}
#chat-panel .chat-direct-links .chat-direct-kakao{background:#fee500;border-color:#eed500;color:#352b16}
#chat-panel .chat-note{flex-shrink:0;margin:0;padding:0 20px 13px;background:#fff;color:var(--chat-muted);font-size:12px;font-weight:550;line-height:1.5;text-align:center}
#chat-panel .chat-honeypot{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}
#chat-panel .chat-inline-action{width:100%;min-height:48px;margin-top:16px;padding:12px;border:1px solid #b7d4e6;border-radius:12px;background:#f0f8fe;color:#155e8a;font-size:16px;font-weight:700;line-height:1.6}
/* A readable request document, with stacked fields and accessible edit controls. */
#chat-panel .chat-summary{width:100%;max-width:100%;padding:22px;border-radius:18px;white-space:normal}
#chat-panel .chat-document-head{padding-bottom:20px;border-bottom:2px solid var(--chat-blue)}
#chat-panel .chat-document-head>span{display:block;margin-bottom:10px;color:var(--chat-blue);font-size:11px;font-weight:800;letter-spacing:.09em}
#chat-panel .chat-document-head>strong{display:block;font-size:22px;font-weight:800;line-height:1.35;letter-spacing:-.05em}
#chat-panel .chat-document-head>p{margin:12px 0 0;color:var(--chat-muted);font-size:16px;font-weight:550;line-height:1.7}
#chat-panel .chat-summary dl{margin:8px 0 20px}
#chat-panel .chat-summary dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;align-items:start;padding:16px 0;border-bottom:1px solid var(--chat-line)}
#chat-panel .chat-summary dt{grid-column:1;grid-row:1;color:var(--chat-muted);font-size:14px;font-weight:650}
#chat-panel .chat-summary dd{grid-column:1;grid-row:2;margin:0;color:var(--chat-ink);font-size:16px;font-weight:650;line-height:1.6;white-space:pre-wrap}
#chat-panel .chat-summary dl button{grid-column:2;grid-row:1/3;align-self:center;min-width:44px;min-height:44px;padding:8px;border:1px solid #c8dbe8;border-radius:9px;background:#f8fbfd;color:#195f8b;font-size:14px;font-weight:700}
#chat-panel .chat-additional-fields{margin:16px 0;padding:14px;border:1px dashed #b4cbdc;border-radius:10px;color:#395b72;font-size:15px}
#chat-panel .chat-additional-fields summary{cursor:pointer;font-weight:700}
#chat-panel .chat-additional-fields dl{margin-bottom:0}
#chat-panel .chat-next-plan{margin:20px 0;padding:18px;border:1px solid #d3e2ed;border-radius:14px;background:#f1f7fb}
#chat-panel .chat-next-plan>strong,#chat-panel .chat-kakao-handoff>strong{color:var(--chat-ink);font-size:16px}
#chat-panel .chat-next-plan ol{display:grid;gap:14px;margin:16px 0;padding:0;list-style:none;counter-reset:step}
#chat-panel .chat-next-plan li{display:flex;align-items:flex-start;gap:10px;color:#284b65;font-size:16px;font-weight:600;line-height:1.6}
#chat-panel .chat-next-plan li::before{counter-increment:step;content:counter(step);display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:#fff;color:#176fa6;font-size:14px;font-weight:750}
#chat-panel .chat-next-plan p,#chat-panel .chat-kakao-handoff p{color:var(--chat-muted);font-size:15px;line-height:1.7}
#chat-panel .chat-next-plan .chat-proof-note{margin-top:14px;padding-top:14px;border-top:1px solid #d3e2ed}
#chat-panel .chat-kakao-handoff{margin:20px 0;padding:16px;border:1px solid #e7dcac;border-radius:14px;background:#fffbee}
#chat-panel .chat-kakao-handoff .chat-inline-action{border-color:#dfce88;background:#fff4c5;color:#584719}
#chat-panel .chat-consent{margin:20px 0 14px;padding:16px;border:1px solid #d3e2ed;border-radius:12px;background:#f7fafc}
#chat-panel .chat-consent>label{display:flex;align-items:flex-start;gap:10px;color:var(--chat-ink);font-size:16px;font-weight:650;line-height:1.65;cursor:pointer}
#chat-panel .chat-consent input{flex-shrink:0;width:22px;height:22px;margin:2px 0 0;accent-color:var(--chat-blue)}
#chat-panel .chat-consent details{margin:12px 0 0;color:var(--chat-muted);font-size:14px}
#chat-panel .chat-consent summary{cursor:pointer;padding:5px 0}
#chat-panel .chat-consent details p{margin-top:10px;font-size:14px;line-height:1.75;white-space:pre-wrap}
#chat-panel .chat-summary>p,#chat-panel .chat-summary .chat-delivery-notice{margin:12px 0;color:var(--chat-muted);font-size:14px;line-height:1.7}
#chat-panel .chat-submit-button,#chat-panel .chat-summary .chat-copy-button{display:block;width:100%;min-height:54px;padding:14px;border:0;border-radius:12px;background:var(--chat-blue);color:#fff;font-size:15px;font-weight:750;line-height:1.5}
#chat-panel .chat-summary .chat-kakao-button{min-height:48px;margin-top:12px;padding:12px;border:0;border-radius:12px;background:#fee500;color:#352b16;font-size:16px;text-align:center}
#chat-panel .chat-document-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
#chat-panel .chat-document-tools button{min-height:44px;padding:10px 6px;border:1px solid #c8dbe8;border-radius:10px;background:#fff;color:#255675;font-size:14px;font-weight:700;line-height:1.5}
#chat-panel .chat-summary textarea{width:100%;padding:12px;border:1px solid var(--chat-line);border-radius:10px;font:inherit;font-size:16px}
#chat-panel .chat-summary .chat-receipt-number{padding:14px;border-radius:10px;background:#eaf4fb;color:#265672;font-size:15px;overflow-wrap:anywhere}
#chat-panel .chat-summary .chat-copy-status{margin-top:14px;color:#155e8a;font-size:15px;font-weight:700}
#chat-panel .chat-copy-status:empty{display:none}
#chat-panel .chat-typing{display:flex;align-items:center;align-self:flex-start;gap:12px;min-height:44px;padding:12px 16px;border:1px solid #dbe5ec;border-radius:6px 18px 18px;background:#fff;color:var(--chat-muted);font-size:13px;font-weight:600}
#chat-panel .chat-typing-dots{display:flex;gap:4px}
#chat-panel .chat-typing-dots i{width:6px;height:6px;border-radius:50%;background:#3785b3;animation:chat-dot .75s ease-in-out infinite}
#chat-panel .chat-typing-dots i:nth-child(2){animation-delay:.12s}
#chat-panel .chat-typing-dots i:nth-child(3){animation-delay:.24s}
@keyframes chat-dot{0%,70%,100%{transform:translateY(0);opacity:.45}35%{transform:translateY(-3px);opacity:1}}
@keyframes chat-bubble-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes chat-panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:640px){
  #chat-panel{width:calc(100% - 16px);max-width:none;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));height:840px;max-height:calc(100dvh - 16px - env(safe-area-inset-bottom));border-radius:20px}
  #chat-panel>header{padding:18px 20px}
  #chat-panel .chat-body{padding:20px 16px}
  #chat-panel .chat-summary{padding:18px}
  #chat-panel #chat-form{padding:12px 16px 10px}
  #chat-panel .chat-footer{padding-inline:16px}
  #chat-panel .chat-note{padding-inline:14px}
}
@media(max-width:359px){
  #chat-panel>header{padding-inline:16px}
  #chat-panel .chat-body{padding-inline:12px}
  #chat-panel .chat-bubble{max-width:97%;padding:14px}
  #chat-panel .chat-summary{padding:16px}
  #chat-panel .chat-next-plan,#chat-panel .chat-consent{padding:12px}
}
/* Compact fixed chrome when a mobile keyboard reduces the viewport. */
@media(max-height:600px){
  #chat-panel>header{padding-block:10px}
  #chat-panel header p{display:none}
  #chat-panel #chat-form{padding-block:8px}
  #chat-panel .chat-note{display:none}
  #chat-panel .chat-footer{padding-bottom:8px}
}
@media(prefers-reduced-motion:reduce){#chat-panel,#chat-panel *,#chat-panel *::before,#chat-panel *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Single-form intake: hospital details, volume and an explicit visit request. */
#chat-panel[data-mode=intake] .chat-body{background:#f8fafc;padding:24px 22px}
#chat-panel[data-mode=intake] .chat-footer,#chat-panel[data-mode=review] .chat-footer{padding-top:10px;border-top:1px solid var(--chat-line)}
#chat-panel .chat-intake{margin:0;padding:0;color:var(--chat-ink)}
#chat-panel .chat-intake-head{margin-bottom:16px}
#chat-panel .chat-intake-head h3{margin:0 0 10px;font-size:20px;font-weight:800;line-height:1.4;letter-spacing:-.045em;word-break:keep-all}
#chat-panel .chat-intake-head p{margin:0;color:var(--chat-muted);font-size:16px;line-height:1.7;word-break:keep-all}
#chat-panel .chat-intake-context{margin:0 0 20px;padding:14px 16px;border:1px solid #c6ddeb;border-radius:12px;background:#edf7fe}
#chat-panel .chat-intake-context p{margin:0;font-size:15px;line-height:1.6;font-weight:650;overflow-wrap:anywhere}
#chat-panel .chat-intake-context p+p{margin-top:8px}
#chat-panel .chat-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;margin:18px 0;padding:0;border:0;min-width:0}
#chat-panel .chat-form-grid legend,#chat-panel .chat-volume-options legend{float:left;grid-column:1/-1;width:100%;padding:0;font-size:16px;font-weight:750;line-height:1.5}
#chat-panel .chat-form-field{min-width:0}
#chat-panel .chat-form-field.is-wide{grid-column:1/-1}
#chat-panel .chat-form-field>label{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin-bottom:6px;font-size:14px;font-weight:700;line-height:1.5}
#chat-panel .chat-field-status{display:inline-block;margin-left:6px;color:#596f80;font-size:12px;font-weight:550;white-space:nowrap}
#chat-panel .chat-form-field :is(input,select,textarea){display:block;width:100%;min-width:0;min-height:46px;padding:10px 12px;border:1px solid #bdcedb;border-radius:10px;background:#fff;color:var(--chat-ink);font-size:16px;font-weight:500;line-height:1.5;box-shadow:0 1px 2px #19324705}
#chat-panel .chat-form-field input::placeholder,#chat-panel .chat-form-field textarea::placeholder{color:#647989;opacity:1;font-size:16px;font-weight:450}
#chat-panel .chat-form-field textarea{resize:vertical;min-height:88px}
#chat-panel .chat-form-field :is(input,select,textarea):focus{border-color:var(--chat-blue);outline:2px solid #176fa630;outline-offset:1px}
#chat-panel .chat-form-field :is(input,select,textarea):user-invalid{border-color:#b34242}
#chat-panel .chat-volume-options{display:flow-root;margin:18px 0;padding:16px 0;border:0;border-block:1px solid var(--chat-line);min-width:0}
#chat-panel .chat-volume-options>p{clear:both;margin:8px 0 14px;color:var(--chat-muted);font-size:15px;line-height:1.6}
#chat-panel .chat-volume-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#chat-panel .chat-volume-grid label{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 6px;border:1px solid #bdcedb;border-radius:10px;background:#fff;color:#284d68;font-size:16px;font-weight:700;line-height:1.5;cursor:pointer}
#chat-panel .chat-volume-grid input{width:17px;height:17px;margin:0;flex-shrink:0;accent-color:var(--chat-blue)}
#chat-panel .chat-volume-grid label:has(input:checked){background:#e7f3fc;border-color:var(--chat-blue);box-shadow:inset 0 0 0 1px var(--chat-blue);color:#155e8a}
#chat-panel .chat-volume-grid label:has(input:focus-visible){outline:2px solid var(--chat-blue);outline-offset:3px}
#chat-panel .chat-volume-clear{display:block;margin:8px 0 0 auto;min-height:38px;border:0;padding:6px 2px;background:transparent;color:var(--chat-muted);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:3px}
#chat-panel .chat-visit-choice{margin:18px 0;padding:14px;border:1px solid #d5bf87;border-radius:14px;background:#fff9eb}
#chat-panel .chat-visit-choice:has(input:checked){border-color:#b88624;background:#fff5da;box-shadow:inset 0 0 0 1px #b88624}
#chat-panel .chat-visit-choice>label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;min-height:44px}
#chat-panel .chat-visit-choice input{width:24px;height:24px;flex-shrink:0;margin:2px 0 0;accent-color:#176fa6}
#chat-panel .chat-visit-choice label>span{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
#chat-panel .chat-visit-choice strong{color:#44371e;font-size:17px;font-weight:800;line-height:1.5;word-break:keep-all}
#chat-panel .chat-visit-choice small{font-size:13px;color:#6e6042}
#chat-panel .chat-visit-choice p{margin:10px 0 0;color:#574b33;font-size:16px;line-height:1.7;word-break:keep-all}
#chat-panel .chat-visit-choice .chat-visit-note{font-size:14px;color:#726347}
#chat-panel .chat-quote-request{margin:18px 0;padding:14px;border:1px solid #bcd7e9;background:#f1f8fd;border-radius:14px;min-width:0}
#chat-panel .chat-quote-toggle{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;cursor:pointer}
#chat-panel .chat-quote-toggle input{width:20px;height:20px;margin:4px 0 0;accent-color:var(--chat-accent);flex-shrink:0}
#chat-panel .chat-quote-toggle strong{font-size:17px;line-height:1.5;font-weight:800}
#chat-panel .chat-quote-request p{font-size:15px;line-height:1.75;margin:12px 0 0;color:#486278}
#chat-panel .chat-registration-upload{border-top:1px solid #cbdde9;margin-top:18px;padding-top:18px}
#chat-panel .chat-registration-upload label{display:block;font-size:15px;font-weight:750;line-height:1.5}
#chat-panel .chat-registration-upload input{display:block;width:100%;min-width:0;box-sizing:border-box;font:inherit;font-size:14px;margin-top:12px;padding:12px;background:white;border:1px dashed #99b9cf;border-radius:9px;color:#37556a;overflow:hidden}
#chat-panel .chat-registration-upload input::file-selector-button{font:inherit;font-weight:700;background:#e9f3fb;border:1px solid #b9d5e6;border-radius:6px;padding:9px 12px;margin-right:10px;color:#205b80;cursor:pointer}
#chat-panel .chat-registration-status{overflow-wrap:anywhere}
#chat-panel .chat-file-remove{margin-top:10px;border:0;background:none;padding:8px 0;font:inherit;font-size:14px;color:#286482;text-decoration:underline;cursor:pointer}
#chat-panel .chat-registration-review{margin:20px 0;padding:18px;border:1px solid #c8dce9;background:#f2f8fc;border-radius:12px;overflow-wrap:anywhere}
#chat-panel .chat-registration-review strong{font-size:16px}
#chat-panel .chat-registration-review p{font-size:15px;line-height:1.7;margin:8px 0;color:#496577}
@media(max-width:440px){#chat-panel .chat-quote-request{padding:16px}#chat-panel .chat-quote-toggle strong{font-size:16px}}
#chat-panel .chat-intake>.chat-delivery-notice{margin:12px 0;color:var(--chat-muted);font-size:14px;line-height:1.7}
#chat-panel .chat-intake>.chat-submit-button{margin-top:14px;min-height:56px;font-size:16px}
@media(max-width:440px){
 #chat-panel[data-mode=intake] .chat-body{padding:22px 16px}
 #chat-panel .chat-intake-head h3{font-size:20px}
 #chat-panel .chat-form-grid{gap:14px 12px}
 #chat-panel .chat-volume-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 #chat-panel .chat-visit-choice{padding:16px}
}

/* One conversation stream: only the current menu is shown, until selected. */
#chat-panel .chat-body{overflow-anchor:none}
#chat-panel .chat-messages>.chat-topics{width:100%;margin:2px 0;flex-shrink:0}
#chat-panel .chat-more-topics{background:transparent;border-color:var(--chat-line);color:var(--chat-muted);margin-top:10px}
#chat-panel[data-mode=intake] .chat-body{background:#eaf1f6}
#chat-panel .chat-messages>.chat-intake{width:100%;min-width:0;flex-shrink:0;margin:4px 0;padding:16px;border:1px solid #d7e2eb;border-radius:18px;background:#fff;box-shadow:0 2px 3px #244a6810}
@media(max-width:440px){#chat-panel .chat-messages>.chat-intake{padding:14px}}

/* One messenger, from the first greeting to the consultation request. */
#chat-panel{--chat-blue:#146e81;--chat-ink:#18343f;--chat-muted:#647680;--chat-line:#dfe6e9;width:480px;height:800px;border-color:#e0e7ea;border-radius:22px;font-size:15px}
#chat-panel>header{padding:14px 18px;background:#fff;color:var(--chat-ink)}
#chat-panel header h2{font-size:20px;color:var(--chat-ink)}
#chat-panel header p{margin-top:7px;font-size:13px;font-weight:500;color:var(--chat-muted)}
#chat-panel #chat-close{background:#f1f4f5;color:var(--chat-ink);width:38px;height:38px;font-size:29px}
#chat-panel #chat-close:hover{background:#e4ecef}
#chat-panel #chat-close:focus-visible{outline-color:var(--chat-blue)}
#chat-panel>.chat-footer{display:block;padding:8px 14px;border-bottom:1px solid var(--chat-line);background:#fff}
#chat-panel .chat-direct-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#chat-panel .chat-direct-links a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:56px;padding:8px;border:1px solid #ccdce2;border-radius:13px;background:#eef5f8;color:#173c4b;line-height:1.4;text-decoration:none;transition:background .18s,box-shadow .18s}
#chat-panel .chat-direct-links .chat-direct-kakao{color:#302713;background:#fee500;border-color:#f0d800}
#chat-panel .chat-direct-title{display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
#chat-panel .chat-direct-title strong{font-size:16px;font-weight:800;letter-spacing:-.04em}
#chat-panel .chat-direct-emoji{font-size:23px;line-height:1}
#chat-panel .chat-direct-caption{font-size:12px;font-weight:600;letter-spacing:-.02em}
#chat-panel .chat-direct-kakao .chat-direct-caption{font-size:14px;font-weight:800;color:#302713}
#chat-panel .chat-direct-phone:hover{background:#e0eef4;box-shadow:0 3px 9px #173c4b12}
#chat-panel .chat-direct-kakao:hover{background:#f7dc00;box-shadow:0 3px 9px #59470018}
#chat-panel .chat-direct-links a:focus-visible{outline:3px solid #146e81;outline-offset:3px}
#chat-panel .chat-body,#chat-panel[data-mode=intake] .chat-body{background:#f3f6f7;padding:14px;scroll-padding-bottom:12px}
#chat-panel .chat-messages{gap:12px}
#chat-panel .chat-conversation-date{align-self:center;margin:0 0 8px;color:#839199;font-size:12px;font-weight:500;line-height:1.5}
#chat-panel .chat-bubble{max-width:96%;font-size:15px;line-height:1.6;font-weight:500;padding:12px 14px;border-radius:4px 18px 18px;animation:chat-bubble-in .24s ease-out}
#chat-panel .chat-bubble.bot{border:1px solid #e3e9ec;box-shadow:0 2px 5px #1c3c4805}
#chat-panel .chat-bubble.bot::before{content:'그랜드메드랩';display:block;margin:0 0 6px;color:#647983;font-size:12px;font-weight:650;letter-spacing:-.02em}
#chat-panel .chat-bubble.user{max-width:88%;background:#173c4b;color:#fff;border:0;border-radius:18px 4px 18px 18px;font-size:16px;font-weight:550;padding:12px 17px}
#chat-panel .chat-bubble strong{font-size:16px}
#chat-panel .chat-bubble .chat-topics{display:flex;flex-direction:column;align-items:stretch;gap:7px;margin:12px 0 0;width:100%}
#chat-panel .chat-topics .chat-quick-reply{min-height:44px;padding:9px 12px;border:1px solid #d7e4e8;border-radius:10px;background:#fff;color:#19566b;font-size:15px;font-weight:650;text-align:left;line-height:1.5}
#chat-panel .chat-topics .chat-quick-reply:hover{background:#f0f7f9;border-color:#72a6b4}
#chat-panel .chat-inline-action{min-height:46px;padding:12px 14px;border-color:#cbdee4;background:#eef6f8;color:#14576b;font-size:16px;border-radius:10px}
#chat-panel .chat-resume{flex-shrink:0;min-height:40px;padding:10px 20px;border:0;border-top:1px solid var(--chat-line);background:#eff6f8;color:#22596b;font-size:13px;font-weight:650;text-align:center}
#chat-panel #chat-form{padding:10px 14px 8px}
#chat-panel #chat-input-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:0}
#chat-panel .chat-compose{padding:5px;border-color:#dce5e9;border-radius:16px;background:#f7f9fa}
#chat-panel #chat-input{font-size:16px;padding-left:12px;min-height:44px}
#chat-panel #chat-input::placeholder{color:#7b8b93;font-weight:450}
#chat-panel #chat-form button{width:40px;height:40px;min-height:40px;border-radius:12px;background:#173c4b}
#chat-panel #chat-form button:hover{background:#146e81}
#chat-panel .chat-note{font-size:11px;font-weight:450;color:#7b8b93;padding:0 18px 12px;line-height:1.5}
#chat-panel .chat-typing{border-color:#e3e9ec;font-size:12px;box-shadow:none}
#chat-panel .chat-typing-dots i{background:#6c929f}
#chat-panel .chat-messages>.chat-intake{border-color:#e0e7ea;box-shadow:none;border-radius:4px 18px 18px}
#chat-panel .chat-intake-head h3{font-size:20px;line-height:1.45}
#chat-panel .chat-intake-head p{font-size:15px}
@media(max-width:640px){
  #chat-panel{width:calc(100% - 16px);height:800px;border-radius:20px}
  #chat-panel>header{padding:14px 16px}
  #chat-panel>.chat-footer{padding:8px 12px}
  #chat-panel .chat-direct-title strong{font-size:15px}
  #chat-panel .chat-direct-emoji{font-size:21px}
  #chat-panel .chat-body,#chat-panel[data-mode=intake] .chat-body{padding:14px 12px}
  #chat-panel .chat-bubble{max-width:100%;padding:12px 14px;font-size:15px}
  #chat-panel .chat-topics .chat-quick-reply{font-size:15px}
}
@media(max-width:360px){#chat-panel .chat-direct-title strong{font-size:15px}#chat-panel .chat-direct-title{gap:5px}#chat-panel .chat-direct-emoji{font-size:16px}#chat-panel .chat-direct-caption{font-size:11px}}
@media(max-height:600px){#chat-panel>header{padding-block:10px}#chat-panel>.chat-footer{padding-block:6px}#chat-panel #chat-form{padding-block:8px}}

/* The visitor chooses the consultation scope; available tests are not preselected. */
#chat-panel .chat-test-selection{min-width:0;margin:0 0 18px;padding:0 0 16px;border:0;border-bottom:1px solid var(--chat-line)}
#chat-panel .chat-test-selection legend{padding:0;font-size:17px;font-weight:800;line-height:1.5;color:var(--chat-ink)}
#chat-panel .chat-test-help{font-size:15px;line-height:1.6;color:var(--chat-muted);margin:7px 0 14px}
#chat-panel .chat-test-choices{display:flex;flex-wrap:wrap;gap:9px}
#chat-panel .chat-test-choices label{display:flex;align-items:center;gap:9px;min-height:44px;max-width:100%;padding:9px 11px;border:1px solid #c6d5db;border-radius:10px;background:#fff;color:var(--chat-ink);font-size:15px;font-weight:750;line-height:1.5;cursor:pointer}
#chat-panel .chat-test-choices label:has(input:checked){border-color:#087b68;background:#eaf7f0;color:#076452}
#chat-panel .chat-test-choices label:focus-within{outline:2px solid #087b68;outline-offset:2px}
#chat-panel .chat-test-choices input{width:20px;height:20px;min-width:20px;margin:0;accent-color:#087b68}
#chat-panel .chat-test-custom{margin-top:15px}
#chat-panel .chat-test-custom summary{cursor:pointer;font-size:15px;font-weight:650;color:#526f7b;padding:5px 0}
#chat-panel .chat-test-custom .chat-form-field{margin-top:12px}
#chat-panel .chat-test-free{margin-bottom:16px}

/* Preserve comfortable input text and compact contact fields. */
#chat-panel #chat-input{font-size:16px}
@media(max-width:359px){#chat-panel .chat-form-grid{grid-template-columns:1fr}}

/* Form actions stay visible while the request scrolls. */
#chat-panel .chat-action-dock{flex-shrink:0;padding:10px 14px 12px;border-top:1px solid var(--chat-line);background:#fff;box-shadow:0 -5px 18px #18343f08}
#chat-panel .chat-action-step{margin:0 0 7px;color:#3c5a64;font-size:13px;font-weight:700;line-height:1.4}
#chat-panel .chat-action-step:empty{display:none}
#chat-panel .chat-action-buttons{display:grid;grid-template-columns:minmax(82px,.7fr) minmax(0,1.6fr);gap:9px}
#chat-panel .chat-action-buttons button{margin:0;min-height:50px;padding:11px 9px;border-radius:10px;font-size:16px;font-weight:750;line-height:1.4}
#chat-panel .chat-action-buttons .chat-submit-button{background:#087b68;color:#fff}
#chat-panel .chat-action-buttons .chat-submit-button:hover{background:#066352}
#chat-panel .chat-action-back{border:1px solid #ccd9de;background:#f7f9fa;color:#315560}
#chat-panel .chat-action-dock .chat-submit-status{margin:8px 0 0;color:#9e342c;font-size:14px;line-height:1.5;max-height:100px;overflow:auto}
#chat-panel .chat-action-dock .chat-submit-status:empty{display:none}
#chat-panel .chat-action-dock .chat-submit-status.is-sending{color:#176457}
#chat-panel .chat-action-buttons .chat-submit-button.is-sending{display:flex;align-items:center;justify-content:center;gap:10px;opacity:1;background:#087b68;cursor:wait}
#chat-panel .chat-submit-button.is-sending::before{content:"";width:18px;height:18px;flex:none;border:2px solid #ffffff55;border-top-color:#fff;border-radius:50%;animation:chat-send-spin .8s linear infinite}
@keyframes chat-send-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#chat-panel .chat-submit-button.is-sending::before{animation:none}}
#chat-panel:is([data-mode=intake],[data-mode=review])>.chat-note{display:none}
#chat-panel .chat-summary.bot::before{display:none}
#chat-panel .chat-document-head>span{font-size:13px;letter-spacing:0}
#chat-panel .chat-document-head>p{font-size:15px;line-height:1.5}
#chat-panel .chat-summary.chat-complete{padding:30px 20px;text-align:center;border-radius:16px}
#chat-panel .chat-complete .chat-document-head{padding:0;border:0}
#chat-panel .chat-complete .chat-complete-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 16px;border-radius:50%;background:#e5f5ee;color:#087b68;font-size:27px;font-weight:750}
#chat-panel .chat-complete .chat-document-head>strong{font-size:22px}
#chat-panel .chat-complete .chat-document-head>p{margin:10px 0 0;font-size:16px}
@media(max-width:640px){
  #chat-panel .chat-action-dock{padding:9px 12px max(12px,env(safe-area-inset-bottom))}
  #chat-panel .chat-action-buttons button{min-height:48px;font-size:15px}
  #chat-panel .chat-summary dl>div{padding:12px 0}
}

/* Keep the first enquiry focused on contact details. */
#chat-panel .chat-intake .chat-form-grid legend{display:none}
#chat-panel .chat-intake-head p{font-size:14px;line-height:1.5}
#chat-panel .chat-planning-details{margin:18px 0;border:1px solid var(--chat-line);border-radius:10px;padding:0 14px;background:#f8fbf9}
#chat-panel .chat-planning-details>summary{padding:15px 0;min-height:48px;cursor:pointer;color:#174e45;font-size:15px;font-weight:700;line-height:1.5}
#chat-panel .chat-planning-details>summary:focus-visible{outline:3px solid #087b68;outline-offset:3px}
#chat-panel .chat-planning-details[open]{padding-bottom:14px}
#chat-panel .chat-planning-details .chat-form-grid{margin-top:3px}
#chat-panel .chat-planning-details :is(.chat-visit-choice,.chat-quote-request){margin-block:10px}

/* Replacement enquiries start with one short, editable reason. */
#chat-panel .chat-replacement-card{padding:22px 18px;border:1px solid var(--chat-line);border-radius:16px;background:#fff}
#chat-panel .chat-replacement-card h3{margin:0 0 20px;font-size:21px;line-height:1.45;color:var(--chat-ink)}
#chat-panel .chat-replacement-options{display:grid;gap:10px}
#chat-panel .chat-replacement-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:58px;margin:0;padding:14px;border:1px solid #b8d1cc;border-radius:11px;background:#f3f8f6;color:#164b43;font-size:16px;font-weight:750;line-height:1.5;text-align:left}
#chat-panel .chat-replacement-option span{flex:none;font-size:20px}
#chat-panel .chat-replacement-option:hover,#chat-panel .chat-replacement-option[aria-pressed=true]{background:#e0f1e9;border-color:#087b68}
#chat-panel .chat-replacement-option:focus-visible,#chat-panel .chat-replacement-selected button:focus-visible{outline:3px solid #087b68;outline-offset:3px}
#chat-panel .chat-replacement-back{margin:18px 0 0;padding:8px 0;border:0;background:transparent;color:#486775;font-size:14px;text-decoration:underline;text-underline-offset:4px}
#chat-panel[data-mode=replacement]>.chat-note{display:none}
#chat-panel[data-mode=replacement] .chat-messages>:not(.chat-replacement-card){display:none}
#chat-panel .chat-replacement-selected{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 18px;padding:14px;border:1px solid #cce0d9;border-radius:10px;background:#edf6f1}
#chat-panel .chat-replacement-selected div{display:grid;gap:5px}
#chat-panel .chat-replacement-selected span{font-size:13px;color:#42685e}
#chat-panel .chat-replacement-selected strong{font-size:16px;line-height:1.45;color:#164b43}
#chat-panel .chat-replacement-selected button{flex:none;min-width:48px;min-height:44px;margin:0;padding:8px;border:1px solid #bad3c9;border-radius:8px;background:#fff;color:#164b43;font-size:14px;font-weight:700}
@media(max-width:640px){#chat-panel .chat-replacement-card{padding:19px 15px}#chat-panel .chat-replacement-card h3{font-size:20px}#chat-panel .chat-replacement-option{font-size:15px;padding:12px;min-height:54px}}
