/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */
@import "print";

 .miniicon{
font-size: 10px;
 }
 .fielder-col {
     background-color: #f0f8ff!important;;
 }

 .qc-col {
     background-color: #f9fbe7!important;;
 }

 .cleaner-col {
     background-color: #fff3e0!important;;
 }


.search{
    width: 100% !important;
    max-width: none !important;
}

 .search label, 
 .search b, 
 .label,
 form label {
    font-size: 0.8em;
    font-weight: bold;
    
 }
 .text-small{
    font-size: 0.75em;
    
 }

 hr {
     border: 1px solid #efefef;
 }

 .contractors-locations-map {
     width: 100%;
     height: min(62vh, 560px);
     min-height: 360px;
     border: 1px solid #dee2e6;
     border-radius: 0.375rem;
     background: #f1f3f8;
 }

 .locations-map-legend {
     display: flex;
     align-items: center;
     justify-content: flex-end;
     flex-wrap: wrap;
     gap: 0.75rem;
     color: #6c757d;
     font-size: 0.75rem;
     font-weight: 600;
 }

 .locations-map-legend-item {
     display: inline-flex;
     align-items: center;
     gap: 0.3rem;
 }

 .locations-map-legend-swatch {
     width: 12px;
     height: 12px;
     border: 1px solid rgba(0, 0, 0, 0.15);
     border-radius: 50%;
 }

 .leaflet-interactive {
     cursor: pointer;
 }

 .locations-map-tooltip {
     min-width: 170px;
     max-width: 260px;
 }

 .locations-map-tooltip-photo {
     display: block;
     width: 240px;
     max-width: 100%;
     height: 150px;
     margin-bottom: 0.5rem;
     border-radius: 0.3rem;
     object-fit: cover;
     background: #f1f3f8;
 }

 .address-filters {
     overflow: hidden;
     border: 1px solid rgba(46, 46, 133, 0.2);
 }

 .address-summary-card {
     --summary-color: #2e2e85;
     color: inherit;
     overflow: hidden;
     background: #fff;
     border: 1px solid #e2e5ef;
     border-left: 0.3rem solid var(--summary-color);
     border-radius: 0.8rem;
     text-decoration: none;
     transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
 }

 .address-summary-card:hover,
 .address-summary-card:focus-visible,
 .address-summary-card.active {
     color: inherit;
     border-color: var(--summary-color);
     box-shadow: 0 0 0 2px color-mix(in srgb, var(--summary-color) 16%, transparent), 0 0.45rem 1rem rgba(24, 28, 58, 0.14) !important;
     outline: none;
     transform: translateY(-2px);
 }

 .address-summary-card.active {
     background: color-mix(in srgb, var(--summary-color) 6%, white);
 }

 .address-summary-card--secondary {
     --summary-color: #6c757d;
 }

 .address-summary-card--info {
     --summary-color: #1c70b8;
 }

 .address-summary-card--success {
     --summary-color: #198754;
 }

 .address-summary-card--warning {
     --summary-color: #d89b00;
 }

 .address-summary-card--danger {
     --summary-color: #dc3545;
 }

 .address-summary-icon {
     display: grid;
     flex: 0 0 2.6rem;
     width: 2.6rem;
     height: 2.6rem;
     color: var(--summary-color);
     background: color-mix(in srgb, var(--summary-color) 12%, white);
     border-radius: 50%;
     place-items: center;
 }

 .address-summary-value {
     color: #20232d;
     font-size: 1.65rem;
     font-weight: 800;
     line-height: 1;
 }

 .address-summary-label {
     margin-top: 0.3rem;
     color: #6c757d;
     font-size: 0.78rem;
     font-weight: 700;
     line-height: 1.2;
 }

 .address-filter-card {
     display: inline-flex;
     align-items: center;
     gap: 0.75rem;
     min-width: 135px;
     padding: 0.65rem 0.8rem;
     color: #343a40;
     text-decoration: none;
     background: #fff;
     border: 1px solid #dfe3ee;
     border-radius: 0.65rem;
     box-shadow: 0 0.15rem 0.45rem rgba(24, 28, 58, 0.08);
     transition: transform 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
 }

 .address-filter-card:hover,
 .address-filter-card.active {
     color: #2e2e85;
     border-color: #2e2e85;
     box-shadow: 0 0 0 2px rgba(46, 46, 133, 0.12), 0 0.3rem 0.8rem rgba(24, 28, 58, 0.12);
     transform: translateY(-1px);
 }

 .address-filter-card.active {
     background: #f1f1ff;
 }

 .address-filter-label {
     flex: 1;
     font-size: 0.8rem;
     font-weight: 600;
 }

 .address-filter-count {
     font-size: 1.15rem;
 }

 .address-heat-filter {
     padding: 0.9rem 1rem;
     background: linear-gradient(110deg, #f7f8fc, #f1f1ff);
     border: 1px solid #dfe3ee;
     border-radius: 0.75rem;
 }

 .address-heat-value {
     color: #2e2e85;
     font-size: 1.5rem;
     font-weight: 800;
 }

 .address-heat-range {
     --heat-position: 0%;
     height: 0.7rem;
 }

 .address-heat-range::-webkit-slider-runnable-track {
     height: 0.55rem;
     background: linear-gradient(90deg, #c62828 0%, #ef6c00 20%, #f9a825 40%, #9e9d24 60%, #43a047 80%, #087f23 100%);
     border-radius: 999px;
     box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.22), 0 0 10px rgba(46, 46, 133, 0.18);
 }

 .address-heat-range::-webkit-slider-thumb {
     width: 1.25rem;
     height: 1.25rem;
     margin-top: -0.35rem;
     background: #fff;
     border: 3px solid #2e2e85;
     border-radius: 50%;
     box-shadow: 0 0 0 4px rgba(46, 46, 133, 0.16), 0 0 12px rgba(46, 46, 133, 0.4);
 }

 .node-view-nav {
     position: sticky;
     top: 0.75rem;
     z-index: 1020;
     display: flex;
     align-items: stretch;
     gap: 0.35rem;
     padding: 0.45rem;
     overflow-x: auto;
     background: #fff;
     border: 1px solid #dfe3ee;
     border-radius: 0.8rem;
     backdrop-filter: blur(12px);
 }

 .node-view-nav-item {
     display: flex;
     flex: 1 0 175px;
     align-items: center;
     min-width: 0;
     padding-right: 0.7rem;
     border-radius: 0.6rem;
     background: #f7f8fc;
 }

 .node-view-nav-link {
     display: inline-flex;
     flex: 1 1 auto;
     align-items: center;
     justify-content: center;
     gap: 0.5rem;
     min-width: 125px;
     padding: 0.7rem 0.9rem;
     color: #343a40;
     font-size: 0.85rem;
     font-weight: 700;
     text-decoration: none;
     border-radius: 0.55rem;
     transition: color 120ms ease, background-color 120ms ease, transform 120ms ease;
 }

 .node-view-nav-link:hover,
 .node-view-nav-link:focus {
     color: #fff;
     background: linear-gradient(135deg, #2e2e85, #1c70b8);
     transform: translateY(-1px);
 }

 .node-view-switch {
     position: relative;
     flex: 0 0 auto;
     width: 2.6rem;
     height: 1.4rem;
     margin: 0;
     cursor: pointer;
 }

 .node-view-switch input {
     width: 0;
     height: 0;
     opacity: 0;
 }

 .node-view-switch-slider {
     position: absolute;
     inset: 0;
     background: #60646f;
     border: 1px solid #c8ccd5;
     border-radius: 999px;
     transition: background-color 160ms ease, box-shadow 160ms ease;
 }

 .node-view-switch-slider::before {
     position: absolute;
     top: 0.16rem;
     left: 0.18rem;
     width: 0.95rem;
     height: 0.95rem;
     content: "";
     background: #fff;
     border-radius: 50%;
     box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
     transition: transform 160ms ease;
 }

 .node-view-switch input:checked + .node-view-switch-slider {
     background: linear-gradient(135deg, #34c759, #1c9f48);
     box-shadow: 0 0 10px rgba(52, 199, 89, 0.45);
 }

 .node-view-switch input:checked + .node-view-switch-slider::before {
     transform: translateX(1.25rem);
 }

 .node-view-switch input:focus-visible + .node-view-switch-slider {
     outline: 2px solid #2e2e85;
     outline-offset: 2px;
 }

 #locations-map-section,
 #node-peds-section,
 #small-mdu-locations,
 #medium-mdu-locations,
 #node-activity-log,
 [id^="contractors_node_"] {
     scroll-margin-top: 6rem;
 }





 :root {
     --bs-primary: #2e2e85;
     --bs-secondary: #1c70b8;
     --bs-info: #2a5e8c;
 }

 .btn-primary {
     background-color: var(--bs-primary) !important;
     border-color: var(--bs-primary) !important;
 }

 .btn-secondary {
     background-color: var(--bs-secondary) !important;
     border-color: var(--bs-secondary) !important;
 }

 .badge-primary {
     background-color: var(--bs-primary);
 }

 .badge-secondary {
     background-color: var(--bs-secondary);
 }

 :root {
     --bs-primary: #2e2e85;
     --bs-secondary: #1c70b8;
     --bs-info: #2a5e8c;
     --bs-success: #388e3c;
     --bs-danger: #b71c1c;
     --bs-warning: #f9a825;
     --bs-light: #f1f3f8;
     --bs-dark: #1a1a40;
     --bs-muted: #6c757d;
     --bs-white: #ffffff;
 }

 /* Buttons */
 .btn-primary {
     background-color: var(--bs-primary) !important;
     border-color: var(--bs-primary) !important;
 }

 .btn-secondary {
     background-color: var(--bs-secondary) !important;
     border-color: var(--bs-secondary) !important;
 }

 .btn-info {
     background-color: var(--bs-info) !important;
     border-color: var(--bs-info) !important;
 }

 .btn-success {
     background-color: var(--bs-success) !important;
     border-color: var(--bs-success) !important;
 }

 .btn-danger {
     background-color: var(--bs-danger) !important;
     border-color: var(--bs-danger) !important;
 }

 .btn-warning {
     background-color: var(--bs-warning) !important;
     border-color: var(--bs-warning) !important;
 }

 /* Badges */
 .badge-primary {
     background-color: var(--bs-primary) !important;
 }

 .badge-secondary {
     background-color: var(--bs-secondary) !important;
 }

 .badge-info {
     background-color: var(--bs-info) !important;
 }

 .badge-success {
     background-color: var(--bs-success) !important;
 }

 .badge-danger {
     background-color: var(--bs-danger) !important;
 }

 .badge-warning {
     background-color: var(--bs-warning) !important;
 }

 .badge-light {
     background-color: var(--bs-light) !important;
     color: #000;
 }

 .badge-dark {
     background-color: var(--bs-dark) !important;
 }

 .badge-muted {
     background-color: var(--bs-muted) !important;
 }

 .badge-white {
     background-color: var(--bs-white) !important;
     color: #000;
 }

 .node-work-badge {
     color: #fff;
     font-size: 0.72rem;
     letter-spacing: 0.01em;
     padding: 0.42rem 0.58rem;
 }

 .node-work-badge--peds {
     background-color: #e07a18;
 }

 .node-work-badge--medium {
     background-color: #1677c8;
 }

 .node-work-badge--small {
     background-color: #7651c9;
 }

 .node-work-badge.is-empty {
     background-color: #eef0f4;
     border: 1px solid #d6d9e0;
     color: #7b8190;
 }
