/* 在日ライフナビ - AIコンシェルジュ chat-ai.css (Batch2-C: T7)
   接頭辞 zl-ai- で既存記事CSSと非衝突。トンマナ: --navy/--blue/--cyan/--light。
   参照: 生成ツール/_AI_BATCH2_SPEC.md §2.8 / §0.1（コントラスト標準色）
   FTPアップロード先: /chat-ai.css
*/

#zl-ai-bubble{
  position:fixed;bottom:24px;right:24px;z-index:2147483000;
  width:56px;height:56px;min-width:44px;min-height:44px;border-radius:50%;
  background:linear-gradient(135deg,#1565C0,#00B4D8);
  color:#06243F;font-size:26px;border:none;cursor:pointer;
  box-shadow:0 4px 16px rgba(0,180,216,.45);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s ease;
}
#zl-ai-bubble:hover{transform:scale(1.08);}
#zl-ai-bubble:focus-visible{outline:3px solid #0B1E3D;outline-offset:2px;}

#zl-ai-teaser{
  position:fixed;bottom:88px;right:24px;z-index:2147482999;
  max-width:240px;background:#fff;color:#0B1E3D;
  border:1px solid #BAE6FD;border-radius:14px 14px 4px 14px;
  padding:10px 14px;font-size:13px;line-height:1.5;
  box-shadow:0 6px 20px rgba(11,30,61,.18);
  cursor:pointer;
  opacity:0;transform:translateY(8px);
  transition:opacity .35s ease,transform .35s ease;
}
#zl-ai-teaser.zl-ai-teaser-show{opacity:1;transform:translateY(0);}

#zl-ai-panel{
  position:fixed;bottom:24px;right:24px;z-index:2147483001;
  width:360px;max-width:calc(100vw - 20px);
  height:70vh;height:70dvh;max-height:600px;
  background:#fff;border-radius:16px;
  box-shadow:0 10px 48px rgba(0,0,80,.22);
  display:flex;flex-direction:column;overflow:hidden;
  font-family:'Meiryo','Hiragino Sans','Yu Gothic',sans-serif;
}
#zl-ai-panel[hidden]{display:none;}

#zl-ai-head{
  background:linear-gradient(135deg,#0B1E3D,#1565C0);
  padding:12px 14px;display:flex;align-items:center;gap:8px;flex-shrink:0;
}
#zl-ai-head-info{flex:1;min-width:0;}
#zl-ai-head-title{font-size:14px;font-weight:bold;color:#fff;line-height:1.3;}
#zl-ai-head-sub{font-size:11px;color:#9ac8e8;line-height:1.3;}
#zl-ai-langsel{
  font-size:12px;padding:4px 6px;border-radius:6px;border:1px solid #cbd5e1;
  background:#fff;color:#0B1E3D;max-width:88px;
}
#zl-ai-close{
  background:none;border:none;color:#fff;cursor:pointer;font-size:18px;
  padding:6px;min-width:32px;min-height:32px;line-height:1;
}
#zl-ai-close:focus-visible,#zl-ai-langsel:focus-visible{outline:3px solid #00B4D8;outline-offset:1px;}

#zl-ai-disclosure{
  flex-shrink:0;font-size:11px;color:#595959;background:#F0F4F8;
  padding:8px 12px;line-height:1.5;border-bottom:1px solid #e2e8f0;
}
#zl-ai-disc-link{color:#1565C0;font-weight:bold;text-decoration:underline;}

#zl-ai-msgs{
  flex:1;overflow-y:auto;padding:12px;
  display:flex;flex-direction:column;gap:10px;
  min-height:0;
}

