#aisn-root{
  --aisn-primary:#0b2f55;
  --aisn-primary-strong:#06223f;
  --aisn-accent:#12a86b;
  --aisn-bg:#f5f7fa;
  --aisn-surface:#ffffff;
  --aisn-surface-soft:#f0f4f8;
  --aisn-text:#172033;
  --aisn-muted:#667085;
  --aisn-border:#dbe3ec;
  --aisn-shadow:0 24px 64px rgba(10,31,53,.22),0 4px 18px rgba(10,31,53,.10);
  --aisn-radius-xl:24px;
  --aisn-radius-lg:18px;
  --aisn-radius-md:14px;
  --aisn-safe-bottom:16px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  color:var(--aisn-text)
}
#aisn-root *,#aisn-root *::before,#aisn-root *::after{box-sizing:border-box}
#aisn-root button,#aisn-root textarea,#aisn-root a{font:inherit}

.aisn-launch{
  position:fixed;right:20px;bottom:calc(var(--aisn-safe-bottom) + env(safe-area-inset-bottom));z-index:99997;
  display:inline-flex;align-items:center;gap:9px;min-height:54px;padding:9px 15px 9px 9px;
  border:1px solid rgba(255,255,255,.32);border-radius:999px;background:linear-gradient(145deg,var(--aisn-primary),var(--aisn-primary-strong));
  color:#fff;font-weight:750;letter-spacing:.01em;box-shadow:0 10px 28px rgba(6,34,63,.28),0 2px 8px rgba(6,34,63,.16);
  cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease
}
.aisn-launch:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(6,34,63,.34),0 3px 10px rgba(6,34,63,.18)}
.aisn-launch:focus-visible{outline:3px solid rgba(18,168,107,.32);outline-offset:3px}
.aisn-launch[aria-expanded="true"]{opacity:0;pointer-events:none;transform:translateY(6px) scale(.88)}
.aisn-launch-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--aisn-primary);box-shadow:inset 0 0 0 1px rgba(11,47,85,.08)}
.aisn-launch-icon svg{width:22px;height:22px;display:block}
.aisn-launch-label{font-size:14px;white-space:nowrap}
.aisn-launch-dot{position:absolute;top:4px;right:5px;width:10px;height:10px;border-radius:50%;background:var(--aisn-accent);border:2px solid #fff}

.aisn-panel{
  position:fixed;right:20px;bottom:calc(var(--aisn-safe-bottom) + 66px + env(safe-area-inset-bottom));z-index:99998;
  width:min(410px,calc(100vw - 28px));height:min(680px,calc(100dvh - var(--aisn-safe-bottom) - 94px));
  display:flex;flex-direction:column;overflow:hidden;background:var(--aisn-surface);color:var(--aisn-text);
  border:1px solid rgba(11,47,85,.10);border-radius:var(--aisn-radius-xl);box-shadow:var(--aisn-shadow);
  transform-origin:bottom right;animation:aisn-panel-in .18s ease-out
}
.aisn-panel[hidden]{display:none}
.aisn-panel:not(.aisn-has-conversation){height:auto;max-height:min(560px,calc(100dvh - var(--aisn-safe-bottom) - 94px))}
.aisn-panel:not(.aisn-has-conversation) .aisn-log{flex:0 1 auto;min-height:0;max-height:330px}
@keyframes aisn-panel-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}

