.iam-map-shell {
--iam-blue: var(--iam-brand-primary, #001489);
--iam-blue-dark: var(--iam-brand-primary, #001489);
--iam-secondary: var(--iam-brand-secondary, #ff3300);
--iam-text-color: var(--iam-brand-text, #004d40);
--iam-accent: var(--iam-brand-accent, #f4f1ea);
--iam-cyan: #0ea5c6;
--iam-line: #d4e5f2;
--iam-muted: #657484;
--iam-bg: #f7fbfe;
--iam-white: #fff;
position: relative;
display: grid;
grid-template-columns: minmax(310px, 420px) minmax(0, 1fr);
gap: 12px;
width: 100%;
min-height: var(--iam-desktop-height);
color: var(--iam-text-color);
font-family: var(--iam-body-font-family, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
font-size: var(--iam-body-font-size, 14px);
}
.iam-map-shell--no-sidebar {
grid-template-columns: 1fr;
}
.iam-sidebar {
height: var(--iam-desktop-height);
overflow: auto;
background: #f8fbfd;
border: 1px solid var(--iam-line);
border-radius: 8px;
padding: 14px;
font-family: var(--iam-left-column-text-font-family, var(--iam-body-font-family, inherit));
font-size: var(--iam-left-column-text-size, var(--iam-body-font-size, 14px));
}
.iam-sidebar .iam-panel-title {
font-family: var(--iam-left-column-title-font-family, var(--iam-panel-title-font-family, inherit));
font-size: var(--iam-left-column-title-size, var(--iam-panel-title-size, 18px));
}
.iam-sidebar .iam-panel-body h3 {
font-family: var(--iam-left-column-title-font-family, var(--iam-section-title-font-family, inherit));
font-size: var(--iam-left-column-title-size, var(--iam-section-title-size, 16px));
}
.iam-sidebar .iam-chip,
.iam-sidebar .iam-route-chip,
.iam-sidebar .iam-category-chip,
.iam-sidebar .iam-ai-submit,
.iam-sidebar .iam-voice-btn,
.iam-sidebar .iam-route-actions button,
.iam-sidebar .iam-saved-actions button,
.iam-sidebar .iam-edit-actions button {
font-family: var(--iam-left-column-button-font-family, var(--iam-control-font-family, inherit));
font-size: var(--iam-left-column-button-size, var(--iam-control-font-size, 14px));
}
.iam-sidebar .iam-ai-prompt {
font-family: var(--iam-left-column-text-font-family, var(--iam-body-font-family, inherit));
font-size: var(--iam-left-column-text-size, var(--iam-body-font-size, 14px));
}
.iam-map-stage {
position: relative;
min-height: var(--iam-desktop-height);
overflow: hidden;
border: 1px solid var(--iam-line);
border-radius: 8px;
background: #dff1f6;
}
.iam-map-canvas {
position: absolute;
inset: 0;
z-index: 1;
}
.iam-panel {
border: 1px solid var(--iam-line);
border-radius: 8px;
background: var(--iam-white);
margin-bottom: 10px;
overflow: hidden;
}
.iam-panel-title {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 16px 18px;
border: 0;
background: var(--iam-white);
color: var(--iam-blue-dark);
font: inherit;
font-family: var(--iam-panel-title-font-family, inherit);
font-weight: 800;
font-size: var(--iam-panel-title-size, 18px);
text-align: left;
cursor: pointer;
}
.iam-panel--open > .iam-panel-title {
background: var(--iam-blue);
color: #fff;
}
.iam-panel-title:hover,
.iam-panel--open > .iam-panel-title:hover {
background: var(--iam-secondary);
color: #fff;
}
.iam-panel-title:focus,
.iam-panel-title:focus-visible {
outline: 2px solid rgba(13, 101, 173, 0.28);
outline-offset: -2px;
}
.iam-panel-arrow {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
flex: 0 0 36px;
border-radius: 50%;
background: #eaf6ff;
color: var(--iam-blue);
font-weight: 900;
}
.iam-panel--open > .iam-panel-title .iam-panel-arrow,
.iam-panel-title:hover .iam-panel-arrow {
background: #fff;
color: var(--iam-blue);
}
.iam-panel:not(.iam-panel--open) .iam-panel-body {
display: none;
}
.iam-panel-body {
padding: 14px 18px 18px;
}
.iam-panel-body h3 {
margin: 18px 0 12px;
color: #102236;
font-family: var(--iam-section-title-font-family, inherit);
font-size: var(--iam-section-title-size, 16px);
line-height: 1.2;
}
.iam-category-chips,
.iam-route-chips {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.iam-filter-results-btn {
display: none;
width: 100%;
min-height: 46px;
margin-top: 16px;
border: 0;
border-radius: 999px;
background: var(--iam-blue);
color: #fff;
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 900;
cursor: pointer;
}
.iam-filter-results-btn.is-visible {
display: inline-flex;
align-items: center;
justify-content: center;
}
.iam-filter-results-btn:hover {
background: var(--iam-secondary);
}
.iam-chip,
.iam-route-chip,
.iam-category-chip {
display: inline-flex;
align-items: center;
gap: 8px;
min-height: 42px;
padding: 8px 14px;
border: 1px solid var(--iam-line);
border-radius: 999px;
background: var(--iam-white);
color: #102236;
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 750;
cursor: pointer;
transition: transform 160ms ease, background 160ms ease, color 160ms ease, box-shadow 160ms ease;
}
.iam-chip:hover,
.iam-route-chip:hover,
.iam-category-chip:hover {
background: var(--iam-secondary);
border-color: var(--iam-secondary);
color: #fff;
transform: translateY(-1px);
}
.iam-chip.is-active,
.iam-route-chip.is-active,
.iam-category-chip.is-active {
background: var(--iam-blue);
border-color: var(--iam-blue);
color: #fff;
box-shadow: 0 8px 16px rgba(13, 101, 173, 0.22);
}
.iam-chip.is-active:hover,
.iam-route-chip.is-active:hover,
.iam-category-chip.is-active:hover {
background: var(--iam-secondary);
border-color: var(--iam-secondary);
}
.iam-chip:not(.is-active):focus:not(:hover),
.iam-route-chip:not(.is-active):focus:not(:hover),
.iam-category-chip:not(.is-active):focus:not(:hover) {
background: var(--iam-white);
border-color: var(--iam-line);
color: #102236;
}
.iam-icon-badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 28px;
height: 28px;
flex: 0 0 28px;
border-radius: 50%;
background: var(--iam-cyan);
color: #fff;
border: 3px solid #eef6ff;
}
.iam-icon-badge svg {
width: 17px;
height: 17px;
display: block;
}
.iam-ai-box {
border: 1px solid #a9ccea;
border-radius: 8px;
padding: 18px;
background: #fbfdff;
}
.iam-ai-box p {
color: var(--iam-muted);
font-weight: 650;
line-height: 1.45;
}
.iam-ai-textarea-label {
display: block;
margin: 12px 0 8px;
font-weight: 800;
}
.iam-ai-prompt {
width: 100%;
min-height: 132px;
resize: vertical;
border: 1px solid #a9ccea;
border-radius: 8px;
padding: 14px;
color: #102236;
font: inherit;
font-size: var(--iam-body-font-size, 14px);
line-height: 1.35;
background: #fff;
}
.iam-voice-btn,
.iam-ai-submit {
min-height: 48px;
border: 0;
border-radius: 999px;
background: var(--iam-blue);
color: #fff;
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 850;
cursor: pointer;
}
.iam-ai-actions {
display: grid;
grid-template-columns: minmax(0, 1fr) 64px;
gap: 10px;
align-items: center;
margin-top: 12px;
}
.iam-ai-submit {
width: 100%;
}
.iam-voice-btn {
display: inline-flex;
justify-content: center;
align-items: center;
gap: 7px;
width: 64px;
min-width: 64px;
padding: 0;
}
.iam-record-dot {
width: 11px;
height: 11px;
border-radius: 50%;
background: #f3123c;
}
.iam-mic-icon {
position: relative;
display: inline-flex;
justify-content: center;
align-items: flex-start;
width: 18px;
height: 24px;
color: #fff;
}
.iam-mic-head {
width: 12px;
height: 16px;
border: 2px solid currentColor;
border-radius: 999px;
}
.iam-mic-stem {
position: absolute;
left: 50%;
bottom: 1px;
width: 14px;
height: 9px;
border-bottom: 2px solid currentColor;
border-left: 2px solid currentColor;
border-right: 2px solid currentColor;
border-radius: 0 0 999px 999px;
transform: translateX(-50%);
}
.iam-mic-stem::after {
content: "";
position: absolute;
left: 50%;
bottom: -6px;
width: 2px;
height: 6px;
background: currentColor;
transform: translateX(-50%);
}
.iam-voice-btn.is-recording {
background: var(--iam-secondary);
box-shadow: 0 0 0 8px rgba(14, 165, 198, 0.16);
}
.iam-voice-feedback {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
margin-top: 10px;
color: var(--iam-blue-dark);
font-weight: 800;
}
.iam-wave {
width: 34px;
height: 18px;
background: linear-gradient(90deg, #0ea5c6 15%, transparent 15% 28%, #0ea5c6 28% 42%, transparent 42% 55%, #0ea5c6 55% 68%, transparent 68%);
animation: iam-wave 800ms ease-in-out infinite;
}
@keyframes iam-wave {
0%, 100% { transform: scaleY(0.65); opacity: 0.65; }
50% { transform: scaleY(1.15); opacity: 1; }
}
.iam-ai-submit {
background: var(--iam-blue);
}
.iam-voice-btn:hover,
.iam-ai-submit:hover {
background: var(--iam-secondary);
}
.iam-route-result,
.iam-saved-route-card {
margin-top: 14px;
padding: 14px;
border: 1px solid var(--iam-line);
border-radius: 8px;
background: #fff;
}
.iam-route-result--modal,
.iam-modal-card--route .iam-route-result {
margin-top: 0;
}
.iam-route-stats {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 10px;
margin: 12px 0;
}
.iam-modal-card--route .iam-route-stats {
grid-template-columns: repeat(4, minmax(120px, 1fr));
}
.iam-route-stat strong {
display: block;
color: var(--iam-blue-dark);
font-size: 14px;
}
.iam-route-stat span {
color: #102236;
font-weight: 800;
}
.iam-stop-list {
display: grid;
gap: 10px;
margin: 14px 0;
padding: 0;
list-style: none;
}
.iam-stop-item {
display: grid;
grid-template-columns: 44px 1fr;
gap: 12px;
align-items: center;
padding: 12px;
border: 1px solid var(--iam-line);
border-radius: 8px;
background: #fff;
cursor: pointer;
}
.iam-stop-number,
.iam-route-number {
display: inline-flex;
align-items: center;
justify-content: center;
width: 42px;
height: 42px;
border-radius: 50%;
background: var(--iam-blue);
color: #fff;
font-weight: 900;
}
.iam-stop-title {
display: block;
color: var(--iam-blue-dark);
font-weight: 900;
}
.iam-stop-category {
display: block;
color: var(--iam-muted);
font-weight: 750;
}
.iam-stop-distance {
display: block;
margin-top: 2px;
color: var(--iam-secondary);
font-weight: 850;
}
.iam-stop-excerpt {
display: block;
margin-top: 3px;
line-height: 1.35;
}
.iam-route-actions,
.iam-saved-actions,
.iam-edit-actions {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 8px;
margin-top: 12px;
}
.iam-route-actions button,
.iam-saved-actions button,
.iam-edit-actions button,
.iam-modal-card button {
min-height: 42px;
border: 1px solid var(--iam-line);
border-radius: 8px;
background: #fff;
color: var(--iam-blue-dark);
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 850;
cursor: pointer;
}
.iam-route-actions .iam-primary,
.iam-saved-actions .iam-primary,
.iam-edit-actions .iam-primary {
background: var(--iam-blue);
border-color: var(--iam-blue);
color: #fff;
}
.iam-route-actions button:hover:not(.iam-danger),
.iam-saved-actions button:hover:not(.iam-danger),
.iam-edit-actions button:hover,
.iam-modal-card button:hover {
background: var(--iam-secondary);
border-color: var(--iam-secondary);
color: #fff;
}
.iam-route-actions .iam-danger,
.iam-saved-actions .iam-danger {
color: #b91c1c;
}
.iam-routes-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
}
.iam-routes-count {
padding: 8px 12px;
border-radius: 999px;
background: #e1f2ef;
color: var(--iam-blue-dark);
font-weight: 850;
}
.iam-map-style-control {
position: absolute;
z-index: 6;
top: 18px;
right: 16px;
}
.iam-style-toggle {
min-height: 48px;
padding: 0 22px;
border: 1px solid var(--iam-line);
border-radius: 999px;
background: #fff;
color: var(--iam-blue-dark);
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 900;
box-shadow: 0 8px 18px rgba(8, 59, 104, 0.16);
cursor: pointer;
}
.iam-style-menu {
display: grid;
gap: 8px;
width: 220px;
margin-top: 10px;
padding: 14px;
border: 1px solid var(--iam-line);
border-radius: 8px;
background: rgba(255, 255, 255, 0.94);
box-shadow: 0 12px 28px rgba(8, 59, 104, 0.18);
}
.iam-style-menu[hidden] {
display: none;
}
.iam-style-menu button {
min-height: 42px;
border: 1px solid var(--iam-line);
border-radius: 999px;
background: #fff;
color: var(--iam-blue-dark);
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 900;
cursor: pointer;
}
.iam-style-menu button.is-active {
background: var(--iam-blue);
color: #fff;
}
.iam-style-menu button:hover,
.iam-style-menu button.is-active:hover,
.iam-bottom-search button:hover {
background: var(--iam-secondary);
border-color: var(--iam-secondary);
color: #fff;
}
.iam-map-controls {
position: absolute;
z-index: 5;
top: 86px;
right: 18px;
display: grid;
gap: 8px;
}
.iam-map-controls button {
width: 48px;
height: 48px;
border: 1px solid var(--iam-line);
background: #fff;
color: var(--iam-blue-dark);
font-size: 26px;
font-weight: 900;
cursor: pointer;
box-shadow: 0 8px 18px rgba(8, 59, 104, 0.14);
}
.iam-fullscreen-btn {
border-radius: 8px;
}
.iam-zoom-in {
border-radius: 8px 8px 0 0;
}
.iam-zoom-out {
margin-top: -8px;
border-radius: 0 0 8px 8px;
}
.iam-bottom-search {
position: absolute;
z-index: 5;
left: 20px;
right: 20px;
bottom: 20px;
display: grid;
grid-template-columns: auto 120px minmax(220px, 1fr) minmax(140px, 180px) minmax(140px, 180px) auto auto;
gap: 8px;
align-items: center;
padding: 10px;
border: 1px solid var(--iam-line);
border-radius: 8px;
background: rgba(255, 255, 255, 0.93);
box-shadow: 0 12px 28px rgba(8, 59, 104, 0.16);
}
.iam-bottom-search input,
.iam-bottom-search select {
min-height: 44px;
border: 1px solid var(--iam-line);
border-radius: 6px;
padding: 0 12px;
background: #fff;
color: #102236;
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
}
.iam-bottom-search button {
min-height: 44px;
padding: 0 18px;
border: 0;
border-radius: 999px;
background: var(--iam-blue);
color: #fff;
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 900;
cursor: pointer;
}
.iam-active-chips {
position: absolute;
z-index: 6;
top: 18px;
left: 18px;
max-width: min(520px, calc(100% - 150px));
display: flex;
align-items: flex-start;
flex-wrap: wrap;
gap: 8px;
padding: 0;
background: transparent;
box-shadow: none;
pointer-events: none;
}
.iam-active-chips:empty {
display: none;
}
.iam-active-label {
display: none;
}
.iam-active-chip {
flex: 0 0 auto;
border: 1px solid #a9ccea;
border-radius: 999px;
background: rgba(255, 255, 255, 0.92);
color: var(--iam-blue-dark);
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 850;
padding: 7px 12px;
cursor: pointer;
box-shadow: 0 8px 18px rgba(8, 59, 104, 0.14);
pointer-events: auto;
}
.iam-active-chip:hover {
background: var(--iam-secondary);
border-color: var(--iam-secondary);
color: #fff;
}
.iam-mobile-filter-btn,
.iam-return-route-btn {
display: none;
}
.iam-return-route-btn {
display: none !important;
}
.iam-poi-marker {
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.iam-poi-marker-inner {
width: 36px;
height: 36px;
display: flex;
align-items: center;
justify-content: center;
border: 3px solid #fff;
border-radius: 50% 50% 50% 8px;
color: #fff;
box-shadow: 0 8px 18px rgba(4, 42, 74, 0.28);
transform: rotate(-45deg);
}
.iam-poi-marker-inner svg,
.iam-poi-marker-inner span {
transform: rotate(45deg);
}
.iam-poi-marker-inner svg {
width: 19px;
height: 19px;
}
.iam-poi-marker--route .iam-poi-marker-inner {
border-radius: 50%;
font-weight: 900;
font-size: 18px;
transform: none;
}
.iam-poi-marker--route .iam-poi-marker-inner span {
transform: none;
}
.iam-user-location-marker {
display: flex;
align-items: center;
justify-content: center;
}
.iam-user-marker-inner {
width: 38px;
height: 38px;
display: flex;
align-items: center;
justify-content: center;
border: 4px solid #fff;
border-radius: 50%;
background: #ef1d16;
color: #fff;
box-shadow: 0 10px 24px rgba(120, 20, 10, 0.34);
}
.iam-user-marker-inner svg {
width: 22px;
height: 22px;
display: block;
fill: currentColor;
}
.iam-cluster-icon {
display: flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
border: 4px solid #fff;
border-radius: 50%;
background: var(--iam-blue);
color: #fff;
font-weight: 900;
font-size: 18px;
box-shadow: 0 12px 28px rgba(4, 42, 74, 0.28);
transition: transform 180ms ease, opacity 180ms ease;
}
.iam-popup-card {
display: grid;
box-sizing: border-box;
grid-template-columns: var(--iam-popup-image-width, 208px) minmax(var(--iam-popup-text-min, 192px), 1fr);
gap: var(--iam-popup-row-gap, 10px) var(--iam-popup-column-gap, 13px);
align-items: start;
min-width: var(--iam-popup-min-width, 448px);
max-width: var(--iam-popup-max-width, 520px);
padding: var(--iam-popup-padding, 10px);
}
.leaflet-popup-content-wrapper {
border-radius: 8px;
border: 1px solid var(--iam-line);
box-shadow: 0 14px 34px rgba(8, 59, 104, 0.22);
}
.leaflet-popup-content {
margin: 0;
}
.iam-popup-image {
display: block;
width: 100%;
aspect-ratio: 3 / 2;
height: auto;
object-fit: cover;
border-radius: 6px;
background: #dcecf7;
}
.iam-popup-content {
display: flex;
min-width: 0;
flex-direction: column;
min-height: 0;
}
.iam-popup-content h3 {
margin: 0 0 1px;
color: #102236;
font-family: var(--iam-popup-title-font-family, var(--iam-section-title-font-family, inherit));
font-size: var(--iam-popup-title-size, 22px);
line-height: 1.05;
}
.iam-popup-category {
margin: 0 0 1px;
color: var(--iam-muted);
font-family: var(--iam-popup-category-font-family, var(--iam-body-font-family, inherit));
font-size: var(--iam-popup-category-size, 16px);
font-weight: 800;
line-height: 1.15;
}
.iam-popup-excerpt {
display: -webkit-box;
flex: 1 1 auto;
margin: 0;
overflow: hidden;
color: #5d6c7c;
font-family: var(--iam-popup-excerpt-font-family, var(--iam-body-font-family, inherit));
font-size: var(--iam-popup-excerpt-size, 8px);
font-weight: 600;
line-height: 1.25;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
}
.iam-popup-actions {
display: grid;
grid-template-columns: 1fr 1fr;
grid-column: 1 / -1;
gap: 10px;
margin-top: 0;
}
.iam-popup-actions a,
.iam-popup-actions button {
min-height: 42px;
border: 0;
border-radius: 999px;
background: var(--iam-blue);
color: #fff;
font: inherit;
font-family: var(--iam-popup-button-font-family, var(--iam-control-font-family, inherit));
font-size: var(--iam-popup-button-size, var(--iam-control-font-size, 14px));
font-weight: 900;
text-decoration: none;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
line-height: 1.1;
overflow-wrap: anywhere;
padding: 0 12px;
cursor: pointer;
}
.iam-popup-actions a:hover,
.iam-popup-actions button:hover {
background: var(--iam-secondary);
}
.iam-status {
position: absolute;
z-index: 7;
left: 50%;
top: 92px;
transform: translateX(-50%);
max-width: min(520px, calc(100% - 40px));
padding: 10px 14px;
border-radius: 999px;
background: rgba(8, 59, 104, 0.92);
color: #fff;
font-weight: 800;
text-align: center;
opacity: 0;
pointer-events: none;
transition: opacity 180ms ease;
}
.iam-status.is-visible {
opacity: 1;
}
.iam-mobile-sheet,
.iam-modal {
position: absolute;
inset: 0;
z-index: 20;
background: rgba(4, 28, 48, 0.35);
}
.iam-modal {
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
}
.iam-mobile-sheet[aria-hidden="true"],
.iam-modal[hidden] {
display: none;
}
.iam-modal-card {
position: relative;
width: min(620px, 100%);
max-height: min(760px, 90vh);
overflow: auto;
padding: 22px;
border-radius: 8px;
background: #fff;
}
.iam-modal-card--route {
width: min(900px, calc(100% - 32px));
max-height: min(820px, 92vh);
}
.iam-modal-close,
.iam-sheet-close {
position: absolute;
top: 8px;
right: 10px;
width: 36px;
height: 36px;
border: 0;
border-radius: 50%;
background: #eaf6ff;
color: var(--iam-blue-dark);
font-size: 24px;
cursor: pointer;
}
.iam-sheet-close {
top: 50%;
right: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
background: var(--iam-secondary);
color: #fff;
box-shadow: 0 8px 16px rgba(255, 51, 0, 0.22);
font-size: 30px;
line-height: 1;
transform: translateY(-50%);
}
.iam-sheet-close:hover {
background: #d82b00;
}
.iam-sheet-feedback {
margin: 0 12px 10px;
padding: 10px 12px;
border-radius: 999px;
background: rgba(0, 20, 137, 0.1);
color: var(--iam-blue-dark);
font-weight: 900;
text-align: center;
}
.iam-share-qr {
display: grid;
justify-items: center;
gap: 12px;
}
.iam-share-qr img {
width: 180px;
height: 180px;
border: 1px solid var(--iam-line);
border-radius: 8px;
}
.iam-edit-stop {
display: grid;
grid-template-columns: 1fr auto auto auto;
gap: 8px;
align-items: center;
margin-bottom: 8px;
padding: 10px;
border: 1px solid var(--iam-line);
border-radius: 8px;
}
.iam-modal-card input,
.iam-modal-card select,
.iam-modal-card textarea {
width: 100%;
min-height: 42px;
border: 1px solid var(--iam-line);
border-radius: 6px;
padding: 0 10px;
font: inherit;
font-family: var(--iam-body-font-family, inherit);
}
.iam-modal-card label {
display: grid;
gap: 6px;
margin-bottom: 12px;
font-weight: 850;
}
@media (max-width: 980px) {
.iam-map-shell {
display: block;
min-height: var(--iam-mobile-height);
}
.iam-sidebar {
display: none;
}
.iam-map-stage {
min-height: var(--iam-mobile-height);
}
.iam-map-style-control {
top: 12px;
right: 12px;
}
.iam-style-toggle {
min-height: 42px;
padding: 0 16px;
}
.iam-style-menu {
width: 190px;
}
.iam-map-controls {
top: 68px;
right: 12px;
}
.iam-map-controls button {
width: 42px;
height: 42px;
font-size: 22px;
}
.iam-bottom-search {
left: 10px;
right: 10px;
bottom: 12px;
grid-template-columns: auto minmax(74px, 92px) minmax(0, 1fr);
gap: 6px;
padding: 8px;
}
.iam-category-select,
.iam-route-select,
.iam-search-btn,
.iam-clear-btn {
display: none;
}
.iam-radius-select {
display: block;
width: 100%;
min-width: 0;
padding: 0 8px !important;
}
.iam-near-btn {
padding: 0 12px !important;
}
.iam-mobile-filter-btn,
.iam-return-route-btn {
position: absolute;
z-index: 7;
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 46px;
padding: 0 18px;
border: 0;
border-radius: 999px;
background: var(--iam-blue);
color: #fff;
font: inherit;
font-family: var(--iam-control-font-family, inherit);
font-size: var(--iam-control-font-size, 14px);
font-weight: 900;
box-shadow: 0 10px 24px rgba(8, 59, 104, 0.18);
cursor: pointer;
}
.iam-mobile-filter-btn {
right: 16px;
bottom: 76px;
width: 58px;
height: 58px;
min-height: 58px;
padding: 0;
border-radius: 50%;
animation: iam-ai-button-float 2.4s ease-in-out infinite;
}
.iam-mobile-filter-btn:hover {
background: var(--iam-secondary);
}
.iam-mobile-filter-label {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
}
.iam-active-chips {
top: 12px;
left: 12px;
right: auto;
max-width: calc(100% - 106px);
align-items: flex-start;
justify-content: flex-start;
}
.iam-mobile-sheet {
display: flex;
align-items: flex-end;
}
.iam-mobile-sheet-panel {
width: 100%;
max-height: 86%;
overflow: auto;
border-radius: 8px 8px 0 0;
background: #f8fbfd;
padding: 10px 12px 18px;
}
.iam-mobile-sheet-panel .iam-panel-body {
padding-top: 14px;
}
.iam-sheet-handle {
width: 46px;
height: 5px;
margin: 6px auto 12px;
border-radius: 999px;
background: #bad4e8;
}
.iam-sheet-header {
position: relative;
display: flex;
justify-content: center;
align-items: center;
min-height: 42px;
margin-bottom: 14px;
color: var(--iam-blue-dark);
font-size: var(--iam-section-title-size, 16px);
}
.iam-panel-title {
font-size: var(--iam-panel-title-size, 18px);
padding: 14px;
}
.iam-panel-body {
padding: 0 14px 14px;
}
.iam-ai-prompt {
min-height: 110px;
font-size: var(--iam-body-font-size, 14px);
}
.iam-route-stats {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.iam-modal-card--route .iam-route-stats {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.iam-route-actions,
.iam-saved-actions,
.iam-edit-actions {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.iam-route-actions button,
.iam-saved-actions button,
.iam-edit-actions button {
min-width: 0;
overflow-wrap: anywhere;
}
.iam-popup-card {
min-width: 280px;
max-width: 320px;
grid-template-columns: 112px minmax(0, 1fr);
align-items: stretch;
gap: 7px;
padding: 9px;
}
.iam-popup-image {
width: 112px;
height: 100%;
min-height: 150px;
aspect-ratio: auto;
align-self: stretch;
}
.iam-popup-content {
min-height: 150px;
}
.iam-popup-content h3 {
font-size: 18px;
}
.iam-popup-category {
margin-bottom: 1px;
}
.iam-popup-excerpt {
-webkit-line-clamp: 5;
}
.iam-popup-actions {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 7px;
}
}
.iam-ai-spark {
position: relative;
display: inline-block;
width: 34px;
height: 34px;
}
.iam-ai-spark::before,
.iam-ai-spark::after {
content: "";
position: absolute;
display: block;
background: currentColor;
clip-path: polygon(50% 0, 64% 34%, 100% 50%, 64% 66%, 50% 100%, 36% 66%, 0 50%, 36% 34%);
filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.15));
}
.iam-ai-spark::before {
left: 0;
top: 0;
width: 26px;
height: 26px;
}
.iam-ai-spark::after {
right: 0;
bottom: 0;
width: 14px;
height: 14px;
opacity: 0.82;
}
@keyframes iam-ai-button-float {
0%, 100% {
transform: translateY(0) scale(0.96);
box-shadow: 0 10px 24px rgba(8, 59, 104, 0.18);
}
50% {
transform: translateY(-4px) scale(1.1);
box-shadow: 0 14px 30px rgba(8, 59, 104, 0.24);
}
}
@media (hover: none) {
.iam-chip:not(.is-active):hover,
.iam-route-chip:not(.is-active):hover,
.iam-category-chip:not(.is-active):hover {
background: var(--iam-white);
border-color: var(--iam-line);
color: #102236;
transform: none;
}
}.elementor-widget-divider{--divider-border-style:none;--divider-border-width:1px;--divider-color:#0c0d0e;--divider-icon-size:20px;--divider-element-spacing:10px;--divider-pattern-height:24px;--divider-pattern-size:20px;--divider-pattern-url:none;--divider-pattern-repeat:repeat-x}.elementor-widget-divider .elementor-divider{display:flex}.elementor-widget-divider .elementor-divider__text{font-size:15px;line-height:1;max-width:95%}.elementor-widget-divider .elementor-divider__element{flex-shrink:0;margin:0 var(--divider-element-spacing)}.elementor-widget-divider .elementor-icon{font-size:var(--divider-icon-size)}.elementor-widget-divider .elementor-divider-separator{direction:ltr;display:flex;margin:0}.elementor-widget-divider--view-line_icon .elementor-divider-separator,.elementor-widget-divider--view-line_text .elementor-divider-separator{align-items:center}.elementor-widget-divider--view-line_icon .elementor-divider-separator:after,.elementor-widget-divider--view-line_icon .elementor-divider-separator:before,.elementor-widget-divider--view-line_text .elementor-divider-separator:after,.elementor-widget-divider--view-line_text .elementor-divider-separator:before{border-block-end:0;border-block-start:var(--divider-border-width) var(--divider-border-style) var(--divider-color);content:"";display:block;flex-grow:1}.elementor-widget-divider--element-align-left .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-left .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-left .elementor-divider__element{margin-left:0}.elementor-widget-divider--element-align-right .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-right .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-right .elementor-divider__element{margin-right:0}.elementor-widget-divider--element-align-start .elementor-divider .elementor-divider-separator>.elementor-divider__svg:first-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-start .elementor-divider-separator:before{content:none}.elementor-widget-divider--element-align-start .elementor-divider__element{margin-inline-start:0}.elementor-widget-divider--element-align-end .elementor-divider .elementor-divider-separator>.elementor-divider__svg:last-of-type{flex-grow:0;flex-shrink:100}.elementor-widget-divider--element-align-end .elementor-divider-separator:after{content:none}.elementor-widget-divider--element-align-end .elementor-divider__element{margin-inline-end:0}.elementor-widget-divider:not(.elementor-widget-divider--view-line_text):not(.elementor-widget-divider--view-line_icon) .elementor-divider-separator{border-block-start:var(--divider-border-width) var(--divider-border-style) var(--divider-color)}.elementor-widget-divider--separator-type-pattern{--divider-border-style:none}.elementor-widget-divider--separator-type-pattern.elementor-widget-divider--view-line .elementor-divider-separator,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:after,.elementor-widget-divider--separator-type-pattern:not(.elementor-widget-divider--view-line) .elementor-divider-separator:before,.elementor-widget-divider--separator-type-pattern:not([class*=elementor-widget-divider--view]) .elementor-divider-separator{background-color:var(--divider-color);-webkit-mask-image:var(--divider-pattern-url);mask-image:var(--divider-pattern-url);-webkit-mask-repeat:var(--divider-pattern-repeat);mask-repeat:var(--divider-pattern-repeat);-webkit-mask-size:var(--divider-pattern-size) 100%;mask-size:var(--divider-pattern-size) 100%;min-height:var(--divider-pattern-height);width:100%}.elementor-widget-divider--no-spacing{--divider-pattern-size:auto}.elementor-widget-divider--bg-round{--divider-pattern-repeat:round}.rtl .elementor-widget-divider .elementor-divider__text{direction:rtl}.e-con-inner>.elementor-widget-divider,.e-con>.elementor-widget-divider{width:var(--container-widget-width,100%);--flex-grow:var( --container-widget-flex-grow )}@keyframes fadeInDown{from{opacity:0;transform:translate3d(0,-100%,0)}to{opacity:1;transform:none}}.fadeInDown{animation-name:fadeInDown}[data-elementor-type=popup] .elementor-section-wrap:not(:empty)+#elementor-add-new-section,[data-elementor-type=popup]:not(.elementor-edit-area){display:none}.elementor-popup-modal.dialog-type-lightbox{background-color:transparent;display:flex;pointer-events:none;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.elementor-popup-modal .dialog-buttons-wrapper,.elementor-popup-modal .dialog-header{display:none}.elementor-popup-modal .dialog-close-button{display:none;inset-inline-end:20px;margin-top:0;opacity:1;pointer-events:all;top:20px;z-index:9999}.elementor-popup-modal .dialog-close-button svg{fill:#1f2124;height:1em;width:1em}.elementor-popup-modal .dialog-widget-content{background-color:#fff;border-radius:0;box-shadow:none;max-height:100%;max-width:100%;overflow:visible;pointer-events:all;width:auto}.elementor-popup-modal .dialog-message{display:flex;max-height:100vh;max-width:100vw;overflow:auto;padding:0;width:640px}.elementor-popup-modal .elementor{width:100%}