.ibact {
    --ibact-ink: #172b40;
    --ibact-blue: #234769;
    --ibact-line: #d6e0e9;
    color: var(--ibact-ink);
    font: 400 15px/1.45 system-ui, sans-serif;
}
.ibact * { box-sizing: border-box; }
[data-ibact-widget] {
    position: fixed;
    inset: auto 0 0 auto;
    width: 0;
    height: 0;
    z-index: 1000;
}
.ibact-floating {
    position: fixed;
    z-index: 1000;
    right: max(16px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-end;
    gap: 10px;
}
.ibact-preview { max-width: 600px; }
.ibact .ibact-panel {
    position: relative;
    width: min(520px, calc(100vw - 32px));
    max-height: calc(100vh - 90px);
    max-height: calc(100dvh - 90px - env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--ibact-line);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 14px 40px #12253d30;
}
.ibact .ibact-panel[hidden] { display: none; }
.ibact-preview .ibact-panel { width: 100%; max-height: none; }
.ibact .ibact-head {
    background: var(--ibact-ink);
    color: #fff;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}
.ibact .ibact-head small { display: block; letter-spacing: .09em; font-size: 10px; }
.ibact .ibact-head strong { font-size: 19px; }
.ibact .ibact-log {
    max-height: min(420px, 49vh);
    max-height: min(420px, 49dvh);
    min-height: 105px;
    overflow: auto;
    overscroll-behavior: contain;
    padding: 14px;
    background: #f2f6fa;
    overflow-wrap: anywhere;
}
.ibact .ibact-log p { color: inherit; font: inherit; margin: 0 0 8px; }
.ibact .ibact-user {
    background: #deebf7;
    border-radius: 10px;
    padding: 8px 10px;
    margin: 14px 0 10px auto !important;
    width: fit-content;
    max-width: 93%;
}
.ibact .ibact-card {
    background: #fff;
    border: 1px solid var(--ibact-line);
    border-radius: 8px;
    padding: 9px 10px;
    margin-bottom: 8px;
}
.ibact .ibact-card a { color: #1a4d77; font-weight: 650; text-decoration: underline; }
.ibact .ibact-values, .ibact .ibact-filters { font-size: 13px; }
.ibact .ibact-form { margin: 0; padding: 12px 14px; }
.ibact .ibact-form label { display: block; font-weight: 650; margin-bottom: 4px; }
.ibact .ibact-form div { display: flex; gap: 8px; }
.ibact .ibact-form input {
    flex: 1;
    width: 0;
    min-width: 0;
    border: 1px solid #879caf;
    border-radius: 7px;
    background: #fff;
    color: var(--ibact-ink);
    padding: 8px 10px;
    margin: 0;
    font: inherit;
    font-size: 16px;
}
.ibact button {
    appearance: none;
    border: 1px solid transparent;
    background: var(--ibact-blue);
    color: #fff;
    border-radius: 7px;
    padding: 8px 12px;
    cursor: pointer;
    font: inherit;
    font-weight: 650;
    text-transform: none;
    letter-spacing: normal;
}
.ibact button:disabled { opacity: .55; cursor: wait; }
.ibact .ibact-reset { font-size: 13px; border-color: #b6cbdf; background: transparent; }
.ibact .ibact-example { background: #fff; color: #234769; border-color: #879caf; }
.ibact .ibact-launch {
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: calc(100vw - 32px - env(safe-area-inset-right, 0px) - env(safe-area-inset-left, 0px));
    min-height: 44px;
    font-size: 14px;
    line-height: 1.3;
    border: 1px solid #fff;
    border-radius: 24px;
    padding: 8px 13px;
    background: #ffba38;
    color: #172b40;
    text-align: left;
    box-shadow: inset 0 0 0 4px #fff, 0 6px 20px #12253d50;
}
.ibact .ibact-launch:hover { background: #ffca62; color: #172b40; }
.ibact .ibact-launch-icon { flex: 0 0 22px; width: 22px; height: 22px; }
.ibact .ibact-launch-title, .ibact .ibact-launch-hint { display: block; }
.ibact .ibact-launch-title { font-weight: 750; }
.ibact .ibact-launch-hint { font-size: 12px; font-weight: 500; }
.ibact .ibact-launch[aria-expanded="true"] .ibact-launch-hint { display: none; }
.ibact :focus-visible { outline: 2px solid #3477ad; outline-offset: 2px; }
.ibact .ibact-head :focus-visible { outline-color: #fff; }


.ibact .ibact-head { flex: 0 0 auto; }
.ibact .ibact-body {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.ibact .ibact-contact { border-top: 1px solid var(--ibact-line); }
.ibact .ibact-contact summary {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 14px;
    min-height: 44px;
    color: var(--ibact-blue);
    font-weight: 650;
    cursor: pointer;
    list-style: none;
}
.ibact .ibact-contact summary::-webkit-details-marker { display: none; }
.ibact .ibact-contact summary svg { flex: 0 0 20px; }
.ibact .ibact-contact-form { margin: 0; padding: 0 14px 14px; }
.ibact .ibact-contact-form label { display: block; margin-bottom: 10px; font-weight: 650; }
.ibact .ibact-contact-form input[type="email"],
.ibact .ibact-contact-form textarea {
    display: block;
    width: 100%;
    margin: 4px 0 0;
    padding: 9px 10px;
    border: 1px solid #879caf;
    border-radius: 7px;
    background: #fff;
    color: var(--ibact-ink);
    font: inherit;
    font-size: 16px;
}
.ibact .ibact-contact-form textarea { resize: vertical; }
.ibact .ibact-contact-status { margin: 8px 0 0; }
.ibact .ibact-contact-status:empty { display: none; }
@media (max-width: 600px) {
    .ibact-floating {
        right: max(10px, env(safe-area-inset-right));
        bottom: max(10px, env(safe-area-inset-bottom));
    }
    .ibact-floating .ibact-panel {
        width: min(480px, calc(100vw - 20px - env(safe-area-inset-right, 0px) - env(safe-area-inset-left, 0px)));
    }
    .ibact .ibact-head { padding: 12px; }
    .ibact .ibact-form, .ibact .ibact-contact summary { padding-inline: 12px; }
}
.ibact-floating .ibact-log {
    min-height: clamp(105px, 23vh, 175px);
    min-height: clamp(105px, 23dvh, 175px);
}

.ibact-floating .ibact-panel-results {
    width: min(760px, calc(100vw - max(10px, env(safe-area-inset-left, 0px)) - max(16px, env(safe-area-inset-right, 0px))));
    height: calc(100vh - 90px);
    height: calc(100dvh - 90px - env(safe-area-inset-bottom, 0px));
}
.ibact-floating .ibact-panel-results .ibact-body {
    display: flex;
    flex: 1;
    flex-direction: column;
}
.ibact-floating .ibact-panel-results .ibact-log {
    flex: 1;
    min-height: 105px;
    max-height: none;
}
.ibact-floating .ibact-panel-results :is(.ibact-form, .ibact-contact) {
    flex: 0 0 auto;
}

.ibact .ibact-select-all { margin: 0 0 8px; }
.ibact .ibact-pick {
    display: flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    min-height: 30px;
    margin-top: 6px;
    cursor: pointer;
}
.ibact .ibact-pick input { margin: 0; accent-color: var(--ibact-blue); }
.ibact .ibact-selected-summary { margin: 0 0 8px; }

@media (prefers-reduced-motion: no-preference) {
    .ibact .ibact-launch[aria-expanded="false"]:not(:hover):not(:focus) {
        animation: ibact-launch-bounce 15s ease-in-out 3s infinite;
    }
}

@keyframes ibact-launch-bounce {
    0%, 2%, 4%, 6%, 100% { transform: translateY(0); }
    1% { transform: translateY(-9px); }
    3% { transform: translateY(-6px); }
    5% { transform: translateY(-3px); }
}

.ibact-map-original-hidden { display: none !important; }
.ibact-map-results {
    width: 100%;
    min-width: 0;
    --ibact-map-height: clamp(280px, 55vh, 560px);
    padding: clamp(12px, 3vw, 24px);
    box-sizing: border-box;
    background: #fff;
    color: #16293d;
}
.ibact-map-results h2 { scroll-margin-top: 100px; }
.ibact-map-layout { display: grid; gap: 12px; }
.ibact-map-canvas { width: 100%; min-width: 0; height: var(--ibact-map-height); }
.ibact-map-sidebar { min-width: 0; overflow-wrap: anywhere; }
.ibact-map-sidebar [role="status"]:empty { display: none; }
.ibact-map-list { max-height: 230px; overflow: auto; padding-left: 1.6rem; list-style: none; }
@media (min-width: 768px) {
    .ibact-map-results { --ibact-map-height: clamp(360px, 68vh, 700px); }
    .ibact-map-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
        grid-template-areas: "results map";
        align-items: start;
    }
    .ibact-map-canvas { grid-area: map; }
    .ibact-map-sidebar {
        grid-area: results;
        max-height: var(--ibact-map-height);
        overflow: auto;
    }
    .ibact-map-list { max-height: none; overflow: visible; margin: 0; padding: 0; }
}
.ibact-map-results .ibact-map-button {
    border: 1px solid #8096ab;
    border-radius: 6px;
    background: #fff;
    color: #16293d;
    text-align: left;
    margin: 3px 0;
    padding: 6px 10px;
    cursor: pointer;
    white-space: normal;
}
.ibact-map-results .ibact-map-button[hidden] { display: none; }
.ibact .ibact-map-link {
    display: inline-block;
    border: 1px solid #879caf;
    border-radius: 7px;
    padding: 8px 12px;
    margin: 0 6px 4px 0;
    font-weight: 650;
    text-decoration: none;
}
