.site-menu-open .v2-bana-sor,
body:has(dialog.v2-login-overlay:modal) .v2-bana-sor {
    visibility: hidden;
    pointer-events: none;
}

.v2-bana-sor {
    position: fixed;
    left: 50%;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    z-index: 80;
    transform: translateX(-50%);
    font-family: Arial, Helvetica, sans-serif;
}

.v2-bana-sor__fab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 56px;
    min-width: 56px;
    height: 56px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 50%;
    background: var(--orange, #ff5a00);
    color: #fff;
    box-shadow: 0 8px 22px rgba(2, 31, 61, .28);
    cursor: pointer;
}

.v2-bana-sor__q {
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
    color: #fff;
}

.v2-bana-sor--side {
    left: auto;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    transform: none;
}

.v2-bana-sor--side .v2-bana-sor__panel {
    right: 0;
    transform: none;
}

body.ilan-ver-page .v2-bana-sor--side {
    bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}

.v2-bana-sor__label {
    max-width: 0;
    overflow: hidden;
    font-size: 15px;
    font-weight: 800;
    white-space: nowrap;
    opacity: 0;
}

.v2-bana-sor.is-intro .v2-bana-sor__fab {
    animation: v2-bana-sor-intro 3s ease forwards;
}

.v2-bana-sor.is-intro .v2-bana-sor__label {
    animation: v2-bana-sor-label 3s ease forwards;
}

@keyframes v2-bana-sor-intro {
    0% { transform: translateY(8px) scale(.72); }
    18% { width: 148px; border-radius: 28px; transform: translateY(-64px) scale(1.08); }
    78% { width: 148px; border-radius: 28px; transform: translateY(-64px) scale(1.08); }
    100% { width: 56px; border-radius: 50%; transform: translateY(0) scale(1); }
}

@keyframes v2-bana-sor-label {
    0%, 12% { max-width: 0; opacity: 0; }
    22%, 76% { max-width: 96px; opacity: 1; }
    100% { max-width: 0; opacity: 0; }
}

.v2-bana-sor__panel {
    position: absolute;
    right: 50%;
    bottom: 68px;
    width: min(360px, calc(100vw - 24px));
    overflow: hidden;
    transform: translateX(50%);
    border: 1px solid rgba(9, 35, 62, .12);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 60px rgba(9, 35, 62, .24);
}
.v2-bana-sor__panel[hidden] { display: none !important; }
.v2-bana-sor__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 15px;
    background: #09233e;
    color: #fff;
}

.v2-bana-sor__close {
    width: 36px;
    height: 36px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 25px;
    cursor: pointer;
}

.v2-bana-sor__messages {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 160px;
    max-height: min(350px, 52vh);
    padding: 14px;
    overflow-y: auto;
    background: #f5f7fa;
}

.v2-bana-sor__message {
    max-width: 88%;
    margin: 0;
    padding: 9px 11px;
    border-radius: 13px;
    font-size: 14px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.v2-bana-sor__message--assistant {
    align-self: flex-start;
    background: #fff;
    color: #09233e;
}

.v2-bana-sor__message--user {
    align-self: flex-end;
    background: #09233e;
    color: #fff;
}

.v2-bana-sor__route {
    display: inline-block;
    margin: 3px 2px;
    color: #b83f00;
    font-weight: 800;
    text-decoration: underline;
}

.v2-bana-sor__form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 12px;
}

.v2-bana-sor__form input {
    min-width: 0;
    min-height: 44px;
    padding: 9px 11px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    font: inherit;
}

.v2-bana-sor__form button {
    min-height: 44px;
    padding: 9px 13px;
    border: 0;
    border-radius: 10px;
    background: var(--orange, #ff5a00);
    color: #09233e;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.v2-bana-sor__form button:disabled { opacity: .55; }
@media (max-width: 600px) {
    .v2-bana-sor.is-open { transform: none; }
    .v2-bana-sor__panel:not([hidden]) { position: fixed; top: calc(var(--v2-bs-viewport-top, 0px) + 8px); right: 12px; bottom: auto; left: 12px; display: grid; grid-template-rows: 52px minmax(0, 1fr) auto; width: auto; height: calc(var(--v2-bs-viewport-height, 100dvh) - 16px); max-height: none; transform: none; }
    .v2-bana-sor--side .v2-bana-sor__panel { right: 12px; transform: none; }
    .v2-bana-sor__header { position: relative; z-index: 2; box-sizing: border-box; min-height: 52px; padding: 4px 8px 4px 14px; }
    .v2-bana-sor__close { position: relative; z-index: 3; display: grid; flex: 0 0 44px; width: 44px; height: 44px; place-items: center; touch-action: manipulation; pointer-events: auto; font-size: 28px; }
    .v2-bana-sor__messages { min-height: 0; max-height: none; overscroll-behavior: contain; }
    .v2-bana-sor__message--assistant { color: #09233e; font-size: 16px; font-weight: 500; }
    .v2-bana-sor__message--user { background: var(--orange, #ff5a00); color: #fff; }
    .v2-bana-sor__form { padding: 8px 10px calc(8px + env(safe-area-inset-bottom, 0px)); background: #fff; }
}
