.jdih-assistant {
    --jdih-assistant-primary: #00007e;
    position: fixed;
    z-index: 1101;
    right: 20px;
    bottom: calc(156px + env(safe-area-inset-bottom, 0px));
    font-family: inherit;
}
.jdih-assistant.jdih-assistant--open { z-index: 10002; }
.jdih-assistant, .jdih-assistant *, .jdih-assistant *::before, .jdih-assistant *::after { box-sizing: border-box; }
.jdih-assistant button { font: inherit; cursor: pointer; text-transform: none; }
.jdih-assistant button:focus-visible, .jdih-assistant textarea:focus-visible, .jdih-assistant summary:focus-visible, .jdih-assistant a:focus-visible { outline: 2px solid #4d87db; outline-offset: 2px; }
.jdih-assistant .jdih-assistant__launcher {
    display: flex; align-items: center; justify-content: center;
    width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%;
    background: var(--jdih-assistant-primary); color: #fff; font-size: 25px; line-height: 1;
    overflow: hidden; box-shadow: 0 6px 16px #0003;
}
.jdih-assistant .jdih-assistant__logo { display: block; width: 100%; height: 100%; object-fit: cover; }
.jdih-assistant .jdih-assistant__panel {
    position: fixed; right: 20px; bottom: calc(224px + env(safe-area-inset-bottom, 0px));
    display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
    width: min(390px, calc(100vw - 24px)); height: min(540px, calc(100dvh - 240px));
    min-width: 0; min-height: 0; overflow: hidden; border: 1px solid #dce3ed; border-radius: 16px;
    background: #fff; color: #202c3b; box-shadow: 0 12px 35px #15243b2b;
}
.jdih-assistant .jdih-assistant__panel[hidden] { display: none; }
.jdih-assistant .jdih-assistant__header {
    display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 8px;
    min-width: 0; padding: 17px 16px; border-bottom: 1px solid #e8edf3;
}
.jdih-assistant .jdih-assistant__header-icon {
    display: flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; overflow: hidden; border-radius: 10px;
}
.jdih-assistant .jdih-assistant__heading { min-width: 0; }
.jdih-assistant .jdih-assistant__title { margin: 0; color: #172a41; font-size: 16px; font-weight: 600; line-height: 1.3; white-space: nowrap; }
.jdih-assistant .jdih-assistant__subtitle { margin: 2px 0 0; color: #627285; font-size: 12px; line-height: 1.3; white-space: nowrap; }
.jdih-assistant .jdih-assistant__actions { display: flex; align-items: center; gap: 4px; }
.jdih-assistant .jdih-assistant__icon-button {
    display: flex; align-items: center; justify-content: center; flex: 0 0 32px;
    width: 32px; height: 32px; padding: 0; border: 0; border-radius: 6px;
    background: transparent; color: #526477; font-size: 18px; line-height: 1;
}
.jdih-assistant .jdih-assistant__messages {
    min-width: 0; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
    padding: 16px; font-size: 14px; line-height: 1.6;
}
.jdih-assistant .jdih-assistant__greeting { margin: 0 0 14px; padding: 11px 13px; border-radius: 4px 14px 14px 14px; background: #f1f4f8; }
.jdih-assistant .jdih-assistant__examples { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.jdih-assistant .jdih-assistant__example {
    display: block; width: 100%; min-width: 0; max-width: none; min-height: 44px; height: auto;
    padding: 10px 12px; border: 1px solid #c9d9ed; border-radius: 10px;
    background: #fff; color: #23548f; text-align: left; font-size: 13px; line-height: 1.4;
    white-space: normal; overflow-wrap: anywhere;
}
.jdih-assistant .jdih-assistant__message {
    width: fit-content; max-width: 88%; margin: 0 0 12px; padding: 10px 13px;
    border-radius: 4px 14px 14px 14px; background: #f1f4f8; overflow-wrap: anywhere;
    font-size: 14px; line-height: 1.6;
}
.jdih-assistant .jdih-assistant__message--user { margin-left: auto; border-radius: 14px 4px 14px 14px; background: var(--jdih-assistant-primary); color: #fff; }
.jdih-assistant .jdih-assistant__text { white-space: pre-wrap; overflow-wrap: anywhere; }
.jdih-assistant .jdih-assistant__message a { color: #1559a8; overflow-wrap: anywhere; }
.jdih-assistant .jdih-assistant__sources { margin-top: 10px; font-size: 12px; color: #4b5e70; }
.jdih-assistant .jdih-assistant__sources summary { cursor: pointer; font-weight: 600; }
.jdih-assistant .jdih-assistant__sources ul { padding: 0 0 0 18px; margin: 6px 0 0; }
.jdih-assistant .jdih-assistant__sources li { margin: 0; padding: 0; }
.jdih-assistant .jdih-assistant__retry { margin-top: 7px; padding: 4px 9px; border: 1px solid #9eb8d5; border-radius: 8px; background: #fff; color: #23548f; }
.jdih-assistant .jdih-assistant__form { width: 100%; min-width: 0; margin: 0; padding: 14px 16px max(14px, env(safe-area-inset-bottom, 0px)); border-top: 1px solid #e8edf3; }
.jdih-assistant .jdih-assistant__notice { margin-bottom: 10px; padding: 10px 12px; border: 1px solid #c9d9ed; border-radius: 10px; background: #f4f8ff; font-size: 13px; line-height: 1.4; }
.jdih-assistant .jdih-assistant__notice[hidden] { display: none; }
.jdih-assistant .jdih-assistant__notice-text { margin: 0 0 7px; }
.jdih-assistant .jdih-assistant__notice-action, .jdih-assistant .jdih-assistant__notice-cancel { padding: 5px 9px; border: 1px solid #9eb8d5; border-radius: 7px; background: #fff; color: #23548f; font-size: 13px; }
.jdih-assistant .jdih-assistant__notice-cancel:not([hidden]) { margin-left: 4px; }
.jdih-assistant .jdih-assistant__status { color: #627285; font-size: 12px; line-height: 1.4; }
.jdih-assistant .jdih-assistant__status:not(:empty) { margin-bottom: 8px; }
.jdih-assistant .jdih-assistant__input-row { display: grid; grid-template-columns: minmax(0, 1fr) 42px; align-items: end; gap: 8px; width: 100%; min-width: 0; }
.jdih-assistant .jdih-assistant__input {
    display: block; width: 100%; min-width: 0; max-width: none; height: 44px; min-height: 44px; max-height: 120px;
    margin: 0; padding: 11px 12px; overflow-y: auto; resize: none; border: 1px solid #cbd5e1; border-radius: 10px;
    background: #fff; color: #202c3b; font: inherit; font-size: 14px; line-height: 20px;
}
.jdih-assistant .jdih-assistant__send {
    display: flex; align-items: center; justify-content: center;
    width: 42px; height: 42px; padding: 0; border: 0; border-radius: 10px;
    background: var(--jdih-assistant-primary); color: #fff; font-size: 19px; line-height: 1;
}
.jdih-assistant .jdih-assistant__send:disabled, .jdih-assistant .jdih-assistant__retry:disabled, .jdih-assistant .jdih-assistant__icon-button:disabled { opacity: .5; cursor: not-allowed; }
.jdih-assistant .jdih-assistant__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; }
@media (max-width: 600px), (max-height: 600px) {
    .jdih-assistant { right: 20px; bottom: calc(148px + env(safe-area-inset-bottom, 0px)); }
    .jdih-assistant .jdih-assistant__launcher[aria-expanded="true"] { visibility: hidden; }
    .jdih-assistant .jdih-assistant__panel {
        top: calc(var(--jdih-assistant-viewport-top, 0px) + 12px + env(safe-area-inset-top, 0px));
        right: 12px; bottom: auto; width: calc(100% - 24px);
        height: calc(var(--jdih-assistant-viewport-height, 100dvh) - 24px - env(safe-area-inset-top, 0px));
    }
    .jdih-assistant .jdih-assistant__input { font-size: 16px; }
}
