:root {
    color-scheme: light;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #172033;
    background: #f4f6fa;
}

* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #f4f6fa; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; padding: 10px 14px; transform: translateY(-160%); border-radius: 8px; color: white; background: #172554; font-weight: 700; }
.skip-link:focus { transform: translateY(0); }
.topbar { position: relative; z-index: 20; min-height: 64px; padding: 0 5vw; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: white; background: #172554; box-shadow: 0 2px 10px #17255426; }
.topbar-main { display: flex; align-items: center; gap: 34px; }
.brand { color: inherit; font-size: 1.05rem; font-weight: 750; text-decoration: none; }
.user { color: #dbeafe; font-size: .9rem; }
.navigation-groups, .navigation-menu { margin: 0; padding: 0; list-style: none; }
.navigation-groups { display: flex; align-items: stretch; gap: 8px; }
.navigation-group { position: relative; }
.navigation-trigger { min-height: 64px; padding: 0 30px 0 14px; display: flex; align-items: center; border-bottom: 2px solid transparent; color: #dbeafe; font-size: .9rem; font-weight: 700; cursor: pointer; list-style: none; white-space: nowrap; }
.navigation-trigger::-webkit-details-marker { display: none; }
.navigation-trigger::after { content: ""; position: absolute; right: 13px; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .15s ease; }
.navigation-trigger:hover, .navigation-trigger.section-active, .navigation-group[open] .navigation-trigger { color: white; }
.navigation-trigger.section-active { border-bottom-color: #a5b4fc; }
.navigation-group[open] .navigation-trigger::after { transform: translateY(2px) rotate(225deg); }
.navigation-menu { position: absolute; top: calc(100% + 8px); left: 0; min-width: 280px; padding: 8px; border: 1px solid #dbe1ea; border-radius: 12px; background: white; box-shadow: 0 18px 45px #0f172a2e; }
.navigation-menu::before { content: ""; position: absolute; right: 0; bottom: 100%; left: 0; height: 9px; }
.navigation-menu-end { right: 0; left: auto; }
.navigation-menu a { padding: 11px 12px; display: block; border-radius: 8px; color: #334155; font-size: .88rem; font-weight: 700; line-height: 1.3; text-decoration: none; }
.navigation-menu a:hover { color: #312e81; background: #f1f5f9; }
.navigation-menu a.active { color: #3730a3; background: #eef2ff; }
.container { width: min(1180px, 90vw); margin: 0 auto; padding: 48px 0 72px; }
.hero { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.eyebrow { margin: 0 0 8px; color: #4338ca; font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.05; letter-spacing: -.035em; }
.lede { max-width: 680px; margin: 14px 0 0; color: #5d6678; font-size: 1.05rem; }
.primary { border: 0; border-radius: 10px; padding: 12px 18px; color: white; background: #4f46e5; font-weight: 700; white-space: nowrap; cursor: pointer; }
.button-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.primary:disabled { cursor: not-allowed; opacity: .55; }
.secondary { border: 1px solid #cbd5e1; border-radius: 10px; padding: 11px 18px; color: #334155; background: white; font-weight: 700; cursor: pointer; }
.secondary:disabled { cursor: not-allowed; opacity: .55; }
:where(a, button, summary):focus-visible { outline: 3px solid #a5b4fc; outline-offset: 3px; }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 28px 0; }
.cards article { min-height: 118px; padding: 22px; display: grid; align-content: start; gap: 9px; border: 1px solid #e2e7ef; border-radius: 14px; background: white; box-shadow: 0 8px 24px #1725540a; }
.cards strong { color: #312e81; font-size: 1.05rem; }
.cards span { color: #657083; line-height: 1.45; }
.panel { overflow: hidden; border: 1px solid #e2e7ef; border-radius: 14px; background: white; box-shadow: 0 8px 24px #1725540a; }
.panel-heading { padding: 20px 24px; border-bottom: 1px solid #e8ecf2; }
.panel-heading h2 { margin: 0; font-size: 1.15rem; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 14px 20px; border-bottom: 1px solid #edf0f5; text-align: left; white-space: nowrap; }
th { color: #667085; background: #fafbfc; font-size: .77rem; letter-spacing: .04em; text-transform: uppercase; }
.status { display: inline-flex; border-radius: 999px; padding: 4px 9px; color: #3730a3; background: #eef2ff; font-size: .8rem; font-weight: 700; }
.empty { padding: 48px 24px; text-align: center; }
.empty h3 { margin: 0 0 8px; }
.empty p { margin: 0; color: #667085; }
.empty .button-link { margin-top: 22px; }

.compact-hero { align-items: center; }
.page-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.page-heading h1 { font-size: clamp(1.8rem, 3.2vw, 2.7rem); }
.back-link { display: inline-block; margin-bottom: 18px; color: #4338ca; font-size: .9rem; font-weight: 700; text-decoration: none; }
.alert { margin-bottom: 20px; padding: 16px 20px; border-radius: 12px; }
.alert-error { border: 1px solid #fecaca; color: #991b1b; background: #fff1f2; }
.alert-info { border: 1px solid #bfdbfe; color: #1e3a8a; background: #eff6ff; }
.alert-success { border: 1px solid #a7f3d0; color: #065f46; background: #ecfdf5; }
.alert ul { margin: 8px 0 0; padding-left: 20px; }

.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.profile-card { padding: 24px; border: 1px solid #e2e7ef; border-radius: 14px; color: inherit; background: white; box-shadow: 0 8px 24px #1725540a; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
.profile-card:hover { transform: translateY(-2px); box-shadow: 0 12px 32px #17255414; }
.profile-card-heading { display: flex; justify-content: space-between; gap: 16px; }
.profile-card h2 { margin: 4px 0 0; font-size: 1.25rem; }
.kicker { color: #4f46e5; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.arrow { color: #4f46e5; font-size: 1.5rem; }
.template-description { min-height: 42px; margin: 18px 0; color: #64748b; font-size: .88rem; line-height: 1.45; }
.profile-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 24px 0 18px; }
.profile-kpis div { min-width: 0; }
.profile-kpis dt { color: #64748b; font-size: .72rem; }
.profile-kpis dd { margin: 5px 0 0; font-weight: 750; }
.card-meta { margin: 0; color: #64748b; font-size: .8rem; }

.cost-form { display: grid; gap: 16px; }
.form-card { padding: 22px; border: 1px solid #e2e7ef; border-radius: 14px; background: white; box-shadow: 0 8px 24px #17255408; }
.profile-name-card { max-width: 600px; }
.form-card > label, .field label { display: block; margin-bottom: 7px; color: #334155; font-size: .82rem; font-weight: 750; }
.optional { color: #64748b; font-size: .72rem; font-weight: 600; }
.form-card input, .form-card select, .form-card textarea { width: 100%; border: 1px solid #cbd5e1; border-radius: 9px; padding: 10px 11px; color: #172033; background: white; font: inherit; }
.form-card input:focus, .form-card select:focus, .form-card textarea:focus { outline: 3px solid #c7d2fe; border-color: #6366f1; }
.form-card input[readonly] { color: #64748b; background: #f8fafc; }
.form-section { padding: 0; }
.form-section summary, .input-audit summary { padding: 20px 22px; display: flex; justify-content: space-between; gap: 16px; cursor: pointer; font-weight: 800; list-style: none; }
.form-section summary::-webkit-details-marker, .input-audit summary::-webkit-details-marker { display: none; }
.form-section[open] summary { border-bottom: 1px solid #edf0f5; }
.summary-hint { color: #64748b; font-size: .78rem; font-weight: 600; }
.field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 18px; padding: 22px; }
.field { min-width: 0; }
.input-with-unit { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.input-with-unit > span { min-width: 38px; color: #64748b; font-size: .8rem; }
.field-help { margin: 7px 0 0; color: #64748b; font-size: .78rem; line-height: 1.4; }
.form-actions { display: flex; justify-content: end; gap: 12px; margin-top: 4px; }

.hero-actions { display: flex; align-items: center; gap: 10px; }
.workflow-steps { margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; list-style: none; }
.workflow-steps li { padding: 11px 14px; display: flex; align-items: center; gap: 9px; border: 1px solid #e2e7ef; border-radius: 10px; color: #64748b; background: #f8fafc; font-size: .82rem; }
.workflow-steps li span { width: 24px; height: 24px; display: inline-grid; place-items: center; border-radius: 999px; color: #64748b; background: #e2e8f0; font-size: .72rem; }
.workflow-steps li.active { border-color: #c7d2fe; color: #3730a3; background: #eef2ff; }
.workflow-steps li.active span { color: white; background: #4f46e5; }
.setup-form { max-width: 920px; }
.customer-form { max-width: 940px; }
.form-card-heading { margin-bottom: 20px; display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.form-card-heading h2 { margin: 4px 0 0; font-size: 1.25rem; }
.form-card-heading p:not(.kicker) { max-width: 640px; margin: 8px 0 0; color: #64748b; font-size: .88rem; line-height: 1.45; }
.integration-placeholder { margin-top: 18px; padding: 15px 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border: 1px dashed #b8c2d1; border-radius: 10px; background: #f8fafc; }
.integration-placeholder div { display: grid; gap: 4px; }
.integration-placeholder span:not(.status) { color: #64748b; font-size: .82rem; line-height: 1.4; }
.status-muted { color: #475569; background: #e2e8f0; white-space: nowrap; }
.status-success { color: #065f46; background: #d1fae5; white-space: nowrap; }
.customer-field-grid { padding: 0; }
.customer-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.customer-list-heading p { margin: 5px 0 0; color: #64748b; font-size: .8rem; }
.customer-table tbody th { color: #172033; background: white; font-size: .9rem; letter-spacing: 0; text-transform: none; }
.customer-table td { vertical-align: top; }
.customer-table-secondary { display: block; margin-top: 4px; color: #64748b; font-size: .76rem; }
.customer-table-action { text-align: right; }
.customer-table-action .secondary { padding: 7px 12px; font-size: .8rem; }
.base-field-grid { grid-template-columns: 1fr; padding: 0; }
.field-span-2 { grid-column: span 2; }
.selection-result { max-width: 920px; margin-top: 28px; }
.selection-summary { padding: 22px 24px; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 18px; }
.selection-summary div { min-width: 0; display: grid; gap: 5px; }
.selection-summary span, .selection-summary small { color: #64748b; font-size: .76rem; }
.selection-summary strong { overflow-wrap: anywhere; }
.next-step-placeholder { margin: 0 24px 24px; padding: 16px 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-radius: 11px; background: #f8fafc; }
.next-step-placeholder div { display: grid; gap: 4px; }
.next-step-placeholder span { color: #64748b; font-size: .82rem; }
.template-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.template-placeholder { padding: 42px 24px; }
.template-placeholder .status { margin-bottom: 14px; }

.master-data-grid { max-width: 760px; }
.master-data-grid .template-description { min-height: 0; }
.refresh-form { flex: 0 0 auto; margin: 0; }
.master-data-summary strong { font-variant-numeric: tabular-nums; }
.source-panel { margin-bottom: 20px; }
.metadata-grid { margin: 0; padding: 22px 24px; display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 22px; }
.metadata-grid div { min-width: 0; }
.metadata-grid dt { margin-bottom: 6px; color: #64748b; font-size: .78rem; font-weight: 700; }
.metadata-grid dd { margin: 0; line-height: 1.45; overflow-wrap: anywhere; }
.metadata-grid a { color: #4338ca; font-weight: 700; }
.metadata-hint { display: block; margin-top: 4px; color: #64748b; font-size: .78rem; }
.refresh-note { margin: 0 0 20px; }
.refresh-job small { display: block; margin-top: 8px; opacity: .8; }
.alert p { margin: 7px 0 0; line-height: 1.45; }
.country-data-panel { margin-top: 20px; }
.master-data-table .number { text-align: right; font-variant-numeric: tabular-nums; }
.master-data-table tbody th { color: #172033; background: white; font-size: .9rem; letter-spacing: 0; text-transform: none; }
.country-code { display: block; margin-top: 3px; color: #64748b; font-size: .72rem; font-weight: 600; }
.source-file { display: block; margin-top: 5px; color: #4338ca; font-size: .72rem; font-weight: 650; text-transform: none; }
.hash-value { display: block; max-width: 18rem; white-space: normal; overflow-wrap: anywhere; color: #475569; font-size: .72rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.ptv-search-form, .ptv-result-selection { max-width: 1040px; }
.ptv-location-inputs, .ptv-candidate-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.ptv-location-inputs fieldset, .candidate-list { min-width: 0; margin: 0; padding: 18px; border: 1px solid #e2e7ef; border-radius: 12px; }
.ptv-location-inputs legend, .candidate-list legend { padding: 0 7px; color: #312e81; font-weight: 800; }
.ptv-postal-row { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(150px, 1fr); gap: 14px; }
.ptv-address-details { margin-top: 14px; display: grid; grid-template-columns: 1fr 1fr .55fr; gap: 12px; }
.ptv-search-form select, .ptv-search-form input { width: 100%; border: 1px solid #cbd5e1; border-radius: 9px; padding: 10px 11px; color: #172033; background: white; font: inherit; }
.ptv-profile-field { max-width: 680px; margin-top: 20px; }
.candidate-list { display: grid; align-content: start; gap: 10px; }
.candidate-option { padding: 13px 14px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 11px; border: 1px solid #dbe1ea; border-radius: 10px; background: #fafbfc; cursor: pointer; }
.candidate-option:has(input:checked) { border-color: #818cf8; background: #eef2ff; }
.candidate-option input { margin-top: 4px; }
.candidate-option span { min-width: 0; display: grid; gap: 4px; }
.candidate-option strong { overflow-wrap: anywhere; }
.candidate-option small { color: #64748b; line-height: 1.35; }
.ptv-result-selection { margin-top: 20px; }
.fixed-via-card { margin: 0 0 18px; padding: 15px 17px; display: grid; gap: 5px; border: 1px solid #a7f3d0; border-radius: 11px; background: #ecfdf5; }
.fixed-via-card small { color: #047857; }
.area-reference-note { margin-bottom: 16px; }
.ptv-route-result { margin-top: 42px; }
.ptv-route-result .section-heading h2 { overflow-wrap: anywhere; }
.ptv-country-table tbody th { color: #172033; background: white; font-size: .9rem; letter-spacing: 0; text-transform: none; }
.ptv-vehicle-panel { margin-top: 20px; }
.ptv-disclaimer { margin-top: 20px; }
.route-leg-grid { margin-bottom: 18px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.route-leg-grid article { padding: 18px 20px; display: grid; gap: 6px; border: 1px solid #dbe1ea; border-radius: 12px; background: white; }
.route-leg-grid span, .route-leg-grid small { color: #64748b; font-size: .78rem; }
.route-leg-grid strong { font-size: 1.2rem; }

.ptv-lab-tabs { margin: -10px 0 24px; display: flex; gap: 8px; }
.ptv-lab-tabs a { border: 1px solid #cbd5e1; border-radius: 9px; padding: 9px 13px; color: #475569; background: white; font-size: .82rem; font-weight: 750; text-decoration: none; }
.ptv-lab-tabs a:hover { border-color: #a5b4fc; color: #3730a3; }
.ptv-lab-tabs a.active { border-color: #6366f1; color: white; background: #4f46e5; }
.ptv-planner-shell { display: grid; grid-template-columns: minmax(340px, 390px) minmax(0, 1fr); align-items: start; gap: 20px; }
.ptv-route-planner-form { min-width: 0; }
.ptv-planner-controls { padding: 20px; }
.ptv-stop-list { margin: 0; padding: 0; display: grid; gap: 10px; list-style: none; }
.ptv-stop-row { min-width: 0; padding: 12px; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: start; gap: 10px; border: 1px solid #dbe1ea; border-radius: 11px; background: #fafbfc; transition: border-color .15s ease, box-shadow .15s ease, opacity .15s ease; }
.ptv-stop-row:focus-within { border-color: #818cf8; box-shadow: 0 0 0 3px #e0e7ff; }
.ptv-stop-row.is-dragging { opacity: .55; }
.ptv-stop-row.is-drag-target { border-color: #4f46e5; }
.ptv-stop-marker { width: 27px; height: 27px; display: inline-grid; place-items: center; border-radius: 999px; color: white; background: #4f46e5; font-size: .72rem; font-weight: 850; }
.ptv-stop-field { min-width: 0; }
.ptv-stop-field label { display: block; margin: 1px 0 6px; color: #334155; font-size: .78rem; font-weight: 800; }
.ptv-stop-field input, .ptv-planner-options select { width: 100%; border: 1px solid #cbd5e1; border-radius: 9px; padding: 10px 11px; color: #172033; background: white; font: inherit; }
.ptv-stop-field input:focus, .ptv-planner-options select:focus { border-color: #6366f1; outline: 3px solid #c7d2fe; }
.ptv-stop-hint, .ptv-resolved-address { display: block; margin-top: 6px; color: #64748b; font-size: .7rem; line-height: 1.35; overflow-wrap: anywhere; }
.ptv-resolved-address { color: #047857; }
.ptv-stop-actions { display: grid; grid-template-columns: repeat(2, 28px); gap: 4px; }
.ptv-icon-button { width: 28px; height: 28px; padding: 0; display: inline-grid; place-items: center; border: 1px solid #cbd5e1; border-radius: 7px; color: #475569; background: white; font: inherit; font-weight: 800; cursor: pointer; }
.ptv-icon-button:hover { border-color: #a5b4fc; color: #3730a3; background: #eef2ff; }
.ptv-icon-button:disabled { cursor: not-allowed; opacity: .35; }
.ptv-drag-handle { cursor: grab; letter-spacing: -3px; }
.ptv-drag-handle:active { cursor: grabbing; }
.ptv-remove-stop:hover { border-color: #fca5a5; color: #b91c1c; background: #fff1f2; }
.ptv-autocomplete { position: relative; }
.ptv-suggestions { position: absolute; z-index: 1100; top: calc(100% + 5px); right: 0; left: 0; max-height: 250px; padding: 5px; overflow-y: auto; border: 1px solid #cbd5e1; border-radius: 10px; background: white; box-shadow: 0 15px 35px #0f172a24; }
.ptv-suggestion { width: 100%; padding: 9px 10px; display: grid; gap: 3px; border: 0; border-radius: 7px; color: #334155; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.ptv-suggestion:hover, .ptv-suggestion[aria-selected="true"] { color: #312e81; background: #eef2ff; }
.ptv-suggestion strong { font-size: .8rem; }
.ptv-suggestion small { color: #64748b; font-size: .7rem; }
.ptv-stop-list-actions { margin: 14px 0 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ptv-stop-list-actions .secondary { padding: 9px 10px; font-size: .76rem; }
.ptv-planner-options { padding-top: 18px; display: grid; gap: 16px; border-top: 1px solid #edf0f5; }
.ptv-map-panel { position: relative; z-index: 0; min-width: 0; overflow: hidden; }
.ptv-map-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.ptv-map-heading .eyebrow { margin-bottom: 4px; }
.ptv-route-map { min-height: 620px; color: #64748b; background: #e8edf3; }
.ptv-route-map > p { margin: 0; padding: 28px; }
.ptv-map-layer-note { margin: 0; padding: 13px 18px; border-top: 1px solid #dbe1ea; color: #475569; background: #f8fafc; font-size: .75rem; line-height: 1.45; }
.ptv-map-layer-note strong { color: #334155; }
.ptv-map-layer-note.is-warning { color: #9a3412; background: #fff7ed; }
.ptv-map-layer-note.is-warning strong { color: #7c2d12; }
.ptv-map-fallback { margin: 0; padding: 18px 22px; color: #64748b; }
.ptv-map-stop-icon, .ptv-map-border-icon { background: transparent; border: 0; }
.ptv-map-stop-icon span { width: 30px; height: 30px; display: grid; place-items: center; border: 3px solid white; border-radius: 999px; color: white; background: #4f46e5; box-shadow: 0 3px 10px #0f172a4d; font-size: .72rem; font-weight: 850; }
.ptv-map-border-icon span { width: 22px; height: 22px; display: grid; place-items: center; border: 2px solid white; border-radius: 6px; color: white; background: #0f766e; box-shadow: 0 3px 9px #0f172a40; font-size: .66rem; font-weight: 850; }
.ptv-planner-results .summary-grid { margin-bottom: 20px; }
.ptv-stops-panel, .ptv-detail-panel { margin-top: 20px; }
.ptv-resolved-stops { margin: 0; padding: 20px 24px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; list-style: none; }
.ptv-resolved-stops li { min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: start; }
.ptv-resolved-stops li > span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 999px; color: white; background: #4f46e5; font-size: .72rem; font-weight: 850; }
.ptv-resolved-stops li div { min-width: 0; display: grid; gap: 4px; }
.ptv-resolved-stops strong { overflow-wrap: anywhere; font-size: .85rem; }
.ptv-resolved-stops small { color: #64748b; font-size: .72rem; }
.ptv-detail-panel > summary { padding: 18px 22px; display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; }
.ptv-detail-panel > summary::-webkit-details-marker { display: none; }
.ptv-detail-panel > summary span { font-weight: 800; }
.ptv-detail-panel > summary small { color: #64748b; }
.ptv-detail-panel[open] > summary { border-bottom: 1px solid #e8ecf2; }
.ptv-table-note { margin: 0; padding: 14px 20px; border-top: 1px solid #edf0f5; color: #64748b; background: #fafbfc; font-size: .78rem; line-height: 1.45; }
.ptv-compact-empty { padding: 26px 22px; }
.ptv-maneuver-list { max-height: 520px; margin: 0; padding: 10px 22px; overflow-y: auto; list-style: none; }
.ptv-maneuver-list li { padding: 11px 0; display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 14px; border-bottom: 1px solid #edf0f5; }
.ptv-maneuver-list li:last-child { border-bottom: 0; }
.ptv-maneuver-list li > span { color: #4338ca; font-size: .75rem; font-weight: 800; }
.ptv-maneuver-list div { min-width: 0; display: grid; gap: 4px; }
.ptv-maneuver-list strong { font-size: .83rem; }
.ptv-maneuver-list small { color: #64748b; font-size: .72rem; }

@media (max-width: 980px) {
    .ptv-planner-shell { grid-template-columns: 1fr; }
    .ptv-route-map { min-height: 460px; }
}

.route-foundation-panel { margin-bottom: 20px; }
.route-chain { padding: 24px; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 14px; }
.route-chain div { min-width: 0; display: grid; gap: 5px; }
.route-chain span { color: #64748b; font-size: .75rem; }
.route-chain strong { overflow-wrap: anywhere; }

.pricing-rate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; }
.pricing-formula-note { margin: 20px 0 0; }
.partial-tier-panel { margin-bottom: 16px; }
.partial-tier-table input { min-width: 90px; width: 100%; border: 1px solid #cbd5e1; border-radius: 8px; padding: 8px 9px; font: inherit; text-align: right; }
.partial-tier-table td { padding: 8px 12px; }
.partial-tier-table th.number { text-align: right; }
.table-input-unit { display: grid; grid-template-columns: minmax(70px, 1fr) auto; align-items: center; gap: 6px; }
.table-input-unit span { color: #64748b; font-size: .75rem; }
.partial-tier-explanation { padding: 16px 20px; border-top: 1px solid #e8ecf2; color: #475569; background: #f8fafc; font-size: .84rem; line-height: 1.45; }
.base-pricing-panel { margin-bottom: 20px; }
.base-pricing-metadata { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.base-tier-detail { margin-bottom: 0; }

.time-km-form { max-width: 680px; }
.time-km-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.time-km-table-wrap { max-height: 620px; overflow: auto; }
.time-km-table thead { position: sticky; top: 0; z-index: 1; }
.time-km-table { max-width: 420px; }
.time-km-table .number { text-align: right; font-variant-numeric: tabular-nums; }
.time-km-table td { padding: 6px 16px; }
.time-km-table input { width: 110px; border: 1px solid #cbd5e1; border-radius: 8px; padding: 7px 9px; text-align: right; font: inherit; }
.time-km-change-card { max-width: 680px; }

.postal-reference-panel { margin-top: 20px; }
.postal-reference-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.postal-reference-heading p { margin: 5px 0 0; color: #64748b; font-size: .8rem; }
.reference-tabs { display: flex; gap: 7px; }
.reference-tabs a { border-radius: 8px; padding: 8px 11px; color: #475569; background: #f1f5f9; font-size: .8rem; font-weight: 700; text-decoration: none; }
.reference-tabs a.active { color: white; background: #4f46e5; }
.postal-reference-table-wrap { max-height: 640px; overflow: auto; }
.postal-reference-table thead { position: sticky; top: 0; z-index: 1; }
.reference-method-note { margin-top: 20px; }

.route-distance-job-panel { margin: 20px 0; }
.route-distance-job-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.route-distance-job-heading > div { max-width: 820px; }
.route-distance-job-heading .eyebrow { margin: 0 0 5px; }
.route-distance-job-heading h2 { margin: 0; }
.route-distance-job-heading p:last-child { margin: 8px 0 0; color: #64748b; line-height: 1.5; }
.job-status-badge { flex: 0 0 auto; border-radius: 999px; padding: 7px 11px; color: #475569; background: #f1f5f9; font-size: .76rem; font-weight: 800; }
.job-status-running, .job-status-queued { color: #3730a3; background: #e0e7ff; }
.job-status-succeeded { color: #047857; background: #d1fae5; }
.job-status-failed { color: #b91c1c; background: #fee2e2; }
.route-distance-summary { padding: 0 24px; }
.route-distance-summary .summary-card strong span { display: inline; color: inherit; }
.route-job-progress { margin: 0 24px 20px; padding: 16px 18px; border: 1px solid #c7d2fe; border-radius: 11px; background: #eef2ff; }
.route-job-progress progress { display: block; width: 100%; height: 13px; accent-color: #4f46e5; }
.route-job-progress p { margin: 9px 0 0; color: #3730a3; font-size: .82rem; }
.route-distance-actions { padding: 0 24px 22px; display: flex; align-items: center; gap: 18px; }
.route-distance-actions form { flex: 0 0 auto; display: grid; gap: 10px; }
.route-cost-confirmation { max-width: 420px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 8px; color: #475569; font-size: .78rem; line-height: 1.35; }
.route-cost-confirmation input { margin-top: 2px; }
.route-distance-actions p { margin: 0; color: #64748b; font-size: .8rem; line-height: 1.45; }
.route-live-results { margin: 0 24px 22px; }
.route-live-results h3 { margin: 0 0 10px; font-size: 1rem; }
.route-live-results .table-wrap { max-height: 310px; }
.route-live-errors { margin: 0 24px 22px; }
.route-live-errors ul { margin: 8px 0 0; padding-left: 20px; }
.route-distance-note { margin: 0 0 20px; }

.customer-offer-job-panel { margin: 20px 0 28px; }
.customer-offer-job-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.customer-offer-job-heading > div { max-width: 820px; }
.customer-offer-job-heading .eyebrow { margin: 0 0 5px; }
.customer-offer-job-heading h2 { margin: 0; }
.customer-offer-job-heading p:last-child { margin: 8px 0 0; color: #64748b; line-height: 1.5; }
.offer-prerequisite-grid { padding: 20px 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.offer-prerequisite-grid div { min-width: 0; padding: 14px 15px; display: grid; gap: 5px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; }
.offer-prerequisite-grid div.ready { border-color: #a7f3d0; background: #ecfdf5; }
.offer-prerequisite-grid div.missing { border-color: #fecaca; background: #fff1f2; }
.offer-prerequisite-grid span { color: #64748b; font-size: .73rem; font-weight: 700; }
.offer-prerequisite-grid strong { overflow-wrap: anywhere; font-size: .83rem; }
.offer-prerequisite-grid .ready strong { color: #047857; }
.offer-prerequisite-grid .missing strong { color: #b91c1c; }
.offer-generation-note { margin: 0 24px 20px; padding: 15px 17px; border: 1px solid #bfdbfe; border-radius: 11px; color: #1e3a8a; background: #eff6ff; }
.offer-generation-note p { margin: 6px 0 0; font-size: .82rem; line-height: 1.5; }
.offer-job-summary { padding: 0 24px; }
.offer-job-summary .summary-card strong span { display: inline; color: inherit; }
.offer-job-summary .summary-card small span { display: inline; }
.offer-job-progress { margin-top: 0; }
.offer-live-results { margin-top: 0; }
.offer-live-error { margin: 0 24px 20px; }
.customer-offer-job-actions { padding: 0 24px 24px; display: flex; align-items: end; gap: 24px; }
.customer-offer-job-actions form { flex: 0 0 min(520px, 100%); display: grid; gap: 12px; }
.customer-offer-job-actions > p { max-width: 560px; margin: 0; color: #64748b; font-size: .8rem; line-height: 1.5; }
.offer-vehicle-profile label { display: block; margin-bottom: 7px; color: #334155; font-size: .8rem; font-weight: 750; }
.offer-vehicle-profile select { width: 100%; border: 1px solid #cbd5e1; border-radius: 9px; padding: 10px 11px; color: #172033; background: white; font: inherit; }
.offer-vehicle-profile select:focus { outline: 3px solid #c7d2fe; border-color: #6366f1; }
.offer-job-running-copy { padding: 14px 16px; border-radius: 10px; color: #3730a3 !important; background: #eef2ff; }

.offer-transfer-card { margin-top: 20px; padding: 20px 22px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid #a7f3d0; border-radius: 13px; background: #ecfdf5; }
.offer-transfer-card div { display: grid; gap: 5px; }
.offer-transfer-card form { flex: 0 0 auto; margin: 0; }
.offer-transfer-card strong { color: #065f46; font-size: 1.05rem; }
.offer-transfer-card p { max-width: 760px; margin: 2px 0 0; color: #047857; font-size: .84rem; line-height: 1.45; }
.offer-row-form { max-width: 1040px; }
.offer-area-grid, .offer-distance-grid { padding: 0; }
.offer-area-grid { grid-template-columns: .8fr 1fr 1.3fr; }
.offer-distance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fixed-prehaul-note { margin: 0 0 20px; padding: 14px 16px; display: grid; gap: 4px; border: 1px solid #c7d2fe; border-radius: 10px; background: #eef2ff; }
.fixed-prehaul-note span { color: #6366f1; font-size: .75rem; font-weight: 700; }
.fixed-prehaul-note strong { color: #3730a3; }
.country-offer { margin-top: 42px; }
.country-offer-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.offer-cost-panel { margin-bottom: 18px; }
.offer-cost-table th, .offer-cost-table td { padding: 11px 14px; }
.offer-cost-table tbody th { color: #172033; background: white; font-size: .85rem; letter-spacing: 0; text-transform: none; }
.offer-full-load-price { color: #3730a3; font-weight: 800; background: #eef2ff; }
.customer-matrix-panel { margin-bottom: 26px; }
.customer-matrix-wrap { max-width: 100%; }
.customer-matrix-table { min-width: 100%; width: max-content; }
.customer-matrix-table th, .customer-matrix-table td { padding: 8px 10px; text-align: right; font-variant-numeric: tabular-nums; }
.customer-matrix-table thead th:first-child { position: sticky; left: 0; z-index: 2; min-width: 78px; }
.customer-matrix-table thead th:nth-child(2) { position: sticky; left: 78px; z-index: 2; min-width: 145px; }
.customer-matrix-table tbody th { position: sticky; left: 0; z-index: 1; color: #172033; background: white; font-size: .83rem; letter-spacing: 0; text-align: left; text-transform: none; }
.customer-matrix-table tbody td { min-width: 62px; }

.result-section { margin-top: 48px; }
.section-heading { margin-bottom: 18px; }
.section-heading h2 { margin: 0; font-size: 1.6rem; }
.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 20px; }
.summary-card { min-width: 0; padding: 20px; border: 1px solid #e2e7ef; border-radius: 13px; background: white; }
.summary-card span, .summary-card small { display: block; color: #64748b; }
.summary-card span { font-size: .78rem; font-weight: 700; }
.summary-card strong { display: block; margin: 8px 0 5px; font-size: 1.35rem; }
.summary-card small { font-size: .72rem; line-height: 1.35; }
.primary-kpi { border-color: #c7d2fe; background: #eef2ff; }
.primary-kpi strong { color: #3730a3; }
.country-rates { display: grid; grid-template-columns: repeat(3, 1fr); margin: -5px 0 22px; overflow: hidden; border: 1px solid #e2e7ef; border-radius: 12px; background: white; }
.country-rates div { padding: 14px 18px; display: flex; justify-content: space-between; gap: 10px; border-right: 1px solid #e2e7ef; }
.country-rates div:last-child { border-right: 0; }
.country-rates span { color: #64748b; font-size: .8rem; }
.cost-table-wrap { margin-top: 18px; }
.cost-table .number { text-align: right; font-variant-numeric: tabular-nums; }
.cost-table tfoot th { border-top: 2px solid #cbd5e1; color: #172033; background: #f8fafc; }
.credit-row td { color: #047857; }
.group-badge { display: inline-flex; border-radius: 999px; padding: 4px 8px; font-size: .72rem; font-weight: 750; }
.group-direct { color: #1e40af; background: #dbeafe; }
.group-indirect { color: #6d28d9; background: #ede9fe; }
.group-tax { color: #9a3412; background: #ffedd5; }

.detail-heading { align-items: center; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 18px; align-items: start; }
.detail-main { min-width: 0; }
.detail-sidebar { display: grid; gap: 18px; }
.version-history { margin: 0; padding: 10px; list-style: none; }
.version-history li { border-radius: 9px; }
.version-history li.active { background: #eef2ff; }
.version-history a { padding: 11px 12px; display: grid; gap: 3px; color: inherit; text-decoration: none; }
.version-history span, .version-history small { color: #64748b; font-size: .75rem; }
.input-audit { margin-top: 18px; }
.input-audit[open] summary { border-bottom: 1px solid #edf0f5; }
.audit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; padding: 1px; background: #edf0f5; }
.audit-grid div { min-width: 0; padding: 13px 15px; display: grid; gap: 4px; background: white; }
.audit-grid span { color: #64748b; font-size: .73rem; }
.audit-grid strong { overflow-wrap: anywhere; font-size: .85rem; }

@media (max-width: 760px) {
    .container { width: min(92vw, 1180px); padding-top: 32px; }
    .hero { align-items: stretch; flex-direction: column; }
    .hero-actions { align-items: stretch; flex-direction: column; }
    .primary { width: 100%; }
    .cards { grid-template-columns: 1fr; }
    .topbar { padding: 12px 4vw; align-items: flex-start; flex-wrap: wrap; gap: 8px 16px; }
    .topbar-main { width: 100%; align-items: flex-start; flex-direction: column; gap: 8px; }
    .primary-navigation, .navigation-groups, .navigation-groups > li { width: 100%; }
    .navigation-groups { display: grid; gap: 2px; }
    .navigation-trigger { min-height: 42px; width: 100%; padding-left: 0; }
    .navigation-trigger.section-active { border-bottom-color: transparent; }
    .navigation-menu, .navigation-menu-end { position: static; min-width: 0; margin: 2px 0 8px; border-color: #33457a; background: #1e3269; box-shadow: none; }
    .navigation-menu::before { display: none; }
    .navigation-menu a { color: #dbeafe; }
    .navigation-menu a:hover { color: white; background: #29427f; }
    .navigation-menu a.active { color: white; background: #334f91; }
    .user { width: 100%; }
    .page-heading { align-items: stretch; flex-direction: column; }
    .profile-grid, .summary-grid, .country-rates, .detail-grid { grid-template-columns: 1fr; }
    .profile-kpis { grid-template-columns: 1fr 1fr; }
    .field-grid, .audit-grid { grid-template-columns: 1fr; }
    .field-span-2 { grid-column: auto; }
    .workflow-steps { grid-template-columns: 1fr 1fr; }
    .form-card-heading, .integration-placeholder, .next-step-placeholder, .offer-transfer-card, .country-offer-heading { align-items: stretch; flex-direction: column; }
    .selection-summary { grid-template-columns: 1fr; }
    .metadata-grid, .ptv-location-inputs, .ptv-candidate-columns, .ptv-postal-row, .ptv-address-details, .route-leg-grid, .route-chain, .pricing-rate-grid, .base-pricing-metadata, .time-km-summary, .offer-area-grid, .offer-distance-grid { grid-template-columns: 1fr; }
    .route-chain > span { transform: rotate(90deg); justify-self: center; }
    .postal-reference-heading, .route-distance-job-heading, .route-distance-actions, .customer-list-heading, .customer-offer-job-heading, .customer-offer-job-actions { align-items: stretch; flex-direction: column; }
    .offer-prerequisite-grid { grid-template-columns: 1fr; }
    .ptv-lab-tabs { display: grid; grid-template-columns: 1fr; }
    .ptv-lab-tabs a { text-align: center; }
    .ptv-planner-controls { padding: 16px; }
    .ptv-stop-row { grid-template-columns: 28px minmax(0, 1fr); }
    .ptv-stop-actions { grid-column: 2; display: flex; flex-wrap: wrap; }
    .ptv-stop-list-actions, .ptv-resolved-stops { grid-template-columns: 1fr; }
    .ptv-route-map { min-height: 360px; }
    .ptv-map-heading { align-items: flex-start; flex-direction: column; }
    .ptv-maneuver-list li { grid-template-columns: 1fr; gap: 5px; }
    .country-rates div { border-right: 0; border-bottom: 1px solid #e2e7ef; }
    .country-rates div:last-child { border-bottom: 0; }
    .form-actions { flex-direction: column-reverse; }
    .secondary { width: 100%; }
}

/* MSW-Tourenplanung im PTV-Testlab */
.msw-workspace-page { overflow-x: hidden; }
.msw-workspace-page .topbar { min-height: 48px; }
.msw-workspace-page .navigation-trigger { min-height: 48px; }
.msw-workspace-container { width: 100%; max-width: none; padding: 7px clamp(12px, 1.6vw, 28px) 24px; }
.msw-workspace-header { margin-bottom: 6px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px 18px; }
.msw-workspace-header > .hero { min-width: 0; margin: 0; align-items: center; gap: 8px; }
.msw-workspace-title { min-width: 0; }
.msw-workspace-title-row { min-width: 0; display: flex; align-items: baseline; gap: 5px 9px; }
.msw-workspace-title-row .back-link { min-width: 0; max-width: min(30vw, 260px); margin: 0; overflow: hidden; flex: 0 1 auto; font-size: .67rem; text-overflow: ellipsis; white-space: nowrap; }
.msw-workspace-title-row h1 { flex: 0 1 auto; overflow: hidden; font-size: 1.15rem; text-overflow: ellipsis; white-space: nowrap; }
.msw-workspace-title-row .eyebrow { flex: 0 0 auto; margin: 0; font-size: .54rem; letter-spacing: .08em; }
.msw-workspace-header .lede { max-width: none; margin: 2px 0 0; overflow: hidden; font-size: .63rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.msw-workspace-header .status { flex: 0 0 auto; padding: 3px 7px; font-size: .58rem; }
.msw-workspace-container > .ptv-lab-tabs { margin: 0 0 6px; gap: 6px; }
.msw-workspace-container > .ptv-lab-tabs a { padding: 6px 9px; font-size: .7rem; }
.msw-section-tabs { margin: 0 0 8px; padding-bottom: 1px; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid #dbe1ea; }
.msw-section-tabs a { padding: 10px 2px 9px; border-bottom: 3px solid transparent; color: #64748b; font-size: .82rem; font-weight: 750; text-decoration: none; }
.msw-section-tabs a:hover { color: #3730a3; }
.msw-section-tabs a.active { border-bottom-color: #4f46e5; color: #3730a3; }
.msw-workspace-header > .msw-section-tabs { margin: 0; padding: 0; justify-content: end; gap: 3px; border: 0; }
.msw-workspace-header > .msw-section-tabs a { padding: 5px 7px; border: 0; border-radius: 6px; font-size: .63rem; }
.msw-workspace-header > .msw-section-tabs a:hover { background: #eef2ff; }
.msw-workspace-header > .msw-section-tabs a.active { color: white; background: #4f46e5; }
.msw-tour-form { gap: 6px; }
.msw-tour-form > .alert { margin: 0; padding: 10px 14px; font-size: .76rem; }
.msw-planning-overview { min-width: 0; display: grid; grid-template-columns: minmax(230px, .48fr) minmax(0, 2.52fr); align-items: stretch; gap: 6px; }
.msw-settings-drawer { padding: 0; overflow: hidden; }
.msw-settings-drawer > summary { min-height: 52px; padding: 8px 14px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; cursor: pointer; list-style: none; }
.msw-settings-drawer > summary::-webkit-details-marker { display: none; }
.msw-settings-drawer[open] > summary { border-bottom: 1px solid #e2e8f0; background: #fafbfc; }
.msw-settings-title { display: grid; gap: 1px; }
.msw-settings-title .kicker { font-size: .57rem; letter-spacing: .08em; }
.msw-settings-title strong { color: #172033; font-size: .78rem; }
.msw-settings-summary-values { overflow: hidden; color: #64748b; font-size: .7rem; font-variant-numeric: tabular-nums; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.msw-settings-toggle { display: inline-flex; align-items: center; gap: 7px; color: #4338ca; font-size: .68rem; font-weight: 800; }
.msw-settings-toggle::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .15s ease; }
.msw-settings-drawer[open] .msw-settings-toggle::after { transform: translateY(2px) rotate(225deg); }
.msw-settings-drawer-body { padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 10px; }
.msw-settings-group { min-width: 0; padding: 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; }
.msw-settings-group:first-child { grid-column: 1 / -1; }
.msw-settings-group-heading { margin-bottom: 10px; }
.msw-settings-group-heading .kicker { margin: 0 0 2px; font-size: .57rem; }
.msw-settings-group-heading h2 { margin: 0; color: #172033; font-size: .82rem; }
.msw-settings-group-heading p:not(.kicker) { margin: 3px 0 0; color: #64748b; font-size: .64rem; line-height: 1.35; }
.msw-settings-group-heading-with-action { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.msw-settings-group-heading-with-action .secondary { flex: 0 0 auto; padding: 6px 9px; border-radius: 7px; font-size: .64rem; }
.msw-settings-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 17px 16px; }
.msw-route-layout { display: grid; gap: 11px; }
.msw-route-chain { padding: 10px; border: 1px solid #c7d2fe; border-radius: 9px; background: #eef2ff; }
.msw-route-chain h3 { margin: 0 0 8px; color: #3730a3; font-size: .72rem; }
.msw-route-endpoints { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.msw-route-block { min-width: 0; margin: 0; padding: 9px 10px 10px; display: grid; align-content: start; gap: 9px; border: 1px solid #dbe1ea; border-radius: 9px; background: white; }
.msw-route-block legend { padding: 0 6px; color: #312e81; font-size: .72rem; font-weight: 850; }
.msw-route-block-copy { margin: 0; color: #64748b; font-size: .61rem; line-height: 1.35; }
.msw-route-unload { border-color: #bfdbfe; background: #f8fbff; }
.msw-route-unload legend { color: #1d4ed8; }
.msw-route-management { margin: 0; }
.msw-service-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.msw-settings-drawer .field label { margin-bottom: 4px; font-size: .67rem; }
.msw-settings-drawer input, .msw-settings-drawer select { padding: 7px 8px; border-radius: 7px; font-size: .7rem; }
.msw-settings-drawer .input-with-unit { gap: 5px; }
.msw-settings-drawer .input-with-unit > span, .msw-settings-drawer .field-help { font-size: .61rem; }
.msw-checkbox-field { display: grid; align-content: end; }
.msw-checkbox-field > label, .msw-active-toggle { min-height: 35px; margin: 0 !important; padding: 7px 8px; display: flex !important; align-items: center; gap: 7px; border: 1px solid #cbd5e1; border-radius: 7px; background: white; }
.msw-checkbox-field input, .msw-active-toggle input { width: auto; margin: 0; accent-color: #4f46e5; }
.msw-planning-overview .msw-settings-drawer > summary { min-height: 42px; padding: 5px 9px; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; }
.msw-planning-overview .msw-settings-summary-values { display: none; }
.msw-planning-overview .msw-settings-drawer[open] { grid-column: 1 / -1; }
.msw-planning-overview .msw-settings-drawer[open] > summary { grid-template-columns: auto minmax(0, 1fr) auto; }
.msw-planning-overview .msw-settings-drawer[open] .msw-settings-summary-values { display: block; }
.msw-planning-overview .msw-settings-drawer[open] + .msw-live-summary { grid-column: 1 / -1; }
.msw-live-summary { position: static; z-index: 450; padding: 3px; display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 1px; border: 1px solid #c7d2fe; border-radius: 9px; background: #c7d2fe; box-shadow: 0 4px 12px #17255410; }
.msw-live-summary article { min-width: 0; padding: 4px 7px; display: grid; gap: 1px; background: #f5f7ff; }
.msw-live-summary article:first-child { border-radius: 7px 0 0 7px; }
.msw-live-summary article:last-child { border-radius: 0 7px 7px 0; }
.msw-live-summary span { overflow: hidden; color: #64748b; font-size: .53rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.msw-live-summary strong { overflow: hidden; color: #312e81; font-size: .66rem; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.msw-live-summary strong.is-overloaded { color: #b91c1c; }
.msw-draft-toolbar { min-height: 38px; padding: 4px 7px 4px 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px 14px; border: 1px solid #cbd5e1; border-radius: 9px; background: #f8fafc; box-shadow: 0 4px 12px #1725540d; }
.msw-draft-toolbar.is-closed { border-color: #bbf7d0; background: #f0fdf4; }
.msw-draft-identity { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 5px 7px; color: #64748b; font-size: .67rem; }
.msw-draft-identity a { overflow: hidden; max-width: 220px; color: #4338ca; font-weight: 800; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.msw-draft-identity strong { overflow: hidden; max-width: 220px; color: #172033; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.msw-version-badge { padding: 3px 7px; border: 1px solid #c7d2fe; border-radius: 999px; color: #3730a3; background: #eef2ff; font-size: .59rem; font-weight: 850; white-space: nowrap; }
.msw-draft-toolbar.is-closed .msw-version-badge { border-color: #86efac; color: #166534; background: #dcfce7; }
.msw-draft-controls { min-width: 0; display: flex; align-items: center; justify-content: end; gap: 6px; }
.msw-draft-controls .primary, .msw-draft-controls .secondary { width: auto; flex: 0 0 auto; padding: 6px 9px; border-radius: 7px; font-size: .63rem; }
.msw-save-state { display: inline-flex; align-items: center; gap: 5px; color: #475569; font-size: .62rem; font-weight: 800; white-space: nowrap; }
.msw-save-state::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: #22c55e; box-shadow: 0 0 0 2px #dcfce7; }
.msw-save-state.is-saving::before, .msw-save-state[data-state="saving"]::before, .msw-save-state[data-state="dirty"]::before { background: #f59e0b; box-shadow: 0 0 0 2px #fef3c7; }
.msw-save-state.is-error, .msw-save-state[data-state="error"] { color: #b91c1c; }
.msw-save-state.is-error::before, .msw-save-state[data-state="error"]::before { background: #dc2626; box-shadow: 0 0 0 2px #fee2e2; }
.msw-save-state.is-finalized { color: #166534; }
.msw-toolbar-icon { width: 29px; height: 29px; padding: 0; display: grid; place-items: center; border: 1px solid #cbd5e1; border-radius: 7px; color: #4338ca; background: white; font: inherit; font-size: .95rem; font-weight: 850; cursor: pointer; }
.msw-toolbar-icon:hover:not(:disabled) { border-color: #818cf8; background: #eef2ff; }
.msw-toolbar-icon:disabled { color: #94a3b8; background: #f1f5f9; cursor: not-allowed; opacity: .68; }
.msw-change-summary { min-width: 150px; width: clamp(150px, 15vw, 245px); padding: 6px 8px; border: 1px solid #cbd5e1; border-radius: 7px; color: #172033; background: white; font: inherit; font-size: .63rem; }
.msw-change-summary:focus { border-color: #6366f1; outline: 3px solid #c7d2fe; }
.msw-draft-toolbar + .msw-planner-grid { height: calc(100vh - 244px); height: calc(100dvh - 244px); }
.msw-planner-grid { height: calc(100vh - 202px); height: calc(100dvh - 202px); min-height: 520px; display: grid; grid-template-columns: minmax(270px, .72fr) minmax(500px, 1.8fr) minmax(340px, .86fr); align-items: stretch; gap: 10px; }
.msw-stop-pool, .msw-map-panel, .msw-tour-board { min-width: 0; min-height: 0; height: 100%; }
.msw-stop-pool { position: static; max-height: none; display: flex; flex-direction: column; }
.msw-stop-pool > .panel-heading { flex: 0 0 auto; padding: 11px 13px 9px; }
.msw-stop-pool > .panel-heading h2 { font-size: .9rem; }
.msw-stop-pool > .panel-heading p:last-child { margin: 4px 0 0; color: #64748b; font-size: .64rem; line-height: 1.35; }
.msw-pool-tabs { flex: 0 0 auto; padding: 7px 8px; display: grid; grid-template-columns: .9fr .9fr 1.2fr; gap: 5px; border-block: 1px solid #e2e8f0; background: #f8fafc; }
.msw-pool-tabs button { min-width: 0; padding: 5px 3px; display: grid; place-items: center; gap: 2px; border: 1px solid transparent; border-radius: 7px; color: #64748b; background: transparent; font: inherit; font-size: .59rem; font-weight: 800; line-height: 1.15; cursor: pointer; }
.msw-pool-tabs button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.msw-pool-tabs button strong { min-width: 18px; padding: 1px 4px; border-radius: 999px; color: #475569; background: #e2e8f0; font-size: .53rem; font-variant-numeric: tabular-nums; }
.msw-pool-tabs button:hover { color: #3730a3; background: #eef2ff; }
.msw-pool-tabs button:focus-visible { outline: 3px solid #c7d2fe; outline-offset: 1px; }
.msw-pool-tabs button[aria-selected="true"] { border-color: #a5b4fc; color: #3730a3; background: white; box-shadow: 0 2px 7px #312e8112; }
.msw-pool-tabs button[aria-selected="true"] strong { color: white; background: #4f46e5; }
.msw-pool-panel { min-height: 0; flex: 1 1 auto; display: flex; flex-direction: column; overflow: hidden; }
.msw-pool-panel[hidden] { display: none !important; }
.msw-pool-filters { flex: 0 0 auto; padding: 9px 10px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; border-bottom: 1px solid #e8ecf2; background: #fafbfc; }
.msw-pool-filters label { min-width: 0; display: grid; gap: 4px; color: #475569; font-size: .64rem; font-weight: 750; }
.msw-pool-filters .msw-search { grid-column: 1 / -1; }
.msw-pool-filters input[type="search"], .msw-pool-filters select { min-width: 0; width: 100%; border: 1px solid #cbd5e1; border-radius: 7px; padding: 6px 7px; color: #172033; background: white; font: inherit; font-size: .68rem; }
.msw-pool-filters input:focus, .msw-pool-filters select:focus { border-color: #6366f1; outline: 3px solid #c7d2fe; }
.msw-pool-filters .msw-pool-checkbox { grid-column: 1 / -1; display: flex; align-items: center; gap: 6px; }
.msw-pool-checkbox input { margin: 0; accent-color: #4f46e5; }
.msw-pool-count { flex: 0 0 auto; padding: 6px 11px; color: #64748b; background: white; font-size: .62rem; font-weight: 750; }
.msw-candidate-list { min-height: 100px; padding: 0 10px 10px; display: grid; align-content: start; gap: 7px; overflow-y: auto; }
.msw-supplier-pool > .msw-candidate-list { flex: 1 1 auto; min-height: 90px; }
.msw-candidate-card { min-width: 0; padding: 9px 8px 9px 10px; display: grid; grid-template-columns: minmax(0, 1fr) 28px; align-items: center; gap: 7px; border: 1px solid #e2e8f0; border-radius: 9px; background: white; cursor: grab; transition: border-color .15s ease, background .15s ease, opacity .15s ease; }
.msw-candidate-card:hover { border-color: #a5b4fc; background: #f8faff; }
.msw-candidate-card.is-planned { border-color: #a7f3d0; background: #f0fdf4; }
.msw-candidate-card.is-selected { border-color: #4f46e5; background: #eef2ff; box-shadow: inset 4px 0 #4f46e5, 0 0 0 3px #c7d2fe; }
.msw-candidate-card.is-selected.is-planned { background: linear-gradient(90deg, #eef2ff, #f0fdf4); }
.msw-candidate-card.is-unlocated { cursor: default; opacity: .72; }
.msw-candidate-card.is-dragging { opacity: .45; }
.msw-candidate-copy { min-width: 0; width: 100%; padding: 0; display: grid; gap: 2px; border: 0; border-radius: 5px; color: inherit; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.msw-candidate-copy:focus-visible { outline: 3px solid #818cf8; outline-offset: 3px; }
.msw-candidate-copy strong, .msw-candidate-copy span, .msw-candidate-copy small { overflow-wrap: anywhere; }
.msw-candidate-copy strong { color: #172033; font-size: .71rem; }
.msw-candidate-copy span { color: #64748b; font-size: .61rem; line-height: 1.3; }
.msw-candidate-copy .msw-candidate-meta { color: #4338ca; font-size: .59rem; font-weight: 800; }
.msw-candidate-copy small { color: #64748b; font-size: .59rem; line-height: 1.3; }
.msw-candidate-copy small.is-due { color: #b45309; font-weight: 800; }
.msw-unlocated-note { color: #b91c1c; font-size: .59rem; font-style: normal; font-weight: 750; }
.msw-candidate-side-actions { display: grid; justify-items: center; gap: 5px; }
.msw-candidate-add { width: 27px; height: 27px; display: grid; place-items: center; border: 0; border-radius: 999px; color: white; background: #4f46e5; font-size: 1rem; font-weight: 800; cursor: pointer; }
.msw-candidate-add:disabled { color: #94a3b8; background: #e2e8f0; cursor: not-allowed; }
.msw-supplier-edit-link { text-decoration: none; }
.msw-supplier-edit-link:hover { text-decoration: none; }
.msw-supplier-edit-link:focus-visible { outline: 3px solid #818cf8; outline-offset: 2px; }
.msw-supplier-dialog { width: min(1120px, calc(100vw - 36px)); height: min(920px, calc(100dvh - 36px)); max-width: none; max-height: none; padding: 0; border: 0; border-radius: 14px; color: #172033; background: white; box-shadow: 0 24px 70px #0f172a59; overflow: hidden; }
.msw-supplier-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.msw-supplier-dialog::backdrop { background: #0f172a8c; backdrop-filter: blur(2px); }
.msw-supplier-dialog-heading { min-width: 0; padding: 12px 14px 11px 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #dbe3ef; background: #f8fafc; }
.msw-supplier-dialog-heading .eyebrow { margin: 0 0 2px; font-size: .59rem; }
.msw-supplier-dialog-heading h2 { margin: 0; overflow: hidden; color: #172033; font-size: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.msw-supplier-dialog-close { flex: 0 0 auto; width: 34px; height: 34px; font-size: 1.25rem; }
.msw-supplier-dialog-frame { min-width: 0; width: 100%; min-height: 0; height: 100%; border: 0; background: #f4f6fa; }
.modal-document { min-height: 100%; background: #f4f6fa; }
.modal-document .skip-link, .modal-document .topbar, .modal-document .msw-section-tabs { display: none; }
.modal-document .container { width: 100%; margin: 0; padding: 16px; }
.modal-document .page-heading { margin-bottom: 14px; gap: 12px; }
.modal-document .page-heading h1 { font-size: clamp(1.35rem, 3vw, 1.75rem); }
.modal-document .page-heading .back-link { display: none; }
.modal-document .page-heading .lede { max-width: none; margin-top: 6px; font-size: .82rem; line-height: 1.35; }
.modal-document .cost-form { gap: 12px; }
.modal-document .form-card { padding: 16px; }
.modal-document .form-card-heading { margin-bottom: 12px; }
.msw-pool-empty { margin: 6px 3px; padding: 16px 8px; color: #64748b; font-size: .7rem; line-height: 1.4; text-align: center; }
.msw-transfer-pool, .msw-unload-pool { background: #f8fafc; }
.msw-unload-pool { background: #f8faff; }
.msw-pool-section-heading { padding: 12px 14px 6px; display: flex; align-items: end; justify-content: space-between; gap: 10px; }
.msw-pool-section-heading .eyebrow { margin-bottom: 2px; font-size: .58rem; }
.msw-pool-section-heading h3 { margin: 0; color: #172033; font-size: .84rem; }
.msw-pool-section-heading a { color: #4338ca; font-size: .64rem; font-weight: 800; text-decoration: none; }
.msw-pool-hint { margin: 0; padding: 0 14px 8px; color: #64748b; font-size: .61rem; line-height: 1.35; }
.msw-trailer-site-planner { margin: 0 10px 8px; padding: 9px; display: grid; gap: 7px; border: 1px solid #c4b5fd; border-radius: 9px; background: #f5f3ff; }
.msw-trailer-site-planner label { display: grid; gap: 4px; color: #5b21b6; font-size: .62rem; font-weight: 800; }
.msw-trailer-site-planner select { min-width: 0; width: 100%; padding: 6px 7px; border: 1px solid #a78bfa; border-radius: 7px; color: #172033; background: white; font: inherit; font-size: .68rem; }
.msw-trailer-site-planner select:focus { border-color: #6366f1; outline: 3px solid #ddd6fe; }
.msw-trailer-site-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.msw-trailer-site-actions button { min-width: 0; padding: 6px 4px; border: 1px solid #a78bfa; border-radius: 7px; color: #5b21b6; background: white; font: inherit; font-size: .56rem; font-weight: 850; line-height: 1.2; cursor: pointer; }
.msw-trailer-site-actions button:nth-child(2) { border-color: #5eead4; color: #0f766e; }
.msw-trailer-site-actions button:hover:not(:disabled) { border-color: #7c3aed; background: #ede9fe; }
.msw-trailer-site-actions button:disabled { border-color: #d8dce4; color: #94a3b8; background: #f1f5f9; cursor: not-allowed; }
.msw-trailer-site-planner > p { margin: 0; color: #64748b; font-size: .59rem; line-height: 1.35; }
.msw-transfer-candidate-list, .msw-unload-candidate-list { flex: 1 1 auto; min-height: 55px; }
.msw-transfer-candidate { grid-template-columns: minmax(0, 1fr) auto; border-color: #99f6e4; background: #f0fdfa; }
.msw-unload-candidate { border-color: #bfdbfe; background: #eff6ff; }
.msw-unload-candidate.is-planned { border-color: #93c5fd; background: #dbeafe; }
.msw-candidate-card.is-locked { cursor: not-allowed; opacity: .58; }
.msw-map-panel { display: flex; flex-direction: column; }
.msw-map-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.msw-map-heading .eyebrow, .msw-tour-board .eyebrow { margin-bottom: 4px; }
.msw-map-panel > .panel-heading { flex: 0 0 auto; padding: 11px 13px; }
.msw-map-panel > .panel-heading h2 { font-size: .9rem; }
.msw-map-legend { max-width: 70%; display: flex; flex-wrap: wrap; justify-content: end; gap: 4px 8px; color: #64748b; font-size: .55rem; font-weight: 750; }
.msw-map-legend span { display: inline-flex; align-items: center; gap: 4px; }
.msw-map-legend i { flex: 0 0 auto; width: 12px; height: 12px; display: inline-grid; place-items: center; border-radius: 999px; color: white; background: #64748b; font-size: .43rem; font-style: normal; font-weight: 900; }
.msw-map-legend i.msw-legend-milk.is-conventional { background: #475569; }
.msw-map-legend i.msw-legend-milk.is-bio { background: #16a34a; }
.msw-map-legend i.msw-legend-milk.is-demeter { background: #ea580c; }
.msw-map-legend i.msw-legend-milk.is-vlog { background: #7c3aed; }
.msw-map-legend i.msw-legend-milk.is-pasture { background: #0891b2; }
.msw-map-legend i.msw-legend-milk.is-mixed { background: #db2777; }
.msw-map-legend i.msw-legend-milk.is-unknown { background: #64748b; }
.msw-map-legend i.msw-legend-cycle { background: white; }
.msw-map-legend i.msw-legend-cycle.is-cycle-2 { border: 3px solid #2563eb; }
.msw-map-legend i.msw-legend-cycle.is-cycle-3 { border: 3px solid #f97316; }
.msw-map-legend i.msw-legend-cycle.is-cycle-mixed { border: 3px dashed #64748b; }
.msw-map-legend i.is-transfer { border-radius: 3px; background: #0f766e; }
.msw-map-legend i.is-unload { border-radius: 4px 4px 4px 1px; background: #2563eb; transform: rotate(-45deg); }
.msw-map-legend i.is-planned { border: 2px solid white; background: #059669; box-shadow: 0 0 0 2px #34d399; }
.msw-map-legend i.is-due { border: 2px solid white; background: #f59e0b; box-shadow: 0 0 0 1px #d97706; }
.msw-tour-map { min-height: 0; height: auto; flex: 1 1 auto; color: #64748b; background: #e8edf3; }
.msw-tour-map > p { margin: 0; padding: 28px; }
.msw-map-help { flex: 0 0 auto; margin: 0; padding: 7px 11px; border-top: 1px solid #dbe1ea; color: #64748b; background: #f8fafc; font-size: .61rem; line-height: 1.35; }
.msw-map-supplier-icon { --milk-color: #64748b; --cycle-color: #64748b; border: 0; background: transparent; cursor: grab; }
.msw-marker-shell { position: relative; width: 36px; height: 36px; display: grid; place-items: center; border: 4px solid var(--cycle-color); border-radius: 999px; background: white; box-shadow: 0 4px 12px #0f172a5c; transition: transform .15s ease, box-shadow .15s ease; }
.msw-marker-milk { width: 24px; height: 24px; display: grid; place-items: center; border: 2px solid white; border-radius: 999px; color: white; background: var(--milk-color); font-size: .68rem; font-weight: 900; line-height: 1; }
.msw-map-supplier-icon.msw-milk-conventional { --milk-color: #475569; }
.msw-map-supplier-icon.msw-milk-bio { --milk-color: #16a34a; }
.msw-map-supplier-icon.msw-milk-demeter { --milk-color: #ea580c; }
.msw-map-supplier-icon.msw-milk-vlog { --milk-color: #7c3aed; }
.msw-map-supplier-icon.msw-milk-pasture { --milk-color: #0891b2; }
.msw-map-supplier-icon.msw-milk-mixed { --milk-color: #db2777; }
.msw-map-supplier-icon.msw-milk-unknown { --milk-color: #64748b; }
.msw-map-supplier-icon.msw-cycle-2 { --cycle-color: #2563eb; }
.msw-map-supplier-icon.msw-cycle-3 { --cycle-color: #f97316; }
.msw-map-supplier-icon.msw-cycle-mixed { --cycle-color: #64748b; }
.msw-map-supplier-icon.msw-cycle-mixed .msw-marker-shell { border-style: dashed; }
.msw-map-supplier-icon.is-due .msw-marker-shell::after { content: ""; position: absolute; top: -5px; right: -4px; width: 9px; height: 9px; border: 2px solid white; border-radius: 999px; background: #f59e0b; box-shadow: 0 1px 4px #0f172a40; }
.msw-map-supplier-icon.is-planned .msw-marker-shell { box-shadow: 0 0 0 4px #6ee7b7, 0 6px 16px #0f172a66; }
.msw-map-supplier-icon.is-selected .msw-marker-shell { transform: scale(1.14); box-shadow: 0 0 0 3px white, 0 0 0 7px #4f46e5, 0 7px 18px #0f172a73; }
.msw-map-supplier-icon.is-selected.is-planned .msw-marker-shell { box-shadow: 0 0 0 3px #6ee7b7, 0 0 0 7px #4f46e5, 0 7px 18px #0f172a73; }
.msw-map-supplier-icon:hover .msw-marker-shell, .msw-map-supplier-icon:focus .msw-marker-shell { transform: scale(1.14); }
.msw-map-supplier-icon:focus-visible { outline: 3px solid #4f46e5; outline-offset: 5px; }
.msw-map-supplier-icon.is-dragging { cursor: grabbing; opacity: .62; }
.msw-cluster-icon { margin-top: -21px !important; margin-left: -21px !important; border: 0; background: transparent; }
.msw-cluster-icon > span { width: 42px; height: 42px; display: grid; place-items: center; border: 4px solid #eef2ff; border-radius: 999px; color: white; background: #4338ca; box-shadow: 0 5px 16px #17255466; font-size: .74rem; font-weight: 900; }
.msw-cluster-icon.is-medium > span { background: #3730a3; }
.msw-cluster-icon.is-large > span { background: #312e81; }
.msw-map-transfer-icon { border: 0; background: transparent; cursor: grab; }
.msw-map-transfer-icon > span { width: 34px; height: 34px; display: grid; place-items: center; border: 3px solid white; border-radius: 9px; color: white; background: #0f766e; box-shadow: 0 4px 12px #0f172a5c; font-size: .9rem; font-weight: 850; transition: transform .15s ease, background .15s ease; }
.msw-map-transfer-icon.is-planned > span { background: #059669; }
.msw-map-transfer-icon.is-selected > span { background: #7c3aed; box-shadow: 0 0 0 3px #ddd6fe, 0 6px 16px #0f172a66; transform: scale(1.14); }
.msw-map-transfer-icon:hover > span, .msw-map-transfer-icon:focus > span { transform: scale(1.14); }
.msw-map-transfer-icon.is-dragging { cursor: grabbing; opacity: .62; }
.msw-map-unload-icon { border: 0; background: transparent; cursor: grab; }
.msw-map-unload-icon > span { width: 34px; height: 34px; display: grid; place-items: center; border: 3px solid white; border-radius: 12px 12px 12px 3px; color: white; background: #2563eb; box-shadow: 0 4px 12px #0f172a5c; font-size: .9rem; font-weight: 850; transition: transform .15s ease, background .15s ease; }
.msw-map-unload-icon.is-planned > span { background: #1d4ed8; box-shadow: 0 0 0 3px #93c5fd, 0 5px 14px #0f172a66; }
.msw-map-unload-icon:hover > span, .msw-map-unload-icon:focus > span { transform: scale(1.14); }
.msw-map-unload-icon.is-dragging { cursor: grabbing; opacity: .62; }
.msw-supplier-tooltip { min-width: 190px; display: grid; gap: 3px; line-height: 1.35; }
.msw-supplier-tooltip strong { color: #172033; font-size: .78rem; }
.msw-supplier-tooltip span { color: #64748b; font-size: .68rem; }
.msw-supplier-tooltip .msw-tooltip-classification { color: #334155; font-weight: 750; }
.msw-supplier-tooltip span.is-due { color: #b45309; font-weight: 800; }
.msw-supplier-popup { display: grid; gap: 10px; color: #334155; }
.msw-supplier-popup-heading { display: grid; gap: 2px; }
.msw-supplier-popup-heading strong { color: #172033; font-size: 1rem; }
.msw-supplier-popup-heading small, .msw-supplier-popup-number { color: #64748b; font-size: .72rem; }
.msw-supplier-popup-number { color: #4338ca; font-weight: 800; }
.msw-supplier-popup-address, .msw-supplier-popup-notes { margin: 0; font-size: .77rem; line-height: 1.4; }
.msw-supplier-popup-notes { padding: 8px 9px; border-radius: 7px; color: #92400e; background: #fffbeb; }
.msw-supplier-popup-tanks { max-height: 260px; margin: 0; padding: 0; display: grid; gap: 7px; overflow-y: auto; list-style: none; }
.msw-supplier-popup-tanks li { padding: 8px 9px; display: grid; gap: 3px; border: 1px solid #e2e8f0; border-radius: 8px; background: #f8fafc; }
.msw-supplier-popup-tanks strong { color: #334155; font-size: .75rem; }
.msw-supplier-popup-tanks span, .msw-supplier-popup-tanks small { color: #64748b; font-size: .68rem; }
.msw-supplier-popup-tanks span.is-due { color: #b45309; font-weight: 800; }
.msw-popup-tank-button { justify-self: start; margin-top: 3px; padding: 0; border: 0; color: #4338ca; background: transparent; font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }
.msw-supplier-popup-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.msw-supplier-popup-actions .primary, .msw-supplier-popup-actions .secondary { padding: 8px 10px; font-size: .7rem; }
.msw-transfer-popup-facts { padding: 9px; display: grid; gap: 4px; border-radius: 8px; color: #115e59; background: #f0fdfa; font-size: .7rem; }
.msw-unload-popup-facts { color: #1e40af; background: #eff6ff; }
.msw-tour-board { position: static; max-height: none; display: flex; flex-direction: column; }
.msw-tour-board > .panel-heading { flex: 0 0 auto; padding: 11px 13px; }
.msw-tour-board > .panel-heading h2 { font-size: .9rem; }
.msw-tour-board .panel-heading p:last-child { margin: 4px 0 0; color: #64748b; font-size: .64rem; }
.msw-tour-dropzone { min-height: 0; flex: 1 1 auto; padding: 6px; overflow-y: auto; border: 2px dashed transparent; transition: border-color .15s ease, background .15s ease; }
.msw-tour-dropzone.is-drag-target { border-color: #6366f1; background: #eef2ff; }
.msw-tour-list { margin: 0; padding: 0; display: grid; gap: 6px; list-style: none; counter-reset: tour-stop; }
.msw-tour-empty { min-height: 100%; padding: 32px; display: grid; place-content: center; justify-items: center; gap: 7px; color: #64748b; text-align: center; }
.msw-tour-empty[hidden], .msw-tour-more-hint[hidden] { display: none !important; }
.msw-tour-empty strong { color: #334155; }
.msw-tour-empty p { max-width: 280px; margin: 0; font-size: .8rem; line-height: 1.45; }
.msw-tour-more-hint { margin: 9px 2px 2px; padding: 9px 11px; border: 1px dashed #cbd5e1; border-radius: 8px; color: #64748b; background: #f8fafc; font-size: .65rem; line-height: 1.4; text-align: center; }
.msw-tour-stop { padding: 8px; border: 1px solid #dbe1ea; border-radius: 9px; background: white; box-shadow: 0 3px 10px #1725540a; transition: opacity .15s ease, border-color .15s ease, box-shadow .15s ease; }
.msw-tour-endpoint { border-style: dashed; background: #f8fafc; box-shadow: none; }
.msw-tour-endpoint.is-start { border-color: #86efac; background: #f7fef9; }
.msw-tour-endpoint.is-end { border-color: #cbd5e1; }
.msw-tour-stop.is-transfer { border-color: #5eead4; background: #f8fffe; }
.msw-tour-stop.is-unload { border-color: #93c5fd; background: #f8fbff; }
.msw-tour-stop.is-trailer-action { border-color: #c4b5fd; background: #faf8ff; }
.msw-tour-stop.is-dragging { opacity: .5; }
.msw-tour-stop.is-drag-target { border-color: #6366f1; box-shadow: 0 0 0 3px #e0e7ff; }
.msw-tour-stop.is-overloaded { border-color: #fca5a5; background: #fffafa; }
.msw-tour-stop.has-master-data-conflict { border-color: #f59e0b; background: #fffdf5; box-shadow: inset 4px 0 #f59e0b; }
.msw-tour-stop.is-pickup.is-selected { border-color: #4f46e5; background: #f8faff; box-shadow: inset 4px 0 #4f46e5, 0 0 0 3px #c7d2fe; }
.msw-tour-stop.is-pickup.is-selected.has-master-data-conflict { border-color: #f59e0b; background: #fffdf5; box-shadow: inset 4px 0 #f59e0b, 0 0 0 3px #c7d2fe; }
.msw-tour-stop-heading { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: start; gap: 7px; }
.msw-tour-sequence { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 999px; color: white; background: #4f46e5; font-size: .64rem; font-weight: 850; }
.msw-tour-endpoint.is-start .msw-tour-sequence { background: #15803d; }
.msw-tour-endpoint.is-end .msw-tour-sequence { background: #475569; }
.msw-tour-stop.is-transfer .msw-tour-sequence { border-radius: 7px; background: #0f766e; }
.msw-tour-stop.is-unload .msw-tour-sequence { border-radius: 9px 9px 9px 2px; background: #2563eb; }
.msw-tour-stop.is-trailer-action .msw-tour-sequence { border-radius: 7px; background: #7c3aed; }
.msw-tour-identity { min-width: 0; padding: 0; display: grid; gap: 1px; border: 0; border-radius: 5px; color: inherit; background: transparent; font: inherit; text-align: left; }
.msw-tour-identity[data-msw-select-supplier] { cursor: pointer; }
.msw-tour-identity[data-msw-select-supplier]:focus-visible { outline: 3px solid #818cf8; outline-offset: 3px; }
.msw-tour-identity strong { overflow: hidden; color: #172033; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.msw-tour-identity span { overflow: hidden; color: #64748b; font-size: .6rem; text-overflow: ellipsis; white-space: nowrap; }
.msw-tour-identity .msw-stop-kind { color: #4338ca; font-size: .57rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.msw-tour-endpoint.is-start .msw-stop-kind { color: #15803d; }
.msw-tour-endpoint.is-end .msw-stop-kind { color: #475569; }
.msw-tour-stop.is-transfer .msw-stop-kind { color: #0f766e; }
.msw-tour-stop.is-unload .msw-stop-kind { color: #1d4ed8; }
.msw-tour-stop.is-trailer-action .msw-stop-kind { color: #6d28d9; }
.msw-tour-actions { display: flex; align-items: center; justify-content: end; gap: 3px; }
.msw-tour-actions .ptv-icon-button { width: 24px; height: 24px; padding: 0; font-size: .68rem; }
.msw-stop-master-data-warning { margin: 7px 0 0 31px; padding: 8px 9px; display: grid; gap: 4px; border: 1px solid #fcd34d; border-radius: 7px; color: #78350f; background: #fffbeb; }
.msw-stop-master-data-warning > strong { font-size: .66rem; }
.msw-stop-master-data-warning > p { margin: 0; font-size: .61rem; line-height: 1.35; }
.msw-missing-tank-list { display: grid; gap: 4px; }
.msw-missing-tank-reference { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.msw-missing-tank-reference > span { min-width: 0; overflow-wrap: anywhere; font-size: .61rem; font-weight: 750; }
.msw-missing-tank-reference > button { flex: 0 0 auto; padding: 4px 6px; font-size: .57rem; }
.msw-tour-stop-details { margin-top: 5px; }
.msw-tour-stop-summary { padding: 4px 0 0 31px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; color: #64748b; cursor: pointer; list-style: none; }
.msw-tour-stop-summary::-webkit-details-marker { display: none; }
.msw-tour-stop-summary > strong, .msw-tour-stop-summary > span { padding: 2px 5px; border-radius: 5px; background: #f1f5f9; font-size: .56rem; line-height: 1.25; white-space: nowrap; }
.msw-tour-stop-summary .msw-tour-summary-operation { color: #3730a3; background: #eef2ff; font-size: .6rem; }
.msw-tour-stop.is-transfer .msw-tour-summary-operation { color: #0f766e; background: #ccfbf1; }
.msw-tour-stop.is-unload .msw-tour-summary-operation { color: #1d4ed8; background: #dbeafe; }
.msw-tour-stop.is-trailer-action .msw-tour-summary-operation { color: #6d28d9; background: #ede9fe; }
.msw-tour-stop-summary::after { content: "Details"; margin-left: auto; color: #4338ca; font-size: .56rem; font-weight: 800; }
.msw-tour-stop-details[open] > .msw-tour-stop-summary::after { content: "Schließen"; }
.msw-tour-stop-detail-body { margin-top: 7px; padding-top: 7px; border-top: 1px solid #e2e8f0; }
.msw-tour-stop-full-identity { margin: 0 0 7px; color: #475569; font-size: .63rem; line-height: 1.35; overflow-wrap: anywhere; }
.msw-tour-stop-detail-body > .msw-stop-tanks { margin: 0 0 7px; }
.msw-tour-stop-detail-body > .msw-transfer-stop-fact { margin-top: 0; }
.msw-stop-tanks { margin: 11px 0; display: grid; gap: 5px; }
.msw-stop-tank { padding: 7px 8px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 7px; border-radius: 7px; background: #f8fafc; cursor: pointer; }
.msw-stop-tank input { margin-top: 2px; accent-color: #4f46e5; }
.msw-stop-tank span { min-width: 0; display: grid; gap: 2px; }
.msw-stop-tank strong { overflow-wrap: anywhere; color: #334155; font-size: .7rem; }
.msw-stop-tank small { overflow-wrap: anywhere; color: #64748b; font-size: .64rem; line-height: 1.3; }
.msw-stop-service-details { margin-top: 9px; overflow: hidden; border: 1px solid #e2e8f0; border-radius: 8px; background: #fafbfc; }
.msw-stop-service-details > summary { padding: 7px 9px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 6px 10px; color: #64748b; font-size: .61rem; cursor: pointer; list-style: none; }
.msw-stop-service-details > summary::-webkit-details-marker { display: none; }
.msw-stop-service-details > summary::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid #6366f1; border-bottom: 1.5px solid #6366f1; transform: translateY(-2px) rotate(45deg); }
.msw-stop-service-details[open] > summary { border-bottom: 1px solid #e2e8f0; background: #f8fafc; }
.msw-stop-service-details[open] > summary::after { transform: translateY(2px) rotate(225deg); }
.msw-stop-service-details > summary strong { color: #3730a3; font-size: .65rem; white-space: nowrap; }
.msw-stop-service-details > summary strong { grid-column: 3; grid-row: 1; }
.msw-stop-service-details > summary::after { grid-column: 4; grid-row: 1; }
.msw-stop-service { padding: 8px; display: grid; grid-template-columns: 1fr 1fr .8fr; gap: 7px; background: white; }
.msw-stop-service label { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px; }
.msw-stop-service label > span { grid-column: 1 / -1; color: #64748b; font-size: .64rem; font-weight: 700; }
.msw-stop-service input { min-width: 0; width: 100%; border: 1px solid #cbd5e1; border-radius: 7px; padding: 6px 7px; color: #172033; background: white; font: inherit; font-size: .72rem; }
.msw-stop-service label > small { color: #64748b; font-size: .61rem; }
.msw-stop-service-result { display: grid; align-content: center; justify-items: end; gap: 2px; text-align: right; }
.msw-stop-service-result span, .msw-stop-service-result small { color: #64748b; font-size: .61rem; }
.msw-stop-service-result strong { color: #3730a3; font-size: .76rem; }
.msw-transfer-stop-fact { margin: 10px 0; padding: 8px 9px; display: grid; gap: 2px; border-radius: 7px; color: #115e59; background: #ccfbf1; }
.msw-transfer-stop-fact strong { font-size: .7rem; }
.msw-transfer-stop-fact span { font-size: .62rem; }
.msw-unload-stop-fact { color: #1e40af; background: #dbeafe; }
.msw-trailer-stop-fact { color: #5b21b6; background: #ede9fe; }
.msw-candidate-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: 5px; }
.msw-candidate-action { padding: 5px 7px; border: 1px solid #cbd5e1; border-radius: 7px; color: #334155; background: white; font: inherit; font-size: .59rem; font-weight: 800; cursor: pointer; }
.msw-candidate-action:hover:not(:disabled) { border-color: #818cf8; color: #4338ca; background: #eef2ff; }
.msw-candidate-action:disabled { color: #94a3b8; background: #f1f5f9; cursor: not-allowed; }
.msw-transfer-quantities { margin: 9px 0; padding: 8px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; border: 1px solid #99f6e4; border-radius: 8px; background: #f0fdfa; }
.msw-transfer-quantities label { display: grid; gap: 4px; color: #475569; font-size: .62rem; font-weight: 750; }
.msw-transfer-quantities input { min-width: 0; width: 100%; padding: 6px 7px; border: 1px solid #94a3b8; border-radius: 7px; color: #172033; background: white; font: inherit; font-size: .7rem; }
.msw-secondary-load-channel { padding-top: 8px; border-top: 1px dashed #c4b5fd; }
.msw-stop-load { margin-top: 10px; display: grid; gap: 9px; }
.msw-load-channel { display: grid; gap: 6px; }
.msw-site-load-channel { padding-top: 8px; border-top: 1px dashed #99f6e4; }
.msw-stop-load-copy { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; }
.msw-stop-load-copy span, .msw-stop-load-copy small { color: #64748b; font-size: .63rem; }
.msw-stop-load-copy strong { color: #334155; font-size: .69rem; font-variant-numeric: tabular-nums; text-align: right; }
.msw-stop-load-copy small { grid-column: 1 / -1; text-align: right; }
.msw-load-track { height: 9px; overflow: hidden; border-radius: 999px; background: #e2e8f0; }
.msw-load-fill { height: 100%; display: block; border-radius: inherit; background: #10b981; transition: width .2s ease; }
.msw-load-fill.is-warning { background: #f59e0b; }
.msw-load-fill.is-critical { background: #f97316; }
.msw-load-fill.is-overloaded { background: #dc2626; }
.msw-capacity-warning { margin: 9px 0 0; padding: 8px 9px; border-radius: 7px; color: #991b1b; background: #fee2e2; font-size: .68rem; line-height: 1.4; }
.msw-capacity-split-note { margin: 9px 0 0; padding: 9px 10px; border-radius: 7px; color: #1e40af; background: #eff6ff; font-size: .68rem; line-height: 1.4; }
.msw-capacity-split-note > strong { display: block; }
.msw-capacity-split-note > p { margin: 3px 0 7px; }
.msw-split-segments { margin: 0; padding-left: 18px; display: grid; gap: 5px; }
.msw-split-segments li > span { display: block; color: #1d4ed8; }
.msw-virtual-transfer { margin: 0 5px; padding: 9px 10px; display: grid; grid-template-columns: 27px minmax(0, 1fr); align-items: start; gap: 8px; border: 1px solid #99f6e4; border-radius: 9px; color: #115e59; background: #f0fdfa; }
.msw-virtual-transfer.is-overloaded { border-color: #fca5a5; color: #991b1b; background: #fff1f2; }
.msw-transfer-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 7px; color: white; background: #0f766e; font-weight: 850; }
.msw-virtual-transfer > div { min-width: 0; display: grid; gap: 2px; }
.msw-virtual-transfer strong { font-size: .72rem; }
.msw-virtual-transfer span { overflow-wrap: anywhere; font-size: .64rem; line-height: 1.35; }
.msw-transfer-load-copy { color: #0f766e; font-weight: 750; }
.msw-transfer-capacity-warning { margin-top: 4px; color: #b91c1c; }
.msw-plan-actions { align-items: center; }
.msw-plan-management-links { display: flex; flex-wrap: wrap; gap: 8px; }
.msw-tour-result { margin-top: 38px; }
.msw-result-facts { margin: -5px 0 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); overflow: hidden; border: 1px solid #dbe1ea; border-radius: 11px; background: white; }
.msw-result-facts div { min-width: 0; padding: 13px 15px; display: grid; gap: 4px; border-right: 1px solid #e2e8f0; }
.msw-result-facts div:last-child { border-right: 0; }
.msw-result-facts span { color: #64748b; font-size: .68rem; }
.msw-result-facts strong { overflow-wrap: anywhere; color: #334155; font-size: .82rem; }
.msw-result-site-loads { margin: -6px 0 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.msw-result-site-loads article { padding: 13px 14px; display: grid; gap: 7px; border: 1px solid #99f6e4; border-radius: 10px; background: #f0fdfa; }
.msw-result-site-loads article.is-overloaded { border-color: #fca5a5; background: #fff1f2; }
.msw-result-site-loads article > div:not(.msw-result-site-progress) { display: flex; justify-content: space-between; gap: 12px; }
.msw-result-site-loads span, .msw-result-site-loads small { color: #64748b; font-size: .65rem; }
.msw-result-site-loads strong { overflow-wrap: anywhere; color: #115e59; font-size: .72rem; text-align: right; }
.msw-result-site-loads article.is-overloaded strong { color: #991b1b; }
.msw-result-site-progress { height: 7px; overflow: hidden; border-radius: 999px; background: #ccfbf1; }
.msw-result-site-progress span { height: 100%; display: block; border-radius: inherit; background: #0f766e; }
.msw-result-site-loads article.is-overloaded .msw-result-site-progress span { background: #dc2626; }
.msw-result-stops { margin-top: 20px; }
.msw-result-stops tbody th { color: #172033; background: white; font-size: .8rem; letter-spacing: 0; text-transform: none; }
.msw-result-stops td { vertical-align: top; }
.msw-result-stops .msw-result-leg { min-width: 142px; white-space: nowrap; }
.msw-result-stops .msw-result-duration, .msw-result-stops .msw-result-distance { min-width: 92px; white-space: nowrap; }
.msw-result-stops .msw-result-total th, .msw-result-stops .msw-result-total td { border-top: 2px solid #6366f1; color: #312e81; background: #eef2ff; font-weight: 750; }
.msw-result-stops .msw-shift-exceeded th, .msw-result-stops .msw-shift-exceeded td { color: #991b1b; background: #fff7f7; }

.msw-supplier-panel { margin-bottom: 22px; }
.msw-geocode-form { display: flex; align-items: center; gap: 9px; }
.msw-geocode-form > span { color: #64748b; font-size: .72rem; font-weight: 750; white-space: nowrap; }
.msw-location-status { margin: 0 0 20px; padding: 13px 16px; display: grid; grid-template-columns: auto auto minmax(220px, 1fr) auto; align-items: center; gap: 12px 22px; border: 1px solid #bfdbfe; border-radius: 11px; background: #eff6ff; }
.msw-location-status div { display: grid; gap: 2px; }
.msw-location-status span { color: #64748b; font-size: .65rem; }
.msw-location-status strong { color: #065f46; font-size: 1rem; font-variant-numeric: tabular-nums; }
.msw-location-status div.is-open strong { color: #b45309; }
.msw-location-status p { margin: 0; color: #1e3a8a; font-size: .72rem; line-height: 1.45; }
.msw-supplier-table th, .msw-supplier-table td { vertical-align: top; }
.msw-supplier-table tbody th { color: #172033; background: white; font-size: .82rem; letter-spacing: 0; text-transform: none; }
.msw-supplier-table tbody th > strong { display: block; margin: 3px 0 5px; }
.msw-supplier-number { display: block; color: #4338ca; font-size: .7rem; font-weight: 850; }
.msw-tank-summary summary { color: #4338ca; font-size: .76rem; font-weight: 800; cursor: pointer; }
.msw-tank-summary ul { min-width: 260px; margin: 9px 0 0; padding: 0; display: grid; gap: 7px; list-style: none; }
.msw-tank-summary li { display: grid; gap: 2px; white-space: normal; }
.msw-tank-summary strong { color: #334155; font-size: .72rem; }
.msw-tank-summary span { color: #64748b; font-size: .68rem; line-height: 1.35; }
.msw-supplier-empty { min-height: 250px; }
.msw-import-panel { scroll-margin-top: 18px; }
.msw-import-panel .panel-heading p:last-child { max-width: 760px; margin: 7px 0 0; color: #64748b; font-size: .8rem; line-height: 1.45; }
.msw-import-layout { padding: 22px 24px; display: grid; grid-template-columns: 1fr 1.1fr; align-items: start; gap: 30px; }
.msw-import-guidance { display: grid; justify-items: start; gap: 8px; }
.msw-import-guidance p { margin: 0; color: #64748b; font-size: .8rem; line-height: 1.5; }
.msw-import-guidance .button-link { margin-top: 7px; }
.msw-import-form { display: grid; gap: 14px; }
.msw-import-form input[type="file"] { width: 100%; border: 1px solid #cbd5e1; border-radius: 9px; padding: 10px; color: #334155; background: #f8fafc; }
.msw-import-form .primary { justify-self: start; }

.msw-transfer-site-panel { margin-bottom: 22px; }
.msw-transfer-site-table th, .msw-transfer-site-table td { vertical-align: top; }
.msw-transfer-site-table tbody th { color: #172033; background: white; font-size: .82rem; letter-spacing: 0; text-transform: none; }
.msw-transfer-site-table tbody th > strong { display: block; margin: 5px 0; }
.msw-transfer-site-table .status-warning { color: #92400e; background: #fef3c7; white-space: nowrap; }
.msw-transfer-site-type { display: inline-flex; border-radius: 999px; padding: 3px 7px; color: #115e59; background: #ccfbf1; font-size: .62rem; font-weight: 850; }
.msw-transfer-site-type.is-trailer { color: #3730a3; background: #e0e7ff; }
.msw-transfer-site-empty { min-height: 250px; }
.msw-transfer-site-form { max-width: 1040px; }
.msw-transfer-site-vehicle-fields { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(220px, .5fr); align-items: start; gap: 16px; }
.msw-transfer-site-vehicle-note { padding: 15px 16px; display: grid; gap: 4px; border: 1px solid #c7d2fe; border-radius: 11px; color: #3730a3; background: #eef2ff; }
.msw-transfer-site-vehicle-note strong { font-size: .82rem; }
.msw-transfer-site-vehicle-note span { font-size: .72rem; line-height: 1.45; }
.msw-transfer-site-form [hidden] { display: none; }

[data-location-map], .msw-location-map { min-height: 360px; width: 100%; margin-top: 14px; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 12px; color: #64748b; background: #e8edf3; }
[data-location-results] { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; }
[data-location-results] > button { width: auto; max-width: 100%; flex: 1 1 260px; justify-content: flex-start; text-align: left; white-space: normal; }

.msw-supplier-form { max-width: 1040px; }
.msw-tanks-card { padding: 22px; }
.msw-tank-list { display: grid; gap: 12px; }
.msw-tank-row { padding: 15px; border: 1px solid #dbe1ea; border-radius: 11px; background: #fafbfc; }
.msw-tank-row-heading { margin-bottom: 13px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.msw-tank-row-heading strong { color: #3730a3; font-size: .86rem; }
.msw-tank-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.msw-tanks-card > .form-card-heading .secondary { flex: 0 0 auto; }

@media (max-width: 1240px) {
    .msw-workspace-header { grid-template-columns: 1fr; }
    .msw-workspace-header > .msw-section-tabs { justify-content: start; }
    .msw-planning-overview { grid-template-columns: 1fr; }
    .msw-planning-overview .msw-settings-drawer, .msw-planning-overview .msw-live-summary { grid-column: 1; }
    .msw-settings-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .msw-live-summary { position: static; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .msw-result-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .msw-result-facts div { border-bottom: 1px solid #e2e8f0; }
    .msw-live-summary article:first-child, .msw-live-summary article:last-child { border-radius: 0; }
    .msw-draft-toolbar { align-items: flex-start; flex-direction: column; }
    .msw-draft-controls { width: 100%; justify-content: start; flex-wrap: wrap; }
    .msw-change-summary { width: min(100%, 320px); }
    .msw-tour-empty { min-height: 260px; }
}

@media (max-width: 760px) {
    .msw-workspace-title-row { align-items: center; flex-wrap: wrap; }
    .msw-workspace-title-row .back-link { max-width: 100%; flex-basis: 100%; }
    .msw-section-tabs { align-items: stretch; flex-direction: column; gap: 0; border: 0; }
    .msw-section-tabs a { padding: 10px 12px; border: 1px solid #dbe1ea; border-radius: 8px; text-align: center; }
    .msw-section-tabs a.active { border-color: #6366f1; color: white; background: #4f46e5; }
    .msw-settings-drawer > summary { grid-template-columns: minmax(0, 1fr) auto; }
    .msw-settings-summary-values { display: none; }
    .msw-settings-drawer-body, .msw-settings-grid, .msw-route-endpoints, .msw-service-grid, .msw-tank-fields, .msw-import-layout { grid-template-columns: 1fr; }
    .msw-settings-group:first-child { grid-column: auto; }
    .msw-settings-group-heading-with-action { align-items: stretch; flex-direction: column; }
    .msw-settings-grid .field-span-2 { grid-column: auto; }
    .msw-planner-grid { grid-template-columns: 1fr; }
    .msw-stop-pool { height: auto; max-height: none; }
    .msw-supplier-pool > .msw-candidate-list { max-height: 360px; }
    .msw-transfer-candidate-list, .msw-unload-candidate-list { max-height: 260px; }
    .msw-live-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .msw-result-facts { grid-template-columns: 1fr; }
    .msw-result-facts div { border-right: 0; }
    .msw-map-heading { align-items: stretch; flex-direction: column; }
    .msw-map-legend { max-width: none; justify-content: start; }
    .msw-pool-filters { grid-template-columns: 1fr; }
    .msw-pool-filters .msw-search, .msw-pool-filters .msw-pool-checkbox { grid-column: auto; }
    .msw-tour-map { min-height: 370px; }
    .msw-tour-stop-heading { grid-template-columns: 24px minmax(0, 1fr); }
    .msw-tour-actions { grid-column: 2; display: flex; flex-wrap: wrap; }
    .msw-stop-service-details > summary { grid-template-columns: minmax(0, 1fr) auto auto; }
    .msw-stop-service-details > summary span:nth-child(2) { grid-column: 1 / -1; }
    .msw-stop-service-details > summary strong { grid-column: 2; grid-row: 1; }
    .msw-stop-service-details > summary::after { grid-column: 3; grid-row: 1; }
    .msw-stop-service { grid-template-columns: 1fr 1fr; }
    .msw-stop-service-result { grid-column: 1 / -1; justify-items: start; text-align: left; }
    .msw-stop-load-copy { grid-template-columns: 1fr; }
    .msw-stop-load-copy strong, .msw-stop-load-copy small { text-align: left; }
    .msw-import-form .primary { width: 100%; }
    .msw-tanks-card > .form-card-heading { align-items: stretch; flex-direction: column; }
    .msw-transfer-site-vehicle-fields { grid-template-columns: 1fr; }
    .msw-location-status { grid-template-columns: 1fr 1fr; }
    .msw-location-status p { grid-column: 1 / -1; }
    .msw-geocode-form { align-items: stretch; flex-direction: column; }
    .msw-geocode-form > span { text-align: center; }
    .msw-draft-controls .msw-change-summary { flex: 1 1 100%; width: 100%; }
    [data-location-map], .msw-location-map { min-height: 320px; }
    [data-location-results] { flex-direction: column; }
    [data-location-results] > button { width: 100%; flex-basis: auto; }
    .msw-plan-management-links { width: 100%; display: grid; }
}
.is-logistics-locked {
    cursor: not-allowed;
    opacity: 0.72;
    pointer-events: none;
}

/* Anmeldung und Konto */
.auth-shell { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; background: #f7f8fb; }
.auth-card { width: min(420px, 100%); padding: 28px; display: grid; gap: 16px; }
.auth-card h1 { margin: 0; font-size: 1.4rem; }
.auth-card .alert { margin: 0; }
.auth-brand { display: grid; justify-items: center; gap: 6px; padding-bottom: 4px; }
.auth-logo { width: 260px; max-width: 100%; height: auto; display: block; }
.auth-slogan { color: #506573; font-size: .74rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.auth-brand small { margin-top: 6px; padding: 3px 10px; border-radius: 999px; color: #64748b; background: var(--color-surface-subtle); font-size: .68rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.auth-form { display: grid; gap: 14px; }
.auth-form input { width: 100%; }
.auth-divider { margin: 0; display: flex; align-items: center; gap: 10px; color: #64748b; font-size: .8rem; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; border-top: 1px solid #e2e7ef; }
.auth-microsoft { width: 100%; }
.auth-narrow { max-width: 560px; }
.auth-steps { margin: 0 0 18px; padding-left: 20px; display: grid; gap: 10px; line-height: 1.45; }
.auth-steps li > .field-help { display: block; }
.totp-qr { display: block; margin: 10px 0; border: 1px solid #e2e7ef; border-radius: 8px; background: white; }
.one-time-password { font-size: 1.1rem; letter-spacing: .06em; user-select: all; }