.zl-ai-msg{max-width:88%;font-size:13px;line-height:1.7;}
.zl-ai-msg-bot{align-self:flex-start;}
.zl-ai-msg-user{align-self:flex-end;}
.zl-ai-msg-user{
  background:linear-gradient(135deg,#1565C0,#00B4D8);color:#fff;
  padding:9px 13px;border-radius:12px;border-bottom-right-radius:4px;
}
.zl-ai-msg-bot > *{
  background:#F0F4F8;color:#1a1a2e;
  padding:9px 13px;border-radius:12px;border-bottom-left-radius:4px;
  margin-bottom:8px;
}
.zl-ai-msg-bot > *:last-child{margin-bottom:0;}
.zl-ai-reply{background:none !important;padding:0 !important;}

.zl-ai-notice{
  background:#FFF7ED !important;border:1px solid #FED7AA;color:#7a5600;
}

.zl-ai-typing{display:flex;gap:4px;align-items:center;padding:2px 0;}
.zl-ai-typing span{width:7px;height:7px;background:#94a3b8;border-radius:50%;animation:zl-ai-bounce .8s infinite;}
.zl-ai-typing span:nth-child(2){animation-delay:.15s;}
.zl-ai-typing span:nth-child(3){animation-delay:.3s;}
@keyframes zl-ai-bounce{0%,80%,100%{transform:translateY(0)}40%{transform:translateY(-6px)}}
.zl-ai-slowwait{font-size:11px;color:#595959;margin-top:6px;}

.zl-ai-cards{display:flex;flex-direction:column;gap:6px;margin-top:4px;}
.zl-ai-card{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:#fff;border:1px solid #E2E8F0;border-radius:10px;
  padding:10px 12px;text-decoration:none;color:#0B1E3D;font-size:13px;font-weight:bold;
  min-height:44px;
}
.zl-ai-card:hover{border-color:#00B4D8;}
.zl-ai-card-arrow{color:#1565C0;font-weight:bold;flex-shrink:0;}

.zl-ai-offer-disclosure{
  font-size:11px;color:#595959;background:none !important;padding:0 !important;margin:2px 0 4px !important;
}

.zl-ai-offers{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.zl-ai-offer-card{
  background:#F8FCFF;border:2px solid #BAE6FD;border-radius:12px;padding:10px 12px;
}
.zl-ai-offer-prbadge{
  display:inline-block;background:#B45309;color:#fff;font-size:12px;font-weight:bold;
  padding:2px 8px;border-radius:8px;margin-bottom:8px;
}
.zl-ai-offer-cta{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:#00B4D8;color:#06243F;font-weight:bold;text-decoration:none;
  font-size:13px;padding:10px 14px;border-radius:8px;min-height:44px;
}
.zl-ai-offer-cta:hover{background:#0B1E3D;color:#fff;}
.zl-ai-offer-arrow{font-weight:bold;flex-shrink:0;}
.zl-ai-offer-hedge{font-size:11px;color:#595959;margin-top:6px;line-height:1.5;}

.zl-ai-tools{display:flex;flex-direction:column;gap:6px;margin-top:6px;}
.zl-ai-tool{
  display:inline-block;color:#1565C0;font-weight:bold;text-decoration:underline;
  font-size:13px;padding:4px 0;
}

#zl-ai-quick{
  flex-shrink:0;padding:0 12px;display:flex;flex-wrap:wrap;gap:6px;
  max-height:96px;overflow-y:auto;
}
#zl-ai-quick:not(:empty){padding-top:8px;padding-bottom:4px;}
.zl-ai-chip{
  background:#EFF6FF;color:#1565C0;border:1px solid #BFDBFE;
  border-radius:16px;padding:6px 12px;font-size:12px;font-weight:bold;
  cursor:pointer;white-space:nowrap;min-height:32px;
}
.zl-ai-chip:hover{background:#DBEAFE;}
.zl-ai-chip:focus-visible{outline:3px solid #00B4D8;outline-offset:1px;}

#zl-ai-inputrow{
  flex-shrink:0;display:flex;align-items:flex-end;gap:8px;
  padding:10px 12px;border-top:1px solid #f0f4f8;
}
#zl-ai-input{
  flex:1;resize:none;padding:9px 12px;border:1.5px solid #d1dbe6;border-radius:8px;
  font-size:13px;line-height:1.4;outline:none;font-family:inherit;max-height:96px;min-height:38px;overflow-y:hidden;
}
#zl-ai-input:focus-visible{border-color:#00B4D8;outline:2px solid #00B4D8;outline-offset:0;}
#zl-ai-send{
  padding:9px 16px;min-height:44px;min-width:44px;
  background:#00B4D8;color:#06243F;border:none;
  border-radius:8px;font-size:13px;font-weight:bold;cursor:pointer;font-family:inherit;
}
#zl-ai-send:hover{background:#0B1E3D;color:#fff;}
#zl-ai-send:disabled{opacity:.6;cursor:not-allowed;}
#zl-ai-send:focus-visible{outline:3px solid #0B1E3D;outline-offset:2px;}

/* 375px モバイル対応（§0.1 a11y・横はみ出し禁止・高さ画面70%） */
@media(max-width:400px){
  #zl-ai-bubble{bottom:16px;right:16px;}
  #zl-ai-teaser{right:16px;bottom:78px;max-width:calc(100vw - 90px);font-size:12px;padding:8px 10px;}
  #zl-ai-panel{
    right:8px;left:8px;bottom:12px;width:auto;max-width:none;
    height:75vh;height:75dvh;
  }
  #zl-ai-head-sub{display:none;}
  #zl-ai-langsel{max-width:64px;font-size:11px;}
}

/* キーボード表示時に入力欄が隠れないよう dvh を使用（対応ブラウザ）。
   AdSenseとの重なり回避は z-index 2147483000 台で最前面固定により担保。 */

/* AI-INTENT:css （バッチ3 T8・トップFV意図カード） */
.zl-ai-intent-wrap{max-width:680px;margin:18px auto 0;text-align:left;}
.zl-ai-intent-heading{color:#fff;font-size:15px;font-weight:bold;text-align:center;margin-bottom:12px;}
.zl-ai-intent-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.zl-ai-intent{display:flex;align-items:center;gap:8px;padding:12px 14px;min-height:44px;
  border:none;border-radius:10px;background:#00B4D8;color:#06243F;
  font-size:13px;font-weight:bold;font-family:inherit;cursor:pointer;text-align:left;
  text-decoration:none;box-shadow:0 2px 8px rgba(0,0,80,.10);transition:.2s;}
.zl-ai-intent:hover{background:#00E5FF;}
.zl-ai-intent:focus-visible{outline:3px solid #fff;outline-offset:2px;}
.zl-ai-intent-ico{font-size:18px;flex-shrink:0;line-height:1;}
.zl-ai-intent-label{flex:1;min-width:0;line-height:1.35;}
.zl-ai-intent-arrow{flex-shrink:0;font-weight:bold;}
.zl-ai-intent-visa{background:#0B1E3D;color:#fff;}
.zl-ai-intent-visa:hover{background:#132a52;}
.zl-ai-intent-toggle{display:none;width:100%;margin-top:10px;padding:10px;min-height:40px;
  border:1.5px solid rgba(255,255,255,.5);border-radius:10px;background:transparent;color:#fff;
  font-size:12px;font-weight:bold;font-family:inherit;cursor:pointer;
  align-items:center;justify-content:center;gap:6px;}
@media(max-width:640px){
  .zl-ai-intent-grid{grid-template-columns:repeat(2,1fr);}
  .zl-ai-intent-more{display:none;}
  .zl-ai-intent-grid-open .zl-ai-intent-more{display:flex;}
  .zl-ai-intent-toggle{display:flex;}
  .zl-ai-intent-toggle-open .zl-ai-intent-toggle-label{display:none;}
  .zl-ai-intent-toggle-open::after{content:'';}
}
