.aic-root{
  --radius: 14px;
  --shadow: 0 14px 40px rgba(0,0,0,.18);
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 999999;
  color: var(--aic-text);
  font-family: system-ui, -apple-system, "Noto Sans JP", sans-serif;
}

.aic-fab{
  width:64px;
  height:64px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.18);
  transition:.25s transform,.25s box-shadow;
   background: var(--aic-icon-bg, #3b2f2f);
  color: var(--aic-icon-text, #ffffff);
}

.aic-fab:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 30px rgba(0,0,0,.25);
}

.aic-fab-icon{
  width:34px;
  height:34px;
}

.aic-panel{
  animation: aicPop .18s ease;
   width: 360px;
  max-width: calc(100vw - 32px);
  height: 520px;
  margin-bottom: 12px;
  border-radius: var(--radius);
  background: var(--aic-panel);
  box-shadow: var(--shadow);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

@keyframes aicPop{
  from{transform:scale(.96);opacity:0}
  to{transform:scale(1);opacity:1}
}

.aic-msg.is-typing{
  opacity:.6;
  font-size:20px;
  letter-spacing:2px;
}

.aic-fab__icon{ font-weight: 700; }


.aic-header{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 12px;
  background: var(--aic-bg);
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.aic-title{ font-weight: 700; }

.aic-lang{ display:flex; gap:6px; }
.aic-lang__btn{
  border:1px solid rgba(0,0,0,.12);
  background: transparent;
  color: var(--aic-text);
  padding: 4px 8px;
  border-radius: 999px;
  cursor:pointer;
  font-size: 12px;
}
.aic-lang__btn.is-active{
  background: var(--aic-send-bg);
  color: var(--aic-send-text);
  border-color: transparent;
}
.aic-close{
  border:0;
  background: transparent;
  font-size: 22px;
  line-height: 1;
  cursor:pointer;
  color: var(--aic-text);
}

.aic-messages{
  flex: 1;
  padding: 12px;
  overflow: auto;
  background:
    linear-gradient(transparent, transparent),
    repeating-linear-gradient(
      0deg,
      rgba(0,0,0,.02),
      rgba(0,0,0,.02) 1px,
      transparent 1px,
      transparent 24px
    );
}

.aic-msg{
  max-width: 86%;
  padding: 10px 12px;
  border-radius: 12px;
  margin: 0 0 10px;
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 14px;
}
.aic-msg.is-user{
  margin-left: auto;
  background: var(--aic-user-bg);
  color: var(--aic-user-text);
}
.aic-msg.is-ai{
  margin-right: auto;
  background: var(--aic-ai-bg);
  color: var(--aic-ai-text);
  border: 1px solid rgba(0,0,0,.06);
}

.aic-form{
  display:flex;
  gap: 8px;
  padding: 10px;
  border-top: 1px solid rgba(0,0,0,.08);
  background: var(--aic-bg);
}
.aic-input{
  flex:1;
  border:1px solid rgba(0,0,0,.12);
  border-radius: 10px;
  padding: 10px 10px;
  background: var(--aic-input-bg);
  color: var(--aic-input-text);
  outline: none;
}
.aic-send{
  border:0;
  border-radius: 10px;
  padding: 0 14px;
  background: var(--aic-send-bg);
  color: var(--aic-send-text);
  cursor:pointer;
  font-weight: 700;
}

.aic-root.is-open .aic-fab{ display:none; }

/* SP fullscreen */
@media (max-width: 600px){
  .aic-root.sp-fullscreen{
    left: 0; right: 0; bottom: 0;
    padding: 0;
  }
  .aic-root.sp-fullscreen .aic-panel{
    width: 100vw;
    height: 100vh;
    max-width: none;
    border-radius: 0;
    margin: 0;
  }
}
