/* AI consultation widget — generated by the conservative CSS/JS modular refactor. */

.ai-chat-widget {position: fixed;
    bottom: 28px;
    right: 28px;
    z-index: 9998;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 12px;
    font-family: var(--font-main);
    /* 关闭状态不阻挡点击 */
    pointer-events: none;}

.ai-chat-widget.is-open {pointer-events: auto;}

.ai-chat-launcher {position: relative;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: linear-gradient(135deg, #2d7a35 0%, #1a4a1f 100%);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 6px 24px rgba(26, 74, 31, 0.45), 0 2px 8px rgba(0,0,0,0.18);
    transition: transform 0.3s cubic-bezier(.34,1.56,.64,1), box-shadow 0.3s ease, background 0.3s ease;
    outline: none;
    flex-shrink: 0;
    order: 2; /* 始终在底部 */
    pointer-events: auto; /* 确保启动按钮始终可点击 */}

.ai-chat-launcher:hover {transform: scale(1.10) translateY(-2px);
    box-shadow: 0 10px 32px rgba(26, 74, 31, 0.55), 0 4px 12px rgba(0,0,0,0.22);
    background: linear-gradient(135deg, #35913e 0%, #1f5a26 100%);}

.ai-chat-launcher:focus-visible {outline: 3px solid rgba(45,122,53,0.5);
    outline-offset: 3px;}

.ai-launcher-icon {position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.25s ease, transform 0.25s ease;}

.ai-launcher-icon--open {opacity: 1; transform: scale(1) rotate(0deg);}

.ai-launcher-icon--close {opacity: 0; transform: scale(0.5) rotate(-90deg); font-size: 1.3rem;}

.ai-chat-widget.is-open .ai-launcher-icon--open {opacity: 0; transform: scale(0.5) rotate(90deg);}

.ai-chat-widget.is-open .ai-launcher-icon--close {opacity: 1; transform: scale(1) rotate(0deg);}

.ai-launcher-badge {position: absolute;
    top: -2px;
    right: -2px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #f5a623;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    transition: opacity 0.3s ease, transform 0.3s ease;
    animation: ai-badge-pulse 2s ease-in-out infinite;}

.ai-launcher-badge.hidden {opacity: 0;
    transform: scale(0);
    pointer-events: none;}

@keyframes ai-badge-pulse {0%, 100% { transform: scale(1); }
    50%       { transform: scale(1.15); }}

.ai-chat-panel {order: 1; /* 在按钮上方 */
    width: 360px;
    max-height: 520px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 16px 56px rgba(0,0,0,0.18), 0 4px 16px rgba(0,0,0,0.10);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    /* 默认隐藏 */
    opacity: 0;
    transform: translateY(20px) scale(0.96);
    pointer-events: none;
    transition: opacity 0.32s cubic-bezier(.4,0,.2,1),
                transform 0.32s cubic-bezier(.34,1.56,.64,1);
    transform-origin: bottom right;}

.ai-chat-widget.is-open .ai-chat-panel {opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;}

.ai-chat-header {background: linear-gradient(135deg, #2d7a35 0%, #1a4a1f 100%);
    padding: 16px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;}

.ai-chat-header-info {display: flex;
    align-items: center;
    gap: 12px;}

.ai-chat-avatar {width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255,255,255,0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid rgba(255,255,255,0.25);}

.ai-chat-header-text {display: flex;
    flex-direction: column;
    gap: 2px;}

.ai-chat-name {font-size: 0.95rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    font-family: var(--font-head);}

.ai-chat-status {font-size: 0.75rem;
    color: rgba(255,255,255,0.8);
    display: flex;
    align-items: center;
    gap: 5px;}

.ai-status-dot {width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #7ddb82;
    flex-shrink: 0;
    animation: ai-status-blink 2.5s ease-in-out infinite;}

@keyframes ai-status-blink {0%, 100% { opacity: 1; }
    50%       { opacity: 0.4; }}

.ai-chat-minimize {background: rgba(255,255,255,0.12);
    border: none;
    color: rgba(255,255,255,0.85);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    transition: background 0.2s ease, color 0.2s ease;
    flex-shrink: 0;}

.ai-chat-minimize:hover {background: rgba(255,255,255,0.25);
    color: #fff;}

.ai-chat-messages {flex: 1;
    overflow-y: auto;
    padding: 16px 16px 8px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scroll-behavior: smooth;
    min-height: 180px;}

.ai-chat-messages::-webkit-scrollbar {width: 4px;}

.ai-chat-messages::-webkit-scrollbar-track {background: transparent;}

.ai-chat-messages::-webkit-scrollbar-thumb {background: #d0e8d2; border-radius: 4px;}

.ai-msg {display: flex;
    gap: 8px;
    animation: ai-msg-in 0.3s ease both;}

@keyframes ai-msg-in {from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }}

.ai-msg--bot {align-items: flex-start;}

.ai-msg--bot > div:last-child {flex: 1;
    min-width: 0;}

.ai-msg--user {flex-direction: row-reverse; align-items: flex-start;}

.ai-msg--user > div {flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;}

.ai-msg-avatar {width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #2d7a35, #1a4a1f);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.75rem;
    color: #fff;
    margin-top: 2px;}

.ai-msg-avatar svg {width: 18px; height: 18px;}

.ai-msg-bubble {max-width: 78%;
    padding: 10px 14px;
    border-radius: 16px;
    font-size: 0.875rem;
    line-height: 1.55;
    word-break: break-word;}

.ai-msg--bot .ai-msg-bubble {background: #f0f7f1;
    color: #1a1a2e;
    border-bottom-left-radius: 4px;
    border: 1px solid #dde8da;}

.ai-msg--user .ai-msg-bubble {background: linear-gradient(135deg, #2d7a35, #1a4a1f);
    color: #fff;
    border-bottom-right-radius: 4px;}

.ai-msg-bubble h2,
.ai-msg-bubble h3,
.ai-msg-bubble h4 {margin: 8px 0 4px;
    font-weight: 700;
    color: #1a4a1f;}

.ai-msg-bubble h2 {font-size: 1rem;}

.ai-msg-bubble h3 {font-size: 0.95rem;}

.ai-msg-bubble h4 {font-size: 0.9rem;}

.ai-msg-bubble h2:first-child,
.ai-msg-bubble h3:first-child,
.ai-msg-bubble h4:first-child {margin-top: 0;}

.ai-msg-bubble ul {margin: 6px 0;
    padding-left: 18px;
    list-style: disc;}

.ai-msg-bubble li {margin: 3px 0;}

.ai-generating-text {display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 14px;
    color: #888;
    font-size: 0.85rem;}

.ai-generating-text-label {font-style: italic;}

.ai-generating-dots {display: inline-flex;
    align-items: center;
    gap: 3px;}

.ai-generating-dots::before,
.ai-generating-dots::after {content: "";
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #2d7a35;
    animation: ai-generating 1s ease-in-out infinite;}

.ai-generating-dots::after {animation-delay: 0.25s;}

.ai-generating-dots-ext::after {content: "";
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #2d7a35;
    animation: ai-generating 1s ease-in-out infinite;
    animation-delay: 0.5s;}

@keyframes ai-generating {0%, 100% { transform: scale(0.7); opacity: 0.4; }
    50% { transform: scale(1); opacity: 1; }}

.ai-typing-indicator {display: flex;
    align-items: center;
    gap: 4px;
    padding: 12px 14px;}

.ai-typing-dot {width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2d7a35;
    animation: ai-typing 1.2s ease-in-out infinite;}

.ai-typing-dot:nth-child(2) {animation-delay: 0.2s;}

.ai-typing-dot:nth-child(3) {animation-delay: 0.4s;}

@keyframes ai-typing {0%, 80%, 100% { transform: scale(0.7); opacity: 0.4; }
    40%           { transform: scale(1.1); opacity: 1; }}

.ai-msg-time {font-size: 0.68rem;
    color: #aaa;
    margin-top: 3px;
    padding: 0 4px;
    align-self: flex-end;}

.ai-msg--user .ai-msg-time {text-align: right;}

.ai-chat-quick {padding: 0 14px 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex-shrink: 0;
    transition: opacity 0.3s ease, max-height 0.3s ease;
    max-height: 80px;
    overflow: hidden;}

.ai-chat-quick.hidden {opacity: 0;
    max-height: 0;
    padding-bottom: 0;
    pointer-events: none;}

.ai-quick-btn {background: #e8f5e9;
    border: 1px solid #c8e6c9;
    color: #2d7a35;
    padding: 5px 12px;
    border-radius: 50px;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
    white-space: nowrap;
    font-family: var(--font-main);}

.ai-quick-btn:hover {background: #2d7a35;
    color: #fff;
    border-color: #2d7a35;
    transform: translateY(-1px);}

.ai-chat-input-wrap {padding: 10px 14px 10px;
    border-top: 1px solid #eef2ee;
    display: flex;
    align-items: flex-end;
    gap: 8px;
    flex-shrink: 0;
    background: #fff;}

.ai-chat-input {flex: 1;
    border: 1.5px solid #dde8da;
    border-radius: 12px;
    padding: 9px 13px;
    font-size: 0.875rem;
    font-family: var(--font-main);
    color: #1a1a2e;
    resize: none;
    outline: none;
    line-height: 1.5;
    max-height: 100px;
    overflow-y: auto;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    background: #fafcfa;}

.ai-chat-input:focus {border-color: #2d7a35;
    box-shadow: 0 0 0 3px rgba(45,122,53,0.12);
    background: #fff;}

.ai-chat-input::placeholder {color: #aab8aa;}

.ai-chat-send {width: 38px;
    height: 38px;
    border-radius: 50%;
    background: linear-gradient(135deg, #2d7a35, #1a4a1f);
    border: none;
    color: #fff;
    font-size: 0.85rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 3px 10px rgba(26,74,31,0.35);}

.ai-chat-send:disabled {opacity: 0.4;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;}

.ai-chat-send:not(:disabled):hover {transform: scale(1.1) translateY(-1px);
    box-shadow: 0 5px 14px rgba(26,74,31,0.45);}

.ai-chat-footer-note {text-align: center;
    font-size: 0.68rem;
    color: #bbb;
    padding: 0 14px 10px;
    flex-shrink: 0;}

.ai-msg--error .ai-msg-bubble {background: #fff3f3;
    border-color: #ffd0d0;
    color: #c0392b;}

@media (max-width: 480px) {
.ai-chat-widget {bottom: 16px;
        right: 16px;}

.ai-chat-panel {width: calc(100vw - 32px);
        max-height: 70vh;
        border-radius: 16px;}

.ai-chat-launcher {width: 52px;
        height: 52px;}
}

.ai-chat-widget,
.ai-chat-widget * {box-sizing: border-box;}

.ai-chat-launcher {align-self: flex-end;}

.ai-chat-panel {width: min(420px, calc(100vw - 40px));
    height: min(640px, calc(100dvh - 116px));
    max-height: 640px;}

.ai-chat-messages {background: #fbfdfb;}

.ai-msg {width: 100%;}

.ai-msg--bot > div:last-child,
.ai-msg--user > div {flex: 0 1 auto;
    min-width: 0;
    max-width: calc(100% - 38px);}

.ai-msg-bubble {display: block;
    width: fit-content;
    max-width: 100%;
    text-align: left;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    hyphens: auto;}

.ai-msg--user .ai-msg-bubble {margin-left: auto;}

@media (max-width: 480px) {
.ai-chat-widget {left: 12px;
        right: 12px;
        bottom: 12px;
        align-items: stretch;}

.ai-chat-panel {width: 100%;
        height: min(72vh, calc(100dvh - 88px));
        max-height: calc(100dvh - 88px);
        border-radius: 16px;}

.ai-chat-launcher {width: 52px;
        height: 52px;}

.ai-chat-header {padding: 14px 16px;}

.ai-chat-messages {padding: 14px 12px 8px;}

.ai-msg-bubble {font-size: 0.84rem;}
}

.ai-chat-widget {right: 24px;
    bottom: 24px;}

.ai-chat-panel {width: min(820px, calc(100vw - 48px));
    height: min(820px, calc(100dvh - 48px));
    max-height: 820px;
    border-radius: 32px;
    background:
        radial-gradient(circle at top left, rgba(84, 145, 95, 0.08), transparent 26%),
        linear-gradient(180deg, #ffffff 0%, #fbfcfa 100%);
    box-shadow: 0 28px 70px rgba(20, 45, 26, 0.18);
    border: 1px solid rgba(45, 122, 53, 0.10);}

.ai-chat-header {padding: 34px 38px 30px;
    background:
        linear-gradient(135deg, rgba(12, 65, 31, 0.96), rgba(19, 88, 42, 0.94)),
        linear-gradient(180deg, #124627 0%, #1f6b3b 100%);
    align-items: flex-start;}

.ai-chat-header-info {gap: 28px;
    width: 100%;
    min-width: 0;}

.ai-chat-avatar {width: 174px;
    height: 64px;
    border-radius: 0;
    border: none;
    background: transparent;
    justify-content: flex-start;
    position: relative;
    padding-right: 24px;}

.ai-chat-avatar::after {content: "";
    position: absolute;
    top: 6px;
    right: 0;
    width: 1px;
    height: 52px;
    background: rgba(255, 255, 255, 0.72);}

.ai-chat-avatar svg {width: 150px;
    height: 64px;}

.ai-chat-header-text {gap: 6px;
    padding-top: 6px;}

.ai-chat-name {font-size: 1.18rem;
    font-weight: 800;
    letter-spacing: 0;}

.ai-chat-subtitle {display: block;
    font-size: 0.88rem;
    line-height: 1.35;
    color: rgba(255, 255, 255, 0.84);}

.ai-chat-status {font-size: 0.76rem;
    color: rgba(190, 233, 198, 0.92);
    margin-top: 2px;}

.ai-chat-actions {display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    padding-top: 2px;}

.ai-chat-minimize,
.ai-chat-close {width: 40px;
    height: 40px;
    border-radius: 12px;
    background: transparent;
    color: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;}

.ai-chat-minimize:hover,
.ai-chat-close:hover {background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.26);
    transform: translateY(-1px);}

.ai-chat-close {cursor: pointer;}

.ai-chat-messages {min-height: 0;
    padding: 30px 34px 10px;
    gap: 18px;
    background: transparent;}

.ai-msg {gap: 16px;}

.ai-msg-avatar {width: 56px;
    height: 56px;
    margin-top: 0;
    border-radius: 50%;
    background: linear-gradient(135deg, #1a5c2c, #1d6d38);
    box-shadow: 0 10px 24px rgba(26, 92, 44, 0.20);}

.ai-msg-avatar svg {width: 34px;
    height: 34px;}

.ai-msg--bot > div:last-child,
.ai-msg--user > div {max-width: calc(100% - 72px);}

.ai-msg-bubble {max-width: min(620px, 100%);
    padding: 28px 34px;
    border-radius: 24px;
    font-size: 1rem;
    line-height: 1.72;
    box-shadow: none;}

.ai-msg--bot .ai-msg-bubble {background: linear-gradient(135deg, #f9fbf7 0%, #eef5ee 100%);
    border: none;
    color: #203127;
    border-bottom-left-radius: 24px;}

.ai-msg--user .ai-msg-bubble {background: linear-gradient(135deg, #2d7a35, #1f5d28);
    color: #fff;
    border-bottom-right-radius: 24px;}

.ai-msg-bubble strong {color: #2d7a35;
    font-weight: 800;}

.ai-msg--user .ai-msg-bubble strong {color: #fff;}

.ai-msg-time {margin-top: 12px;
    padding: 0;
    font-size: 0.82rem;
    color: #8a948e;}

.ai-chat-quick-head {padding: 8px 34px 0;}

.ai-chat-quick-title {font-size: 0.98rem;
    font-weight: 700;
    color: #1d2b21;}

.ai-chat-quick {padding: 18px 34px 24px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    max-height: none;
    overflow: visible;}

.ai-quick-btn {min-height: 128px;
    border-radius: 18px;
    padding: 20px 14px 18px;
    border: 1px solid rgba(45, 122, 53, 0.45);
    background: #fff;
    color: #22452a;
    white-space: normal;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    box-shadow: 0 10px 24px rgba(24, 51, 30, 0.04);}

.ai-quick-btn:hover {background: #f5faf4;
    color: #1f6b3b;
    border-color: #2d7a35;
    transform: translateY(-3px);}

.ai-quick-icon {display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    font-size: 1.45rem;
    color: #2d7a35;}

.ai-quick-copy {display: flex;
    flex-direction: column;
    gap: 6px;}

.ai-quick-label {font-size: 0.94rem;
    font-weight: 700;
    line-height: 1.28;
    color: #1f2b22;}

.ai-quick-desc {font-size: 0.78rem;
    line-height: 1.4;
    color: #7a837d;}

.ai-chat-input-wrap {margin: 0 34px;
    padding: 22px 0 0;
    border-top: 1px solid rgba(35, 63, 42, 0.10);
    gap: 14px;
    align-items: stretch;
    background: transparent;}

.ai-chat-input {min-height: 72px;
    padding: 22px 26px;
    border-radius: 18px;
    border: 1.5px solid rgba(45, 122, 53, 0.45);
    background: #fff;
    font-size: 0.98rem;}

.ai-chat-input::placeholder {color: #b3bbb6;}

.ai-chat-send {width: 72px;
    height: 72px;
    border-radius: 16px;
    font-size: 1.3rem;
    background: linear-gradient(135deg, #2d7a35, #1f6b3b);
    box-shadow: 0 16px 32px rgba(45, 122, 53, 0.22);}

.ai-chat-footer-note {padding: 18px 34px 26px;
    font-size: 0.8rem;
    color: #7f8883;}

.ai-generating-text,
.ai-typing-indicator {padding: 18px 22px;}

@media (max-width: 900px) {
.ai-chat-panel {width: min(680px, calc(100vw - 32px));
        height: min(760px, calc(100dvh - 32px));}

.ai-chat-avatar {width: 126px;
        height: 54px;}

.ai-chat-avatar svg {width: 112px;
        height: 54px;}

.ai-chat-quick {grid-template-columns: repeat(2, minmax(0, 1fr));}
}

@media (max-width: 480px) {
.ai-chat-widget {left: 10px;
        right: 10px;
        bottom: 10px;}

.ai-chat-panel {width: 100%;
        height: min(88dvh, calc(100dvh - 20px));
        max-height: calc(100dvh - 20px);
        border-radius: 24px;}

.ai-chat-header {padding: 18px 18px 16px;}

.ai-chat-header-info {gap: 14px;
        align-items: flex-start;}

.ai-chat-avatar {width: 64px;
        height: 64px;
        border-radius: 18px;
        background: rgba(255, 255, 255, 0.08);
        padding-right: 0;
        justify-content: center;}

.ai-chat-avatar::after {display: none;}

.ai-chat-avatar svg {width: 42px;
        height: 42px;}

.ai-chat-name {font-size: 1rem;}

.ai-chat-subtitle {font-size: 0.8rem;}

.ai-chat-actions {gap: 6px;}

.ai-chat-minimize,
.ai-chat-close {width: 36px;
        height: 36px;
        border-radius: 10px;}

.ai-chat-messages {padding: 18px 18px 8px;
        gap: 14px;}

.ai-msg {gap: 12px;}

.ai-msg-avatar {width: 42px;
        height: 42px;}

.ai-msg-avatar svg {width: 24px;
        height: 24px;}

.ai-msg--bot > div:last-child,
.ai-msg--user > div {max-width: calc(100% - 54px);}

.ai-msg-bubble {padding: 18px 18px;
        border-radius: 18px;
        font-size: 0.92rem;
        line-height: 1.6;}

.ai-chat-quick-head {padding: 4px 18px 0;}

.ai-chat-quick {padding: 14px 18px 18px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;}

.ai-quick-btn {min-height: 112px;
        padding: 16px 10px;
        border-radius: 16px;}

.ai-quick-icon {width: 36px;
        height: 36px;
        font-size: 1.2rem;}

.ai-quick-label {font-size: 0.84rem;}

.ai-quick-desc {font-size: 0.72rem;}

.ai-chat-input-wrap {margin: 0 18px;
        padding-top: 16px;
        gap: 10px;}

.ai-chat-input {min-height: 60px;
        padding: 16px 18px;
        font-size: 0.92rem;}

.ai-chat-send {width: 60px;
        height: 60px;
        border-radius: 14px;
        font-size: 1.08rem;}

.ai-chat-footer-note {padding: 14px 18px 18px;
        font-size: 0.74rem;}
}

.ai-chat-widget {right: 28px;
    bottom: 92px;
    font-family: var(--font-main);
    --ai-panel-width: min(440px, calc(100vw - 56px));
    --ai-panel-height: min(540px, calc(100dvh - 56px));
    --ai-panel-radius: 18px;
    --ai-header-min-height: 72px;
    --ai-header-padding-y: 14px;
    --ai-header-padding-x: 18px;
    --ai-header-gap: 18px;
    --ai-brand-width: 104px;
    --ai-brand-height: 40px;
    --ai-brand-logo-width: 86px;
    --ai-title-size: 1rem;
    --ai-subtitle-size: 0.72rem;
    --ai-action-size: 30px;
    --ai-messages-padding: 14px 18px 4px;
    --ai-msg-gap: 10px;
    --ai-msg-avatar-size: 40px;
    --ai-bubble-max-width: 300px;
    --ai-bubble-padding: 13px 15px;
    --ai-bubble-font-size: 0.84rem;
    --ai-bubble-line-height: 1.52;
    --ai-time-size: 0.72rem;
    --ai-quick-section-padding: 8px 18px 14px;
    --ai-quick-title-size: 0.84rem;
    --ai-quick-toggle-label-size: 0.72rem;
    --ai-quick-columns: repeat(4, minmax(0, 1fr));
    --ai-quick-padding: 10px 0 0;
    --ai-quick-gap: 8px;
    --ai-quick-min-height: 82px;
    --ai-quick-btn-padding: 10px 8px;
    --ai-quick-icon-size: 26px;
    --ai-quick-icon-font-size: 1.05rem;
    --ai-quick-label-size: 0.72rem;
    --ai-quick-desc-size: 0.6rem;
    --ai-input-wrap-padding: 10px 16px 0;
    --ai-input-wrap-gap: 8px;
    --ai-input-min-height: 44px;
    --ai-input-max-height: 78px;
    --ai-input-padding: 10px 12px;
    --ai-input-font-size: 0.82rem;
    --ai-send-size: 44px;
    --ai-send-font-size: 0.92rem;
    --ai-footer-padding: 8px 16px 12px;
    --ai-footer-size: 0.66rem;}

.ai-chat-launcher {width: 44px;
    height: 44px;}

.ai-chat-panel {width: var(--ai-panel-width);
    height: var(--ai-panel-height);
    max-height: var(--ai-panel-height);
    border-radius: var(--ai-panel-radius);
    background: #fff;
    border: 1px solid rgba(21, 66, 34, 0.08);
    box-shadow: 0 22px 54px rgba(19, 37, 22, 0.22), 0 3px 18px rgba(19, 37, 22, 0.10);
    display: flex;
    flex-direction: column;}

.ai-chat-widget.is-open .ai-chat-launcher {display: none;}

.ai-chat-widget.is-open .ai-chat-panel {opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;}

.ai-chat-header {min-height: var(--ai-header-min-height);
    padding: var(--ai-header-padding-y) var(--ai-header-padding-x);
    background:
        radial-gradient(circle at 18% -30%, rgba(87, 155, 91, 0.30), transparent 34%),
        linear-gradient(135deg, #103f22 0%, #0e4b27 58%, #0a351d 100%);
    align-items: center;}

.ai-chat-header-info {gap: var(--ai-header-gap);
    flex: 1 1 auto;
    min-width: 0;}

.ai-chat-avatar {width: var(--ai-brand-width);
    height: var(--ai-brand-height);
    padding-right: var(--ai-header-gap);
    background: transparent;
    border: none;
    border-radius: 0;
    justify-content: center;}

.ai-chat-avatar::after {top: 0;
    height: var(--ai-brand-height);
    background: rgba(255, 255, 255, 0.80);}

.ai-chat-brand-logo {display: block;
    width: var(--ai-brand-logo-width);
    max-height: var(--ai-brand-height);
    object-fit: contain;}

.ai-chat-header-text {gap: 8px;
    padding-top: 0;}

.ai-chat-name {font-size: var(--ai-title-size);
    line-height: 1.08;
    font-weight: 800;
    color: #fff;}

.ai-chat-subtitle {font-size: var(--ai-subtitle-size);
    line-height: 1.3;
    color: rgba(255, 255, 255, 0.86);}

.ai-chat-status {display: none;}

.ai-chat-actions {gap: 18px;
    padding-top: 0;}

.ai-chat-minimize,
.ai-chat-close {width: var(--ai-action-size);
    height: var(--ai-action-size);
    border: none;
    border-radius: 8px;
    color: #fff;
    font-size: 1.25rem;}

.ai-chat-minimize:hover,
.ai-chat-close:hover {background: rgba(255, 255, 255, 0.12);
    transform: none;}

.ai-chat-messages {flex: 1 1 auto;
    min-height: 0;
    padding: var(--ai-messages-padding);
    background: #fff;
    gap: var(--ai-msg-gap);}

.ai-msg {gap: var(--ai-msg-gap);}

.ai-msg-avatar {width: var(--ai-msg-avatar-size);
    height: var(--ai-msg-avatar-size);
    margin-top: 0;
    background: #0e4b27;
    border-radius: 50%;
    box-shadow: 0 8px 22px rgba(14, 75, 39, 0.18);
    overflow: hidden;}

.ai-msg-logo {display: block;
    width: 72%;
    height: 72%;
    object-fit: contain;}

.ai-msg--bot > div:last-child,
.ai-msg--user > div {max-width: calc(100% - 90px);}

.ai-msg-bubble {max-width: min(var(--ai-bubble-max-width), 100%);
    padding: var(--ai-bubble-padding);
    border-radius: 16px;
    font-size: var(--ai-bubble-font-size);
    line-height: var(--ai-bubble-line-height);}

.ai-msg--bot .ai-msg-bubble {background: linear-gradient(135deg, #fbfcf8 0%, #eef4ee 100%);
    color: #1d2420;
    border: none;
    border-bottom-left-radius: 16px;}

.ai-msg--user .ai-msg-bubble {background: linear-gradient(135deg, #287236 0%, #155323 100%);
    border-bottom-right-radius: 16px;}

.ai-msg-bubble strong {color: #2c7b3f;}

.ai-msg-time {margin-top: 10px;
    font-size: var(--ai-time-size);
    color: #888;}

.ai-chat-quick-section {flex: 0 0 auto;
    padding: var(--ai-quick-section-padding);}

.ai-chat-quick-toggle {width: 100%;
    min-height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #202823;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 12px;
    font: inherit;
    text-align: left;}

.ai-chat-quick-toggle:focus-visible {outline: 2px solid rgba(45, 122, 53, 0.42);
    outline-offset: 3px;
    border-radius: 6px;}

.ai-chat-quick-title {flex: 1 1 auto;
    margin: 0;
    font-size: var(--ai-quick-title-size);
    line-height: 1.35;
    font-weight: 700;
    color: #202823;}

.ai-chat-quick-toggle-label {flex: 0 0 auto;
    font-size: var(--ai-quick-toggle-label-size);
    font-weight: 700;
    color: #25733b;}

.ai-chat-quick-toggle-icon {flex: 0 0 auto;
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #25733b;
    transition: transform 180ms ease;}

.ai-chat-quick {padding: var(--ai-quick-padding);
    display: grid;
    grid-template-columns: var(--ai-quick-columns);
    gap: var(--ai-quick-gap);
    max-height: 260px;
    opacity: 1;
    overflow: hidden;
    transition: max-height 220ms ease, opacity 180ms ease, padding 220ms ease;}

.ai-chat-quick-section.is-collapsed .ai-chat-quick {max-height: 0;
    opacity: 0;
    padding-top: 0;
    pointer-events: none;}

.ai-chat-quick-section.is-collapsed .ai-chat-quick-toggle-icon {transform: rotate(180deg);}

.ai-quick-btn {min-height: var(--ai-quick-min-height);
    border-radius: 6px;
    padding: var(--ai-quick-btn-padding);
    border: 1.5px solid rgba(45, 122, 53, 0.76);
    box-shadow: none;
    overflow: hidden;}

.ai-quick-btn:hover {background: #f6faf6;
    transform: translateY(-2px);}

.ai-quick-icon {width: var(--ai-quick-icon-size);
    height: var(--ai-quick-icon-size);
    font-size: var(--ai-quick-icon-font-size);
    color: #2d7a35;}

.ai-quick-label {font-size: var(--ai-quick-label-size);
    line-height: 1.2;
    color: #202421;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;}

.ai-quick-desc {font-size: var(--ai-quick-desc-size);
    line-height: 1.35;
    color: #747d78;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;}

.ai-chat-input-wrap {margin: 0;
    padding: var(--ai-input-wrap-padding);
    border-top: 1px solid rgba(34, 57, 39, 0.12);
    gap: var(--ai-input-wrap-gap);
    background: #fff;}

.ai-chat-input {min-height: var(--ai-input-min-height);
    max-height: var(--ai-input-max-height);
    padding: var(--ai-input-padding);
    border-radius: 7px;
    border: 1.5px solid rgba(45, 122, 53, 0.72);
    background: #fff;
    color: #1d2420;
    font-size: var(--ai-input-font-size);}

.ai-chat-input::placeholder {color: #b9bdbc;}

.ai-chat-send {width: var(--ai-send-size);
    height: var(--ai-send-size);
    border-radius: 8px;
    font-size: var(--ai-send-font-size);
    background: linear-gradient(135deg, #2e8841 0%, #12612a 100%);
    box-shadow: 0 8px 18px rgba(18, 97, 42, 0.20);}

.ai-chat-footer-note {padding: var(--ai-footer-padding);
    font-size: var(--ai-footer-size);
    line-height: 1.35;
    color: #7e8580;}

.ai-chat-footer-note::before {content: "";
    margin-right: 10px;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    color: #738078;}

.ai-generating-text,
.ai-typing-indicator {padding: 18px 22px;}

@media (min-width: 1500px) {
.ai-chat-widget {--ai-panel-width: min(460px, calc(100vw - 72px));
        --ai-panel-height: min(560px, calc(100dvh - 72px));
        --ai-bubble-max-width: 320px;}
}

@media (max-width: 1360px) {
.ai-chat-widget {--ai-panel-width: min(420px, calc(100vw - 48px));
        --ai-panel-height: min(520px, calc(100dvh - 48px));
        --ai-header-min-height: 68px;
        --ai-header-padding-y: 12px;
        --ai-header-padding-x: 16px;
        --ai-header-gap: 16px;
        --ai-brand-width: 98px;
        --ai-brand-height: 38px;
        --ai-brand-logo-width: 82px;
        --ai-title-size: 0.96rem;
        --ai-subtitle-size: 0.7rem;
        --ai-messages-padding: 14px 16px 4px;
        --ai-msg-avatar-size: 38px;
        --ai-bubble-max-width: 290px;
        --ai-bubble-padding: 12px 14px;
        --ai-bubble-font-size: 0.82rem;
        --ai-quick-section-padding: 8px 16px 12px;
        --ai-quick-padding: 9px 0 0;
        --ai-quick-gap: 10px;
        --ai-quick-min-height: 78px;
        --ai-quick-btn-padding: 8px 7px;
        --ai-quick-label-size: 0.7rem;
        --ai-quick-desc-size: 0.58rem;
        --ai-input-wrap-padding: 9px 14px 0;
        --ai-input-min-height: 42px;
        --ai-input-max-height: 72px;
        --ai-input-padding: 9px 11px;
        --ai-input-font-size: 0.8rem;
        --ai-send-size: 42px;
        --ai-send-font-size: 0.9rem;
        --ai-footer-padding: 7px 14px 10px;
        --ai-footer-size: 0.64rem;}
}

@media (max-width: 1100px) {
.ai-chat-widget {--ai-panel-width: min(380px, calc(100vw - 36px));
        --ai-panel-height: min(480px, calc(100dvh - 36px));
        --ai-header-min-height: 64px;
        --ai-header-padding-y: 14px;
        --ai-header-padding-x: 18px;
        --ai-header-gap: 16px;
        --ai-brand-width: 88px;
        --ai-brand-height: 34px;
        --ai-brand-logo-width: 72px;
        --ai-title-size: 0.92rem;
        --ai-subtitle-size: 0.68rem;
        --ai-action-size: 32px;
        --ai-messages-padding: 16px 18px 6px;
        --ai-msg-gap: 10px;
        --ai-msg-avatar-size: 36px;
        --ai-bubble-max-width: 260px;
        --ai-bubble-padding: 13px 15px;
        --ai-bubble-font-size: 0.86rem;
        --ai-bubble-line-height: 1.48;
        --ai-time-size: 0.7rem;
        --ai-quick-section-padding: 8px 18px 14px;
        --ai-quick-title-size: 0.88rem;
        --ai-quick-columns: repeat(2, minmax(0, 1fr));
        --ai-quick-padding: 9px 0 0;
        --ai-quick-gap: 8px;
        --ai-quick-min-height: 74px;
        --ai-quick-btn-padding: 10px 8px;
        --ai-quick-icon-size: 28px;
        --ai-quick-icon-font-size: 1.1rem;
        --ai-quick-label-size: 0.76rem;
        --ai-quick-desc-size: 0.64rem;
        --ai-input-wrap-padding: 10px 16px 0;
        --ai-input-wrap-gap: 10px;
        --ai-input-min-height: 40px;
        --ai-input-padding: 10px 12px;
        --ai-input-font-size: 0.84rem;
        --ai-send-size: 40px;
        --ai-send-font-size: 0.95rem;
        --ai-footer-padding: 8px 16px 12px;
        --ai-footer-size: 0.68rem;}
}

@media (max-width: 768px) {
.ai-chat-widget {left: 50%;
        right: auto;
        bottom: calc(16px + env(safe-area-inset-bottom));
        align-items: center;
        --ai-panel-width: min(430px, calc(100vw - 24px));
        --ai-panel-height: min(max(min(72dvh, 680px), min(520px, calc(100dvh - 110px - env(safe-area-inset-top)))), calc(100dvh - 110px - env(safe-area-inset-top)));
        --ai-panel-radius: 18px;
        --ai-header-min-height: 70px;
        --ai-header-padding-y: 12px;
        --ai-header-padding-x: 16px;
        --ai-header-gap: 12px;
        --ai-brand-width: 68px;
        --ai-brand-height: 38px;
        --ai-brand-logo-width: 54px;
        --ai-title-size: 0.94rem;
        --ai-subtitle-size: 0.68rem;
        --ai-action-size: 32px;
        --ai-messages-padding: 14px 16px 8px;
        --ai-msg-avatar-size: 34px;
        --ai-bubble-max-width: 300px;
        --ai-bubble-padding: 12px 14px;
        --ai-bubble-font-size: 0.84rem;
        --ai-quick-section-padding: 0 16px 10px;
        --ai-quick-title-size: 1rem;
        --ai-quick-toggle-label-size: 0.75rem;
        --ai-quick-columns: repeat(2, minmax(0, 1fr));
        --ai-quick-padding: 8px 0 0;
        --ai-quick-gap: 8px;
        --ai-quick-min-height: 86px;
        --ai-quick-btn-padding: 12px 8px;
        --ai-quick-icon-size: 24px;
        --ai-quick-icon-font-size: 1rem;
        --ai-quick-label-size: 0.875rem;
        --ai-quick-desc-size: 0.72rem;
        --ai-input-wrap-padding: 10px 12px 0;
        --ai-input-wrap-gap: 8px;
        --ai-input-min-height: 42px;
        --ai-input-padding: 10px 12px;
        --ai-input-font-size: 0.84rem;
        --ai-send-size: 42px;
        --ai-send-font-size: 0.9rem;
        --ai-footer-padding: 7px 12px 10px;
        --ai-footer-size: 0.66rem;}

.ai-chat-widget:not(.is-open) {left: auto;
        right: 16px;
        align-items: flex-end;}

.ai-chat-panel {width: var(--ai-panel-width) !important;
        height: var(--ai-panel-height) !important;
        max-height: var(--ai-panel-height) !important;
        transform: translateX(-50%) !important;
        transform-origin: bottom center;}

.ai-chat-widget.is-open .ai-chat-panel {transform: translateX(-50%) !important;}

.ai-chat-avatar::after {display: none;}
}

@media (max-width: 523px) {
.ai-chat-widget {bottom: calc(14px + env(safe-area-inset-bottom));
        --ai-panel-radius: 16px;
        --ai-panel-width: min(430px, calc(100vw - 24px));
        --ai-header-min-height: 64px;
        --ai-header-padding-y: 10px;
        --ai-header-padding-x: 12px;
        --ai-header-gap: 8px;
        --ai-brand-width: 48px;
        --ai-brand-height: 34px;
        --ai-brand-logo-width: 38px;
        --ai-title-size: 0.84rem;
        --ai-subtitle-size: 0.62rem;
        --ai-action-size: 28px;
        --ai-messages-padding: 12px 12px 6px;
        --ai-msg-gap: 8px;
        --ai-msg-avatar-size: 28px;
        --ai-bubble-max-width: 100%;
        --ai-bubble-padding: 10px 11px;
        --ai-bubble-font-size: 0.78rem;
        --ai-bubble-line-height: 1.42;
        --ai-time-size: 0.62rem;
        --ai-quick-section-padding: 0 12px 9px;
        --ai-quick-title-size: 0.92rem;
        --ai-quick-toggle-label-size: 0.7rem;
        --ai-quick-padding: 7px 0 0;
        --ai-quick-gap: 7px;
        --ai-quick-min-height: 80px;
        --ai-quick-btn-padding: 10px 6px;
        --ai-quick-icon-size: 22px;
        --ai-quick-icon-font-size: 0.92rem;
        --ai-quick-label-size: 0.78rem;
        --ai-quick-desc-size: 0.64rem;
        --ai-input-wrap-padding: 8px 10px 0;
        --ai-input-wrap-gap: 6px;
        --ai-input-min-height: 38px;
        --ai-input-padding: 8px 10px;
        --ai-input-font-size: 0.78rem;
        --ai-send-size: 38px;
        --ai-send-font-size: 0.82rem;
        --ai-footer-padding: 6px 10px 8px;
        --ai-footer-size: 0.58rem;}

.ai-chat-launcher {width: 42px;
        height: 42px;}

.ai-chat-panel {width: var(--ai-panel-width) !important;
        height: var(--ai-panel-height) !important;
        max-height: var(--ai-panel-height) !important;
        border-radius: var(--ai-panel-radius);}

.ai-chat-header {padding-right: 0;
        background:
            radial-gradient(circle at 18% -30%, rgba(87, 155, 91, 0.30), transparent 34%),
            linear-gradient(135deg, #103f22 0%, #0e4b27 58%, #0a351d 100%);}

.ai-chat-avatar::after {display: none;}

.ai-chat-brand-logo {max-height: 30px;}

.ai-chat-actions {gap: 4px;}

.ai-msg--bot > div:last-child,
.ai-msg--user > div {max-width: calc(100% - 31px);}
}

@media (max-width: 340px) {
.ai-chat-widget {--ai-quick-label-size: 0.72rem;
        --ai-quick-desc-size: 0.58rem;
        --ai-quick-icon-size: 20px;
        --ai-quick-icon-font-size: 0.84rem;}
}

@media (max-height: 600px) and (orientation: landscape) {
.ai-chat-widget {--ai-panel-height: min(72dvh, calc(100dvh - 56px));}
}

@media (prefers-reduced-motion: reduce) {
.ai-chat-quick,
.ai-chat-quick-toggle-icon {transition: none;}
}


/* Product assistant content: inherit the agriculture site's palette and contain wide data. */
.ai-chat-messages { min-width: 0; overflow-x: hidden; }
.ai-msg--bot > div:last-child { min-width: 0; flex: 1; max-width: calc(100% - var(--ai-msg-avatar-size, 40px) - var(--ai-msg-gap, 10px)); }
.ai-msg--bot .ai-msg-bubble { width: 100%; max-width: 100%; }
.ai-msg-bubble p { margin: 0 0 9px; }
.ai-msg-bubble p:last-child { margin-bottom: 0; }
.ai-msg-bubble h2, .ai-msg-bubble h3 { color: var(--green-dark, #1a4a1f); line-height: 1.35; margin: 14px 0 7px; }
.ai-msg-bubble h2 { font-size: 1em; }
.ai-msg-bubble h3 { font-size: .96em; }
.ai-msg-bubble ul, .ai-msg-bubble ol { margin: 8px 0; padding-left: 20px; }
.ai-msg-bubble ul { list-style: disc; }
.ai-msg-bubble ol { list-style: decimal; }
.ai-msg-bubble li { margin: 4px 0; }
.ai-msg-bubble a { color: var(--green-main, #2d7a35); text-decoration: underline; overflow-wrap: anywhere; }
.ai-msg-bubble blockquote { margin: 10px 0; padding: 4px 10px; border-left: 3px solid var(--green-main, #2d7a35); color: var(--text-mid, #444); }
.ai-msg-bubble code { font-family: Consolas, monospace; font-size: .9em; background: var(--green-pale, #e8f5e9); padding: 2px 4px; border-radius: 4px; }
.ai-msg-bubble pre { max-width: 100%; overflow-x: auto; white-space: pre; padding: 10px; margin: 10px 0; background: var(--bg-section, #f0f4ee); border-radius: 6px; }
.ai-msg-bubble pre code { background: transparent; padding: 0; }
.ai-table-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; margin: 10px 0; border: 1px solid var(--border, #dde8da); border-radius: 7px; -webkit-overflow-scrolling: touch; }
.ai-table-scroll table { border-collapse: collapse; width: 100%; min-width: 280px; font-size: .94em; text-align: left; }
.ai-table-scroll table:has(th:nth-child(3)) { min-width: 480px; }
.ai-table-scroll th, .ai-table-scroll td { padding: 8px 10px; border-bottom: 1px solid var(--border, #dde8da); vertical-align: top; min-width: 110px; overflow-wrap: anywhere; }
.ai-table-scroll th { background: var(--green-pale, #e8f5e9); color: var(--green-dark, #1a4a1f); font-weight: 600; }
.ai-table-scroll tr:last-child td { border-bottom: 0; }
.ai-response-extras { margin: 9px 0 0; max-width: 100%; }
.ai-response-sources { color: var(--text-light, #777); font-size: .72rem; line-height: 1.5; overflow-wrap: anywhere; }
.ai-rfq-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin-top: 9px; padding: 9px 13px; background: var(--green-main, #2d7a35); color: #fff; border-radius: 6px; font-size: .82rem; font-weight: 600; line-height: 1.4; text-decoration: none; }
.ai-rfq-cta:hover { background: var(--green-dark, #1a4a1f); color: #fff; }
.ai-rfq-cta:focus-visible, .ai-table-scroll:focus-visible { outline: 2px solid var(--accent, #f5a623); outline-offset: 3px; }
.ai-generating-text-label { overflow-wrap: anywhere; }
@media (max-width: 520px) {
    .ai-msg--bot .ai-msg-bubble { font-size: .875rem; line-height: 1.55; padding: 11px 12px; }
    .ai-chat-input { font-size: 16px; }
    .ai-table-scroll table { min-width: 300px; }
    .ai-rfq-cta { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .ai-msg, .ai-generating-dots, .ai-typing-dot { animation: none; }
}
