/* CNFR fleet simulation — scoped, token-led operational layout. */
.glcp-fleet-simulation {
	box-sizing: border-box;
	width: 100vw;
	max-width: none;
	margin-right: calc( 50% - 50vw );
	margin-left: calc( 50% - 50vw );
	padding: var(--space-content, 24px);
	font-family: var(--font-family-body, sans-serif);
	color: var(--wp--preset--color--textcolor, #000000);
	background: var(--wp--preset--color--background, #ffffff);
}

.glcp-fleet-simulation__header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: var(--space-grid, 30px);
	padding: 0 0 var(--space-content, 24px);
	border-bottom: 1px solid var(--wp--preset--color--border, #a5a5a5);
}

.glcp-fleet-simulation__header h1 {
	max-width: 16ch;
	margin-top: 0;
	margin-bottom: 10px;
	font-family: var(--font-family-ui, sans-serif);
	color: var(--wp--preset--color--heading, #000000);
}

.glcp-fleet-simulation__header p { margin-top: 0; margin-bottom: 0; }
.glcp-fleet-simulation__eyebrow {
	margin-top: 0;
	margin-bottom: 8px !important;
	font-family: var(--font-family-ui, sans-serif);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--brand-hover, #393939);
}

.glcp-fleet-simulation__metrics {
	display: flex;
	gap: clamp( 20px, 4vw, 56px );
	margin: 0;
}
.glcp-fleet-simulation__metrics div { min-width: 72px; }
.glcp-fleet-simulation__metrics dt {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gs-colorcontrol-dark, #585858);
}
.glcp-fleet-simulation__metrics dd {
	margin: 4px 0 0;
	font-family: var(--font-family-ui, sans-serif);
	font-size: clamp( 1.2rem, 2vw, 1.75rem );
	font-weight: 700;
}

.glcp-fleet-simulation__workspace {
	display: grid;
	grid-template-columns: 1fr;
	margin-top: var(--space-content, 24px);
	border: 1px solid var(--wp--preset--color--card-border, #cacaca);
	background: var(--wp--preset--color--card-base, #ffffff);
}

.glcp-fleet-simulation__controls {
	display: grid;
	grid-template-columns: repeat( 5, minmax( 150px, 1fr ) );
	align-items: end;
	gap: 18px;
	padding: 20px 24px;
	border-bottom: 1px solid var(--wp--preset--color--card-border, #cacaca);
	background: var(--gs-colorsurface-subtle, #f6f6f6);
}
.glcp-fleet-simulation__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.glcp-fleet-simulation__actions button {
	min-height: 42px;
	padding: 0 12px;
	border: 1px solid var(--wp--preset--color--base, #000000);
	border-radius: var(--radius-control, 0);
	font-family: var(--font-family-ui, sans-serif);
	font-weight: 700;
	cursor: pointer;
	transition: var(--transition-standard, 0.3s ease);
}
.glcp-fleet-simulation__play { color: var(--wp--preset--color--text-on-brand, #ffffff); background: var(--wp--preset--color--base, #000000); }
.glcp-fleet-simulation__reset { color: var(--wp--preset--color--base, #000000); background: var(--wp--preset--color--background, #ffffff); }
.glcp-fleet-simulation__actions button:hover,
.glcp-fleet-simulation__actions button:focus-visible { border-color: var(--wp--preset--color--brand, #e6ae48); outline: 2px solid var(--wp--preset--color--brand, #e6ae48); outline-offset: 2px; }
.glcp-fleet-simulation__actions button:disabled { cursor: not-allowed; opacity: 0.55; }

.glcp-fleet-simulation__field { display: grid; gap: 8px; font-family: var(--font-family-ui, sans-serif); font-weight: 700; }
.glcp-fleet-simulation__clock { font-size: 1.7rem; font-variant-numeric: tabular-nums; }
.glcp-fleet-simulation__timeline { width: 100%; accent-color: var(--wp--preset--color--brand, #e6ae48); }
.glcp-fleet-simulation__speed,
.glcp-fleet-simulation__route-filter,
.glcp-fleet-simulation__operation-filter { min-height: 40px; border: 1px solid var(--wp--preset--color--border, #a5a5a5); background: var(--wp--preset--color--background, #ffffff); }
.glcp-fleet-simulation__status { min-height: 2.8em; margin-top: 0; margin-bottom: 0; font-size: 0.9rem; line-height: 1.45; }
.glcp-fleet-simulation__live-status { margin: 0; font-size: 0.82rem; font-weight: 700; }
.glcp-fleet-simulation__toggle { display: flex; align-items: center; gap: 8px; min-height: 40px; font-family: var(--font-family-ui, sans-serif); font-size: 0.88rem; font-weight: 700; cursor: pointer; }
.glcp-fleet-simulation__toggle input { width: 18px; height: 18px; accent-color: var(--wp--preset--color--brand, #e6ae48); }
.glcp-fleet-simulation__vehicles { margin: auto 0 0; padding: 0; list-style: none; }
.glcp-fleet-simulation__vehicles li { display: flex; align-items: center; gap: 8px; margin: 6px 0; font-size: 0.86rem; }
.glcp-fleet-simulation__swatch { width: 18px; height: 4px; }

.glcp-fleet-simulation__map-shell { position: relative; min-width: 0; }
.glcp-fleet-simulation__map { width: 100%; height: 68vh; height: 68dvh; min-height: 420px; background: var(--gs-colorsurface-subtle, #f6f6f6); }
.glcp-fleet-simulation__expand{position:absolute;z-index:30;top:12px;left:12px;min-height:40px;padding:0 12px;border:1px solid #000;color:#fff;background:#000;font-weight:700;cursor:pointer}.glcp-fleet-simulation__map-shell.is-expanded{position:fixed;z-index:100000;inset:0;width:100vw;height:100vh;background:#fff}.glcp-fleet-simulation__map-shell.is-expanded .glcp-fleet-simulation__map{height:100vh;min-height:100vh}body.cnfr-map-expanded{overflow:hidden}
.glcp-fleet-simulation__map > p { padding: 24px; margin-top: 0; margin-bottom: 0; }
.glcp-fleet-simulation__vehicle,
.glcp-fleet-simulation__stop,
.glcp-fleet-simulation__depot {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #ffffff;
	color: #ffffff;
	font: 700 11px/1 var(--font-family-ui, sans-serif);
	box-shadow: 0 2px 5px rgba( 0, 0, 0, 0.38 );
}
.glcp-fleet-simulation__vehicle { width: 34px; height: 24px; border-radius: 3px; z-index: 4; cursor: pointer; }
.glcp-fleet-simulation__live-vehicle { box-sizing: border-box; display: flex; align-items: center; justify-content: center; width: 32px; height: 22px; color: var(--cnfr-live-vehicle-color, #0b6e4f); filter: drop-shadow( 0 0 1px #0b6e4f ) drop-shadow( 0 3px 3px rgba( 0, 0, 0, 0.42 ) ); cursor: pointer; }
.glcp-fleet-simulation__live-vehicle svg { display: block; width: 100%; height: 100%; overflow: visible; }
.glcp-fleet-simulation__live-car-body { fill: var(--cnfr-live-vehicle-color, #0b6e4f) !important; stroke: #ffffff; stroke-width: 1.7; stroke-linejoin: round; }
.glcp-fleet-simulation__live-car-window { fill: #ffffff; fill-opacity: 0.88; }
.glcp-fleet-simulation__live-car-wheel { fill: #202020; stroke: #ffffff; stroke-width: 1.2; }
.glcp-fleet-simulation__live-vehicle.is-stale { opacity: 0.78; filter: drop-shadow( 0 0 2px #c46a00 ) drop-shadow( 0 3px 3px rgba( 0, 0, 0, 0.4 ) ); }
.glcp-fleet-simulation__live-vehicle.is-offline { opacity: 0.58; filter: drop-shadow( 0 0 2px #585858 ) drop-shadow( 0 3px 3px rgba( 0, 0, 0, 0.3 ) ); }
.glcp-fleet-simulation__live-vehicle.is-history { z-index: 3; outline: 2px dashed #ffffff; outline-offset: 3px; border-radius: 4px; filter: drop-shadow( 0 0 2px #202020 ) drop-shadow( 0 3px 3px rgba( 0, 0, 0, 0.38 ) ); }
.glcp-fleet-simulation__stop { width: auto; min-width: 30px; height: 22px; padding: 0 4px; border-radius: 11px; white-space: nowrap; cursor: pointer; }
.glcp-fleet-simulation__stop.is-operational-warning { border: 3px solid #b3131b; color: #fff; box-shadow: 0 0 0 3px #fff, 0 0 0 6px #b3131b; }
.glcp-fleet-simulation__depot { width: 28px; height: 28px; border-radius: 2px; background: var(--wp--preset--color--base, #000000); cursor: pointer; }
.glcp-fleet-simulation__garage{position:relative;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:2px solid #fff;border-radius:6px;color:#fff;background:#111;box-shadow:0 3px 8px rgba(0,0,0,.42);cursor:pointer}.glcp-fleet-simulation__garage svg{width:28px;height:28px;fill:currentColor}.glcp-fleet-simulation__garage-count{position:absolute;right:-7px;top:-8px;display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;border:2px solid #fff;border-radius:10px;color:#fff;background:#b3131b;font:800 11px/1 var(--font-family-ui,sans-serif)}
.glcp-fleet-simulation__garage-list{display:grid;gap:7px;margin-top:12px}.glcp-fleet-simulation__garage-list button{position:relative;min-height:38px;padding:7px 10px 7px 30px;border:1px solid #8c8f94;color:#111;background:#fff;text-align:left;font-weight:700;cursor:pointer}.glcp-fleet-simulation__garage-list button::before{content:"";position:absolute;left:10px;top:50%;width:11px;height:11px;border-radius:50%;background:var(--cnfr-garage-vehicle-color,#0b6e4f);transform:translateY(-50%)}.glcp-fleet-simulation__garage-back{width:100%;min-height:38px;margin-top:12px;border:1px solid #111;color:#111;background:#fff;font-weight:700;cursor:pointer}
.glcp-fleet-simulation__popup { min-width: min( 270px, 72vw ); color: var(--wp--preset--color--card-text, #000000); font-family: var(--font-family-body, sans-serif); }
.glcp-fleet-simulation__popup h3 { margin: 0 28px 10px 0; overflow-wrap: anywhere; font-family: var(--font-family-ui, sans-serif); font-size: 1rem; line-height: 1.25; letter-spacing: normal; text-transform: none; }
.glcp-fleet-simulation__popup p { display: grid; grid-template-columns: minmax( 105px, 0.8fr ) minmax( 0, 1.2fr ); gap: 10px; margin: 0; padding: 6px 0; border-bottom: 1px solid var(--wp--preset--color--card-border, #cacaca); font-size: 0.82rem; line-height: 1.35; }
.glcp-fleet-simulation__popup p:last-child { border-bottom: 0; }
.glcp-fleet-simulation__popup p.is-operational-warning { margin-bottom: 8px; padding: 9px; border: 1px solid #b3131b; background: #fcf0f1; color: #8a2424; }
.glcp-fleet-simulation__popup strong { font-family: var(--font-family-ui, sans-serif); }
.glcp-fleet-simulation .maplibregl-popup{z-index:20}.glcp-fleet-simulation .maplibregl-popup-content { max-height: min( 520px, 70vh ); overflow: auto; padding: 18px; border-radius: 14px; box-shadow: 0 16px 38px rgba( 0, 0, 0, 0.2 ); }
.glcp-fleet-simulation .maplibregl-popup-close-button { top: 6px; right: 7px; width: 28px; height: 28px; font-size: 20px; }
.glcp-fleet-simulation__notice { padding: 18px; border: 1px solid var(--wp--preset--color--border, #a5a5a5); background: var(--gs-colorsurface-subtle, #f6f6f6); }
.glcp-fleet-simulation__alerts { display: grid; gap: 8px; margin: 0 0 18px; }
.glcp-fleet-simulation__alert { margin: 0; padding: 11px 13px; border-left: 4px solid; font-weight: 700; }
.glcp-fleet-simulation__alert--warning { border-color: #c46a00; background: #fff8e5; color: #713b00; }
.glcp-fleet-simulation__alert--danger { border-color: #b3131b; background: #fcf0f1; color: #8a2424; }
.glcp-fleet-simulation__topbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:20px}.glcp-fleet-simulation__date-filter{display:flex;align-items:end;gap:10px;margin:0}.glcp-fleet-simulation__date-filter label{display:grid;gap:5px;font-weight:700}.glcp-fleet-simulation__date-filter input,.glcp-fleet-simulation__date-filter button{min-height:42px;padding:0 12px;border:1px solid #000;background:#fff;color:#111;color-scheme:light}.glcp-fleet-simulation__date-filter button{color:#fff;background:#000;font-weight:700}.glcp-fleet-simulation__stats-button{min-height:42px;padding:0 14px;border:1px solid #000;color:#fff;background:#000;font-weight:700;cursor:pointer}.glcp-fleet-simulation__stats-dialog{width:min(1180px,calc(100vw - 32px));max-height:84vh;padding:0;border:1px solid #000;color:#000;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.32)}.glcp-fleet-simulation__stats-dialog::backdrop{background:rgba(0,0,0,.55)}.glcp-fleet-simulation__stats-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #cacaca}.glcp-fleet-simulation__stats-dialog-head h2{margin:0}.glcp-fleet-simulation__stats-dialog-head button{width:42px;height:42px;border:1px solid #000;background:#fff;font-size:24px;cursor:pointer}.glcp-fleet-simulation__stats-table-wrap{overflow:auto}.glcp-fleet-simulation__stats-table{width:100%;border-collapse:collapse}.glcp-fleet-simulation__stats-table th,.glcp-fleet-simulation__stats-table td{padding:10px;border:1px solid #cacaca;text-align:left;vertical-align:top;white-space:nowrap}.glcp-fleet-simulation__stats-table thead th{position:sticky;top:0;background:#f6f6f6}.glcp-fleet-simulation__stats-table tfoot th,.glcp-fleet-simulation__stats-table tfoot td{border-top:2px solid #000;background:#f0f0f0;font-weight:800}
.glcp-fleet-simulation__table-wrap{margin-top:24px;overflow:auto}.glcp-fleet-simulation__orders{width:100%;border-collapse:collapse;background:#fff}.glcp-fleet-simulation__orders th,.glcp-fleet-simulation__orders td{padding:10px;border:1px solid var(--wp--preset--color--card-border,#cacaca);text-align:left;vertical-align:top}.glcp-fleet-simulation__orders th{background:var(--gs-colorsurface-subtle,#f6f6f6)}.glcp-fleet-simulation__orders .glcp-fleet-simulation__swatch{display:inline-block;margin-right:7px}.glcp-fleet-simulation__row-links,.glcp-fleet-simulation__row-actions,.glcp-fleet-simulation__row-actions [data-cnfr-failure-controls]{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.glcp-fleet-simulation__row-links,.glcp-fleet-simulation__row-actions{margin-top:8px}.glcp-fleet-simulation__row-links a,.glcp-fleet-simulation__row-actions button,.glcp-fleet-simulation__row-actions select{min-height:36px;padding:7px 9px;border:1px solid #000;background:#fff;color:#000;font-weight:700;text-decoration:none}.glcp-fleet-simulation__row-actions [data-cnfr-submit-status="delivered"]{color:#fff;background:#0b6e4f}.glcp-fleet-simulation__row-actions [data-cnfr-show-failure],.glcp-fleet-simulation__row-actions [data-cnfr-submit-status="failed"]{color:#fff;background:#b3131b}.glcp-fleet-simulation__row-actions [hidden]{display:none!important}.glcp-fleet-simulation__popup-links{display:flex;gap:12px;margin-top:12px}.glcp-fleet-simulation__popup-links a{display:inline-flex;padding:8px 10px;border:1px solid #000;color:#000;font-weight:700;text-decoration:none}

@media (max-width: 999.98px) {
	.glcp-fleet-simulation { padding: var(--space-content-tablet, 20px); }
	.glcp-fleet-simulation__header { align-items: start; flex-direction: column; }
	.glcp-fleet-simulation__workspace { grid-template-columns: 1fr; }
	.glcp-fleet-simulation__controls { display: grid; grid-template-columns: repeat( 2, minmax( 0, 1fr ) ); border-right: 0; border-bottom: 1px solid var(--wp--preset--color--card-border, #cacaca); }
	.glcp-fleet-simulation__vehicles { grid-column: 1 / -1; columns: 2; }
	.glcp-fleet-simulation__map { min-height: 540px; }
}

@media (max-width: 689.98px) {
	.glcp-fleet-simulation { padding: var(--space-content-mobile, 18px); }
	.glcp-fleet-simulation__metrics { width: 100%; justify-content: space-between; gap: 12px; }
	.glcp-fleet-simulation__workspace { min-height: 0; }
	.glcp-fleet-simulation__controls { grid-template-columns: 1fr; padding: 18px; }
	.glcp-fleet-simulation__vehicles { grid-column: auto; columns: 1; }
	.glcp-fleet-simulation__map { min-height: 480px; }
	.glcp-fleet-simulation__popup p { grid-template-columns: 1fr; gap: 2px; }
}

@media (prefers-reduced-motion: reduce) {
	.glcp-fleet-simulation__actions button { transition: none; }
}
