:root{--aiscb-primary:#2563eb;--aiscb-primary-dark:#1d4ed8;--aiscb-chat-bg:#f8fafc;--aiscb-radius:16px;--aiscb-font:'Hiragino Sans','Yu Gothic',system-ui,sans-serif}

/* ウィジェット全体 */
#aiscb-widget{position:fixed!important;z-index:99999!important;font-family:var(--aiscb-font)!important;line-height:1.5!important;box-sizing:border-box!important}
#aiscb-widget *{box-sizing:border-box!important}
#aiscb-widget.aiscb-bottom-right{bottom:24px!important;right:24px!important;left:auto!important;top:auto!important}
#aiscb-widget.aiscb-bottom-left{bottom:24px!important;left:24px!important;right:auto!important;top:auto!important}

/* トグルボタン — テーマの button スタイルをすべて上書き */
#aiscb-toggle{
  width:60px!important;height:60px!important;
  border-radius:50%!important;
  background:var(--aiscb-primary)!important;
  background-color:var(--aiscb-primary)!important;
  border:none!important;outline:none!important;
  cursor:pointer!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  color:#fff!important;
  box-shadow:0 4px 20px rgba(37,99,235,.4)!important;
  transition:transform .2s,box-shadow .2s!important;
  position:relative!important;
  overflow:hidden!important;
  padding:0!important;margin:0!important;
  text-decoration:none!important;
  appearance:none!important;-webkit-appearance:none!important;
  font-size:24px!important;
  line-height:1!important;
}
#aiscb-toggle:hover{transform:scale(1.08)!important;box-shadow:0 6px 28px rgba(37,99,235,.55)!important}
#aiscb-toggle:focus{outline:none!important;box-shadow:0 0 0 3px rgba(37,99,235,.4)!important}
#aiscb-toggle svg{width:26px!important;height:26px!important;display:block!important}

.aiscb-badge{display:none!important}

/* チャットウィンドウ */
#aiscb-window{position:absolute!important;width:360px!important;max-height:540px!important;border-radius:var(--aiscb-radius)!important;background:#fff!important;box-shadow:0 20px 60px rgba(0,0,0,.18),0 4px 16px rgba(0,0,0,.1)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;bottom:72px!important;transform-origin:bottom right!important;transform:scale(0) translateY(8px)!important;opacity:0!important;pointer-events:none!important;transition:transform .22s cubic-bezier(.34,1.56,.64,1),opacity .18s!important}
#aiscb-widget.aiscb-bottom-left #aiscb-window{right:auto!important;left:0!important;transform-origin:bottom left!important}
#aiscb-widget.aiscb-open #aiscb-window{transform:scale(1) translateY(0)!important;opacity:1!important;pointer-events:all!important}

