.structured-block { margin: 19px 0 22px; width: 100%; min-width: 0; }
.message .structured-title { font-size: 20px; line-height: 1.2; letter-spacing: -.025em; margin: 0 0 14px; }
.structured-prose > :first-child { margin-top: 0; }
.structured-prose > :last-child { margin-bottom: 0; }
.product-track, .places-track { display: flex; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; box-sizing: border-box; width: calc(100% + var(--iui-edge-left, 0px) + var(--iui-edge-right, 0px)); max-width: none; scroll-padding-inline: var(--iui-edge-left, 0px) var(--iui-edge-right, 0px); margin-inline: calc(-1 * var(--iui-edge-left, 0px)) calc(-1 * var(--iui-edge-right, 0px)); padding: 0 var(--iui-edge-right, 0px) 8px var(--iui-edge-left, 0px); }
.product-track::-webkit-scrollbar, .places-track::-webkit-scrollbar { display: none; }
.message .product-card { flex: 0 0 min(42vw, 210px); min-width: 0; color: inherit; text-decoration: none; scroll-snap-align: start; }
.product-image { aspect-ratio: 1; overflow: hidden; border-radius: 23px; background: var(--panel, #252525); display: grid; place-items: center; }
.product-image img { width: 100%; height: 100%; object-fit: cover; }
.product-image-empty { color: var(--muted, #888); font-size: 13px; }
.product-merchant, .product-price { display: block; font-size: 14px; line-height: 1.35; color: var(--muted, #999); margin-top: 8px; }
.product-name { display: block; font-size: 16px; line-height: 1.3; margin-top: 3px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.product-price { font-size: 16px; margin-top: 2px; }
.annotated-frame { position: relative; border-radius: 24px; overflow: hidden; background: var(--panel, #252525); min-height: 220px; }
.annotated-frame > img { width: 100%; display: block; }
.annotation-point { position: absolute; translate: -50% -50%; width: 15px; height: 15px; border: 3px solid white; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px #0004; padding: 0; cursor: pointer; z-index: 2; }
.annotation-label { display: none; position: absolute; left: 17px; bottom: 16px; width: max-content; max-width: min(190px, 42vw); padding: 6px 9px; border-radius: 10px; color: #171717; background: white; box-shadow: 0 3px 16px #0003; text-align: left; font: 12px/1.25 -apple-system, BlinkMacSystemFont, sans-serif; }
.annotation-label b, .annotation-label small { display: block; }
.annotation-label small { color: #666; margin-top: 2px; }
.annotation-point.anchor-left .annotation-label { left: auto; right: 17px; }
.annotation-point.anchor-bottom .annotation-label { top: 17px; bottom: auto; }
.annotation-point.selected .annotation-label, .annotation-point:focus-visible .annotation-label { display: block; }
.annotation-rows { margin-top: 4px; }
.annotation-row { display: flex; justify-content: space-between; gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--line, #ffffff1c); font-size: 14px; }
.annotation-row span:last-child { text-align: right; color: var(--muted, #999); }
.places-map { height: clamp(250px, 46vh, 410px); border-radius: 24px; overflow: hidden; background: var(--panel, #252525); z-index: 0; }
.places-map .leaflet-bottom { bottom: 78px; }
.places-track { position: relative; margin-top: -74px; padding-bottom: 12px; z-index: 1; }
.message .place-card { flex: 0 0 min(74vw, 285px); display: flex; align-items: center; gap: 11px; min-width: 0; border-radius: 21px; background: var(--field, #272727); color: inherit; padding: 10px; text-decoration: none; box-shadow: 0 2px 8px #0002; scroll-snap-align: center; }
.place-card.selected { outline: 2px solid var(--accent, #3b82f6); }
.place-card img { width: 64px; height: 64px; object-fit: cover; border-radius: 14px; flex: none; }
.place-card-info { display: grid; min-width: 0; gap: 3px; }
.place-card-info strong { font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.place-card-info small { font-size: 13px; color: var(--muted, #999); }
.doki-map-pin { position: relative; display: block; width: 46px; height: 54px; border: 0; background: transparent; }
.doki-map-pin span { display: grid; place-items: center; width: 38px; height: 38px; border: 3px solid white; border-radius: 50% 50% 50% 4px; rotate: -45deg; background: #2675d7; color: white; box-shadow: 0 1px 3px #0004; font: 700 13px -apple-system, BlinkMacSystemFont, sans-serif; overflow: hidden; }
.doki-map-pin span.pin-photo { width: 45px; height: 45px; background: white; }
.doki-map-pin span.pin-photo img { display: block; width: 100%; height: 100%; object-fit: cover; rotate: 45deg; scale: 1.42; }
.map-fallback { display: grid; place-items: center; height: 100%; color: var(--muted, #999); padding: 22px; text-align: center; }
.doki-place-label { position: absolute; bottom: calc(100% + 2px); left: 50%; translate: -50% 0; max-width: 160px; overflow: hidden; font-style: normal; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; border: 1px solid #00000014; border-radius: 9px; padding: 5px 8px; background: #fff; color: #222; box-shadow: 0 1px 5px #0002; font: 600 12px/1.2 -apple-system, BlinkMacSystemFont, sans-serif; }
@media (max-width: 520px) { .product-card { flex-basis: 42vw; } .annotation-label { max-width: 45vw; } }
