/* Winter storage — Okolica Start visual language. */
#okolica-storage-root {
	--bg-color: var(--ok-paper, #F9F9F6);
	--card-bg: var(--ok-white, #ffffff);
	--ink: var(--ok-ink, #252724);
	--accent-color: var(--ok-orange, #FF5A26);
	--accent-hover: var(--ok-orange-hover, #DF441E);
	--text-main: var(--ok-ink, #252724);
	--text-muted: var(--ok-muted, #535851);
	--border-color: var(--ok-line, #DADDD8);
	--panel-w: 400px;
	--top-h: 64px;
	--radius: var(--ok-radius-hero, 8px);
	--radius-sm: var(--ok-radius, 6px);
	--radius-pill: 999px;
	--font-display: var(--ok-display-font, "Oswald", "Arial Narrow", Arial, sans-serif);
	--font-body: var(--ok-ui-font, "Manrope", Arial, sans-serif);
	font-family: var(--font-body);
	color: var(--text-main);
	background: var(--bg-color);
	min-height: 100vh;
	min-height: 100dvh;
	width: 100%;
	max-width: none;
	margin: 0;
	display: flex;
	flex-direction: column;
	position: relative;
	isolation: isolate;
	touch-action: manipulation;
}
/* Lock page scroll on map screen — only map pans, sheet scrolls inside itself. */
html.okolica-storage-lock,
html.okolica-storage-lock body,
body.okolica-storage-page.okolica-storage-lock {
	overflow: hidden !important;
	height: 100% !important;
	width: 100% !important;
	max-width: 100% !important;
	overscroll-behavior: none !important;
	touch-action: manipulation;
}
html.okolica-storage-lock body,
body.okolica-storage-page.okolica-storage-lock {
	position: fixed !important;
	inset: 0;
	margin: 0 !important;
}
body.okolica-storage-page #okolica-storage-root .ok-st-map,
body.okolica-storage-page #okolica-storage-root .leaflet-container {
	touch-action: none;
}
body.okolica-storage-page #okolica-storage-root .ok-st-list-panel,
body.okolica-storage-page #okolica-storage-root .ok-st-list-panel .ok-st-list,
body.okolica-storage-page #okolica-storage-root .ok-st-form-scroll {
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
}
#okolica-storage-root *,
#okolica-storage-root *::before,
#okolica-storage-root *::after { box-sizing: border-box; }
#okolica-storage-root a { color: inherit; text-decoration: none; }
/* hide-theme sets overflow-x:clip on root — allow list panel text to paint fully */
#okolica-storage-root {
	overflow-x: visible !important;
}
#okolica-storage-root h1,
#okolica-storage-root h2,
#okolica-storage-root h3 {
	font-family: var(--font-display);
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: uppercase;
}
#okolica-storage-root .btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: 8px; border: none; border-radius: var(--radius-pill); padding: 13px 22px;
	font: inherit; font-weight: 700; font-size: .92rem; cursor: pointer;
	line-height: 1.2;
	transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
#okolica-storage-root [hidden],
#okolica-storage-root .btn[hidden],
#okolica-storage-root .ok-st-place-winter-cta[hidden],
#okolica-storage-root .ok-st-signal-body[hidden] {
	display: none !important;
}
#okolica-storage-root .btn-primary {
	background: var(--accent-color); color: #fff;
	box-shadow: 0 1px 0 rgba(15,23,42,.04);
}
#okolica-storage-root .btn-primary:hover { background: var(--accent-hover); }
#okolica-storage-root .btn-primary:disabled { opacity: .55; cursor: not-allowed; box-shadow: none; }
#okolica-storage-root .ok-st-btn-ghost {
	background: #fff; color: var(--ink); border: 1.5px solid var(--ink);
}
#okolica-storage-root .ok-st-btn-ghost:hover { background: var(--ink); color: #fff; }
#okolica-storage-root .form-input {
	width: 100%; border: 1.5px solid var(--border-color); border-radius: var(--radius-sm);
	padding: 13px 15px; font: inherit; font-size: .92rem; background: #fff; color: var(--text-main);
	appearance: none; -webkit-appearance: none; -moz-appearance: none;
	box-shadow: none;
}
#okolica-storage-root .ok-st-slots,
#okolica-storage-root .ok-st-slots[hidden] {
	display: none !important;
}
#okolica-storage-root .form-input:focus {
	outline: none; border-color: var(--accent-color); box-shadow: none; background: #fff;
}
#okolica-storage-root textarea.form-input { resize: vertical; min-height: 84px; }
#okolica-storage-root .ok-st-label {
	display: block; font-size: .78rem; font-weight: 700; margin: 0 0 6px; color: #334155;
}
#okolica-storage-root .ok-st-field--pad { padding: 0 0 10px; }

/* Site ok-nice-select — full chrome on storage (okolica-ui CSS is home/catalog/account only). */
#okolica-storage-root .ok-nice-select { position: relative; display: block; width: 100%; z-index: 2; font: inherit; }
#okolica-storage-root .ok-nice-select.is-open { z-index: 40; }
#okolica-storage-root .ok-nice-select select.ok-nice-select__native {
	position: absolute !important; left: 0 !important; top: 0 !important;
	opacity: 0 !important; pointer-events: none !important;
	width: 1px !important; height: 1px !important; margin: 0 !important; padding: 0 !important;
	border: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important;
}
#okolica-storage-root .ok-nice-select__btn {
	width: 100%; min-height: 46px; display: flex; align-items: center; justify-content: space-between;
	gap: 10px; text-align: left; cursor: pointer;
	background: #fff !important; color: var(--text-main) !important;
	border: 1px solid var(--border-color) !important; border-radius: 10px !important;
	padding: 10px 14px !important; font: inherit; font-weight: 650; box-sizing: border-box;
}
#okolica-storage-root .ok-nice-select__btn:hover { border-color: #94a3b8 !important; }
#okolica-storage-root .ok-nice-select.is-open .ok-nice-select__btn,
#okolica-storage-root .ok-nice-select__btn:focus {
	border-color: var(--accent-color) !important;
	box-shadow: none !important; outline: none !important;
}
#okolica-storage-root .ok-nice-select__label {
	flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
#okolica-storage-root .ok-nice-select__chev {
	flex: 0 0 auto; width: 12px; height: 8px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23FF6B00' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .15s ease;
}
#okolica-storage-root .ok-nice-select.is-open .ok-nice-select__chev { transform: rotate(180deg); }
#okolica-storage-root .ok-nice-select__panel {
	position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 50;
	margin: 0; padding: 8px; background: #fff; border: 1px solid #d6dee8; border-radius: 12px;
	box-shadow: 0 16px 40px rgba(15,23,42,.14), 0 2px 8px rgba(15,23,42,.06);
	max-height: min(360px, 55vh); overflow: hidden;
	display: none; flex-direction: column; gap: 6px; box-sizing: border-box;
}
#okolica-storage-root .ok-nice-select.is-open .ok-nice-select__panel { display: flex; }
#okolica-storage-root .ok-nice-select__list {
	margin: 0; padding: 0; list-style: none; background: transparent; border: 0;
	max-height: min(280px, 45vh); overflow: auto;
	display: flex; flex-direction: column; gap: 4px; box-sizing: border-box;
}
#okolica-storage-root .ok-nice-select__opt {
	display: flex; flex-direction: column; align-items: flex-start; gap: 3px; width: 100%;
	text-align: left; background: transparent; color: var(--text-main); cursor: pointer;
	padding: 10px 12px; margin: 0; border: 0; border-radius: 8px;
	font: inherit; font-size: .9rem; font-weight: 650; box-sizing: border-box;
}
#okolica-storage-root .ok-nice-select__opt:hover { background: #f8fafc; }
#okolica-storage-root .ok-nice-select__opt.is-selected {
	background: rgba(255, 90, 38,.1); color: #c2410c;
}
#okolica-storage-root .ok-nice-select__opt[hidden],
#okolica-storage-root .ok-nice-select__opt.is-filtered-out,
#okolica-storage-root .ok-nice-select__empty[hidden] { display: none !important; }
#okolica-storage-root select.ok-st-select:not(.ok-nice-select__native) {
	padding-right: 42px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23FF6B00' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: calc(100% - 12px) center;
	background-size: 12px 8px;
	min-height: 46px;
	font-weight: 650;
	cursor: pointer;
}

.ok-st-top {
	flex: 0 0 auto;
	height: var(--top-h);
	background: var(--bg-color);
	border-bottom: 1px solid rgba(17,17,17,.08);
	z-index: 30;
}
.ok-st-top-inner {
	display: flex; align-items: center; gap: 12px;
	padding: 0 max(28px, env(safe-area-inset-right, 0px)) 0 max(28px, env(safe-area-inset-left, 0px));
	height: 100%; max-width: 100%;
	box-sizing: border-box;
}
.ok-st-top-row--brand { display: contents; }
.ok-st-logo { order: 1; }
.ok-st-top-inner > .ok-st-nav { flex: 1 1 auto; min-width: 0; order: 2; }
#okolica-storage-root a.ok-st-nav-account,
#okolica-storage-root .ok-st-nav-account {
	order: 3;
	flex: 0 0 auto;
	margin-left: 10px;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 8px 18px !important;
	border-radius: var(--radius-pill) !important;
	border: 1.5px solid var(--ink) !important;
	background: #fff !important;
	color: var(--ink) !important;
	font: inherit;
	font-size: .84rem !important;
	font-weight: 700 !important;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
	box-sizing: border-box;
	cursor: pointer;
	box-shadow: none;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
