/* gf-ask.css — 「問問好森林」面板樣式（v1.2：待確認標籤、LINE 區塊、聯絡卡）。色票走 token 鏈：嵌入站可設 --ask-primary／--ask-accent 覆寫；
   沒設就用頁面自己的色票（永齡夜宿頁 --c-primary 橄欖綠／--c-accent 可可棕；好森林平台頁 --navy／--green），都沒有用預設值。
   浮動鈕離底 --ask-bottom（預設 24px；有底部預約列的頁 inline 設 84px）。刻意不用藥丸按鈕與等寬標籤；375px 不溢出。 */
.gfa-root{--gfa-primary:var(--ask-primary,var(--c-primary,var(--navy,#103850)));--gfa-primary-dark:var(--ask-primary-dark,var(--c-primary-dark,var(--gfa-primary)));--gfa-accent:var(--ask-accent,var(--c-accent,var(--green-d,#1f7a4a)));--gfa-bottom:var(--ask-bottom,24px);--gfa-text:var(--c-text,var(--ink,#1d2b2b));--gfa-muted:var(--c-muted,var(--muted,#5b6b66));--gfa-border:var(--c-border,var(--line,#e3ece7));--gfa-soft:var(--c-olive-soft,var(--soft,#F0F7F4));--gfa-font:var(--f-sans,system-ui,sans-serif)}
.gfa-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}
.gfa-hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.gfa-fab{position:fixed;right:16px;bottom:calc(var(--gfa-bottom) + env(safe-area-inset-bottom));z-index:70;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:10px 16px;border:0;border-radius:12px;background:var(--gfa-primary);color:#fff;font:700 15px/1.2 var(--gfa-font);box-shadow:0 8px 24px rgba(60,40,20,.18);cursor:pointer}
.gfa-fab:hover{background:var(--gfa-primary-dark)}
.gfa-fab:focus-visible,.gfa-panel button:focus-visible,.gfa-panel a:focus-visible,.gfa-input:focus-visible{outline:3px solid var(--gfa-accent);outline-offset:2px}
.gfa-fab__icon{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.18);font-size:15px}
.gfa-root.is-open .gfa-fab{display:none}
.gfa-panel{position:fixed;right:16px;bottom:calc(var(--gfa-bottom) + env(safe-area-inset-bottom));z-index:71;display:flex;flex-direction:column;width:min(400px,calc(100vw - 32px));max-height:min(72vh,600px);background:#fff;color:var(--gfa-text);border:1px solid var(--gfa-border);border-radius:14px;box-shadow:0 16px 40px rgba(60,40,20,.22);font-family:var(--gfa-font);overflow:hidden;box-sizing:border-box}
.gfa-panel[hidden]{display:none}
.gfa-panel *{box-sizing:border-box}
.gfa-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 6px}
.gfa-title{margin:0;font:700 17px/1.3 var(--gfa-font);color:var(--gfa-primary-dark)}
.gfa-close{appearance:none;border:0;background:transparent;color:var(--gfa-muted);font-size:26px;line-height:1;width:40px;height:40px;border-radius:8px;cursor:pointer}
.gfa-close:hover{background:var(--gfa-soft);color:var(--gfa-text)}
.gfa-intro{margin:0;padding:0 16px 10px;font-size:13.5px;line-height:1.6;color:var(--gfa-muted)}
.gfa-intro[hidden]{display:none}
.gfa-intro--note{margin-top:-4px;font-size:12.5px}
.gfa-log{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 16px 8px;display:flex;flex-direction:column;gap:10px}
.gfa-log:empty{display:none}
.gfa-msg{max-width:92%;padding:10px 12px;border-radius:12px;font-size:15px;line-height:1.65;overflow-wrap:anywhere}
.gfa-msg p{margin:0}
/* 回答的小標、段落用換行分開（MS 守門會保留換行，ms#1539）；textContent 顯示，靠 pre-line 斷行 */
.gfa-msg__text{white-space:pre-line}
.gfa-msg--user{align-self:flex-end;background:var(--gfa-soft);color:var(--gfa-text)}
.gfa-msg--bot{align-self:flex-start;background:#fbf8f2;border:1px solid var(--gfa-border)}
.gfa-msg a{color:var(--gfa-primary-dark)}
.gfa-msg__note{margin-top:6px!important;font-size:12.5px;color:var(--gfa-muted)}
.gfa-handoff{display:block;margin-top:8px;appearance:none;border:1.5px solid var(--gfa-accent);background:#fff;color:var(--gfa-accent);font:600 14px/1.3 var(--gfa-font);padding:8px 12px;border-radius:8px;cursor:pointer;text-align:left}
.gfa-handoff:hover{background:var(--gfa-accent);color:#fff}
.gfa-sug{padding:4px 16px 10px}
.gfa-sug[hidden]{display:none}
.gfa-sug__label{margin:0 0 6px;font-size:13px;color:var(--gfa-muted)}
.gfa-sug__list{display:flex;flex-wrap:wrap;gap:8px}
.gfa-chip{appearance:none;border:1px solid var(--gfa-primary);background:#fff;color:var(--gfa-primary-dark);font:500 14px/1.3 var(--gfa-font);padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left}
.gfa-chip:hover{background:var(--gfa-soft)}
.gfa-form{display:flex;gap:8px;align-items:flex-end;padding:10px 16px;border-top:1px solid var(--gfa-border)}
.gfa-input{flex:1 1 auto;min-width:0;resize:none;min-height:44px;max-height:116px;overflow-y:auto;padding:10px 12px;border:1px solid var(--c-input,#d9cdbf);border-radius:10px;font:15px/1.5 var(--gfa-font);color:var(--gfa-text);background:#fff}
.gfa-send{flex:0 0 auto;min-height:44px;padding:10px 16px;border:0;border-radius:10px;background:var(--gfa-accent);color:#fff;font:700 15px/1.2 var(--gfa-font);cursor:pointer}
.gfa-send:hover{filter:brightness(.92)}
.gfa-send:disabled{opacity:.65;cursor:progress}
.gfa-foot{display:flex;justify-content:space-between;gap:12px;padding:0 16px 12px;font-size:13px}
.gfa-link{appearance:none;border:0;background:transparent;padding:4px 0;color:var(--gfa-primary-dark);font:500 13px/1.4 var(--gfa-font);text-decoration:underline;cursor:pointer}
.gfa-link[hidden]{display:none}
/* v1.2：待確認標籤、LINE 提醒（桌機 QR／手機按鈕）、聯絡卡 */
.gfa-badge{display:inline-block;margin:0 0 6px;padding:2px 8px;border-radius:6px;background:#fff4e0;color:#7a4b00;border:1px solid #f0d49b;font:600 12px/1.5 var(--gfa-font)}
.gfa-line{margin-top:10px;padding-top:10px;border-top:1px dashed var(--gfa-border)}
.gfa-line__hint{margin:0 0 8px!important;font-size:13.5px;color:var(--gfa-text)}
.gfa-line__qr{display:flex;align-items:center;gap:12px;margin:0}
.gfa-line__qr img{flex:0 0 auto;width:128px;height:128px;border:1px solid var(--gfa-border);border-radius:8px;background:#fff;image-rendering:pixelated}
.gfa-line__qr figcaption{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:13.5px;line-height:1.5}
.gfa-line__scan{font-size:12.5px;color:var(--gfa-muted)}
.gfa-line-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:8px;background:#06C755;color:#fff!important;font:700 15px/1.2 var(--gfa-font);text-decoration:none}
.gfa-line-btn:hover{background:#05a948}
.gfa-card{margin-top:10px;padding:10px 12px;border:1px solid var(--gfa-border);border-radius:10px;background:#fff;display:flex;flex-direction:column;gap:6px}
.gfa-card__title{margin:0!important;font-weight:600;font-size:14.5px}
.gfa-card__label{font-size:13px;color:var(--gfa-muted)}
.gfa-card__input{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--c-input,#d9cdbf);border-radius:8px;font:15px/1.4 var(--gfa-font);color:var(--gfa-text);background:#fff}
.gfa-card__input:focus-visible{outline:3px solid var(--gfa-accent);outline-offset:1px}
.gfa-card__note{margin:2px 0 0!important;font-size:12.5px;color:var(--gfa-muted)}
.gfa-card__err{margin:0!important;font-size:13px;color:#a12a1c}
.gfa-card__row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}
.gfa-card__ok{appearance:none;border:0;min-height:44px;padding:10px 14px;border-radius:8px;background:var(--gfa-accent);color:#fff;font:700 14.5px/1.3 var(--gfa-font);cursor:pointer;text-align:left}
.gfa-card__ok:disabled{opacity:.65;cursor:progress}
@media (max-width:480px){
  .gfa-panel{right:8px;left:8px;width:auto;max-height:calc(100vh - 120px)}
  .gfa-fab{right:12px}
}
@media (prefers-reduced-motion:no-preference){.gfa-panel{animation:gfa-in .16s ease-out}@keyframes gfa-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