.aisn-header{
  display:flex;align-items:center;gap:11px;padding:15px 16px;
  background:linear-gradient(135deg,var(--aisn-primary),var(--aisn-primary-strong));color:#fff
}
.aisn-brand-icon{width:40px;height:40px;flex:0 0 40px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--aisn-primary);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.aisn-brand-icon svg{width:23px;height:23px}
.aisn-brand{min-width:0;flex:1}
.aisn-brand strong{display:block;font-size:16px;line-height:1.25;letter-spacing:.01em}
.aisn-brand small{display:block;margin-top:3px;font-size:11.5px;line-height:1.35;color:rgba(255,255,255,.78);font-weight:500}
.aisn-close{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border:0;border-radius:11px;background:transparent;color:#fff;font-size:25px;line-height:1;cursor:pointer;transition:background .15s ease}
.aisn-close:hover,.aisn-close:focus-visible{background:rgba(255,255,255,.12)}
.aisn-close:focus-visible{outline:2px solid rgba(255,255,255,.75);outline-offset:1px}

.aisn-log{flex:1;min-height:0;overflow:auto;padding:18px 16px 12px;background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c8d3df transparent}
.aisn-log::-webkit-scrollbar{width:7px}.aisn-log::-webkit-scrollbar-thumb{background:#c8d3df;border-radius:999px}
.aisn-msg,.aisn-card-group-title{scroll-margin-top:12px}
.aisn-msg{max-width:88%;padding:12px 14px;margin:0 0 12px;border-radius:17px;white-space:pre-wrap;font-size:14px;line-height:1.72;letter-spacing:.005em}
.aisn-msg.user{margin-left:auto;background:linear-gradient(145deg,var(--aisn-primary),#123f6d);color:#fff;border-bottom-right-radius:6px;box-shadow:0 3px 10px rgba(11,47,85,.12)}
.aisn-msg.assistant{margin-right:auto;background:var(--aisn-surface-soft);color:var(--aisn-text);border-bottom-left-radius:6px}
.aisn-msg.is-loading{display:flex;align-items:center;gap:5px;width:max-content;min-width:60px;padding:14px 16px}
.aisn-typing-dot{width:7px;height:7px;border-radius:50%;background:#8ea0b3;animation:aisn-dot 1.1s infinite ease-in-out}
.aisn-typing-dot:nth-child(2){animation-delay:.15s}.aisn-typing-dot:nth-child(3){animation-delay:.3s}
@keyframes aisn-dot{0%,70%,100%{transform:translateY(0);opacity:.45}35%{transform:translateY(-4px);opacity:1}}

.aisn-card-group-title{display:flex;align-items:center;gap:7px;margin:15px 2px 8px;font-size:12px;font-weight:800;color:#344054;letter-spacing:.02em}
.aisn-card-group-title::before{content:"";width:4px;height:14px;border-radius:999px;background:var(--aisn-accent)}
.aisn-card{
  position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) 22px;align-items:center;gap:10px;
  margin:8px 0;padding:12px 12px;border:1px solid var(--aisn-border);border-radius:var(--aisn-radius-md);background:#fff;color:inherit;text-decoration:none;
  box-shadow:0 2px 8px rgba(16,24,40,.035);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease
}
.aisn-card:hover{border-color:#b8c8d8;box-shadow:0 6px 18px rgba(16,24,40,.08);transform:translateY(-1px)}
.aisn-card:focus-visible{outline:3px solid rgba(18,168,107,.23);outline-offset:2px}
.aisn-card-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#edf4fb;color:var(--aisn-primary)}
.aisn-card-icon.is-service{background:#eaf8f2;color:#087e50}.aisn-card-icon.is-case{background:#fff4e8;color:#b35d00}
.aisn-card-icon svg{width:20px;height:20px}
.aisn-card-main{min-width:0}.aisn-card-kind{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-bottom:4px;padding:2px 7px;border:0;border-radius:999px;background:#eef3f8;color:#5a6878;font-size:10px;font-weight:750;line-height:1.5}
.aisn-card strong{display:block;font-size:13.5px;line-height:1.45;color:#152338}.aisn-card-arrow{display:grid;place-items:center;color:#7d8b9a;font-size:20px;transition:transform .16s ease}.aisn-card:hover .aisn-card-arrow{transform:translateX(2px);color:var(--aisn-primary)}

.aisn-cta{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 4px;padding:13px 14px;
  border:1px solid #d5e5dc;border-radius:15px;background:linear-gradient(135deg,#f1fbf6,#fff);color:#173a2b;text-decoration:none;font-weight:760;box-shadow:0 2px 9px rgba(18,168,107,.06);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease
}
.aisn-cta:hover{transform:translateY(-1px);border-color:#a9d7c1;box-shadow:0 7px 18px rgba(18,168,107,.11)}
.aisn-cta-text{display:flex;align-items:center;gap:9px;min-width:0}.aisn-cta-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--aisn-accent);color:#fff}.aisn-cta-icon svg{width:18px;height:18px}.aisn-cta-arrow{color:#4a7460;font-size:20px}

.aisn-starters{margin:4px 0 2px;padding:2px 0 0}
.aisn-starters[hidden]{display:none}
.aisn-starters-title{margin:3px 2px 8px;color:#667085;font-size:11px;font-weight:760;letter-spacing:.02em}
.aisn-starters-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.aisn-starters-grid button{
  min-width:0;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;
  border:1px solid #dce5ee;border-radius:13px;background:#fff;color:#26384b;font-size:12px;font-weight:680;line-height:1.35;text-align:left;cursor:pointer;
  box-shadow:0 1px 3px rgba(16,24,40,.025);transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease
}
.aisn-starters-grid button:nth-child(odd):last-child{grid-column:1/-1}
.aisn-starters-grid button:hover{background:#f7fafc;border-color:#bdcbd8;transform:translateY(-1px);box-shadow:0 4px 10px rgba(16,24,40,.05)}
.aisn-starters-grid button:focus-visible{outline:3px solid rgba(18,168,107,.19);outline-offset:1px}
.aisn-starters-grid button:disabled{opacity:.55;cursor:not-allowed;transform:none}
.aisn-starter-arrow{flex:0 0 auto;color:#8a98a8;font-size:18px;line-height:1}

.aisn-composer{padding:8px 12px calc(9px + env(safe-area-inset-bottom));background:#fff;border-top:0}
.aisn-panel form{
  display:flex;align-items:flex-end;gap:7px;padding:4px 5px 4px 14px;border:1px solid #dbe3eb;border-radius:999px;background:#fff;box-shadow:none;
  transition:border-color .15s ease,box-shadow .15s ease
}
.aisn-panel form:focus-within{border-color:#98adc1;box-shadow:0 0 0 3px rgba(11,47,85,.055)}
.aisn-panel textarea{flex:1;min-width:0;max-height:112px;padding:8px 0;border:0;outline:0;background:transparent;color:var(--aisn-text);resize:none;font-size:14px;line-height:1.45}
.aisn-panel textarea::placeholder{color:#98a2b3}
.aisn-send{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:0;border-radius:50%;background:linear-gradient(145deg,var(--aisn-primary),var(--aisn-primary-strong));color:#fff;cursor:pointer;box-shadow:0 3px 8px rgba(6,34,63,.16);transition:transform .15s ease,filter .15s ease}
.aisn-send:hover{transform:translateY(-1px);filter:brightness(1.06)}.aisn-send:focus-visible{outline:3px solid rgba(18,168,107,.24);outline-offset:2px}.aisn-send:disabled{opacity:.55;cursor:not-allowed;transform:none}.aisn-send svg{width:18px;height:18px}
.aisn-disclaimer{display:flex;align-items:center;justify-content:center;gap:5px;margin:6px 0 0;color:#9aa5b2;font-size:9.5px;line-height:1.3}.aisn-disclaimer svg{width:10px;height:10px}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:600px){
  #aisn-root{--aisn-safe-bottom:14px}
  body:has(.mobile-cta) #aisn-root{--aisn-safe-bottom:124px}
  .aisn-launch{
    right:16px;bottom:calc(var(--aisn-safe-bottom) + env(safe-area-inset-bottom));
    width:56px;height:56px;min-height:56px;padding:0;border:4px solid rgba(255,255,255,.96);border-radius:50%;
    justify-content:center;gap:0;background:linear-gradient(145deg,#0f3d69,#082846);
    box-shadow:0 12px 30px rgba(7,34,61,.28),0 2px 8px rgba(7,34,61,.16)
  }
  .aisn-launch:hover{transform:translateY(-1px)}
  .aisn-launch-icon{width:44px;height:44px;border-radius:50%;background:transparent;color:#fff;box-shadow:none}
  .aisn-launch-icon svg{width:24px;height:24px}
  .aisn-launch-label{display:none}
  .aisn-launch-dot{top:1px;right:1px;width:11px;height:11px;border-width:2px;box-shadow:0 0 0 2px rgba(255,255,255,.65)}
  .aisn-panel{
    left:8px;right:8px;bottom:calc(var(--aisn-safe-bottom) + 8px + env(safe-area-inset-bottom));
    width:auto;height:min(76dvh,660px);max-height:calc(100dvh - var(--aisn-safe-bottom) - 24px);
    border-radius:24px;transform-origin:bottom center
  }
  .aisn-header{padding:13px 14px}.aisn-brand-icon{width:37px;height:37px;flex-basis:37px}.aisn-brand strong{font-size:15px}.aisn-brand small{font-size:10.5px}
  .aisn-log{padding:15px 12px 10px}.aisn-msg{max-width:92%;font-size:14px;padding:11px 13px;line-height:1.68}.aisn-card{grid-template-columns:34px minmax(0,1fr) 18px;padding:11px 10px;gap:8px}.aisn-card-icon{width:34px;height:34px;border-radius:10px}.aisn-card strong{font-size:13px}.aisn-starters-grid{gap:7px}.aisn-starters-grid button{min-height:44px;padding:9px 10px;font-size:11.5px}.aisn-composer{padding:7px 9px calc(8px + env(safe-area-inset-bottom))}
}

@media(max-width:390px){.aisn-panel{left:6px;right:6px}.aisn-brand small{display:none}}
@media(prefers-reduced-motion:reduce){.aisn-panel,.aisn-launch,.aisn-card,.aisn-cta,.aisn-send,.aisn-typing-dot{animation:none!important;transition:none!important}}
.aisn-mode-options{display:grid;gap:8px;margin:4px 0 2px;padding:0 2px}.aisn-mode-options button{appearance:none;width:100%;border:1px solid var(--aisn-border);background:#fff;color:var(--aisn-text);border-radius:12px;padding:11px 13px;text-align:left;font:inherit;font-size:13px;font-weight:650;line-height:1.4;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.aisn-mode-options button:hover,.aisn-mode-options button:focus-visible{border-color:var(--aisn-primary);box-shadow:0 5px 14px rgba(16,42,67,.08);outline:none;transform:translateY(-1px)}@media(max-width:600px){.aisn-mode-options{grid-template-columns:1fr 1fr}.aisn-mode-options button{font-size:12.5px;padding:10px 11px}.aisn-mode-options button:nth-child(odd):last-child{grid-column:1/-1}}

.aisn-header-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto}
.aisn-reset{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:rgba(255,255,255,.9);cursor:pointer;transition:background .15s ease,transform .15s ease}
.aisn-reset svg{width:18px;height:18px}.aisn-reset:hover,.aisn-reset:focus-visible{background:rgba(255,255,255,.12)}.aisn-reset:focus-visible{outline:2px solid rgba(255,255,255,.75);outline-offset:1px}.aisn-reset:disabled{opacity:.42;cursor:not-allowed;transform:none}
.aisn-response-actions{display:flex;flex-wrap:wrap;gap:7px;margin:-2px 0 12px 2px}
.aisn-inline-action{appearance:none;display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid #cddbe8;border-radius:999px;background:#fff;color:var(--aisn-primary);font:inherit;font-size:12px;font-weight:760;line-height:1.2;cursor:pointer;box-shadow:0 1px 3px rgba(16,24,40,.035);transition:background .15s ease,border-color .15s ease,transform .15s ease,box-shadow .15s ease}
.aisn-inline-action:hover,.aisn-inline-action:focus-visible{background:#f3f7fb;border-color:#a9bdcf;box-shadow:0 4px 10px rgba(16,24,40,.06);transform:translateY(-1px)}.aisn-inline-action:focus-visible{outline:3px solid rgba(18,168,107,.18);outline-offset:1px}
@media(max-width:600px){.aisn-reset{width:34px;height:34px}.aisn-response-actions{margin-left:1px}.aisn-inline-action{font-size:11.5px;min-height:33px;padding:7px 11px}}

.aisn-reset-popover{position:absolute;top:62px;right:12px;z-index:5;width:min(310px,calc(100% - 24px));padding:13px;border:1px solid #d9e3ec;border-radius:14px;background:#fff;color:var(--aisn-text);box-shadow:0 14px 35px rgba(16,24,40,.16)}
.aisn-reset-popover[hidden]{display:none}.aisn-reset-popover strong{display:block;font-size:13px;line-height:1.35}.aisn-reset-popover>span{display:block;margin-top:4px;color:#667085;font-size:11px;line-height:1.5}.aisn-reset-popover-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:11px}.aisn-reset-popover-actions button{min-height:34px;padding:7px 11px;border-radius:10px;font:inherit;font-size:11.5px;font-weight:720;cursor:pointer}.aisn-reset-cancel{border:1px solid #d5dee7;background:#fff;color:#344054}.aisn-reset-confirm{border:1px solid #b42318;background:#b42318;color:#fff}.aisn-reset-popover-actions button:focus-visible{outline:3px solid rgba(18,168,107,.18);outline-offset:1px}.aisn-reset-popover-actions button:disabled{opacity:.5;cursor:not-allowed}.aisn-reset-error{display:block;margin-top:8px;color:#b42318;font-size:10.5px;line-height:1.4}.aisn-reset-error[hidden]{display:none}
@media(max-width:600px){.aisn-reset-popover{top:60px;right:10px;width:min(300px,calc(100% - 20px))}}

.aisn-cta-wrap{display:grid;gap:6px}.aisn-cta-note{display:block;padding:0 4px;color:var(--aisn-muted);font-size:11px;line-height:1.5}

/* FAQ selection-only composer state */
.aisn-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 7px;padding:8px 10px;border:1px solid var(--aisn-border);border-radius:12px;background:#f7fafc;color:var(--aisn-muted);font-size:12px;line-height:1.35}.aisn-selection-bar[hidden]{display:none!important}.aisn-selection-exit{appearance:none;border:0;background:transparent;color:var(--aisn-primary);font:inherit;font-weight:700;white-space:nowrap;cursor:pointer;padding:3px 2px}.aisn-selection-exit:hover,.aisn-selection-exit:focus-visible{text-decoration:underline;outline:none}.aisn-composer.is-selection-only form{opacity:.52}.aisn-composer.is-selection-only textarea,.aisn-composer.is-selection-only .aisn-send{cursor:not-allowed}
@media(max-width:600px){.aisn-selection-bar{align-items:flex-start;flex-direction:column;gap:4px}.aisn-selection-exit{padding:2px 0}}

/* AI相談→問い合わせフォーム引き継ぎ状態 */
.aisn-handoff-notice{box-sizing:border-box;margin:0 0 16px;padding:12px 14px;border:1px solid currentColor;border-radius:8px;font-size:14px;line-height:1.6;background:#fff}.aisn-handoff-notice.is-success{font-weight:600}.aisn-handoff-notice.is-error{font-weight:600}
