.sd60-chat {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1000;
    font-family: var(--font-body, Inter, sans-serif);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.sd60-chat__toggle {
    min-width: 56px;
    min-height: 56px;
    border: 0;
    border-radius: 50%;
    background: var(--primary-navy, #1e3a8a);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(30, 58, 138, .28);
    transition: transform .2s ease, background-color .2s ease;
}

.sd60-chat__toggle:hover { background: var(--primary-blue, #2563eb); transform: translateY(-2px); }
.sd60-chat__toggle:active { transform: translateY(0); }
.sd60-chat__toggle:focus-visible,
.sd60-chat__close:focus-visible,
.sd60-chat__quick:focus-visible,
.sd60-chat__submit:focus-visible,
.sd60-chat__input:focus-visible { outline: 3px solid #f59e0b; outline-offset: 3px; }

.sd60-chat__toggle svg { width: 26px; height: 26px; }

.sd60-chat__panel {
    width: min(380px, calc(100vw - 32px));
    height: min(560px, calc(100vh - 112px));
    position: absolute;
    right: 0;
    bottom: 68px;
    display: none;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 16px;
    box-shadow: 0 20px 48px rgba(15, 23, 42, .2);
}

.sd60-chat.is-open .sd60-chat__panel { display: flex; }
.sd60-chat__header { display: flex; gap: 12px; align-items: flex-start; padding: 16px; color: #fff; background: var(--primary-navy, #1e3a8a); }
.sd60-chat__title { margin: 0; font-family: var(--font-heading, Outfit, sans-serif); font-size: 1.05rem; line-height: 1.25; }
.sd60-chat__subtitle { margin: 4px 0 0; font-size: .78rem; line-height: 1.35; color: #dbeafe; }
.sd60-chat__close { width: 44px; height: 44px; margin: -8px -8px 0 auto; border: 0; border-radius: 8px; color: #fff; background: transparent; cursor: pointer; font-size: 1.7rem; line-height: 1; }
.sd60-chat__close:hover { background: rgba(255, 255, 255, .15); }

.sd60-chat__messages { flex: 1; overflow-y: auto; padding: 16px; background: #f8fafc; }
.sd60-chat__message { max-width: 90%; margin: 0 0 12px; padding: 11px 13px; border-radius: 12px; font-size: .9rem; line-height: 1.48; white-space: pre-wrap; }
.sd60-chat__message--assistant { color: #1e293b; background: #fff; border: 1px solid #e2e8f0; border-top-left-radius: 4px; }
.sd60-chat__message--user { margin-left: auto; color: #fff; background: var(--primary-blue, #2563eb); border-top-right-radius: 4px; }
.sd60-chat__quick-list { display: grid; gap: 8px; margin-top: 14px; }
.sd60-chat__quick { padding: 9px 10px; border: 1px solid #bfdbfe; border-radius: 8px; color: #1d4ed8; background: #eff6ff; font: inherit; font-size: .84rem; text-align: left; cursor: pointer; transition: background-color .2s ease, border-color .2s ease; }
.sd60-chat__quick:hover { background: #dbeafe; border-color: #93c5fd; }
.sd60-chat__notice { margin: 0; padding: 10px 16px; color: #92400e; background: #fffbeb; border-top: 1px solid #fde68a; font-size: .74rem; line-height: 1.4; }
.sd60-chat__form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid #e2e8f0; background: #fff; }
.sd60-chat__input { flex: 1; min-width: 0; min-height: 44px; padding: 10px 11px; border: 1px solid #94a3b8; border-radius: 8px; color: #0f172a; font: inherit; font-size: 16px; }
.sd60-chat__submit { width: 44px; height: 44px; flex: 0 0 auto; border: 0; border-radius: 8px; color: #fff; background: var(--accent-orange, #ea580c); cursor: pointer; transition: background-color .2s ease; }
.sd60-chat__submit:hover { background: var(--accent-orange-hover, #c2410c); }
.sd60-chat__submit:disabled { cursor: wait; opacity: .65; }
.sd60-chat__submit svg { width: 19px; height: 19px; }

@media (max-width: 600px) {
    .sd60-chat { right: 16px; bottom: 82px; }
    .sd60-chat__panel { bottom: 66px; height: min(570px, calc(100vh - 164px)); }
}

@media (prefers-reduced-motion: reduce) {
    .sd60-chat__toggle, .sd60-chat__quick, .sd60-chat__submit { transition: none; }
}
