#portal-assistant.is-open {
    top: var(--assistant-viewport-top, 0px);
    bottom: auto;
    height: var(--assistant-viewport-height, 100dvh);
    padding-block: 12px;
    box-sizing: border-box;
    pointer-events: none;
    align-content: end;
    width: auto;
    transform: none;
}
#portal-assistant .assistant-dock {display: flex;}
#portal-assistant.is-open .assistant-dock {display: none;}
#portal-assistant .assistant-panel {
    pointer-events: auto;
    width: min(470px, calc(100vw - 28px));
    height: min(820px, calc(var(--assistant-viewport-height, 100dvh) - 24px));
    max-height: calc(var(--assistant-viewport-height, 100dvh) - 24px);
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    background: #ffffff;
    border: 1px solid #c4d5de;
    border-radius: 22px;
    box-sizing: border-box;
    transform: none;
}
#portal-assistant .assistant-context {
    display: grid;
    gap: 7px;
    padding: 10px 12px;
    background: #f0f6f8;
    border: 1px solid #d5e3e8;
    border-radius: 12px;
    flex-shrink: 0;
}
#portal-assistant .assistant-head {flex-shrink: 0;}
#portal-assistant .assistant-context label {display: grid; gap: 3px; min-width: 0; font-size: 13px; color: #284653;}
#portal-assistant .assistant-context p {margin: 0; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; color: #36505e;}
#portal-assistant select {width: 100%; max-width: 100%; min-width: 0; min-height: 40px; padding: 7px 10px; border: 1px solid #b3c7d0; border-radius: 8px; color: #173844; background: #fff; font: inherit; box-sizing: border-box;}
#portal-assistant .assistant-subject {min-width: 0; display: block; font-size: 14px;}
#portal-assistant .assistant-composer {gap: 8px;}
#portal-assistant .assistant-thread-shell {padding: 10px; border-radius: 12px; gap: 8px; background: #f6f9fb; flex: 1; min-height: 75px;}
#portal-assistant .assistant-thread {display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain;}
#portal-assistant .assistant-bubble {flex-shrink: 0; font-size: 15px; line-height: 1.55; padding: 10px 12px; max-width: 95%; box-sizing: border-box;}
#portal-assistant .assistant-bubble.is-user {align-self: flex-end;}
#portal-assistant .assistant-actions {max-height: min(190px, 23vh); gap: 7px; overscroll-behavior: contain;}
#portal-assistant .assistant-option, #portal-assistant .assistant-link, #portal-assistant .assistant-chip {font-size: 14px; min-height: 42px; border-radius: 10px; padding: 9px 12px; box-sizing: border-box;}
#portal-assistant .assistant-safe-copy {margin: 0; font-size: 12px; line-height: 1.4; color: #536b77;}
#portal-assistant .assistant-form-error {margin: 0; padding: 10px; background: #fff0ef; color: #962c31; border: 1px solid #e6a4a8; border-radius: 8px;}
#portal-assistant .assistant-support-form {min-height: 0; overflow: auto; overscroll-behavior: contain; max-height: 55vh; gap: 10px;}
#portal-assistant .assistant-support-form textarea {min-height: 92px; max-height: 180px; font: inherit; font-size: 16px; resize: vertical;}
#portal-assistant [hidden] {display: none !important;}
#portal-assistant :focus-visible {outline: 3px solid #b78019; outline-offset: 2px;}
@media (max-width: 820px) {
    /* The checkout keeps its help entry in the fixed mobile menu. */
    body:is(.stage-checkout,.stage-builder).choice-assistant-in-menu #portal-assistant:not(.is-open) .assistant-dock {display: none;}
}
@media (max-width: 760px) {
    #portal-assistant:not(.is-open) .assistant-dock {
        transform: translateY(calc(var(--assistant-dock-offset-y, 0px) + var(--assistant-avoid-offset-y, 0px)));
    }
    #portal-assistant.is-open {right: 8px !important; left: 8px !important; justify-items: stretch;}
    #portal-assistant .assistant-panel {width: 100%; padding: 12px; border-radius: 16px;}
    #portal-assistant .assistant-head-copy {gap: 8px; min-width: 0;}
    #portal-assistant .assistant-avatar {width: 36px; height: 36px; border-radius: 10px; flex-shrink: 0;}
    #portal-assistant-title {font-size: 15px;}
    #portal-assistant .assistant-head p {font-size: 12px;}
    #portal-assistant .assistant-head-actions {gap: 4px;}
    #portal-assistant .assistant-head-button {font-size: 12px; padding-inline: 8px;}
    #portal-assistant .assistant-head-button {width: auto;}
    #portal-assistant .assistant-head-button::before {content: none;}
    #portal-assistant .assistant-context {padding: 8px;}
    #portal-assistant select, #portal-assistant input {font-size: 16px;}
    #portal-assistant .assistant-composer-label {display: none;}
}
@media (max-width: 420px) {
    #portal-assistant .assistant-head {flex-wrap: wrap; gap: 4px;}
    #portal-assistant .assistant-head-copy {flex: 1 1 100%;}
    #portal-assistant .assistant-head-actions {width: 100%; justify-content: flex-end;}
    #portal-assistant .assistant-head-button {min-height: 32px;}
    #portal-assistant .assistant-close {min-height: 32px; height: 32px;}
}
@media (max-height: 600px) {
    #portal-assistant .assistant-panel {grid-template-rows: auto auto minmax(60px, 1fr) auto; gap: 6px; padding: 10px;}
    #portal-assistant .assistant-head p, #portal-assistant .assistant-context p {display: none;}
    #portal-assistant .assistant-context {grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 5px;}
    #portal-assistant .assistant-context label {font-size: 11px;}
    #portal-assistant .assistant-actions {max-height: 85px;}
    #portal-assistant .assistant-thread-shell {padding: 6px; min-height: 40px;}
    #portal-assistant .assistant-status {font-size: 11px; padding: 3px 7px;}
    #portal-assistant .assistant-composer {gap: 4px;}
    #portal-assistant .assistant-subject select {min-height: 32px; padding-block: 3px;}
    #portal-assistant .assistant-support-form {max-height: 40vh;}
    #portal-assistant .assistant-head {flex-wrap: nowrap;}
    #portal-assistant .assistant-head-copy {flex: 1;}
    #portal-assistant .assistant-head-actions {width: auto; flex-shrink: 0;}
    #portal-assistant .assistant-head-button {width: 34px; font-size: 0; padding: 0;}
    #portal-assistant .assistant-head-button::before {content: '\21bb'; font-size: 18px;}
}
@media (prefers-reduced-motion: reduce) {
    #portal-assistant *, #portal-assistant *::after {animation: none !important; transition: none !important;}
}
