	.map-card {
		background: #fff; border: 1px solid #e9ecef; border-radius: 12px;
		padding: 1.6rem 1.6rem 1rem; margin: 1.5rem 0; text-align: center;
	}
	.map-card .map-prompt {
		font-size: .72rem; text-transform: uppercase; letter-spacing: .14em;
		color: #6c757d; font-weight: 700; margin-bottom: .6rem;
	}
	.map-card .map-title {
		font-size: 1.25rem; font-weight: 800; color: #1a1d22;
		margin: 0 0 1rem; letter-spacing: -.01em;
	}
	.map-card img { max-width: 100%; height: auto; }

	.usmap-wrap     { position: relative; display: inline-block; max-width: 100%; line-height: 0; }
	.usmap-base     { display: block; max-width: 100%; height: auto; }
	.usmap-overlay  { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
	.usmap-overlay polygon {
		fill: rgba(37, 99, 235, .42);
		stroke: rgba(30, 64, 175, .85);
		stroke-width: .6;
		cursor: pointer;
		transition: fill .25s ease, stroke .25s ease;
	}
	.usmap-overlay a:hover polygon,
	.usmap-overlay a:focus polygon {
		fill: rgba(22, 163, 74, .65);
		stroke: rgba(21, 128, 61, .95);
	}
	.usmap-overlay a:focus-visible polygon {
		outline: 2px solid #166534; outline-offset: 2px;
	}

	.stat-grid {
		display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
		gap: .8rem; margin: 1.5rem 0 2rem;
	}
	.stat-card {
		background: #fff;
		border-width: 0 0 3px 3px; border-style: solid; border-color: #0f766e;
		padding: 1.05rem 1.2rem;
	}
	.stat-card .stat-value {
		font-size: 1.65rem; font-weight: 800; color: #1a1d22;
		letter-spacing: -.01em; line-height: 1.1;
	}
	.stat-card .stat-label {
		font-size: .7rem; text-transform: uppercase; letter-spacing: .14em;
		color: #0f766e; font-weight: 700; margin-top: .4rem;
	}
	.stat-card .stat-sub {
		font-size: .78rem; color: #6c757d; margin-top: .2rem;
	}

	.dir-header {
		display: flex; justify-content: space-between; align-items: baseline;
		border-bottom: 1px solid #e9ecef; padding-bottom: .65rem;
		margin: 1.5rem 0 1.2rem; gap: 1rem; flex-wrap: wrap;
	}
	.dir-header .label {
		font-size: .72rem; text-transform: uppercase; letter-spacing: .14em;
		color: #6c757d; font-weight: 700;
	}
	.dir-header .total { font-size: .9rem; color: #1a1d22; font-weight: 600; }
	.dir-grid {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
		gap: .8rem; list-style: none; padding: 0; margin: 0;
	}
	.dir-card {
		display: flex; flex-direction: column; justify-content: space-between;
		background: #fff; border: 1px solid #e9ecef; padding: .9rem 1.1rem;
		text-decoration: none; color: inherit;
		transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease;
		border-left: 3px solid #14b8a6; min-height: 72px;
	}
	.dir-card:hover {
		border-color: #adb5bd; border-left-color: #0f766e;
		box-shadow: 0 6px 18px rgba(0,0,0,.06);
		transform: translateY(-2px); color: inherit;
	}
	.dir-card .name { font-weight: 700; color: #1a1d22; font-size: .98rem; line-height: 1.25; margin: 0 0 .25rem; }
	.dir-card .meta { font-size: .78rem; color: #6c757d; line-height: 1.3; }
	.dir-filter-wrap { position: relative; max-width: 480px; margin-bottom: 1rem; }
	.dir-filter-wrap input {
		width: 100%; padding: .65rem 2.4rem .65rem .9rem;
		border: 1px solid #ced4da; border-radius: 8px; font-size: .95rem; background: #fff;
		transition: border-color .12s ease, box-shadow .12s ease;
	}
	.dir-filter-wrap input:focus { outline: 0; border-color: #14b8a6; box-shadow: 0 0 0 3px rgba(20,184,166,.15); }
	.dir-filter-wrap::after {
		content: "🔍"; position: absolute; right: .75rem; top: 50%;
		transform: translateY(-50%); opacity: .45; font-size: 1rem; pointer-events: none;
	}
	.dir-empty { padding: 2rem; text-align: center; color: #6c757d; font-size: .95rem;
		border: 1px dashed #dee2e6; border-radius: 10px; display: none; }
	.dir-empty.show { display: block; }

	.chain-badge {
		display: inline-block; font-size: .68rem; font-weight: 700;
		letter-spacing: .06em; text-transform: uppercase;
		padding: .15rem .5rem; border-radius: 4px;
		vertical-align: 1px; white-space: nowrap;
	}
	.chain-pilot { background: #fef3c7; color: #92400e; }
	.chain-loves { background: #fee2e2; color: #991b1b; }
	.chain-ta    { background: #dbeafe; color: #1e3a8a; }
	.chain-petro { background: #ede9fe; color: #5b21b6; }
	.chain-other { background: #e5e7eb; color: #1f2937; }

	.ts-empty-pop {
		max-width: 600px; margin: 2rem auto; padding: 1.6rem;
		background: #f0fdfa; border: 1px solid #99f6e4; border-radius: 12px;
		text-align: center; color: #0f766e;
	}
	.ts-empty-pop strong { color: #064e3b; display: block; margin-bottom: .4rem; font-size: 1.1rem; }
	.ts-empty-pop span { font-size: .92rem; line-height: 1.55; color: #1a1d22; }

	.ts-hero {
		background: linear-gradient(135deg, #0f2b27 0%, #102f3a 100%);
		color: #f1f3f5; padding: 38px 0 32px;
		border-radius: 14px; margin-bottom: 1.4rem; padding-left: 1.6rem; padding-right: 1.6rem;
	}
	.ts-hero h1 { font-size: clamp(1.6rem, 3.6vw, 2.4rem); font-weight: 800; letter-spacing: -.02em; margin: .35rem 0 .55rem; line-height: 1.1; color: #fff; }
	.ts-hero .ts-addr { color: rgba(255,255,255,.9); font-size: 1rem; margin-bottom: .35rem; }
	.ts-hero-flex { display: flex; gap: 1.5rem; align-items: stretch; }
	.ts-hero-text { flex: 1 1 auto; min-width: 0; }
	.ts-hero-photo {
		flex: 0 0 280px; align-self: flex-start;
		max-height: 125px; height: 125px;
		border-radius: 12px; overflow: hidden;
		box-shadow: 0 4px 14px rgba(0,0,0,.22);
		border: 1px solid rgba(255,255,255,.1);
	}
	.ts-hero-photo img {
		width: 100%; height: 100%;
		object-fit: cover; display: block;
	}
	@media (max-width: 767.98px) {
		.ts-hero-flex { flex-direction: column; }
		.ts-hero-photo { flex: 0 0 auto; height: 125px; max-height: 125px; }
	}
	.ts-hero .ts-meta-row {
		margin-top: .85rem; display: flex; flex-wrap: wrap; gap: 1rem 1.5rem;
		font-size: .9rem; color: rgba(255,255,255,.78);
	}
	.ts-hero .ts-meta-row .key {
		font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
		color: #5eead4; font-weight: 700; display: block; margin-bottom: .15rem;
	}
	.ts-section { margin: 1.4rem 0; }
	.ts-section h2 {
		font-size: 1.1rem; font-weight: 700; margin: 0 0 .8rem; color: #1a1d22;
		text-transform: uppercase; letter-spacing: .08em; font-size: .82rem;
		padding-bottom: .5rem; border-bottom: 1px solid #e9ecef;
	}
	.ts-amen-grid {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
		gap: .55rem; list-style: none; padding: 0; margin: 0;
	}
	.ts-amen-grid li {
		background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 6px;
		padding: .5rem .75rem; font-size: .88rem; color: #1a1d22;
	}
	.ts-fuel-grid {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
		gap: .65rem; padding: 0; margin: 0; list-style: none;
	}
	.ts-fuel-grid li {
		background: #fff; border: 1px solid #e9ecef; border-left: 3px solid #14b8a6;
		border-radius: 6px; padding: .55rem .75rem;
	}
	.ts-fuel-grid .label { font-size: .7rem; text-transform: uppercase; color: #6c757d; letter-spacing: .08em; font-weight: 600; }
	.ts-fuel-grid .price { font-size: 1.1rem; font-weight: 800; color: #0f766e; }
	.ts-fuel-meta { font-size: .78rem; color: #6c757d; margin-top: .5rem; font-style: italic; }
	.ts-img-grid {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		gap: .55rem; margin: 0; padding: 0;
	}
	.ts-img-grid img {
		width: 100%; height: 150px; object-fit: cover;
		border-radius: 8px; border: 1px solid #e9ecef; background: #f8f9fa;
	}
	.ts-map-link {
		display: inline-flex; align-items: center; gap: .4rem;
		background: #14b8a6; color: #fff; padding: .55rem 1.05rem; border-radius: 8px;
		font-weight: 600; font-size: .9rem; text-decoration: none;
		transition: background .15s ease;
	}
	.ts-map-link:hover { background: #0f766e; color: #fff; }
	.ts-source {
		font-size: .8rem; color: #6c757d; margin-top: 1.5rem; padding-top: .9rem;
		border-top: 1px solid #e9ecef;
	}
	.ts-source a { color: #0f766e; }

	.ts-map-wrap {
		position: relative; width: 100%; height: 420px;
		border-radius: 10px; overflow: hidden;
		border: 1px solid #e9ecef; background: #f8f9fa;
	}
	.ts-map-wrap iframe { width: 100%; height: 100%; border: 0; display: block; }
	.ts-map-actions {
		display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .65rem;
	}
	.ts-map-actions a {
		display: inline-flex; align-items: center; gap: .35rem;
		font-size: .82rem; font-weight: 600; text-decoration: none;
		padding: .35rem .75rem; border-radius: 6px;
		color: #1a1d22; background: #f1f3f5; border: 1px solid #e9ecef;
		transition: background .12s ease, border-color .12s ease;
	}
	.ts-map-actions a:hover { background: #fff; border-color: #14b8a6; color: #0f766e; }

	.ts-facts {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
		gap: .65rem; margin: 0; padding: 0; list-style: none;
	}
	.ts-facts li {
		background: #fafbfc; border: 1px solid #e9ecef; border-radius: 6px;
		padding: .55rem .8rem;
	}
	.ts-facts .key {
		font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
		color: #6c757d; font-weight: 700; display: block; margin-bottom: .15rem;
	}
	.ts-facts .val { font-size: .92rem; color: #1a1d22; font-weight: 600; }
	.ts-facts .val small { color: #6c757d; font-weight: 500; }

	.ts-nearby-grid {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
		gap: .7rem; list-style: none; padding: 0; margin: 0;
	}
	.ts-nearby-grid li a {
		display: block; background: #fff; border: 1px solid #e9ecef;
		border-left: 3px solid #14b8a6; border-radius: 8px;
		padding: .75rem .9rem; text-decoration: none; color: inherit;
		transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease;
	}
	.ts-nearby-grid li a:hover {
		border-left-color: #0f766e; box-shadow: 0 6px 14px rgba(0,0,0,.05);
		transform: translateY(-1px); color: inherit;
	}
	.ts-nearby-grid .name { font-weight: 700; color: #1a1d22; font-size: .92rem; line-height: 1.25; margin-bottom: .25rem; }
	.ts-nearby-grid .meta { font-size: .76rem; color: #6c757d; line-height: 1.35; }
	.ts-nearby-grid .dist {
		display: inline-block; font-weight: 700; color: #0f766e;
		font-size: .76rem; margin-left: .35rem;
	}

	.ts-more-cta {
		display: flex; flex-wrap: wrap; gap: .55rem;
	}
	.ts-more-cta a {
		display: inline-flex; align-items: center; gap: .35rem;
		padding: .55rem 1rem; border-radius: 8px;
		background: #fff; border: 1px solid #e9ecef;
		font-size: .9rem; font-weight: 600; color: #1a1d22;
		text-decoration: none;
		transition: border-color .12s ease, background .12s ease;
	}
	.ts-more-cta a:hover { border-color: #14b8a6; background: #f0fdfa; color: #0f766e; }

	.ts-weather {
		display: grid; gap: 1rem;
		grid-template-columns: minmax(220px, 280px) 1fr;
		background: linear-gradient(135deg, #ecfeff 0%, #f0fdfa 100%);
		border: 1px solid #99f6e4; border-radius: 12px;
		padding: 1.1rem 1.3rem;
	}
	.ts-weather .now { display: flex; align-items: center; gap: 1rem; }
	.ts-weather .now .icon { font-size: 3rem; line-height: 1; }
	.ts-weather .now .temp { font-size: 2.2rem; font-weight: 800; color: #0f766e; line-height: 1; }
	.ts-weather .now .desc { font-size: .9rem; color: #1a1d22; }
	.ts-weather .now .feel { font-size: .78rem; color: #6c757d; }
	.ts-weather .meta { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .8rem; font-size: .82rem; }
	.ts-weather .meta .key { color: #6c757d; }
	.ts-weather .meta .val { color: #1a1d22; font-weight: 600; }
	.ts-weather .forecast {
		grid-column: 1 / -1; border-top: 1px solid #99f6e4; padding-top: .75rem;
		display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-around;
	}
	.ts-weather .forecast .day { text-align: center; min-width: 70px; }
	.ts-weather .forecast .day .lbl { font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: #6c757d; font-weight: 700; }
	.ts-weather .forecast .day .ic  { font-size: 1.4rem; line-height: 1.2; }
	.ts-weather .forecast .day .hi  { font-weight: 800; color: #1a1d22; font-size: .92rem; }
	.ts-weather .forecast .day .lo  { color: #6c757d; font-size: .82rem; }
	.ts-weather-attrib { font-size: .7rem; color: #6c757d; margin-top: .55rem; }
	.ts-weather-attrib a { color: #0f766e; }
	@media (max-width: 575.98px) { .ts-weather { grid-template-columns: 1fr; } }

	.ts-osm-extra {
		background: #fafbfc; border: 1px solid #e9ecef; border-left: 3px solid #6366f1;
		border-radius: 8px; padding: .9rem 1.1rem;
	}
	.ts-osm-extra .head {
		font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
		color: #4338ca; font-weight: 700; margin-bottom: .55rem;
	}
	.ts-osm-extra ul {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
		gap: .35rem; list-style: none; padding: 0; margin: 0;
	}
	.ts-osm-extra li {
		font-size: .85rem; color: #1a1d22;
		padding: .25rem 0;
	}
	.ts-osm-extra li::before { content: "✓ "; color: #6366f1; font-weight: 700; }
	.ts-osm-attrib { font-size: .7rem; color: #6c757d; margin-top: .55rem; }
	.ts-osm-attrib a { color: #4338ca; }

	.ts-hours-table {
		display: grid; grid-template-columns: minmax(90px, auto) 1fr;
		gap: .25rem .9rem; font-size: .9rem;
		background: #fafbfc; border: 1px solid #e9ecef; border-radius: 8px;
		padding: .85rem 1.1rem;
	}
	.ts-hours-table .day  { color: #6c757d; font-weight: 600; }
	.ts-hours-table .time { color: #1a1d22; font-weight: 700; }
	.ts-hours-table .time.closed { color: #b91c1c; }
	.ts-hours-table .time.unspec { color: #9aa1a8; font-weight: 500; font-style: italic; }
	.ts-hours-table .row-today { color: #0f766e; }
	.ts-hours-table .row-today .day,
	.ts-hours-table .row-today .time { color: #0f766e; }

	.ts-rest-grid {
		display: flex; flex-wrap: wrap; gap: .5rem .55rem;
		list-style: none; padding: 0; margin: 0;
	}
	.ts-rest-grid li {
		background: #fff7ed; border: 1px solid #fed7aa; color: #9a3412;
		padding: .35rem .8rem; border-radius: 999px;
		font-size: .82rem; font-weight: 600;
	}

	.ts-counts-grid {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
		gap: .55rem;
		list-style: none; padding: 0; margin: 0;
	}
	.ts-counts-grid li {
		background: linear-gradient(135deg, #ecfeff 0%, #f0fdfa 100%);
		border: 1px solid #99f6e4; border-radius: 8px;
		padding: .65rem .9rem; text-align: center;
	}
	.ts-counts-grid .num   { display: block; font-size: 1.6rem; font-weight: 800;
	                         color: #0f766e; line-height: 1; }
	.ts-counts-grid .label { display: block; font-size: .72rem; color: #6c757d;
	                         text-transform: uppercase; letter-spacing: .08em;
	                         margin-top: .3rem; font-weight: 700; }

	.ts-pay-grid {
		display: flex; flex-wrap: wrap; gap: .4rem .5rem;
		list-style: none; padding: 0; margin: 0;
	}
	.ts-pay-grid li {
		background: #eef2ff; border: 1px solid #c7d2fe; color: #3730a3;
		padding: .3rem .7rem; border-radius: 6px;
		font-size: .78rem; font-weight: 600; letter-spacing: .01em;
	}
	.ts-pay-grid li.fuel { background: #fef3c7; border-color: #fde68a; color: #92400e; }

	.ts-chips {
		display: flex; flex-wrap: wrap; gap: .45rem .55rem;
		list-style: none; padding: 0; margin: 0;
	}
	.ts-chips li {
		display: inline-flex; align-items: center; gap: .4rem;
		background: #f1f5f9; border: 1px solid #e2e8f0; color: #1e293b;
		padding: .35rem .75rem; border-radius: 999px;
		font-size: .82rem; font-weight: 600;
	}
	.ts-chips li i { color: #0f766e; font-size: .85rem; }
	.ts-chips-osm li { background: #f5f3ff; border-color: #ddd6fe; color: #4338ca; }
	.ts-chips-osm li i { color: #6366f1; }
	.ts-chips-fuel li { background: #fff7ed; border-color: #fed7aa; color: #9a3412; }
	.ts-chips-fuel li i { color: #ea580c; }
	.ts-chips-cuisine li { background: #fef3c7; border-color: #fde68a; color: #78350f; }
	.ts-chips-cuisine li i { color: #d97706; }

	.ts-counts-grid li i { color: #0f766e; font-size: .9rem; margin-bottom: .25rem; display: block; }

	.ts-osm-small {
		font-size: .65rem; font-weight: 600; color: #6c757d;
		text-transform: uppercase; letter-spacing: .12em;
		margin-left: .55rem;
	}
	.ts-osm-hl {
		display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
		gap: .55rem;
		list-style: none; padding: 0; margin: 0;
	}
	.ts-osm-hl li {
		display: flex; align-items: center; gap: .65rem;
		background: #f8fafc; border: 1px solid #e2e8f0; border-left: 3px solid #6366f1;
		border-radius: 8px; padding: .65rem .85rem;
	}
	.ts-osm-hl li i { font-size: 1.15rem; color: #6366f1; flex: 0 0 auto; }
	.ts-osm-hl li .lbl { font-weight: 700; font-size: .88rem; color: #1a1d22; }
	.ts-osm-hl li .val { font-size: .78rem; color: #64748b; margin-left: auto; font-weight: 600; }
	.ts-osm-hl li.good  { border-left-color: #16a34a; background: #f0fdf4; }
	.ts-osm-hl li.good  i { color: #16a34a; }
	.ts-osm-hl li.warn  { border-left-color: #ea580c; background: #fff7ed; }
	.ts-osm-hl li.warn  i { color: #ea580c; }
	.ts-osm-hl li.neutral { border-left-color: #6366f1; }

	.ts-osm-info {
		width: 100%; border-collapse: separate; border-spacing: 0;
		background: #fff; border: 1px solid #e9ecef; border-radius: 8px;
		overflow: hidden;
	}
	.ts-osm-info th, .ts-osm-info td {
		padding: .55rem .85rem; text-align: left; vertical-align: top;
		border-bottom: 1px solid #f1f5f9; font-size: .88rem;
	}
	.ts-osm-info tr:last-child th, .ts-osm-info tr:last-child td { border-bottom: none; }
	.ts-osm-info th {
		background: #f8fafc; color: #475569; font-weight: 700;
		width: 200px; white-space: nowrap;
	}
	.ts-osm-info th i { color: #4338ca; margin-right: .35rem; }
	.ts-osm-info td { color: #1a1d22; word-break: break-word; }
	.ts-osm-info td a { color: #0f766e; text-decoration: none; word-break: break-all; }
	.ts-osm-info td a:hover { text-decoration: underline; }

	.ts-osm-subhead {
		font-size: .75rem; text-transform: uppercase; letter-spacing: .1em;
		color: #4338ca; font-weight: 700; margin: 1rem 0 .5rem;
	}
	.ts-osm-subhead i { margin-right: .35rem; }

	.ts-osm-raw-wrap summary {
		cursor: pointer; padding: .55rem .85rem;
		background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px;
		font-size: .82rem; font-weight: 600; color: #475569;
		list-style: none;
	}
	.ts-osm-raw-wrap summary::-webkit-details-marker { display: none; }
	.ts-osm-raw-wrap summary::before { content: "▶ "; color: #94a3b8; margin-right: .35rem; transition: transform .15s; display: inline-block; }
	.ts-osm-raw-wrap[open] summary::before { transform: rotate(90deg); }
	.ts-osm-raw-wrap summary i { margin-right: .35rem; color: #6366f1; }
	.ts-osm-raw {
		width: 100%; margin-top: .65rem; border-collapse: collapse;
		font-size: .82rem;
	}
	.ts-osm-raw th, .ts-osm-raw td {
		padding: .35rem .65rem; text-align: left;
		border-bottom: 1px solid #f1f5f9;
	}
	.ts-osm-raw thead th { background: #f8fafc; color: #6c757d; font-size: .7rem;
		text-transform: uppercase; letter-spacing: .08em; font-weight: 700; }
	.ts-osm-raw td code { background: #f1f5f9; padding: .12rem .35rem;
		border-radius: 4px; font-size: .78rem; color: #4338ca; }
	.ts-osm-raw td:nth-child(2) { color: #1a1d22; word-break: break-word; }

	.ts-fuel-chart-wrap {
		background: #fff; border: 1px solid #e9ecef; border-radius: 10px;
		padding: 1rem 1.1rem .85rem; position: relative;
	}
	.ts-fuel-chart-wrap canvas { max-height: 320px; }
	.ts-fuel-chart-meta {
		display: flex; justify-content: space-between; align-items: center;
		flex-wrap: wrap; gap: .5rem; margin-bottom: .55rem;
		font-size: .78rem; color: #64748b;
	}
	.ts-fuel-chart-meta strong { color: #0f766e; }

	.ts-fuel-history {
		font-size: .78rem; color: #6c757d; margin-top: .65rem;
		padding: .55rem .8rem; background: #f8f9fa; border-radius: 6px;
		display: inline-block;
	}
	.ts-fuel-history strong { color: #0f766e; }
	