#okolica-storage-root a.ok-st-nav-account:hover,
#okolica-storage-root .ok-st-nav-account:hover {
	background: var(--ink) !important;
	color: #fff !important;
	border-color: var(--ink) !important;
}
.ok-st-logo {
	font-family: var(--font-display);
	font-weight: 700; letter-spacing: .04em; font-size: 1.15rem; text-transform: uppercase; white-space: nowrap;
	cursor: default; user-select: none; pointer-events: none;
}
.ok-st-logo span { color: var(--accent-color); }
.ok-st-nav {
	flex: 1; min-width: 0;
	display: flex; align-items: center; gap: 8px;
}
.ok-st-nav-pill {
	display: inline-flex; align-items: center;
	padding: 8px 14px;
	border: none;
	border-radius: var(--radius-pill);
	font: inherit;
	font-size: .84rem;
	font-weight: 700;
	color: var(--ink);
	background: transparent;
	cursor: pointer;
	line-height: 1.2;
}
.ok-st-nav-pill.is-on { background: #fff; box-shadow: 0 1px 0 rgba(17,17,17,.04); }
.ok-st-nav-pill:hover { color: var(--accent-color); }
.ok-st-nav-evac {
	border-color: rgba(255,77,0,.35) !important;
	color: var(--accent-color) !important;
	background: rgba(255,77,0,.08) !important;
}
.ok-st-nav-evac-short { display: none; }
.ok-st-card-prices {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-top: 0;
	align-items: flex-start;
}
.ok-st-card-prices--line {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 2px;
	width: auto !important;
	max-width: 100%;
}
.ok-st-card-prices--line .ok-st-card-season,
.ok-st-card-prices--line .ok-st-card-price-sep,
.ok-st-card-prices--line .ok-st-card-price {
	display: inline !important;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	white-space: nowrap !important;
	overflow: visible !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
}
.ok-st-card-price-sep {
	color: #94a3b8;
	font-weight: 500;
	flex-shrink: 0;
}
.ok-st-card-season { font-size: .72rem; font-weight: 550; color: #94a3b8; }
.ok-st-card-prices--line .ok-st-card-price {
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: .02em;
	color: var(--text-main);
	order: 1;
}
.ok-st-card-prices--line .ok-st-card-price__n {
	color: var(--accent-color) !important;
}
.ok-st-card-prices--line .ok-st-card-price-sep { order: 2; }
.ok-st-card-prices--line .ok-st-card-season {
	font-size: .78rem;
	order: 3;
	color: #94a3b8;
}
.ok-st-geo-btn {
	display: inline-flex !important;
	width: 100%;
	margin-top: 10px;
	min-height: 44px;
	box-sizing: border-box;
}
.ok-st-place-price-main { display: block; color: var(--accent-color); }
.ok-st-place-price-season {
	display: block; font-size: .72rem; font-weight: 550; color: #94a3b8; margin-top: 2px;
}
.ok-st-field--evac-when { position: relative; z-index: 4; }
.ok-st-evac-when-row {
	display: grid; grid-template-columns: 1.2fr .9fr; gap: 10px; align-items: end;
}
.ok-st-evac-when-date,
.ok-st-evac-when-time { position: relative; min-width: 0; }
.ok-st-evac-when-date .ok-st-cal {
	/* positioned by JS (fixed) — keep as fallback */
	left: 0; right: 0; bottom: auto; top: calc(100% + 6px);
}
.ok-st-evac-daychips { display: flex; flex-wrap: wrap; gap: 8px; }
.ok-st-evac-daychip {
	appearance: none; min-height: 42px; padding: 0 16px; border-radius: 999px;
	border: 1.5px solid var(--border-color, #e0dbd0); background: #fff;
	color: var(--ink, #111); font: inherit; font-size: .88rem; font-weight: 700;
	cursor: pointer; line-height: 1; transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.ok-st-evac-daychip:hover { border-color: #ffb27a; background: #fffaf5; }
.ok-st-evac-daychip.is-on {
	border-color: var(--accent-color, #ff4d00);
	background: #fff7f0; color: #9a3f00;
}
@media (max-width: 520px) {
	.ok-st-evac-when-row { grid-template-columns: 1fr; }
}
#okolica-storage-root .ok-st-urgency { display: flex; gap: 14px; flex-wrap: wrap; }
#okolica-storage-root .ok-st-urgency-opt {
	display: inline-flex; align-items: center; gap: 7px;
	font-size: .86rem; font-weight: 650; cursor: pointer;
	padding: 0; border: 0; background: transparent; box-shadow: none;
	outline: none;
}
#okolica-storage-root .ok-st-urgency-opt:focus,
#okolica-storage-root .ok-st-urgency-opt:focus-visible,
#okolica-storage-root .ok-st-urgency-opt:focus-within {
	outline: none !important;
	box-shadow: none !important;
	border: 0 !important;
}
#okolica-storage-root .ok-st-urgency-opt input[type="radio"] {
	width: 16px; height: 16px; margin: 0; accent-color: var(--accent-color);
	flex: 0 0 auto;
	border: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	background: transparent !important;
}
#okolica-storage-root .ok-st-urgency-opt input[type="radio"]:focus,
#okolica-storage-root .ok-st-urgency-opt input[type="radio"]:focus-visible,
#okolica-storage-root .ok-st-urgency-opt input[type="radio"]:checked,
#okolica-storage-root .ok-st-urgency-opt input[type="radio"]:checked:focus,
#okolica-storage-root .ok-st-urgency-opt input[type="radio"]:active {
	outline: none !important;
	box-shadow: none !important;
	border: 0 !important;
}
.ok-st-evac-lead { margin: 0 0 14px; font-size: .88rem; color: var(--text-muted); line-height: 1.4; }
.ok-st-evac-modal-card {
	width: min(440px, 100%);
	max-height: min(92dvh, 92vh);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 14px;
}
.ok-st-evac-modal-card .ok-st-form--sheet {
	flex: 1 1 auto;
	min-height: 0;
	max-height: 100%;
}
.ok-st-evac-modal-card .ok-st-form-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto !important;
	overscroll-behavior: contain;
	touch-action: pan-y;
}
.ok-st-city-modal-card {
	width: min(440px, 100%);
	max-height: min(92dvh, 92vh);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding-bottom: 14px;
}
.ok-st-empty { display: flex; flex-direction: column; align-items: stretch; gap: 12px; padding: 8px 2px 4px; }
.ok-st-empty .ok-st-modal-text { margin: 0; }
.ok-st-empty-cta { align-self: stretch; width: 100%; }
.ok-st-mode-switch {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 4px;
	border-radius: 14px;
	background: #f1f5f9;
	border: 1px solid #e2e8f0;
}
.ok-st-mode-btn {
	appearance: none;
	border: 0;
	border-radius: 10px;
	min-height: 40px;
	padding: 7px 8px;
	background: transparent;
	color: #475569;
	font: inherit;
	font-size: .78rem;
	font-weight: 750;
	line-height: 1.2;
	cursor: pointer;
	text-align: center;
}
.ok-st-mode-btn:hover { color: var(--ink, #111); }
.ok-st-mode-btn.is-on {
	background: #fff;
	color: var(--ink, #111);
	box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
}
.ok-st-field--mode { margin-bottom: 12px; }
.ok-st-form--sheet {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	margin: 0;
}
.ok-st-form-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding-right: 2px;
}
.ok-st-form-scroll > h2 {
	margin: 0 0 6px;
	font-size: 1.15rem;
	font-weight: 800;
	padding-right: 28px;
}
.ok-st-form-scroll > .ok-st-modal-text {
	margin: 0 0 12px;
	font-size: .88rem;
}
.ok-st-form-foot {
	flex: 0 0 auto;
	padding-top: 10px;
	margin-top: 8px;
	border-top: 1px solid #eef2f7;
	background: #fff;
}
.ok-st-form-foot .ok-legal-consent { margin: 0 0 10px; }
.ok-st-form-foot .ok-st-submit { width: 100%; margin: 0; }
.ok-st-form-foot .ok-st-form-msg { margin: 0 0 8px; }
@media (max-width: 420px) {
	.ok-st-mode-switch { grid-template-columns: 1fr; }
	.ok-st-mode-btn { min-height: 38px; }
}

/* Soft handoff map → real cabinet */
.ok-st-soft-veil {
	position: fixed;
	inset: 0;
	z-index: 120;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(240, 237, 228, .55);
	opacity: 0;
	pointer-events: none;
	transition: opacity .28s ease;
	backdrop-filter: blur(2px);
}
.ok-st-soft-veil.is-on {
	opacity: 1;
	pointer-events: auto;
}
.ok-st-soft-veil-card {
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: var(--radius-sm);
	padding: 16px 22px;
	font-weight: 700;
	font-size: .95rem;
	color: var(--ink);
	box-shadow: 0 10px 30px rgba(17,17,17,.08);
}
.ok-st-top-title { flex: 1; min-width: 0; display: none; }
.ok-st-cab {
	font-size: .84rem; font-weight: 700; color: var(--ink); white-space: nowrap;
	border: 1.5px solid var(--ink); border-radius: var(--radius-pill);
	padding: 8px 16px;
}
.ok-st-cab:hover { background: var(--ink); color: #fff; }

.ok-st-layout {
	flex: 1 1 auto;
	position: relative;
	min-height: 0;
	height: calc(100vh - var(--top-h));
	height: calc(100dvh - var(--top-h));
}

.ok-st-map-wrap {
	position: absolute;
	inset: 0;
	z-index: 1;
	min-height: 70vh;
}
.ok-st-map {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	/* Match Carto Voyager land so unloaded tiles don’t flash cold gray. */
	background: #e8e4da;
	z-index: 1;
}
.ok-st-map .leaflet-container {
	background: #e8e4da;
}
/* Soft fade-in for newly fetched tiles — less “empty hole” look while zooming. */
.ok-st-map .ok-st-tiles.leaflet-tile {
	opacity: 0;
	transition: opacity 0.18s ease;
}
.ok-st-map .ok-st-tiles.leaflet-tile-loaded {
	opacity: 1;
}

.ok-st-list-panel,
.ok-st-panel {
	position: absolute;
	top: 16px;
	left: 16px;
	bottom: 16px;
	width: var(--panel-w);
	max-width: calc(100% - 32px);
	z-index: 15;
	background: var(--card-bg);
	border: 1px solid rgba(17,17,17,.08);
	border-radius: var(--radius);
	box-shadow: 0 18px 48px rgba(17,17,17,.12);
	overflow-x: hidden;
	overflow-y: auto;
	padding: 18px 16px 22px;
	box-sizing: border-box;
	-webkit-overflow-scrolling: touch;
	display: flex;
	flex-direction: column;
	min-width: 0;
}
@media (min-width: 901px) {
	.ok-st-list-panel:not(.is-open) {
		display: none !important;
	}
	/* Desktop: Telegram only inside the list panel (footer), never over the map */
	.ok-st-list-panel > .ok-st-tg-link--sheet-foot,
	.ok-st-list-panel #okStTgFoot {
		display: flex;
		position: relative;
		left: auto;
		right: auto;
		bottom: auto;
		width: 100%;
		margin: 12px 0 0;
		flex: 0 0 auto;
		z-index: 1;
	}
	#okolica-storage-root > .ok-st-tg-link--sheet-foot,
	body > .ok-st-tg-link--sheet-foot[data-ok-st-pinned] {
		display: none !important;
	}
}
.ok-st-list-panel > * {
	flex: 0 0 auto;
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
}
.ok-st-list-panel .ok-st-list,
.ok-st-list-panel .ok-st-empty {
	flex: 1 1 auto;
}
.ok-st-list-panel .ok-st-search,
.ok-st-list-panel .ok-st-search input {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.ok-st-panel {
	z-index: 16;
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
}
.ok-st-panel[hidden] { display: none !important; }
.ok-st-panel.is-open { display: flex; }
.ok-st-panel .ok-st-detail {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
	padding: 16px 14px 0;
	-webkit-overflow-scrolling: touch;
}
/* Keep list toggle visible even when place/booking popup is open. */
.ok-st-attribution,
.leaflet-control-attribution {
	display: none !important;
}
.ok-st-panel-head-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 6px;
}
.ok-st-panel-head h1 {
	margin: 0; font-size: 1.45rem; font-weight: 700; letter-spacing: .02em;
}
/* SEO crawl links: indexable, not shown in UI */
.ok-st-seo-crawl {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
.ok-st-collapse {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--ink);
	border-radius: var(--radius-pill);
	background: #fff;
	color: var(--ink);
	cursor: pointer;
	padding: 0;
	transition: background .15s ease, color .15s ease;
}
.ok-st-collapse:hover { background: var(--ink); color: #fff; }
.ok-st-panel-lead { margin: 0 0 14px; color: var(--text-muted); font-size: .86rem; line-height: 1.45; }

.ok-st-search { position: relative; margin: 0 0 12px; }
.ok-st-search input {
	width: 100%;
	border: 1.5px solid var(--border-color);
	border-radius: var(--radius-pill);
	padding: 12px 14px 12px 40px;
	font: inherit;
	font-size: .9rem;
	background: var(--bg-color);
	color: var(--text-main);
}
.ok-st-search input:focus {
	outline: none; border-color: var(--accent-color); box-shadow: none; background: #fff;
}
.ok-st-search-ico {
	position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
	width: 16px; height: 16px; color: #94a3b8; pointer-events: none;
}

.ok-st-status { font-size: .86rem; color: var(--text-muted); padding: 4px 0 10px; }
.ok-st-status.is-error { color: #be123c; }
.ok-st-empty { padding: 18px 12px; text-align: center; color: var(--text-muted); font-size: .9rem; border: 1px dashed var(--border-color); border-radius: 10px; }

.ok-st-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}
/* Theme/WC often force button { white-space:nowrap } — override so title+price stay fully readable */
#okolica-storage-root .ok-st-card,
.ok-st-card {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	text-align: left !important;
	border: 1.5px solid var(--border-color);
	border-radius: var(--radius-sm);
	background: #fff !important;
	color: var(--text-main) !important;
	padding: 14px 15px 13px !important;
	cursor: pointer;
	font: inherit;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: clip !important;
	word-break: break-word;
	overflow-wrap: anywhere;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ok-st-card:hover {
	border-color: #ffb27a;
}
.ok-st-card.is-active {
	border-color: var(--accent-color);
	background: #fffaf5 !important;
	box-shadow: none;
}
.ok-st-card strong,
.ok-st-card-title,
.ok-st-card .meta,
.ok-st-card-meta,
.ok-st-card .price,
.ok-st-card-price {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: clip !important;
	word-break: break-word;
	overflow-wrap: anywhere;
}
.ok-st-card strong,
.ok-st-card-title { font-size: .98rem; font-weight: 800; margin-bottom: 4px; color: var(--text-main); }
.ok-st-card .meta,
.ok-st-card-meta { font-size: .8rem; color: var(--text-muted); line-height: 1.35; }
.ok-st-card .price,
.ok-st-card-price {
	margin-top: 0; font-family: var(--font-display); font-size: 1.05rem;
	font-weight: 700; letter-spacing: .02em; color: var(--accent-color) !important;
}
.ok-st-card-foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 10px;
	margin-top: 8px;
}
.ok-st-card-foot .ok-st-card-prices {
	margin-top: 0;
	flex: 1 1 auto;
	min-width: 0;
}
.ok-st-card-book {
	flex: 0 0 auto;
	align-self: flex-end;
	min-height: 36px;
	padding: 8px 14px !important;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 750;
	line-height: 1.2;
	white-space: nowrap;
}

/* Filters removed — search only. */
.ok-st-guest-banner {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 14px;
	padding: 12px;
	border: 1px solid #ffe0c2;
	background: #fff8f1;
	border-radius: 12px;
	font-size: .84rem;
	line-height: 1.35;
	color: #7a3b00;
}
.ok-st-guest-banner .btn { width: 100%; }
.ok-st-place-tariff-row + .ok-st-place-tariff-row { margin-top: 4px; }
.ok-st-addr { margin: 0 0 8px; font-size: .86rem; color: var(--text-muted); line-height: 1.4; }
.ok-st-price { margin: 8px 0 10px; font-size: 1.05rem; font-weight: 800; color: var(--accent-color); }
.ok-st-place-tariffs { margin: 0 0 12px; font-size: .8rem; color: var(--text-muted); line-height: 1.4; }
.ok-st-desc { margin: 0 0 10px; font-size: .88rem; color: var(--text-muted); line-height: 1.45; }
.ok-st-hint { margin: 0 0 6px; font-size: .78rem; color: var(--text-muted); line-height: 1.4; }
.ok-st-form-msg { margin: 0 0 10px; font-size: .84rem; }
.ok-st-form-msg.is-error { color: #b91c1c; }

/* Centered place popup card (marker / list click) */
.ok-st-place-modal {
	position: absolute;
	inset: 0;
	z-index: 28;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.ok-st-place-modal[hidden] { display: none !important; }
.ok-st-place-backdrop {
	position: absolute; inset: 0;
	border: none; padding: 0; margin: 0;
	background: rgba(17, 17, 17, .35);
	cursor: pointer;
}
.ok-st-place-card {
	position: relative;
	z-index: 1;
	width: min(440px, 100%);
	max-height: min(88vh, 780px);
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	background: #fff;
	border: 1px solid rgba(17,17,17,.08);
	border-radius: 24px;
	box-shadow: 0 24px 60px rgba(17,17,17,.22);
}
.ok-st-place-cover {
	position: relative;
	display: block;
	padding: 0;
	background: transparent;
	overflow: hidden;
	border-radius: 24px 24px 0 0;
	isolation: isolate;
}
.ok-st-place-cover[hidden],
.ok-st-place-cover:not(.has-photos):empty {
	display: none !important;
}
.ok-st-place-hero {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	min-height: 240px;
	max-height: min(52vh, 440px);
	overflow: hidden;
	background: #0f172a;
}
.ok-st-place-viewport {
	position: absolute;
	inset: 0;
	overflow: hidden;
	cursor: pointer;
}
.ok-st-place-track {
	display: flex;
	height: 100%;
	width: 100%;
	transition: transform .55s cubic-bezier(.22, 1, .36, 1);
	will-change: transform;
}
.ok-st-place-slide {
	position: relative;
	flex: 0 0 100%;
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	height: 100%;
	box-sizing: border-box;
	background: #0f172a;
}
.ok-st-place-slide.is-skeleton::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #e8edf3 0%, #f4f7fb 45%, #e8edf3 100%);
	background-size: 200% 100%;
	animation: ok-st-skel 1.1s ease-in-out infinite;
	z-index: 1;
}
@keyframes ok-st-skel {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}
.ok-st-place-slide img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
	background: #0f172a;
}
.ok-st-place-ph {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--text-muted, #64748b);
	background: linear-gradient(160deg, #eef2f7 0%, #e2e8f0 100%);
	pointer-events: none;
}
.ok-st-place-ph svg { opacity: .55; }
.ok-st-place-ph span {
	font-size: .82rem;
	font-weight: 600;
	letter-spacing: .01em;
}
.ok-st-place-count {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(15, 23, 42, .62);
	color: #fff;
	font-size: .72rem;
	font-weight: 750;
	letter-spacing: .02em;
	pointer-events: none;
}
.ok-st-place-dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 12px;
	z-index: 2;
	display: flex;
	justify-content: center;
	gap: 6px;
	pointer-events: none;
}
.ok-st-place-dot {
	pointer-events: auto;
	width: 8px;
	height: 8px;
	border: 0;
	border-radius: 999px;
	padding: 0;
	background: rgba(255, 255, 255, .45);
	cursor: pointer;
}
.ok-st-place-dot.is-on {
	background: #fff;
	width: 18px;
}
.ok-st-lb {
	position: fixed;
	inset: 0;
	z-index: 12000;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(8, 12, 20, .88);
	padding: 16px;
	touch-action: none;
}
.ok-st-lb[hidden] { display: none !important; }
.ok-st-lb-stage {
	position: relative;
	max-width: min(96vw, 1100px);
	max-height: 86vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.ok-st-lb-stage img {
	max-width: 96vw;
	max-height: 86vh;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
	border-radius: 8px;
	user-select: none;
	-webkit-user-drag: none;
}
.ok-st-lb-x,
.ok-st-lb-nav {
	position: absolute;
	border: 0;
	background: rgba(255,255,255,.14);
	color: #fff;
	cursor: pointer;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font: inherit;
	font-weight: 700;
	line-height: 1;
	backdrop-filter: blur(6px);
}
.ok-st-lb-x {
	top: 14px;
	right: 14px;
	width: 42px;
	height: 42px;
	font-size: 1.45rem;
	z-index: 2;
}
.ok-st-lb-nav {
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	font-size: 1.35rem;
	z-index: 2;
}
.ok-st-lb-nav.is-prev { left: 10px; }
.ok-st-lb-nav.is-next { right: 10px; }
.ok-st-lb-count {
	position: absolute;
	left: 50%;
	bottom: 18px;
	transform: translateX(-50%);
	color: rgba(255,255,255,.92);
	font-size: .86rem;
	font-weight: 700;
	letter-spacing: .04em;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(0,0,0,.35);
}
@media (max-width: 640px) {
	.ok-st-place-hero { min-height: 220px; aspect-ratio: 1 / 1; }
	.ok-st-lb-nav { width: 40px; height: 40px; }
	.ok-st-lb-nav.is-prev { left: 4px; }
	.ok-st-lb-nav.is-next { right: 4px; }
}
.ok-st-place-body { padding: 16px 18px 20px; }
.ok-st-place-body h2 {
	margin: 0 0 6px; font-size: 1.28rem; font-weight: 700;
	color: var(--text-main); line-height: 1.15; padding-right: 28px;
}
.ok-st-place-services {
	margin: 0 0 12px;
	padding: 10px 12px;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	background: #f8fafc;
}
.ok-st-place-services-label {
	font-size: .72rem;
	font-weight: 700;
	color: #64748b;
	margin: 0 0 8px;
	text-transform: uppercase;
	letter-spacing: .03em;
}
.ok-st-place-services-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}
.ok-st-place-services-row .btn {
	width: 100%;
	padding: 10px 12px;
	font-size: .86rem;
}
.ok-st-place-actions {
	display: flex; flex-direction: column; gap: 8px;
}
.ok-st-place-actions .btn { width: 100%; }

.ok-st-detail-route {
	width: 100%;
	margin: 0 0 14px;
	padding: 10px 12px;
	font-size: .86rem;
}
.ok-st-detail-route[hidden] { display: none !important; }

.ok-st-place-winter {
	margin: 0 0 12px;
	padding: 12px;
	border: 1px solid rgba(255, 90, 38, 0.28);
	border-radius: 12px;
	background: linear-gradient(180deg, #fffaf5 0%, #fff 100%);
}
.ok-st-place-winter[hidden] { display: none !important; }
.ok-st-place-winter-label {
	font-size: .72rem;
	font-weight: 800;
	color: #c2410c;
	margin: 0 0 6px;
	text-transform: uppercase;
	letter-spacing: .03em;
}
.ok-st-place-winter-copy {
	margin: 0 0 10px;
	font-size: .88rem;
	line-height: 1.4;
	color: #0f172a;
}
.ok-st-place-winter-kit { display: flex; flex-direction: column; gap: 8px; margin: 0 0 8px; }
.ok-st-place-winter-row {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	align-items: flex-start;
	font-size: .84rem;
}
.ok-st-place-winter-title { flex: 1; font-weight: 650; color: #1e293b; }
.ok-st-place-winter-prices {
	white-space: nowrap;
	text-align: right;
	font-size: .82rem;
}
.ok-st-place-winter-prices s { color: #94a3b8; margin-right: 4px; }
.ok-st-place-winter-prices strong { color: #c2410c; }
.ok-st-place-winter-disc {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 6px;
	border-radius: 999px;
	background: rgba(255, 90, 38,.12);
	color: #c2410c;
	font-size: .68rem;
	font-weight: 800;
}
.ok-st-place-winter-total {
	margin: 0 0 10px;
	font-size: .82rem;
	font-weight: 700;
	color: #9a3412;
}
.ok-st-place-winter-check { margin: 0 0 10px; display: flex; gap: 8px; align-items: flex-start; font-size: .86rem; }
.ok-st-place-winter-cta { width: 100%; }

.ok-st-seg {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
}
.ok-st-seg-btn {
	width: 100%;
	text-align: center;
	border: 1px solid #d7dee8;
	border-radius: 10px;
	background: #fff;
	color: var(--text-main);
	padding: 10px 6px;
	font: inherit;
	font-size: .78rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	min-height: 44px;
}
.ok-st-seg-btn:hover { border-color: #ffb27a; background: #fffaf5; }
.ok-st-seg-btn.is-on {
	border-color: var(--accent-color);
	background: #fff7f0;
	color: #9a3f00;
	box-shadow: none;
}

.ok-st-check {
	display: flex; align-items: flex-start; gap: 10px;
	margin: 0 0 10px; font-size: .88rem; line-height: 1.35; cursor: pointer;
}
.ok-st-check input {
	margin-top: 3px; width: 16px; height: 16px; accent-color: var(--accent-color); flex: 0 0 auto;
}
.ok-st-signal {
	margin: 0 0 14px;
	padding: 12px;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	background: #f8fafc;
}
.ok-st-signal-body { margin-top: 8px; }
.ok-st-signal-body label { display: block; font-size: .78rem; font-weight: 700; margin: 0 0 6px; }
.ok-st-hint { margin: 6px 0 0; font-size: .78rem; color: var(--text-muted); line-height: 1.4; }
.ok-st-hint a { color: var(--accent-color); font-weight: 650; text-decoration: underline; }

.ok-st-float {
	flex: 0 0 auto;
	margin: 0;
	padding: 10px 14px calc(12px + env(safe-area-inset-bottom, 0px));
	background: #fff;
	color: var(--text-main);
	border-top: 1px solid var(--border-color);
	z-index: 5;
	box-shadow: 0 -8px 24px rgba(15,23,42,.08);
}
.ok-st-panel > .ok-st-float[hidden] { display: none !important; }
.ok-st-float-sum {
	padding: 12px 14px;
	border-radius: 12px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	margin: 0 0 8px;
}
.ok-st-float-rows { display: grid; gap: 4px; }
.ok-st-summary-row,
.ok-st-summary-total {
	display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
	font-size: .84rem; margin: 0;
}
.ok-st-summary-row strong { font-weight: 650; color: var(--text-main); }
.ok-st-summary-disc strong { color: #15803d; }
.ok-st-summary-total {
	margin: 10px 0 0; padding-top: 10px;
	border-top: 1px solid #e2e8f0;
	font-size: .95rem; font-weight: 800;
}
.ok-st-summary-total strong { color: #FF5A26; font-size: 1.1rem; }
.ok-st-float-hint {
	margin: 0 0 10px;
	font-size: .74rem;
	line-height: 1.35;
	color: var(--text-muted);
}

.ok-st-detail-back {
	border: none; background: transparent; color: var(--text-muted); font: inherit; font-weight: 600;
	font-size: .84rem; padding: 0; margin: 0 0 10px; cursor: pointer;
}
.ok-st-detail-back:hover { color: var(--accent-color); }
.ok-st-detail-hero {
	height: 88px; border-radius: 10px; margin: 0 0 12px;
	background: linear-gradient(135deg, #ffe8d4 0%, #ffd0a8 42%, #FF5A26 140%);
	position: relative; overflow: hidden;
}
.ok-st-detail-hero::after {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(circle at 80% 20%, rgba(255,255,255,.18), transparent 45%);
}
.ok-st-detail h2 { margin: 0 0 6px; font-size: 1.15rem; font-weight: 800; }
.ok-st-addr { margin: 0 0 8px; color: var(--text-muted); font-size: .86rem; }
.ok-st-desc { margin: 0 0 10px; font-size: .9rem; line-height: 1.45; }
.ok-st-amenities { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.ok-st-amenities li {
	font-size: .75rem; font-weight: 600; color: #334155; background: #f1f5f9;
	border: 1px solid var(--border-color); border-radius: 6px; padding: 4px 8px;
}
.ok-st-price { margin: 0 0 12px; font-weight: 800; color: var(--accent-color); }
.ok-st-slots { margin: 0 0 14px; font-size: .84rem; color: var(--text-muted); }
.ok-st-slots div { padding: 6px 0; border-bottom: 1px solid #eef2f7; }
.ok-st-slots div:last-child { border-bottom: none; }

.ok-st-form h3 { margin: 0 0 16px; font-size: 1.08rem; font-weight: 800; letter-spacing: .01em; }
.ok-st-field { margin: 0 0 12px; }
.ok-st-field label { display: block; font-size: .78rem; font-weight: 700; margin: 0 0 6px; color: #334155; }
.ok-st-label {
	display: block; font-size: .78rem; font-weight: 700; margin: 0 0 8px; color: #334155;
}
.ok-st-dates-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ok-st-date-cap {
	display: block; font-size: .7rem; font-weight: 650; margin: 0 0 5px; color: #64748b;
}
.ok-st-date-half .form-input,
.ok-st-date-btn { width: 100%; }
.ok-st-date-btn {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	min-height: 46px; padding: 10px 12px 10px 14px; text-align: left; cursor: pointer;
	font: inherit; font-weight: 650; color: #94a3b8; border-radius: 12px;
}
.ok-st-date-btn.has-value { color: var(--ink); font-weight: 700; }
.ok-st-date-btn.is-open {
	border-color: var(--accent-color);
	box-shadow: none;
}
.ok-st-date-btn__text { flex: 1; min-width: 0; letter-spacing: .02em; }
.ok-st-date-btn__ico {
	width: 18px; height: 18px; flex: 0 0 auto; opacity: .75;
	background: center / contain no-repeat
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111111' stroke-width='1.8'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M8 3.5v3.5M16 3.5v3.5M3.5 10h17'/%3E%3C/svg%3E");
}
.ok-st-field--dates { position: relative; z-index: 3; }
.ok-st-cal {
	/* Default under the field; JS moves it to body + fixed so modal overflow cannot clip the header. */
	position: absolute; left: 0; right: 0; top: calc(100% + 6px); bottom: auto; z-index: 260;
	box-sizing: border-box;
	background: #fff; border: 1px solid #dbe3ec; border-radius: 12px;
	box-shadow: 0 10px 28px rgba(17,17,17,.14); padding: 12px 12px 10px;
	font-family: var(--font-body);
}
.ok-st-cal.is-fixed {
	position: fixed !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 12050 !important;
	max-width: calc(100vw - 16px);
	-webkit-overflow-scrolling: touch;
}
.ok-st-cal-head {
	display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 8px;
}
.ok-st-cal-title {
	font-size: .92rem; font-weight: 800; color: var(--ink); letter-spacing: .01em;
}
.ok-st-cal-navs { display: inline-flex; flex-direction: column; gap: 0; }
.ok-st-cal-nav {
	width: 28px; height: 18px; border: 0; border-radius: 4px; padding: 0;
	background: transparent; color: #64748b; font-size: .62rem; line-height: 1; cursor: pointer;
}
.ok-st-cal-nav:hover { color: var(--accent-color); background: rgba(255,77,0,.08); }
.ok-st-cal-week {
	display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; margin: 0 0 4px;
	font-size: .68rem; font-weight: 700; color: #94a3b8; text-align: center;
}
.ok-st-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.ok-st-cal-day {
	min-height: 32px; border: 0; border-radius: 6px; background: transparent;
	font: inherit; font-size: .86rem; font-weight: 650; color: var(--ink); cursor: pointer;
}
.ok-st-cal-day:hover { background: rgba(255,77,0,.1); color: var(--accent-color); }
.ok-st-cal-day.is-muted { color: #cbd5e1; font-weight: 550; }
.ok-st-cal-day.is-selected {
	background: var(--accent-color); color: #fff; font-weight: 800;
	box-shadow: none;
}
.ok-st-cal-day.is-disabled,
.ok-st-cal-day:disabled { opacity: .35; cursor: not-allowed; background: transparent; color: #94a3b8; }
.ok-st-cal-foot {
	display: flex; align-items: center; justify-content: space-between;
	margin: 8px 2px 0; padding-top: 8px; border-top: 1px solid #eef2f7;
}
.ok-st-cal-link {
	border: 0; background: transparent; padding: 0; cursor: pointer;
	font: inherit; font-size: .84rem; font-weight: 700; color: var(--accent-color);
}
.ok-st-cal-link:hover { color: var(--accent-hover); text-decoration: underline; }
.ok-st-field--evac { margin: 2px 0 14px; }
.ok-st-evac-btn {
	display: flex; align-items: center; gap: 10px; width: 100%;
	padding: 10px 0; border: 0; border-radius: 0;
	background: transparent; color: var(--ink); font: inherit; font-size: .9rem; font-weight: 700;
	text-align: left; cursor: pointer; line-height: 1.35;
}
.ok-st-evac-btn:hover { color: var(--accent-color); }
.ok-st-evac-btn.is-on {
	color: var(--ink);
	background: transparent;
	box-shadow: none;
}
.ok-st-evac-btn__box {
	width: 18px; height: 18px; flex: 0 0 auto; border-radius: 5px;
	border: 1.5px solid #94a3b8; background: #fff;
	box-sizing: border-box;
}
.ok-st-evac-btn.is-on .ok-st-evac-btn__box {
	border-color: var(--accent-color); background: var(--accent-color);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' d='M3.5 8.2l3 3 6-6.5'/%3E%3C/svg%3E");
	background-size: 12px 12px; background-position: center; background-repeat: no-repeat;
}
.ok-st-evac-btn__text { flex: 1; min-width: 0; }
/* Hint above submit: ~½ of previous body size; works with or without <p> wrapper */
#okolica-storage-root .ok-st-form-foot {
	margin-top: 4px;
	font-size: clamp(9px, 0.45rem, 10px);
	line-height: 1.4;
	font-weight: 500;
	letter-spacing: .01em;
	color: #64748b;
	text-align: left;
}
#okolica-storage-root .ok-st-form-foot .ok-st-float-hint {
	margin: 0 0 8px;
	padding: 0;
	font: inherit;
	color: inherit;
}
#okolica-storage-root .ok-st-form-foot .ok-st-form-msg {
	font-size: .84rem;
	line-height: 1.35;
}
#okolica-storage-root .ok-st-form-foot .ok-st-submit {
	display: block;
	width: 100%;
	margin: 8px 0 0;
	min-height: 50px;
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: normal;
	color: #fff;
	line-height: 1.2;
}
.ok-st-submit {
	display: block; width: 100%; margin: 0; min-height: 50px;
	border-radius: 999px; font-size: 1rem; font-weight: 800;
}
#okolica-storage-root .ok-legal-consent {
	display: flex; align-items: flex-start; gap: 10px;
	margin: 0 0 12px; font-size: .82rem; line-height: 1.4; color: var(--text-muted);
}
#okolica-storage-root .ok-legal-consent input {
	margin-top: 3px; width: 16px; height: 16px; accent-color: var(--accent-color); flex: 0 0 auto;
}
.ok-st-form-msg { margin: 8px 0 0; font-size: .84rem; }
.ok-st-form-msg.is-ok { color: #15803d; }
.ok-st-form-msg.is-err { color: #be123c; }
.ok-st-guest {
	margin-top: 8px; padding: 14px; border: 1px solid var(--border-color); border-radius: 10px; background: #f8fafc;
}
.ok-st-guest p { margin: 0 0 12px; font-size: .88rem; color: var(--text-muted); line-height: 1.4; }
.ok-st-guest .btn { width: 100%; }

/* Open list — left edge circle arrow (same language as collapse). */
.ok-st-sheet-toggle,
.ok-st-panel-fab {
	position: absolute;
	left: 16px;
	top: 16px;
	z-index: 26;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1.5px solid var(--ink);
	border-radius: var(--radius-pill);
	background: #fff;
	color: var(--ink);
	cursor: pointer;
	box-shadow: 0 8px 22px rgba(17,17,17,.12);
	transition: background .15s ease, color .15s ease;
}
.ok-st-sheet-toggle[hidden],
.ok-st-panel-fab[hidden] { display: none !important; }
.ok-st-sheet-toggle:hover,
.ok-st-panel-fab:hover { background: var(--ink); color: #fff; }
.ok-st-sheet-handle { display: none; }
.ok-st-sheet-toggle__list,
.ok-st-sheet-toggle__label,
.ok-st-collapse__down { display: none; }
.ok-st-sheet-toggle__chev,
.ok-st-collapse__side { display: block; }

/* Custom zoom — bottom right, always visible above map. */
/* Place search on map — fixed top-center, always. */
.ok-st-geo-search {
	position: absolute;
	top: 16px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 28;
	width: min(440px, calc(100% - 96px));
	box-sizing: border-box;
}
.ok-st-geo-search[hidden] { display: none !important; }
.ok-st-geo-search__ico {
	position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
	width: 17px; height: 17px; color: #94a3b8; pointer-events: none; z-index: 1;
}
.ok-st-geo-search__input {
	width: 100%; box-sizing: border-box;
	border: 1.5px solid rgba(17,17,17,.12);
	border-radius: var(--radius-pill, 999px);
	padding: 12px 42px 12px 42px;
	font: inherit; font-size: .92rem; font-weight: 600;
	background: #fff; color: var(--ink, #111);
	box-shadow: 0 10px 28px rgba(17,17,17,.14);
}
.ok-st-geo-search__input:focus {
	outline: none; border-color: var(--accent-color, #ff4d00);
}
.ok-st-geo-search__clear {
	position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
	width: 28px; height: 28px; border: 0; border-radius: 999px;
	background: transparent; color: #64748b; font-size: 1.2rem; line-height: 1;
	cursor: pointer; padding: 0;
}
.ok-st-geo-search__clear:hover { color: var(--ink, #111); background: #f1f5f9; }
.ok-st-geo-search__drop {
	position: absolute; left: 0; right: 0; top: calc(100% + 8px);
	background: #fff; border: 1px solid #dbe3ec; border-radius: 14px;
	box-shadow: 0 14px 36px rgba(17,17,17,.16);
	max-height: min(52vh, 320px); overflow: auto; padding: 6px;
}
.ok-st-geo-search__item {
	display: block; width: 100%; text-align: left; border: 0; border-radius: 10px;
	background: transparent; padding: 10px 12px; cursor: pointer; font: inherit;
	color: var(--ink, #111);
}
.ok-st-geo-search__item:hover,
.ok-st-geo-search__item.is-on { background: rgba(255,77,0,.08); }
.ok-st-geo-search__title { display: block; font-weight: 750; font-size: .9rem; line-height: 1.3; }
.ok-st-geo-search__meta { display: block; margin-top: 2px; font-size: .78rem; color: #64748b; line-height: 1.35; }
.ok-st-geo-search__empty {
	padding: 12px; text-align: center; color: #64748b; font-size: .86rem;
}
/* Keep geo search centered on phones too (sheet toggle sits on the left). */

.ok-st-zoom {
	position: absolute;
	right: 16px;
	bottom: calc(18px + env(safe-area-inset-bottom, 0px));
	z-index: 27;
	display: flex;
	flex-direction: column;
	gap: 0;
	border-radius: 16px;
	overflow: hidden;
	border: 1.5px solid var(--ink);
	background: #fff;
	box-shadow: 0 10px 28px rgba(17,17,17,.16);
}
.ok-st-zoom-btn {
	width: 46px;
	height: 46px;
	border: none;
	background: #fff;
	color: var(--ink);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}
.ok-st-zoom-btn + .ok-st-zoom-btn { border-top: 1.5px solid rgba(17,17,17,.12); }
.ok-st-zoom-btn:hover { background: var(--ink); color: #fff; }
#okolica-storage-root .leaflet-control-zoom { display: none !important; }

.ok-st-geo-pin-wrap { background: transparent !important; border: 0 !important; }
.ok-st-geo-pin {
	width: 18px; height: 18px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
	background: #1e293b; border: 2px solid #fff;
	box-shadow: 0 2px 8px rgba(15,23,42,.4);
}

/* Marker clusters — count badge, cap label at 99+ */
.ok-st-cluster-wrap {
	background: transparent !important;
	border: none !important;
}
.ok-st-cluster {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: #ff6a00;
	color: #fff;
	font-family: Manrope, system-ui, sans-serif;
	font-weight: 800;
	font-size: .85rem;
	letter-spacing: -.02em;
	box-shadow: 0 4px 14px rgba(255, 106, 0, .45), 0 0 0 3px rgba(255, 255, 255, .92);
	line-height: 1;
}
.ok-st-cluster.is-sm { font-size: .88rem; }
.ok-st-cluster.is-md { font-size: .82rem; }
.ok-st-cluster.is-lg { font-size: .78rem; }
.ok-st-cluster span { transform: translateY(.5px); }
.leaflet-markercluster-anim .leaflet-markercluster-icon {
	transition: transform .2s ease-out;
}
.ok-st-pin {
	width: 28px; height: 28px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
	background: var(--accent-color); border: 2px solid #fff;
	box-shadow: 0 2px 8px rgba(15,23,42,.35);
}
.ok-st-pin.is-active { background: var(--accent-color); }
.ok-st-pin.is-dim { opacity: .28; }

/* Custom map popup card */
.ok-st-popup.leaflet-popup .leaflet-popup-content-wrapper {
	border-radius: 14px;
	padding: 0;
	box-shadow: 0 14px 36px rgba(15,23,42,.22);
	border: 1px solid var(--border-color);
	overflow: hidden;
}
.ok-st-popup.leaflet-popup .leaflet-popup-content {
	margin: 0;
	min-width: 260px;
	max-width: 300px;
	font: inherit;
}
.ok-st-popup.leaflet-popup .leaflet-popup-tip { background: #fff; }
.ok-st-pop {
	display: flex; flex-direction: column; gap: 0;
}
.ok-st-pop-cover {
	height: 84px;
	background: linear-gradient(135deg, #ffe8d4 0%, #ffd0a8 42%, #FF5A26 140%);
	position: relative;
}
.ok-st-pop-cover.has-img {
	background-size: cover; background-position: center;
}
.ok-st-pop-body { padding: 12px 14px 14px; }
.ok-st-pop-body strong { display: block; font-size: .98rem; font-weight: 800; margin: 0 0 4px; line-height: 1.25; }
.ok-st-pop-addr { margin: 0 0 8px; font-size: .8rem; color: var(--text-muted); line-height: 1.35; }
.ok-st-pop-chips { display: flex; flex-wrap: wrap; gap: 5px; margin: 0 0 8px; }
.ok-st-pop-chips span {
	font-size: .7rem; font-weight: 650; color: #334155; background: #f1f5f9;
	border: 1px solid var(--border-color); border-radius: 6px; padding: 3px 7px;
}
.ok-st-pop-tariffs { margin: 0 0 10px; font-size: .78rem; color: var(--text-muted); line-height: 1.4; }
.ok-st-pop-price { margin: 0 0 10px; font-size: .88rem; font-weight: 800; color: var(--accent-color); }
.ok-st-pop .btn { width: 100%; padding: 10px 14px; font-size: .88rem; }

/* Modals — login/success above form modals (evac/city/request) */
#okStLoginModal.ok-st-modal,
#okStSuccessModal.ok-st-modal {
	z-index: 200;
}
.ok-st-modal {
	position: fixed; inset: 0; z-index: 80;
	display: flex; align-items: flex-start; justify-content: center;
	padding: max(12px, env(safe-area-inset-top, 0px)) 12px max(12px, env(safe-area-inset-bottom, 0px));
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.ok-st-modal[hidden] { display: none !important; }
.ok-st-modal-backdrop {
	position: fixed; inset: 0; background: rgba(15,23,42,.45); backdrop-filter: blur(2px);
}
.ok-st-modal-card {
	position: relative; z-index: 1; width: min(420px, 100%);
	margin: auto;
	background: #fff; border-radius: 16px; border: 1px solid var(--border-color);
	box-shadow: 0 20px 50px rgba(15,23,42,.25);
	padding: 18px 16px 16px;
	box-sizing: border-box;
}
.ok-st-modal-card h2 { margin: 0 0 8px; font-size: 1.2rem; font-weight: 800; padding-right: 28px; }
.ok-st-modal-card p,
.ok-st-modal-text {
	display: block; margin: 0 0 16px; color: var(--text-muted); font-size: .92rem; line-height: 1.45;
}
.ok-st-modal-x {
	position: absolute; top: 10px; right: 12px; border: none; background: transparent;
	font-size: 1.4rem; line-height: 1; color: #94a3b8; cursor: pointer;
}
.ok-st-modal-x:hover { color: var(--text-main); }
.ok-st-modal-actions {
	display: flex; flex-direction: column; gap: 8px; clear: both; margin-top: 4px;
}
.ok-st-modal-actions .btn,
.ok-st-modal-card > .btn {
	display: flex; width: 100%; float: none; position: static; box-sizing: border-box;
}
.ok-st-success-tg {
	margin: 14px 0 0;
	padding: 12px 14px;
	border: 1px solid rgba(148, 163, 184, .28);
	border-radius: 14px;
	background: rgba(255, 255, 255, .72);
}
.ok-st-success-tg-lead {
	margin: 0 0 10px;
	font-size: .9rem;
	line-height: 1.45;
	color: var(--text, #0f172a);
}
.ok-st-success-tg .btn { width: 100%; }
.ok-st-tg-link {
	display: flex; align-items: center; gap: 12px;
	margin: 20px 0 0;
	padding: 12px 14px;
	border: 1px solid rgba(184, 196, 208, .45);
	border-radius: 14px; background: #fff;
	text-decoration: none; color: inherit;
	box-shadow: 0 1px 0 rgba(15, 23, 42, .03);
	flex-shrink: 0;
	transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.ok-st-sheet-body {
	flex: 1 1 0%;
	min-height: 0;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.ok-st-sheet-body .ok-st-list,
.ok-st-sheet-body .ok-st-empty {
	flex: 1 1 0%;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}
.ok-st-tg-link--sheet-foot {
	flex: 0 0 auto;
}
.ok-st-tg-link:hover {
	border-color: rgba(255, 90, 38, .45);
	box-shadow: 0 6px 18px rgba(15, 23, 42, .06);
	transform: translateY(-1px);
}
.ok-st-tg-link__ico {
	flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px;
	display: inline-flex; align-items: center; justify-content: center;
	background: #f1f5f9;
	color: #64748b;
}
.ok-st-tg-link__body {
	display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.ok-st-tg-link__title {
	font-size: .82rem; font-weight: 650; line-height: 1.3; color: var(--ink, #111);
}
.ok-st-tg-link__handle {
	font-size: .92rem; font-weight: 800; letter-spacing: .01em;
	color: #64748b; line-height: 1.2;
}
.ok-st-success-ico {
	width: 48px; height: 48px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: rgba(22,163,74,.12); color: #15803d;
	font-size: 1.4rem; font-weight: 800; margin: 0 0 12px;
}

/* Evac FAB — phone only (shown in 768 block) */
.ok-st-evac-fab { display: none; }

@media (max-width: 900px) {
	#okolica-storage-root {
		--top-h: auto;
		overflow: hidden !important;
		height: 100%;
		height: 100dvh;
		max-height: 100dvh;
	}
	.ok-st-top {
		position: sticky;
		top: 0;
		z-index: 50;
		height: auto;
		min-height: 0;
		border-bottom: 1px solid rgba(17,17,17,.08);
		background: var(--bg-color);
		padding-top: var(--safe-top, env(safe-area-inset-top, 0px));
	}
	.ok-st-top-inner {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0 12px;
	}
	.ok-st-top-row--brand {
		display: flex;
		align-items: center;
		justify-content: space-between;
		height: 40px;
		gap: 8px;
		order: 0;
		width: 100%;
	}
	.ok-st-logo {
		font-size: 17px;
		font-weight: 700;
		line-height: 1;
		letter-spacing: .03em;
		order: 0;
		min-width: 0;
		flex: 1 1 auto;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.ok-st-top-inner > .ok-st-nav { order: 0; }
	.ok-st-logo span { display: inline; color: var(--accent-color); }
	#okolica-storage-root a.ok-st-nav-account,
	#okolica-storage-root .ok-st-nav-account {
		order: 0;
		margin-left: 0 !important;
		max-width: 7.5rem;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		min-height: 32px;
		height: 32px;
		padding: 0 10px !important;
		font-size: 13px !important;
		font-weight: 650 !important;
		background: #fff !important;
		border: 1.5px solid rgba(17,17,17,.12) !important;
		border-radius: var(--radius-full, 9999px) !important;
		color: var(--ink) !important;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		text-decoration: none !important;
		flex: 0 0 auto;
	}
	.ok-st-nav {
		display: grid;
		grid-template-columns: 1fr 1fr;
		width: 100%;
		height: 40px;
		gap: 0;
		padding: 0;
		border-radius: 0;
		background: transparent;
		border-bottom: 1px solid rgba(17,17,17,.08);
		overflow: visible;
	}
	.ok-st-nav-pill {
		justify-content: center;
		width: 100%;
		height: 40px;
		min-height: 40px;
		padding: 0 6px;
		font-size: 14px;
		font-weight: 650;
		border-radius: 0;
		white-space: nowrap;
		background: transparent;
		border: 0;
		box-shadow: none;
		border-bottom: 2px solid transparent;
	}
	.ok-st-nav-pill.is-on {
		background: transparent;
		box-shadow: none;
		border-bottom-color: var(--accent-color);
		color: var(--ink);
	}
	.ok-st-nav-evac { display: none !important; }
	.ok-st-layout {
		flex: 1 1 auto;
		min-height: 0;
		height: auto;
	}
	.ok-st-map-wrap { min-height: 0; }

	/* Full-bleed place search under header */
	.ok-st-geo-search {
		top: 12px;
		left: 12px;
		right: 12px;
		width: auto;
		transform: none;
	}
	.ok-st-geo-search__input {
		padding-top: 12px;
		padding-bottom: 12px;
		font-size: 16px;
		box-shadow: 0 8px 22px rgba(17,17,17,.14);
	}
	.ok-st-geo-search__drop {
		max-height: min(40vh, 280px);
	}
	#okolica-storage-root.ok-st-list-open .ok-st-geo-search {
		display: none !important;
	}

	/* Bottom FAB instead of cryptic left arrow */
	.ok-st-sheet-toggle,
	.ok-st-panel-fab,
	#okolica-storage-root.ok-st-is-phone .ok-st-sheet-toggle {
		left: 50% !important;
		right: auto !important;
		top: auto !important;
		bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important;
		transform: translateX(-50%) !important;
		width: auto !important;
		min-width: 148px;
		height: 48px !important;
		padding: 0 18px !important;
		gap: 8px;
		border-radius: 999px;
		box-shadow: 0 10px 28px rgba(17,17,17,.2);
		font: inherit;
		font-size: .9rem;
		font-weight: 750;
	}
	.ok-st-sheet-toggle:not([hidden]),
	.ok-st-panel-fab:not([hidden]) { display: inline-flex; }
	.ok-st-sheet-toggle__chev { display: none !important; }
	.ok-st-sheet-toggle__list { display: block !important; }
	.ok-st-sheet-toggle__label { display: inline !important; }

	/* Zoom stack ~88px; FAB sits clearly above it — never overlaps +/- */
	#okolica-storage-root {
		--ok-zoom-h: 88px;
		--ok-fab-gap: 12px;
		--ok-map-chrome-bottom: calc(100px + var(--safe-bottom, env(safe-area-inset-bottom, 0px)));
	}
	.ok-st-zoom {
		right: var(--space-4, 16px);
		bottom: var(--ok-map-chrome-bottom);
		z-index: 22;
	}
	.ok-st-zoom-btn {
		width: var(--tap-md, 44px);
		height: var(--tap-md, 44px);
		border-radius: var(--radius-sm, 8px);
	}
	#okolica-storage-root.ok-st-list-open.ok-st-sheet-full .ok-st-zoom { display: none; }
	#okolica-storage-root.ok-st-sheet-half .ok-st-zoom {
		display: flex;
		bottom: calc(50vh + 16px);
	}

	/* Evac FAB — left side; 56 circle + caption under it (phone only) */
	.ok-st-evac-fab {
		display: inline-flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 4px;
		position: absolute;
		left: max(16px, env(safe-area-inset-left, 0px));
		right: auto;
		bottom: var(--ok-map-chrome-bottom);
		width: auto;
		min-width: var(--tap-xl, 56px);
		height: auto;
		min-height: 72px;
		border-radius: 0;
		border: 0;
		background: transparent;
		color: #fff;
		box-shadow: none;
		z-index: 23;
		cursor: pointer;
		padding: 0;
		-webkit-tap-highlight-color: transparent;
	}
	.ok-st-evac-fab__disc {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		flex: 0 0 auto;
		width: var(--tap-xl, 56px);
		height: var(--tap-xl, 56px);
		border-radius: var(--radius-full, 9999px);
		background: var(--accent-color);
		color: #fff;
		box-shadow: var(--shadow-lg, 0 8px 24px rgba(0,0,0,.12));
	}
	.ok-st-evac-fab__ico { display: block; }
	.ok-st-evac-fab__label {
		display: block;
		font-size: 11px;
		font-weight: 600;
		line-height: 1.2;
		color: #111;
		text-align: center;
		white-space: nowrap;
		text-shadow: 0 1px 2px rgba(255, 255, 255, 0.75);
		pointer-events: none;
	}
	#okolica-storage-root.ok-st-sheet-half .ok-st-evac-fab {
		bottom: calc(50vh + 16px);
	}
	#okolica-storage-root.ok-st-sheet-full .ok-st-evac-fab { display: none !important; }

	/* Bottom sheet — list only; TG lives outside panel (see #okStTgFoot). */
	.ok-st-list-panel,
	.ok-st-panel {
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		max-width: none;
		height: 50vh;
		max-height: 90vh;
		border-radius: var(--radius-lg, 16px) var(--radius-lg, 16px) 0 0;
		border-left: none;
		border-right: none;
		border-bottom: none;
		transform: translate3d(0, 110%, 0);
		transition: transform 320ms cubic-bezier(0.33, 0.1, 0.25, 1), height 320ms cubic-bezier(0.33, 0.1, 0.25, 1);
		box-shadow: 0 -12px 36px rgba(15,23,42,.2);
		padding: 0 var(--space-4, 16px) 0 !important;
		z-index: 30;
		pointer-events: none;
		will-change: transform, height;
		display: flex !important;
		flex-direction: column !important;
		overflow: hidden !important;
		-webkit-overflow-scrolling: auto;
		touch-action: pan-y;
		position: fixed !important;
	}
	.ok-st-list-panel.is-open,
	.ok-st-list-panel.is-half,
	.ok-st-list-panel.is-full,
	.ok-st-panel.is-open {
		pointer-events: auto;
		transform: translate3d(0, 0, 0);
	}
	.ok-st-list-panel.is-half {
		height: 50vh;
		max-height: 50vh;
		padding-bottom: 72px !important;
	}
	.ok-st-list-panel.is-full,
	.ok-st-list-panel.is-open:not(.is-half),
	.ok-st-panel.is-open {
		height: 90vh;
		max-height: 90vh;
		padding-bottom: 72px !important;
	}
	.ok-st-list-panel > .ok-st-sheet-body {
		flex: 1 1 0% !important;
		min-height: 0 !important;
		overflow: hidden !important;
		display: flex !important;
		flex-direction: column !important;
	}
	.ok-st-list-panel .ok-st-sheet-body .ok-st-list,
	.ok-st-list-panel .ok-st-sheet-body .ok-st-empty {
		flex: 1 1 0% !important;
		min-height: 0 !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		touch-action: pan-y !important;
		overscroll-behavior: contain;
	}
	/* Phone: hide in-panel TG; JS pins a copy to the screen bottom while sheet is open */
	.ok-st-list-panel > .ok-st-tg-link--sheet-foot,
	.ok-st-list-panel #okStTgFoot {
		display: none !important;
	}
	#okolica-storage-root > .ok-st-tg-link--sheet-foot,
	#okolica-storage-root #okStTgFoot,
	body > .ok-st-tg-link--sheet-foot[data-ok-st-pinned] {
		display: none;
		position: fixed !important;
		left: 16px !important;
		right: 16px !important;
		bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important;
		top: auto !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 12px 14px !important;
		border-radius: 14px !important;
		border: 1px solid rgba(184, 196, 208, .45) !important;
		box-shadow: 0 1px 0 rgba(15, 23, 42, .03) !important;
		transform: none !important;
		z-index: 60 !important;
		background: #fff !important;
		box-sizing: border-box !important;
	}
	body > .ok-st-tg-link--sheet-foot[data-ok-st-pinned] {
		display: flex !important;
		/* Above list sheet (30), below place/request/evac modals (40–80) */
		z-index: 32 !important;
	}
	/* Hard hide while any booking/overlay UI is open */
	body:has(#okolica-storage-root.ok-st-place-open) > .ok-st-tg-link--sheet-foot[data-ok-st-pinned],
	body:has(#okolica-storage-root.ok-st-booking-open) > .ok-st-tg-link--sheet-foot[data-ok-st-pinned] {
		display: none !important;
	}
	.ok-st-list-panel > .ok-st-seo-crawl {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		padding: 0 !important;
		margin: -1px !important;
		overflow: hidden !important;
		clip: rect(0, 0, 0, 0) !important;
		border: 0 !important;
		flex: none !important;
	}
	.ok-st-sheet-handle {
		display: block;
		width: 40px;
		height: 4px;
		border-radius: 999px;
		background: #cbd5e1;
		margin: 8px auto 10px;
		flex-shrink: 0;
		touch-action: none;
	}
	.ok-st-panel-head h1 { font-size: 1.2rem; }
	.ok-st-collapse__side { display: none !important; }
	.ok-st-collapse__down { display: block !important; }
	.ok-st-search input { font-size: 16px; }

	.ok-st-card-book {
		font-size: .88rem;
		padding: 10px 14px !important;
	}

	.ok-st-seg-btn { font-size: .72rem; padding: 9px 4px; }
	#okolica-storage-root.ok-st-list-open .ok-st-sheet-toggle { display: none !important; }
	.ok-st-place-modal {
		z-index: 40;
		padding: 0;
		align-items: flex-end;
	}
	.ok-st-place-card {
		width: 100%;
		max-height: min(92dvh, 92vh);
		border-radius: 16px 16px 0 0;
	}
	.ok-st-place-hero {
		min-height: 160px;
		max-height: 36vh;
		aspect-ratio: auto;
	}
	.ok-st-modal {
		align-items: flex-end;
		justify-content: stretch;
		padding: 0;
		overflow: hidden;
	}
	.ok-st-modal .ok-st-modal-card,
	.ok-st-request-modal-card,
	.ok-st-evac-modal-card,
	.ok-st-city-modal-card {
		width: 100% !important;
		max-width: 100% !important;
		max-height: min(92dvh, 92vh);
		border-radius: 16px 16px 0 0;
		margin: 0 !important;
		padding: 18px 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
		box-sizing: border-box !important;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
	.ok-st-modal-card h2,
	.ok-st-modal-card .ok-st-modal-text,
	.ok-st-modal-card p {
		overflow-wrap: anywhere;
		word-break: break-word;
		max-width: 100%;
	}
	.ok-st-card {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: var(--space-3, 12px);
		padding: var(--space-4, 16px);
	}
	.ok-st-card-title {
		font-size: 18px !important;
		font-weight: 700 !important;
		line-height: 1.25 !important;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
		word-break: break-word;
		margin: 0 !important;
	}
	.ok-st-card-meta {
		font-size: 13px !important;
		color: var(--text-muted) !important;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		margin: 0 !important;
	}
	.ok-st-card-prices,
	.ok-st-card-prices--line {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap;
		align-items: baseline;
		gap: 0 2px;
		font-size: 14px;
		line-height: 1.35;
		margin: 0;
		width: 100% !important;
	}
	.ok-st-card-prices--line .ok-st-card-season,
	.ok-st-card-prices--line .ok-st-card-price-sep,
	.ok-st-card-prices--line .ok-st-card-price {
		display: inline !important;
		width: auto !important;
	}
	.ok-st-card-prices--line .ok-st-card-price {
		order: 1;
		font-weight: 750;
		font-size: 1rem;
		color: var(--text-main);
	}
	.ok-st-card-prices--line .ok-st-card-price__n {
		color: var(--accent-color) !important;
	}
	.ok-st-card-prices--line .ok-st-card-price-sep { order: 2; }
	.ok-st-card-prices--line .ok-st-card-season {
		order: 3;
		color: var(--text-muted);
		font-weight: 550;
		font-size: .85rem;
	}
	.ok-st-card-book {
		width: 100% !important;
		min-height: var(--tap-lg, 48px) !important;
		height: var(--tap-lg, 48px) !important;
		margin-top: var(--space-1, 4px);
		justify-content: center !important;
		border-radius: var(--radius-full, 9999px) !important;
	}
	.ok-st-card-foot {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
		margin-top: 0;
		width: 100%;
	}

	.ok-st-sheet-modal .ok-st-sheet-card,
	.ok-st-request-modal-card,
	.ok-st-evac-modal-card,
	.ok-st-city-modal-card {
		display: flex !important;
		flex-direction: column !important;
		max-height: 90vh !important;
		max-height: 90dvh !important;
		padding: 0 var(--space-4, 16px) 0 !important;
		overflow: hidden !important;
	}
	.ok-st-modal .ok-st-modal-card.ok-st-evac-modal-card,
	.ok-st-modal .ok-st-modal-card.ok-st-request-modal-card,
	.ok-st-modal .ok-st-modal-card.ok-st-city-modal-card {
		overflow-y: hidden !important;
	}
	.ok-st-form--sheet {
		display: flex;
		flex-direction: column;
		min-height: 0;
		flex: 1 1 auto;
		max-height: 100%;
	}
	.ok-st-form-scroll {
		flex: 1 1 auto;
		overflow-x: hidden;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		touch-action: pan-y;
		padding: 4px 0 12px;
		min-height: 0;
	}
	.ok-st-form-foot {
		flex: 0 0 auto;
		padding: 10px 0 calc(12px + var(--safe-bottom, env(safe-area-inset-bottom, 0px)));
		border-top: 1px solid rgba(17,17,17,.08);
		background: #fff;
	}
	.ok-st-form-foot .ok-st-submit,
	.ok-st-submit {
		width: 100%;
		min-height: var(--tap-lg, 48px);
		height: var(--tap-lg, 48px);
	}
	#okolica-storage-root .form-input,
	#okolica-storage-root input.form-input,
	#okolica-storage-root select.form-input,
	#okolica-storage-root textarea.form-input,
	#okolica-storage-root .ok-st-date-btn {
		min-height: var(--tap-md, 44px);
		font-size: 16px !important;
	}
	#okolica-storage-root .ok-st-field { margin-bottom: var(--space-3, 12px); }
	.ok-st-geo-btn {
		width: 100%;
		margin-top: 8px;
		min-height: var(--tap-md, 44px);
		font-size: 14px;
	}
	.ok-st-popup.leaflet-popup .leaflet-popup-content {
		min-width: 0;
		max-width: min(280px, calc(100vw - 40px));
	}
	.ok-st-place-winter-prices { white-space: normal; }
	.ok-st-place-winter-row {
		flex-wrap: wrap;
		align-items: flex-start;
	}
	.ok-st-toast {
		bottom: calc(72px + env(safe-area-inset-bottom, 0px));
	}
	#okolica-storage-root.ok-st-list-open .ok-st-toast {
		bottom: calc(16px + env(safe-area-inset-bottom, 0px));
	}
}

@media (max-width: 480px) {
	.ok-st-top-title span { display: none; }
	.ok-st-dates-row { grid-template-columns: 1fr; }
	.ok-st-place-services-row { grid-template-columns: 1fr; }
	.ok-st-nav-pill { font-size: .78rem; }
}

/* Lead-gen cabinet hub */
.ok-st-hub {
	background: #fff;
	border: 1px solid var(--border-color, #c5ced9);
	border-radius: 14px;
	padding: 18px 18px 16px;
	margin: 0 0 18px;
}
.ok-st-hub-lead {
	margin: 0 0 14px;
	font-size: .92rem;
	color: var(--text-muted, #475569);
	line-height: 1.45;
}
.ok-st-hub-bikes {
	display: grid;
	gap: 10px;
	margin: 0 0 14px;
}
.ok-st-hub-bike {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 14px;
	padding: 12px 14px;
	border: 1px solid var(--border-color, #c5ced9);
	border-radius: 12px;
	background: #f8fafc;
}
.ok-st-hub-bike strong {
	display: block;
	font-size: .98rem;
	font-weight: 800;
}
.ok-st-hub-meta {
	font-size: .8rem;
	color: var(--text-muted, #475569);
	margin-top: 2px;
}
.ok-st-hub-empty-bikes {
	margin: 0 0 14px;
	font-size: .88rem;
	color: var(--text-muted, #475569);
}
.ok-st-hub-ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.ok-st-hub-ctas .btn { min-height: 42px; }
.ok-st-insured {
	margin-top: 8px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(22,163,74,.1);
	color: #15803d;
	font-size: .78rem;
	font-weight: 750;
}

/* Express modal uses shared ok-st-modal when inside cabinet */
#okolica-account-root .ok-st-modal {
	position: fixed; inset: 0; z-index: 80;
	display: flex; align-items: center; justify-content: center; padding: 16px;
}
#okolica-account-root .ok-st-modal[hidden] { display: none !important; }
#okolica-account-root .ok-st-modal-backdrop {
	position: absolute; inset: 0; background: rgba(15,23,42,.45);
}
#okolica-account-root .ok-st-modal-card {
	position: relative; z-index: 1; width: min(440px, 100%);
	background: #fff; border-radius: 16px; padding: 22px 20px 18px;
	border: 1px solid var(--border-color, #c5ced9);
	box-shadow: 0 18px 40px rgba(15,23,42,.22);
}
#okolica-account-root .ok-st-modal-card h2 { margin: 0 0 8px; font-size: 1.15rem; }
#okolica-account-root .ok-st-modal-card > p { margin: 0 0 14px; color: var(--text-muted, #475569); font-size: .9rem; }
#okolica-account-root .ok-st-modal-x {
	position: absolute; top: 10px; right: 12px; border: 0; background: transparent;
	font-size: 1.4rem; line-height: 1; cursor: pointer; color: #64748b;
}
#okolica-account-root .ok-st-form .ok-st-field { margin: 0 0 12px; }
#okolica-account-root .ok-st-form label { display: block; font-size: .78rem; font-weight: 700; margin: 0 0 6px; }
#okolica-account-root .ok-st-form .btn { width: 100%; margin-top: 8px; }


/* Popup-only booking: never show side calculator panel on the map */
#okolica-storage-root .ok-st-panel,
#okolica-storage-root #okStPanel {
	display: none !important;
}
/* Keep the same vertical list when a place/request popup is open (was flex-row → broken). */
#okolica-storage-root.ok-st-booking-open .ok-st-list-panel.is-open,
#okolica-storage-root.ok-st-place-open .ok-st-list-panel.is-open {
	display: flex;
	flex-direction: column;
}

.ok-st-place-route { width: 100%; margin: 0 0 14px; }
.ok-st-place-body .ok-st-addr { margin-bottom: 8px; }
.ok-st-place-body .ok-st-price {
	font-family: var(--font-display);
	font-size: 1.28rem;
	margin: 8px 0 10px;
}
.ok-st-place-cta {
	display: block;
	width: 100%;
	margin: 14px 0 0;
	min-height: 50px;
	border-radius: 999px;
	font-weight: 800;
}
.ok-st-request-modal-card {
	width: min(520px, calc(100vw - 24px));
	max-height: min(92dvh, 92vh);
	display: flex;
	flex-direction: column;
	overflow: hidden; /* scroll lives in .ok-st-form-scroll — wheel must not need to bubble */
	-webkit-overflow-scrolling: touch;
	padding: 22px 20px 18px;
	scrollbar-gutter: stable;
}
.ok-st-request-modal-card .ok-st-form--sheet {
	flex: 1 1 auto;
	min-height: 0;
	max-height: 100%;
	display: flex;
	flex-direction: column;
}
.ok-st-request-modal-card .ok-st-form-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}
.ok-st-request-modal-card .ok-st-form-foot,
.ok-st-request-modal-card .ok-st-request-actions {
	flex: 0 0 auto;
}
.ok-st-request-modal-card .ok-legal-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	max-width: 100%;
}
.ok-st-request-modal-card .ok-legal-consent span {
	flex: 1;
	min-width: 0;
	overflow-wrap: anywhere;
}
.ok-st-request-place {
	margin: -6px 0 14px;
	font-size: .9rem;
	font-weight: 650;
	color: var(--text-muted);
}
.ok-st-request-actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 8px;
}
.ok-st-request-actions .ok-st-submit {
	width: 100%;
	min-height: 48px;
	border-radius: 999px;
	margin: 0;
}
.ok-st-request-actions .ok-st-btn-ghost {
	width: 100%;
	min-height: 44px;
	border-radius: 999px;
	border: 1.5px solid var(--border-color, #e0dbd0);
	background: #fff;
	color: var(--text-main);
}
.ok-st-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	z-index: 12000;
	max-width: min(420px, calc(100vw - 24px));
	padding: 14px 18px;
	border-radius: 14px;
	background: #0f172a;
	color: #fff;
	font-size: .92rem;
	font-weight: 650;
	line-height: 1.35;
	box-shadow: 0 12px 32px rgba(15, 23, 42, .28);
	pointer-events: none;
}
.ok-st-toast[hidden] { display: none !important; }
.ok-st-toast { white-space: pre-line; }
.ok-st-logged-as {
	margin: 0 0 14px;
	padding: 10px 12px;
	border-radius: 12px;
	background: #f4f6f8;
	font-size: .88rem;
	color: var(--text-muted, #64748b);
}
.ok-st-logged-as strong { color: var(--text-main, #1a1a1a); }
.ok-st-field-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
@media (max-width: 520px) {
	.ok-st-field-row { grid-template-columns: 1fr; }
}
.ok-st-opt { font-weight: 500; color: var(--text-muted, #94a3b8); font-size: .82em; }
.ok-st-reg-fields[hidden] { display: none !important; }
a.ok-st-nav-pill {
	text-decoration: none;
	color: inherit;
}
