/* 건미수 AI 상담원 「나린」 + 언어 메뉴 — 색·글꼴은 style.css 토큰(--ink --deep --ivory --line --muted)을 따르고 없으면 같은 값으로 */
#gm-assist{--gm-ink:var(--ink,#253a43);--gm-deep:var(--deep,#244551);--gm-ivory:var(--ivory,#f4f5f3);--gm-paper:#fbfbf9;--gm-line:var(--line,#cdd5d8);--gm-muted:var(--muted,#5a6d78);--gm-sage:var(--sage,#e8eeeb);
  position:fixed;right:20px;bottom:20px;z-index:80;font-family:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:var(--gm-ink);word-break:keep-all}
#gm-assist.gm-hidden,body.menu-open #gm-assist{display:none}
#gm-assist.gm-lift{bottom:112px}
@media (max-width:800px){#gm-assist.gm-lift{bottom:128px}}   /* 폰 첫 화면 아래 단추줄 두 줄(home.css) 위 */
@media (min-width:641px) and (max-width:800px){#gm-assist.gm-lift .gm-panel{bottom:196px;height:min(540px,calc(100vh - 220px))}}
@media (min-width:641px){#gm-assist.gm-lift .gm-panel{bottom:180px;height:min(540px,calc(100vh - 204px))}}
#gm-assist *{box-sizing:border-box}
#gm-assist button,#gm-assist textarea{font-family:inherit}

/* 작은 원 — 지름 56px, 안에 세리프 「樹」 한 글자 */
.gm-fab{display:block;width:56px;height:56px;border-radius:50%;border:1px solid rgba(244,245,243,.4);background:var(--gm-ink);color:var(--gm-ivory);
  font:400 26px/1 Editorial,Georgia,'Batang','Noto Serif KR','Noto Serif CJK KR',serif;padding:0;cursor:pointer;box-shadow:0 8px 24px rgba(21,39,51,.28);
  transition:opacity .2s,box-shadow .2s}
.gm-fab:hover{box-shadow:0 10px 28px rgba(21,39,51,.36)}
.gm-fab:focus-visible,.gm-panel button:focus-visible,.gm-panel textarea:focus-visible{outline:2px solid var(--gm-deep);outline-offset:2px}
.gm-fab:focus-visible{outline-color:var(--gm-ivory);outline-offset:-5px}

/* 채팅창 */
.gm-panel{position:fixed;right:20px;bottom:88px;width:360px;height:min(540px,calc(100vh - 112px));background:var(--gm-ivory);border:1px solid var(--gm-line);
  border-radius:8px;box-shadow:0 18px 50px rgba(21,39,51,.24);display:flex;flex-direction:column;overflow:hidden}
.gm-panel[hidden]{display:none}
.gm-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--gm-line);background:var(--gm-paper)}
.gm-mark{flex:none;width:34px;height:34px;border-radius:50%;background:var(--gm-ink);color:var(--gm-ivory);display:grid;place-items:center;
  font:400 17px/1 Editorial,Georgia,'Batang',serif}
.gm-title{flex:1;min-width:0}
.gm-title b{display:block;font:400 17px/1.2 Editorial,Georgia,'Batang',serif;letter-spacing:-.03em;color:var(--gm-ink)}
.gm-title small{display:block;margin-top:3px;font-size:11px;letter-spacing:.02em;color:var(--gm-muted)}
.gm-close{flex:none;width:36px;height:36px;border:0;background:none;color:var(--gm-ink);font-size:22px;line-height:1;cursor:pointer}
.gm-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.gm-msg{max-width:88%;padding:10px 13px;font-size:14px;line-height:1.65;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty;border-radius:10px}
.gm-bot{align-self:flex-start;background:var(--gm-paper);border:1px solid var(--gm-line);color:var(--gm-ink)}
.gm-user{align-self:flex-end;background:var(--gm-ink);color:var(--gm-ivory)}
.gm-typing{color:var(--gm-muted);font-size:13px}
.gm-acts{align-self:flex-start;display:flex;flex-wrap:wrap;gap:6px;max-width:92%}
.gm-act{min-height:36px;padding:8px 12px;border:1px solid var(--gm-deep);border-radius:4px;background:transparent;color:var(--gm-deep);font-size:12.5px;letter-spacing:.01em;cursor:pointer;text-align:start}
.gm-act:hover{background:var(--gm-sage)}
.gm-form{display:flex;gap:8px;align-items:flex-end;padding:12px;border-top:1px solid var(--gm-line);background:var(--gm-paper)}
.gm-in{flex:1;min-width:0;resize:none;max-height:96px;min-height:44px;padding:11px 12px;border:1px solid var(--gm-line);border-radius:4px;background:#fff;color:var(--gm-ink);font-size:15px;line-height:1.45}
.gm-send{flex:none;min-height:44px;padding:0 16px;border:0;border-radius:4px;background:var(--gm-ink);color:var(--gm-ivory);font-size:13px;cursor:pointer}
.gm-send:disabled{opacity:.5;cursor:default}

/* 폰: 바텀시트 최대 72vh — 키보드가 올라올 때만 JS 가 높이를 늘린다 */
@media (max-width:640px){
  #gm-assist{right:16px;bottom:16px}
  .gm-panel{position:fixed;left:0;right:0;bottom:0;width:auto;height:min(72vh,560px);max-height:72vh;border-radius:14px 14px 0 0;border-width:1px 0 0;padding-bottom:env(safe-area-inset-bottom)}
  .gm-panel.gm-kb{max-height:none}
  #gm-assist.gm-open .gm-fab{display:none}
  .gm-in{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.gm-fab{transition:none}}

/* 언어 메뉴 — 단추는 헤더의 기존 버튼 규칙(.header-right button)을 그대로 따른다 */
#gm-lang{cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;font-size:13px;padding:0 6px}
#gm-lang.gm-lang-float{position:fixed;top:12px;right:12px;z-index:70;font-size:13px;background:rgba(251,251,249,.9);border:1px solid #cdd5d8;color:#344754;padding:6px 10px}
#gm-lang-menu{position:fixed;z-index:90;width:min(420px,calc(100vw - 16px));max-height:min(60vh,420px);overflow-y:auto;padding:6px;background:#fbfbf9;border:1px solid #cdd5d8;
  border-radius:6px;box-shadow:0 14px 40px rgba(21,39,51,.22);display:grid;grid-template-columns:repeat(3,1fr);gap:2px;font-family:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif}
#gm-lang-menu[hidden]{display:none}
#gm-lang-menu button{border:0;background:none;color:#253a43;font:inherit;font-size:12px;text-align:start;padding:9px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px}
#gm-lang-menu button:hover{background:#e8eeeb}
#gm-lang-menu button[aria-selected="true"]{background:#e8eeeb;font-weight:700}
@media (max-width:640px){#gm-lang-menu{grid-template-columns:repeat(2,1fr)}}