/* ヘッダー */
.aiscb-header{background:var(--aiscb-primary)!important;padding:14px 16px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;color:#fff!important;flex-shrink:0!important}
.aiscb-header-info{display:flex!important;align-items:center!important;gap:10px!important}
.aiscb-avatar-wrap{width:36px!important;height:36px!important;border-radius:50%!important;background:rgba(255,255,255,.2)!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;flex-shrink:0!important}
.aiscb-bot-name{font-weight:700!important;font-size:15px!important;color:#fff!important;margin:0!important;padding:0!important}
.aiscb-status{font-size:12px!important;opacity:.85!important;display:flex!important;align-items:center!important;gap:5px!important;margin-top:2px!important;color:#fff!important}
.aiscb-dot{width:7px!important;height:7px!important;border-radius:50%!important;background:#4ade80!important;animation:aiscb-pulse 2s infinite!important;display:inline-block!important}
@keyframes aiscb-pulse{0%,100%{opacity:1}50%{opacity:.4}}

.aiscb-close{background:rgba(255,255,255,.15)!important;border:none!important;color:#fff!important;width:30px!important;height:30px!important;border-radius:50%!important;cursor:pointer!important;font-size:18px!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:background .15s!important;padding:0!important;margin:0!important;line-height:1!important;appearance:none!important;-webkit-appearance:none!important}
.aiscb-close:hover{background:rgba(255,255,255,.3)!important}

/* メッセージエリア */
.aiscb-messages{flex:1!important;overflow-y:auto!important;padding:16px!important;display:flex!important;flex-direction:column!important;gap:10px!important;background:var(--aiscb-chat-bg)!important}
.aiscb-messages::-webkit-scrollbar{width:4px}
.aiscb-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}

.aiscb-msg{display:flex!important;gap:8px!important;align-items:flex-end!important;animation:aiscb-fadein .2s ease!important}
@keyframes aiscb-fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.aiscb-msg-bot{flex-direction:row!important}
.aiscb-msg-user{flex-direction:row-reverse!important}
.aiscb-bubble{max-width:78%!important;padding:10px 14px!important;border-radius:18px!important;font-size:14px!important;line-height:1.55!important;word-break:break-word!important;margin:0!important}
.aiscb-msg-bot .aiscb-bubble{background:#fff!important;color:#1e293b!important;border-bottom-left-radius:4px!important;box-shadow:0 1px 4px rgba(0,0,0,.08)!important}
.aiscb-msg-user .aiscb-bubble{background:var(--aiscb-primary)!important;color:#fff!important;border-bottom-right-radius:4px!important}
.aiscb-msg-avatar{font-size:20px!important;flex-shrink:0!important;width:28px!important;height:28px!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.aiscb-msg-avatar img{width:100%!important;height:100%!important;object-fit:cover!important;border-radius:50%!important}
.aiscb-timestamp{font-size:10px!important;opacity:.5!important;margin-top:4px!important;text-align:center!important;color:#1e293b!important}
.aiscb-error .aiscb-bubble{background:#fef2f2!important;color:#dc2626!important;border:1px solid #fecaca!important}

/* タイピングインジケーター */
.aiscb-typing{padding:8px 16px!important;display:none!important;align-items:center!important;gap:4px!important;background:var(--aiscb-chat-bg)!important}
.aiscb-typing.active{display:flex!important}
.aiscb-typing span{width:7px!important;height:7px!important;border-radius:50%!important;background:var(--aiscb-primary)!important;opacity:.4!important;animation:aiscb-bounce .9s infinite!important;display:inline-block!important}
.aiscb-typing span:nth-child(2){animation-delay:.15s!important}
.aiscb-typing span:nth-child(3){animation-delay:.3s!important}
@keyframes aiscb-bounce{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}

/* 入力エリア */
.aiscb-input-area{display:flex!important;align-items:flex-end!important;gap:8px!important;padding:12px 14px!important;border-top:1px solid #e2e8f0!important;background:#fff!important;flex-shrink:0!important}
.aiscb-input{flex:1!important;border:1.5px solid #e2e8f0!important;border-radius:12px!important;padding:9px 12px!important;font-size:14px!important;font-family:inherit!important;resize:none!important;outline:none!important;max-height:100px!important;overflow-y:auto!important;line-height:1.5!important;transition:border-color .15s!important;background:#fff!important;color:#1e293b!important;box-shadow:none!important;appearance:none!important;-webkit-appearance:none!important}
.aiscb-input:focus{border-color:var(--aiscb-primary)!important;box-shadow:none!important;outline:none!important}

.aiscb-send{width:38px!important;height:38px!important;border-radius:10px!important;background:var(--aiscb-primary)!important;border:none!important;cursor:pointer!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#fff!important;transition:background .15s,transform .15s!important;flex-shrink:0!important;padding:0!important;margin:0!important;appearance:none!important;-webkit-appearance:none!important}
.aiscb-send:hover{background:var(--aiscb-primary-dark)!important;transform:scale(1.06)!important}
.aiscb-send svg{width:17px!important;height:17px!important;display:block!important}
.aiscb-send:disabled{opacity:.5!important;cursor:not-allowed!important;transform:none!important}

.aiscb-footer{text-align:center!important;padding:6px!important;font-size:10px!important;color:#94a3b8!important;background:#fff!important;border-top:1px solid #f1f5f9!important;flex-shrink:0!important}
.aiscb-footer a{color:#94a3b8!important;text-decoration:none!important}
.aiscb-footer a:hover{color:#2563eb!important}
.aiscb-char-count{font-size:10px!important;color:#94a3b8!important;text-align:right!important;padding:0 14px 4px!important;background:#fff!important}
.aiscb-char-count.over{color:#ef4444!important}

@media(max-width:420px){
#aiscb-window{width:calc(100vw - 32px)!important}
#aiscb-widget.aiscb-bottom-right{right:16px!important;bottom:16px!important}
#aiscb-widget.aiscb-bottom-left{left:16px!important;bottom:16px!important}
}
