.journey-route-visualization{width:100%}.journey-route-map{border:1px solid #ffffff1a;border-radius:.75rem;width:100%;position:relative;overflow:hidden}.journey-route-map__canvas{z-index:1;background-color:#1a1a1a;border-radius:.75rem;width:100%;height:440px}.journey-route-map__toolbar{z-index:500;-webkit-backdrop-filter:blur(8px);-webkit-user-select:none;user-select:none;background:#fffffff2;border:1px solid #0000001a;border-radius:.5rem;align-items:center;gap:8px;padding:6px 10px;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 4px 12px -2px #0000001f,0 2px 4px -2px #0000000f}.journey-route-map__toolbar-item{cursor:pointer;border-radius:.375rem;align-items:center;gap:6px;padding:3px 6px;transition:background-color .15s;display:inline-flex}.journey-route-map__toolbar-item:hover{background:#0000000d}.journey-route-map__toggle-checkbox{accent-color:#2563eb;cursor:pointer;border:1.5px solid #9ca3af;border-radius:3px;width:15px;height:15px}.journey-route-map__toggle-label{color:#374151;white-space:nowrap;font-size:.75rem;font-weight:600}.dark .journey-route-map__toolbar{background:#18181beb;border-color:#ffffff26;box-shadow:0 4px 14px #00000073}.dark .journey-route-map__toolbar-item:hover{background:#ffffff14}.dark .journey-route-map__toggle-label{color:#f3f4f6}.dark .journey-route-map__toggle-checkbox{background:#27272a;border-color:#4b5563}.journey-route-map-empty,.journey-timeline__empty{text-align:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.journey-route-map-empty__icon,.journey-timeline__empty-icon{color:#9ca3af;background:#f3f4f6;border-radius:9999px;justify-content:center;align-items:center;width:3rem;height:3rem;margin-bottom:.75rem;display:inline-flex}.journey-route-map-empty__icon svg,.journey-timeline__empty-icon svg{width:1.5rem;height:1.5rem}.journey-route-map-empty__title,.journey-timeline__empty-title{color:#111827;font-size:.875rem;font-weight:600}.journey-route-map-empty__description,.journey-timeline__empty-description{color:#6b7280;max-width:28rem;margin-top:.25rem;font-size:.75rem;line-height:1.5}.journey-timeline{width:100%}.journey-timeline__list{margin:0;padding:0;list-style:none}.journey-timeline__stop,.journey-timeline__leg{grid-template-columns:2.5rem minmax(0,1fr);column-gap:.875rem;display:grid}.journey-timeline__marker-column{justify-content:center;padding-top:.15rem;display:flex;position:relative}.journey-timeline__stop:not(.journey-timeline__stop--last) .journey-timeline__marker-column:after{content:"";background:#e5e7eb;width:2px;position:absolute;top:2.15rem;bottom:-.75rem;left:calc(50% - 1px)}.journey-timeline__marker{z-index:1;color:#fff;letter-spacing:.025em;border:3px solid #fff;border-radius:9999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:.625rem;font-weight:800;display:inline-flex;position:relative;box-shadow:0 0 0 1px #e5e7eb,0 2px 5px #1118271f}.journey-timeline__marker--start{background:#059669}.journey-timeline__marker--end{background:#4f46e5}.journey-timeline__marker--completed{background:#d97706}.journey-timeline__marker--abandoned{background:#dc2626}.journey-timeline__card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem;box-shadow:0 1px 2px #1118270d}.journey-timeline__card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.journey-timeline__title{color:#111827;font-size:.875rem;font-weight:700;line-height:1.4}.journey-timeline__subtitle{color:#4b5563;margin-top:.2rem;font-size:.8125rem;font-weight:500;line-height:1.4}.journey-timeline__status{border-radius:9999px;flex:none;padding:.3rem .6rem;font-size:.6875rem;font-weight:700;line-height:1.25}.journey-timeline__status--completed{color:#047857;background:#ecfdf5}.journey-timeline__status--abandoned{color:#b91c1c;background:#fef2f2}.journey-timeline__meta{color:#6b7280;flex-wrap:wrap;align-items:center;gap:.4rem 1.25rem;margin-top:.6rem;font-size:.75rem;line-height:1.45;display:flex}.journey-timeline__meta p{align-items:flex-start;gap:.4rem;display:flex}.journey-timeline__meta svg,.journey-timeline__distance svg{flex:none;width:1rem;height:1rem}.journey-timeline__meta svg{margin-top:.1rem}.journey-timeline__leg{min-height:3.75rem}.journey-timeline__rail{justify-content:center;align-items:center;display:flex;position:relative}.journey-timeline__rail:before{inset-block:-.75rem;content:"";background:#e5e7eb;width:2px;position:absolute;left:calc(50% - 1px)}.journey-timeline__rail-dot{z-index:1;background:#f59e0b;border:2px solid #fff;border-radius:9999px;width:.55rem;height:.55rem;position:relative;box-shadow:0 0 0 1px #d1d5db}.journey-timeline__distance{color:#4b5563;background:#f9fafb;border:1px solid #e5e7eb;border-radius:9999px;place-self:center start;align-items:center;gap:.4rem;padding:.35rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.journey-timeline__attribution{color:#9ca3af;border-top:1px dashed #e5e7eb;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1rem;padding-top:.5rem;font-size:.65rem;line-height:1.4;display:flex}.journey-map-marker{color:#fff;-webkit-user-select:none;user-select:none;border:2px solid #fff;border-radius:9999px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;transition:transform .15s ease-in-out;display:flex;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -2px #0000004d}.journey-map-marker:hover{transform:scale(1.15);z-index:999!important}.journey-map-marker--start{background:linear-gradient(135deg,#10b981,#059669);width:32px;height:32px}.journey-map-marker--stop{background:linear-gradient(135deg,#f59e0b,#d97706);width:30px;height:30px}.journey-map-marker--stop-abandoned{background:linear-gradient(135deg,#ef4444,#b91c1c);width:30px;height:30px}.journey-map-marker--end{background:linear-gradient(135deg,#6366f1,#4f46e5);width:32px;height:32px}.journey-map-marker--route-point{background:#2563eb;border-width:2px;width:11px;height:11px;box-shadow:0 2px 5px #2563eb73}.journey-map-marker--job-location,.journey-map-marker--job-solid{color:#fff;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:2.5px solid #fff;border-radius:9999px;justify-content:center;align-items:center;width:34px;height:34px;font-size:.8rem;font-weight:800;transition:transform .15s ease-in-out;display:flex;box-shadow:0 4px 10px #2563eb73,0 2px 4px #0003}.journey-map-marker--job-solid:hover{transform:scale(1.15);z-index:999!important}.journey-map-marker__icon{fill:currentColor;width:17px;height:17px}.journey-map-marker--cluster-node{transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .3s ease-in-out}@keyframes marker-blink-pulse{0%{transform:scale(.88);box-shadow:0 0 #fffc}50%{transform:scale(1.18);box-shadow:0 0 0 8px #fff0}to{transform:scale(1);box-shadow:0 4px 6px -1px #0000004d}}.journey-map-marker--blink{animation:.45s ease-out marker-blink-pulse}.journey-map-popup__cluster-list{flex-direction:column;gap:.5rem;max-height:240px;margin-top:.5rem;display:flex;overflow-y:auto}.journey-map-popup__cluster-item{background:#f3f4f6;border-left:3px solid #f59e0b;border-radius:.375rem;padding:.5rem .625rem}.journey-map-popup__cluster-item--start{border-left-color:#10b981}.journey-map-popup__cluster-item--completed{border-left-color:#f59e0b}.journey-map-popup__cluster-item--abandoned{border-left-color:#ef4444}.journey-map-popup__cluster-item--end{border-left-color:#6366f1}.journey-map-popup__cluster-item--job{border-left-color:#2563eb}.journey-map-marker--job-cluster-node{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.journey-map-popup__cluster-header{align-items:center;gap:.375rem;font-size:.8125rem;display:flex}.journey-map-popup__cluster-badge{width:20px;min-width:20px;height:20px;box-shadow:none;border-width:1.5px;font-size:.625rem}.journey-map-popup__cluster-status{color:#4b5563;margin-top:.2rem;font-size:.6875rem;font-weight:600}.journey-map-popup__cluster-meta{color:#6b7280;margin-top:.125rem;font-size:.6875rem}.journey-map-popup__cluster-address{color:#9ca3af;margin-top:.125rem;font-size:.6875rem}.dark .journey-map-popup__cluster-item{background:#1f2937}.dark .journey-map-popup__cluster-status{color:#9ca3af}.dark .journey-map-popup__cluster-meta{color:#d1d5db}.dark .journey-map-popup__cluster-address{color:#6b7280}.journey-map-popup{color:#1f2937;font-family:inherit;font-size:.8125rem;line-height:1.4}.journey-map-popup__title{align-items:center;gap:.375rem;margin-bottom:.25rem;font-size:.875rem;font-weight:700;display:flex}.journey-map-popup__row{color:#4b5563;margin-top:.2rem}.journey-jobs-table{border:1px solid #e5e7eb;border-radius:.75rem;width:100%;overflow-x:auto}.journey-jobs-table__table{border-collapse:collapse;color:#374151;text-align:left;width:100%;min-width:1050px;font-size:.875rem}.journey-jobs-table__table thead{color:#6b7280;letter-spacing:.025em;text-transform:uppercase;background:#f9fafb;font-size:.75rem;font-weight:600}.journey-jobs-table__table th,.journey-jobs-table__table td{vertical-align:middle;padding:.8rem 1rem}.journey-jobs-table__table tbody tr{background:#fff;border-top:1px solid #e5e7eb;transition:background-color .15s}.journey-jobs-table__table tbody tr:hover{background:#f9fafb}.journey-jobs-table__primary{color:#111827;font-weight:600;line-height:1.35}.journey-jobs-table__secondary,.journey-jobs-table__muted{color:#6b7280;margin-top:.2rem;font-size:.75rem;line-height:1.4}.journey-jobs-table__badge-row{margin-top:.3rem}.journey-jobs-table__nowrap{white-space:nowrap}.journey-jobs-table__position{min-width:7.5rem}.journey-jobs-table__status{min-width:12rem}.journey-jobs-table .fi-badge,.journey-jobs-table .fi-badge-label{text-overflow:clip;white-space:nowrap;flex-shrink:0;max-width:none;overflow:visible}.journey-jobs-table__address{width:22rem;min-width:15rem}.journey-jobs-table__address .journey-jobs-table__secondary{overflow-wrap:anywhere}.journey-jobs-table__action-heading,.journey-jobs-table__action{text-align:right}.journey-jobs-table__action a{color:#d97706;align-items:center;gap:.35rem;font-size:.75rem;font-weight:700;text-decoration:none;display:inline-flex}.journey-jobs-table__action a:hover{color:#b45309}.journey-jobs-table__action svg{width:1rem;height:1rem}.journey-jobs-table__empty{color:#6b7280;text-align:center;padding:1.5rem!important}.spare-parts-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.spare-parts-summary--single{grid-template-columns:minmax(0,1fr)}.spare-parts-summary__group{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.spare-parts-summary__group h3{color:#111827;background:#f9fafb;padding:.8rem 1rem;font-size:.875rem;font-weight:700}.spare-parts-summary__row{border-top:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.spare-parts-summary__name{color:#111827;font-size:.875rem;font-weight:600}.spare-parts-summary__brand{color:#6b7280;margin-top:.15rem;font-size:.75rem}.spare-parts-summary__empty{color:#6b7280;padding:1rem;font-size:.875rem}.job-execution{gap:0;padding-left:3rem;display:grid;position:relative}.job-execution:before{content:"";background:#e5e7eb;width:2px;position:absolute;top:1.25rem;bottom:1.25rem;left:1.2rem}.job-execution__item,.job-execution__card{position:relative}.job-execution__header{justify-content:space-between;align-items:center;gap:1rem;padding:0 0 .75rem;display:flex;position:relative}.job-execution__heading{align-items:center;gap:.75rem;display:flex}.job-execution__heading h3{color:#111827;font-size:.95rem;font-weight:700}.job-execution__heading p{color:#6b7280;margin-top:.1rem;font-size:.75rem}.job-execution__icon{z-index:1;border:4px solid #fff;border-radius:9999px;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;display:inline-flex;position:absolute;top:0;left:-3rem}.job-execution__icon svg,.job-execution__location-icon svg{width:1.25rem;height:1.25rem}.job-execution__icon--completion{color:#059669;background:#ecfdf5}.job-execution__icon--abandonment{color:#ea580c;background:#fff7ed}.job-execution__body{gap:1rem;padding:0 0 1.75rem;display:grid}.job-execution__item:last-child .job-execution__body,.job-execution__card:last-child .job-execution__body{padding-bottom:0}.job-execution__facts{border:1px solid #e5e7eb;border-radius:.75rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid;overflow:hidden}.job-execution__facts>div{border-right:1px solid #e5e7eb;min-width:0;padding:.85rem 1rem}.job-execution__facts>div:last-child{border-right:0}.job-execution__facts dt,.job-execution__detail h4,.job-execution__location h4,.job-execution__section h4{color:#6b7280;font-size:.75rem;font-weight:600}.job-execution__facts dd{overflow-wrap:anywhere;color:#111827;margin-top:.25rem;font-size:.875rem;font-weight:600}.job-execution__detail{gap:.75rem;display:grid}.job-execution__detail p{color:#374151;margin-top:.25rem;font-size:.875rem;line-height:1.55}.job-execution__preformatted{white-space:pre-wrap}.job-execution__location{background:#eff6ff;border:1px solid #dbeafe;border-radius:.75rem;gap:.75rem;padding:.9rem 1rem;display:flex}.job-execution__location-icon{color:#2563eb;flex:none}.job-execution__location p{color:#1f2937;margin-top:.2rem;font-size:.875rem;line-height:1.45}.job-execution__location-meta{color:#6b7280;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.35rem;font-size:.75rem;display:flex}.job-execution__pin-change{color:#6b7280;align-items:flex-start;gap:.5rem;font-size:.8rem;line-height:1.5;display:flex}.job-execution__pin-change svg{flex:none;width:1rem;height:1rem;margin-top:.1rem}.job-execution__pin-change strong{color:#374151;font-weight:600}.job-execution__section{gap:.6rem;display:grid}.job-execution__section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.job-execution__section-heading span{color:#9ca3af;font-size:.75rem}.job-execution__parts{border:1px solid #e5e7eb;border-radius:.75rem;overflow:hidden}.job-execution__part{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.job-execution__part:last-child{border-bottom:0}.job-execution__part strong{color:#111827;font-size:.875rem;display:block}.job-execution__part span{color:#6b7280;margin-top:.1rem;font-size:.75rem;display:block}.job-service-photos{flex-wrap:wrap;gap:.75rem;display:flex}.job-service-photos__photo{aspect-ratio:1;border:1px solid #e5e7eb;border-radius:.5rem;width:6rem;display:block;overflow:hidden}.job-service-photos__photo img{object-fit:cover;width:100%;height:100%;display:block}.job-activity{gap:.75rem;display:grid;position:relative}.job-activity:before{content:"";background:#e5e7eb;width:1px;position:absolute;top:1rem;bottom:1rem;left:1rem}.job-activity__item{grid-template-columns:2rem minmax(0,1fr);gap:.75rem;display:grid;position:relative}.job-activity__marker{z-index:1;color:#d97706;background:#fffbeb;border:1px solid #f59e0b;border-radius:9999px;place-items:center;width:2rem;height:2rem;display:grid}.job-activity__marker svg{width:1rem;height:1rem}.job-activity__card{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:.875rem 1rem}.job-activity__header,.job-activity__meta{justify-content:space-between;align-items:center;gap:1rem;display:flex}.job-activity__header strong{color:#111827;font-size:.875rem}.job-activity__header time,.job-activity__meta{color:#6b7280;font-size:.75rem}.job-activity__meta{justify-content:flex-start;margin-top:.35rem}.job-activity__source{color:#4b5563;background:#f3f4f6;border-radius:9999px;padding:.1rem .45rem;font-weight:600}.job-activity__empty{color:#6b7280;font-size:.875rem}.dark .journey-jobs-table,.dark .spare-parts-summary__group,.dark .journey-route-map-empty,.dark .journey-timeline__empty,.dark .job-service-photos__photo,.dark .journey-timeline__card,.dark .job-execution__header,.dark .job-execution__facts,.dark .job-execution__facts>div,.dark .job-execution__parts,.dark .job-execution__part,.dark .job-activity__card{border-color:#ffffff1a}.dark .job-activity:before{background:#ffffff24}.dark .job-activity__marker{color:#fbbf24;background:#f59e0b1f;border-color:#f59e0b}.dark .job-activity__card{background:#111827}.dark .job-activity__header strong{color:#f9fafb}.dark .job-activity__source{color:#d1d5db;background:#1f2937}.dark .job-execution:before{background:#ffffff24}.dark .job-execution__icon{border-color:#111827}.dark .journey-route-map-empty,.dark .journey-timeline__empty,.dark .journey-timeline__card{background:#ffffff06}.dark .job-execution__heading h3,.dark .job-execution__facts dd,.dark .job-execution__part strong{color:#f9fafb}.dark .job-execution__heading p,.dark .job-execution__facts dt,.dark .job-execution__detail h4,.dark .job-execution__location h4,.dark .job-execution__section h4,.dark .job-execution__location-meta,.dark .job-execution__pin-change,.dark .job-execution__part span{color:#9ca3af}.dark .job-execution__detail p,.dark .job-execution__pin-change strong{color:#e5e7eb}.dark .job-execution__location{background:#3b82f614;border-color:#3b82f640}.dark .job-execution__location p{color:#dbeafe}.dark .job-execution__icon--completion{color:#6ee7b7;background:#10b9811f}.dark .job-execution__icon--abandonment{color:#fdba74;background:#f973161f}.dark .journey-route-map-empty__icon,.dark .journey-timeline__empty-icon{color:#9ca3af;background:#ffffff0f}.dark .journey-jobs-table__table{color:#e5e7eb}.dark .journey-jobs-table__table thead,.dark .spare-parts-summary__group h3{color:#9ca3af;background:#ffffff0d}.dark .journey-jobs-table__table tbody tr,.dark .spare-parts-summary__group{background:0 0}.dark .journey-jobs-table__table tbody tr,.dark .spare-parts-summary__row{border-color:#ffffff14}.dark .journey-jobs-table__table tbody tr:hover{background:#ffffff08}.dark .journey-jobs-table__primary,.dark .spare-parts-summary__name,.dark .spare-parts-summary__group h3,.dark .journey-route-map-empty__title,.dark .journey-timeline__empty-title,.dark .journey-timeline__title{color:#f9fafb}.dark .journey-jobs-table__secondary,.dark .journey-jobs-table__muted,.dark .spare-parts-summary__brand,.dark .spare-parts-summary__empty,.dark .journey-route-map-empty__description,.dark .journey-timeline__empty-description,.dark .journey-timeline__meta{color:#9ca3af}.dark .journey-timeline__attribution{color:#6b7280;border-top-color:#ffffff14}.dark .journey-timeline__subtitle{color:#d1d5db}.dark .journey-timeline__stop:not(.journey-timeline__stop--last) .journey-timeline__marker-column:after,.dark .journey-timeline__rail:before{background:#ffffff24}.dark .journey-timeline__marker,.dark .journey-timeline__rail-dot{border-color:#18181b;box-shadow:0 0 0 1px #ffffff29,0 2px 6px #00000059}.dark .journey-timeline__distance{color:#d1d5db;background:#ffffff0d;border-color:#ffffff1a}.dark .journey-timeline__status--completed{color:#6ee7b7;background:#10b9811f}.dark .journey-timeline__status--abandoned{color:#fca5a5;background:#ef44441f}.dark .journey-timeline__attribution{border-color:#ffffff1a}@media (width<=720px){.spare-parts-summary{grid-template-columns:minmax(0,1fr)}.journey-route-map__canvas{height:340px}.journey-timeline__stop,.journey-timeline__leg{grid-template-columns:2.25rem minmax(0,1fr);column-gap:.625rem}.journey-timeline__marker{width:2rem;height:2rem}.journey-timeline__card-header{flex-direction:column}.job-execution__facts{grid-template-columns:minmax(0,1fr)}.job-activity__header{flex-direction:column;align-items:flex-start;gap:.25rem}.job-execution__facts>div{border-bottom:1px solid #e5e7eb;border-right:0}.job-execution__facts>div:last-child{border-bottom:0}.dark .job-execution__facts>div{border-bottom-color:#ffffff1a}}@media (width>=721px) and (width<=1100px){.job-execution__facts{grid-template-columns:repeat(2,minmax(0,1fr))}.job-execution__facts>div:nth-child(2){border-right:0}.job-execution__facts>div:nth-child(-n+2){border-bottom:1px solid #e5e7eb}.dark .job-execution__facts>div:nth-child(-n+2){border-bottom-color:#ffffff1a}}
