.workspace-page-header{justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);text-align:left;display:flex}.workspace-page-title{font-size:var(--font-size-2xl);font-family:var(--font-family-base);color:var(--text-primary);margin:0 0 var(--spacing-xs);font-weight:600;line-height:1.25}.workspace-page-header p{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}.workspace-card-title{font-size:var(--font-size-lg)}.workspace-list-page,.account-content,.new-reports-page{width:100%;max-width:1200px;margin-inline:auto}.station-selection-container .app-container{max-width:1200px}.station-metrics{gap:var(--spacing-xs);margin-top:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-size-sm);display:grid}.station-metrics progress{width:100%;height:8px;accent-color:var(--color-primary)}.station-metrics-alert{color:var(--color-danger-700)}.equipment-last-test[data-due=overdue]{color:var(--color-danger-700);font-weight:600}.hose-properties-list{gap:0 var(--spacing-sm);flex-wrap:wrap;display:flex}.hose-properties-list li{display:inline}.hose-properties-list li:not(:last-child):after{content:"·";margin-left:var(--spacing-sm);color:var(--text-muted)}.search-shortcut{background:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--border-primary);border-radius:var(--radius-control);font:inherit;margin-right:var(--spacing-sm);padding:2px 6px}.equipment-keyboard-hint{color:var(--text-muted);font-size:var(--font-size-xs)}.equipment-keyboard-hint kbd{background:var(--bg-secondary);color:var(--text-primary)}.troubleshooting{grid-column:1/-1}.troubleshooting summary{cursor:pointer;min-height:44px;padding:var(--spacing-lg);font-weight:600}.settings-tab select{appearance:auto;border:1px solid var(--border-primary);background-image:none;background-color:var(--bg-primary);min-height:44px;padding-right:var(--spacing-lg)}.billing-usage{gap:var(--spacing-xl);margin-block:var(--spacing-lg);flex-wrap:wrap;display:flex}.billing-usage div{gap:var(--spacing-xs);display:grid}.billing-usage dt{color:var(--text-muted);font-weight:400}.billing-usage dd{margin:0;font-weight:600}.login-card .login-card-header{background:var(--bg-primary);color:var(--text-primary);border-bottom:0}.login-card .login-title,.login-card .login-subtitle{color:var(--text-primary)}.login-card .login-subtitle{color:var(--text-muted)}.login-remember{align-items:center;gap:var(--spacing-sm);min-height:44px;margin-bottom:var(--spacing-md);display:flex}.login-remember input{width:20px;height:20px}.login-secondary-links{justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-lg);display:flex}.login-secondary-links a{color:var(--color-primary-700);align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.workspace-user-menu{display:inline-block;position:relative}.workspace-user-menu summary{cursor:pointer;border:1px solid var(--border-primary);border-radius:var(--radius-control);min-height:44px;padding:10px 14px;list-style:none}:where(.workspace-user-menu[open])>button{z-index:10;background:var(--bg-primary);border:1px solid var(--border-primary);box-shadow:var(--elevation-2);white-space:nowrap;position:absolute;top:44px;right:0}.hydrant-item-actions .btn{flex:none}.hydrant-item-actions{justify-content:flex-end}.map-unavailable{padding:var(--spacing-md);top:var(--spacing-md);left:var(--spacing-md);z-index:1000;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-card);max-width:calc(100% - 32px);position:absolute}.report-print-branding{align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:flex}.report-print-branding img{object-fit:contain;max-width:150px;max-height:70px}.empty-state-icon{font-size:var(--font-size-2xl)}.empty-state{padding:var(--spacing-2xl);text-align:center}.firegauge-toasts{top:var(--spacing-lg);right:var(--spacing-lg);z-index:15000;gap:var(--spacing-sm);width:min(380px,100vw - 32px);display:grid;position:fixed}.firegauge-toast{background:var(--bg-primary);border:1px solid var(--border-primary);border-left:4px solid var(--color-primary);box-shadow:var(--elevation-2);border-radius:var(--radius-card);padding:var(--spacing-md);align-items:center;gap:var(--spacing-sm);color:var(--text-primary);display:flex}.firegauge-toast[data-tone=danger]{border-left-color:var(--color-danger-700)}.firegauge-toast[data-tone=success]{border-left-color:var(--color-success-700)}.firegauge-toast-message{flex:1}.firegauge-toast button{min-width:44px;min-height:44px;color:var(--color-primary-700);background:0 0;border:0;font-weight:600}@media (width<=767px){.workspace-page-header{flex-direction:column;align-items:stretch}.workspace-page-header .btn{width:100%}.search-shortcut{display:none}.firegauge-toasts{inset:auto auto max(var(--spacing-lg), env(safe-area-inset-bottom)) 50%;transform:translate(-50%)}.equipment-keyboard-hint{display:none}}@media print{@page{margin:14mm}.top-bar-main,.demo-banner,.account-sidebar,.account-tab-bar,.firegauge-toasts,.report-tags,.report-actions,.report-header-actions,.export-dropdown,.floating-search-button,.workspace-page-header,.browse-header{display:none}.app-layout,[class~=app-layout__main],[class~=app-layout__content],.new-reports-page,.modern-report-viewer{color:#000;background:#fff;width:100%;max-width:none;margin:0;padding:0;overflow:visible}.modern-report-viewer button,.modern-report-viewer .btn{display:none}.report-section{break-inside:avoid;break-before:auto}.report-section+.report-section{break-before:page}.modern-report-viewer table{border-collapse:collapse;width:100%}.modern-report-viewer thead{display:table-header-group}.modern-report-viewer tr{break-inside:avoid}}.login-remember input[type=checkbox]{appearance:auto;accent-color:var(--color-primary);flex:0 0 20px}@media print{.modern-report-viewer .content-section{break-inside:avoid}.modern-report-viewer .collapsible-section+.collapsible-section{break-before:page}.modern-report-viewer .collapse{height:auto;display:block}.modern-report-viewer .table-responsive{overflow:visible}.modern-report-viewer .section-header{position:static}}.floating-hydrant-list .floating-list-card{container:hydrant-panel/inline-size}@container hydrant-panel (width<=600px){.floating-hydrant-list .equipment-toolbar-card{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"search add""chips chips"}.floating-hydrant-list .equipment-toolbar-meta{display:none}.floating-hydrant-list .equipment-toolbar-chips{flex-wrap:nowrap;overflow-x:auto}.floating-hydrant-list .equipment-toolbar-chip{flex:none}.floating-hydrant-list .equipment-toolbar-add{width:44px;min-width:44px;padding:0}.floating-hydrant-list .equipment-toolbar-add>span{display:none}}.equipment-keyboard-help{display:inline-flex;position:relative}.equipment-keyboard-help summary{cursor:pointer;width:44px;height:44px;color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}.equipment-keyboard-help p{z-index:120;background:var(--color-background-card);border:1px solid var(--color-border-default);border-radius:var(--radius-card);min-width:260px;padding:var(--spacing-md);position:absolute;top:100%;right:0}.bulk-pass-button{min-height:44px;padding-inline:var(--spacing-sm);white-space:nowrap}.hydrant-panel-header-actions,.hydrant-item-header .hydrant-item-actions{align-items:center;gap:var(--spacing-xs);flex-wrap:nowrap;display:flex}.floating-hydrant-list .equipment-toolbar-progress{display:none}.hydrant-item-header{gap:var(--spacing-sm);flex-wrap:wrap}.hydrant-item-header .hydrant-item-actions{margin:0;margin-left:auto}.hydrant-item-date{display:block}.billing-tab .card-header h5,.settings-card .card-title,.security-tab .card-header h5,.branding-card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.branding-card-title svg,.settings-card .card-icon,.billing-tab .card-header svg,.security-tab .card-header svg{font-size:var(--font-size-base);width:16px;color:var(--color-text-secondary)}@media (width<=767px){.equipment-keyboard-help{display:none}}.billing-tab .card,.security-tab .card,.settings-card,.branding-card{background:var(--color-background-card);border:1px solid var(--color-border-default);border-radius:var(--radius-card);box-shadow:var(--elevation-1)}:root{--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-300:#93c5fd;--color-primary-400:#60a5fa;--color-primary-500:#3b82f6;--color-primary-600:#2563eb;--color-primary-700:#1d4ed8;--color-primary-800:#1e40af;--color-primary-900:#1e3a8a;--color-gray-50:#fff;--color-gray-100:#f8fafc;--color-gray-200:#e2e8f0;--color-gray-300:#cbd5e1;--color-gray-400:#94a3b8;--color-gray-500:#64748b;--color-gray-600:#4b5563;--color-gray-700:#374151;--color-gray-800:#1f2937;--color-gray-900:#111827;--color-success:#28a745;--color-success-light:#d4edda;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-danger:#ef4444;--color-danger-light:#fee2e2;--color-info:#06b6d4;--color-info-light:#cffafe;--color-success-700:#15803d;--color-success-800:#166534;--color-danger-600:#dc2626;--color-danger-700:#b91c1c;--color-danger-800:#991b1b;--color-warning-700:#b45309;--color-info-700:#0e7490;--topbar-fixed-height:64px;--status-bg:var(--color-gray-50);--status-color:var(--color-gray-700);--status-border:var(--color-gray-300);--status-success-bg:var(--color-success-light);--status-success-color:var(--color-success);--status-success-border:var(--color-success);--status-danger-bg:var(--color-danger-light);--status-danger-color:var(--color-danger);--status-danger-border:var(--color-danger);--status-warning-bg:var(--color-warning-light);--status-warning-color:var(--color-warning);--status-warning-border:var(--color-warning);--status-info-bg:var(--color-info-light);--status-info-color:var(--color-info);--status-info-border:var(--color-info);--color-text-primary:var(--color-gray-700);--color-text-muted:var(--color-gray-500);--color-background-card:var(--color-gray-50);--color-background-hover:var(--color-gray-100);--color-border-default:var(--color-gray-300);--color-border-light:var(--color-gray-200);--color-primary-light:var(--color-primary-100);--color-primary:var(--color-primary-600);--color-text-secondary:var(--text-secondary);--color-background-default:var(--color-gray-100);--color-background-subtle:var(--color-gray-100);--color-border-primary:var(--border-primary);--color-border-subtle:var(--border-primary);--color-border-hover:var(--color-primary-500);--color-primary-alpha:var(--color-primary-100);--color-success-dark:var(--color-success-700);--color-danger-dark:var(--color-danger-700);--border-standard:1px solid var(--border-primary);--border-color:var(--border-primary);--border-radius-default:var(--radius-control);--font-size-md:var(--font-size-base);--text-xs:var(--font-size-xs);--text-sm:var(--font-size-sm);--text-base:var(--font-size-base);--text-lg:var(--font-size-lg);--text-xl:var(--font-size-xl);--text-2xl:var(--font-size-2xl);--text-3xl:var(--font-size-2xl);--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:.75rem;--spacing-lg:1rem;--spacing-xl:1.5rem;--spacing-2xl:2rem;--spacing-3xl:3rem;--spacing-4xl:4rem;--font-family-base:"Inter Variable", inter, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, sans-serif;--font-family-mono:"SFMono-Regular", consolas, "Liberation Mono", menlo, courier, monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-snug:1.375;--line-height-normal:1.5;--line-height-relaxed:1.625;--line-height-loose:2;--border-width-thin:1px;--border-width-thick:2px;--border-style:solid;--border-radius-none:0;--border-radius-sm:var(--radius-control);--border-radius-base:var(--radius-control);--border-radius-md:var(--radius-control);--border-radius-lg:var(--radius-card);--border-radius-xl:var(--radius-overlay);--border-radius-2xl:var(--radius-overlay);--border-radius-3xl:var(--radius-overlay);--border-radius-full:9999px;--radius-control:.5rem;--radius-card:.75rem;--radius-overlay:1rem;--radius-pill:9999px;--elevation-1:0 1px 2px 0 #0f172a0f, 0 1px 3px 0 #0f172a14;--elevation-2:0 8px 24px -6px #0f172a29;--elevation-3:0 24px 48px -12px #0f172a47;--control-height:44px;--control-height-compact:36px;--focus-ring-color:var(--color-primary-600);--focus-ring-outline:2px solid var(--focus-ring-color);--focus-ring-offset:2px;--duration-fast:.15s;--duration-base:.25s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--transition-colors:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);--shadow-xs:var(--elevation-1);--shadow-sm:var(--elevation-1);--shadow-base:var(--elevation-2);--shadow-md:var(--elevation-2);--shadow-lg:var(--elevation-3);--shadow-xl:var(--elevation-3);--z-behind:-1;--z-base:0;--z-content:10;--z-raised:50;--z-sticky:100;--z-fixed:200;--z-inline-overlay:400;--z-topbar:1000;--z-dropdown:1050;--z-overlay:1020;--z-modal-backdrop:1450;--z-modal:1500;--z-floating-action:1200;--z-toast:1600;--z-tooltip:1700;--z-debug:9999;--z-critical-ui:10000;--transition-fast:var(--duration-fast) var(--ease-standard);--transition-base:var(--duration-base) var(--ease-standard);--transition-slow:var(--duration-base) var(--ease-standard);--transition-bounce:var(--ease-standard);--breakpoint-phone-max:767px;--breakpoint-tablet-max:1024px;--bg-primary:var(--color-gray-50);--bg-secondary:#fafafa;--bg-tertiary:#f5f5f5;--bg-accent:#f8fafc;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#64748b;--text-inverse:var(--color-gray-50);--scrollbar-width:8px;--scrollbar-track-color:transparent;--scrollbar-thumb-color:#cbd5e1;--scrollbar-thumb-hover-color:#94a3b8;--layout-content-max:1200px;--layout-content-narrow:48rem;--layout-content-wide:72rem;--space-section:clamp(1.5rem, 4vw, 3rem);--space-stack:clamp(.75rem, 2vw, 1.5rem);--space-inline:clamp(.5rem, 1.5vw, 1rem);--touch-min:44px;--touch-comfortable:48px;--card-padding-mobile:clamp(.75rem, 3vw, 1rem);--card-padding-desktop:clamp(1rem, 2vw, 1.5rem);--card-compact-padding:.75rem;--card-compact-gap:.5rem;--info-density-spacing:.375rem;--text-xs-fluid:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm-fluid:clamp(.875rem, .8rem + .375vw, 1rem);--text-base-fluid:clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg-fluid:clamp(1.125rem, 1rem + .625vw, 1.5rem);--text-compact:.8125rem;--text-label:.75rem;--line-height-compact:1.35}:root .heading-base{font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;margin-bottom:var(--spacing-sm);line-height:1.2}:root .heading-1{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;margin-bottom:var(--spacing-lg);line-height:1.1}:root .heading-2{font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin-bottom:var(--spacing-md);line-height:1.2}:root .heading-3{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);line-height:1.3}:root .heading-4{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-sm);line-height:1.4}:root .heading-5{font-size:var(--text-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs);line-height:1.4}:root .heading-6{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs);line-height:1.4}.theme-light{--bg-primary:var(--color-gray-50);--bg-secondary:#fafafa;--bg-tertiary:#f5f5f5;--bg-accent:#f8fafc;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#64748b;--text-inverse:var(--color-gray-50);--color-text-primary:var(--text-primary);--color-text-muted:var(--text-muted);--color-background-card:var(--bg-primary);--color-background-hover:var(--bg-tertiary);--color-border-default:var(--border-primary);--color-border-light:var(--border-primary);--color-primary-light:var(--color-primary-100);--border-primary:#e2e8f0;--border-secondary:#cbd5e1;--border-accent:#e0e7ff;--surface-base:var(--color-gray-50);--surface-raised:var(--color-gray-50);--surface-overlay:#fffffff2;--button-primary-bg:var(--color-primary-600);--button-primary-hover:var(--color-primary-700);--button-primary-text:var(--color-gray-50);--button-gradient-disabled:true;--input-bg:var(--color-gray-50);--input-border:var(--color-gray-300);--input-focus-border:var(--color-primary-500);--input-focus-ring:#3b82f640;--card-bg:var(--color-gray-50);--card-border:var(--color-gray-200);--card-shadow:var(--shadow-sm);--navbar-bg:var(--color-gray-50);--navbar-border:#e2e8f0;--navbar-text:#0f172a;--modal-bg:var(--color-gray-50);--modal-backdrop:#0000004d;--modal-shadow:var(--shadow-xl);--modal-width-xs:300px;--modal-width-sm:400px;--modal-width-md:500px;--modal-width-lg:800px;--modal-width-xl:1140px;--modal-max-height:90vh;--modal-min-height:100px;--modal-padding-sm:.75rem;--modal-padding-md:1rem;--modal-padding-lg:1.5rem;--modal-padding-xl:2rem;--modal-radius-sm:.375rem;--modal-radius-md:.5rem;--modal-radius-lg:.75rem;--modal-radius-xl:1rem;--modal-duration-fast:var(--duration-fast);--modal-duration-normal:var(--duration-fast);--modal-duration-slow:var(--duration-base);--modal-easing-enter:var(--ease-standard);--modal-easing-exit:var(--ease-standard);--modal-header-bg-default:var(--bg-primary);--modal-header-bg-primary:var(--color-primary-600);--modal-header-bg-success:var(--color-success-600);--modal-header-bg-warning:var(--color-warning-400);--modal-header-bg-danger:var(--color-danger-600);--modal-header-text-default:var(--text-primary);--modal-header-text-light:var(--color-gray-50);--modal-border:var(--border-primary);--modal-background:var(--bg-primary);--modal-close-button-size:2.5rem;--modal-touch-target-min:44px;--modal-title-size-sm:1.125rem;--modal-title-size-md:1.25rem;--modal-title-weight:600;--modal-title-line-height:1.5;--modal-focus-ring:0 0 0 3px #3b82f640;--modal-focus-ring-success:0 0 0 3px #10b98140;--modal-focus-ring-danger:0 0 0 3px #ef444440;--modal-shadow-lg:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--modal-safe-area-top:env(safe-area-inset-top,0);--modal-safe-area-right:env(safe-area-inset-right,0);--modal-safe-area-bottom:env(safe-area-inset-bottom,0);--modal-safe-area-left:env(safe-area-inset-left,0);--table-bg:var(--color-gray-50);--table-stripe:#f1f5f9;--table-hover:#e9eef5;--table-border:#d8dee6;--focus-ring:0 0 0 3px var(--input-focus-ring);--focus-ring-danger:0 0 0 3px #ef444440;--focus-ring-success:0 0 0 3px #10b98140;--touch-target-min:44px;--bs-primary:var(--color-primary-600);--bs-primary-rgb:37, 99, 235;--bs-success:var(--color-success-700);--bs-success-rgb:21, 128, 61;--bs-danger:var(--color-danger-600);--bs-danger-rgb:220, 38, 38;--bs-warning:var(--color-warning);--bs-warning-rgb:245, 158, 11;--bs-info:var(--color-info-700);--bs-info-rgb:14, 116, 144;--bs-secondary:var(--color-gray-500);--bs-secondary-rgb:100, 116, 139;--bs-body-font-family:var(--font-family-base);--bs-body-color:var(--text-primary);--bs-body-bg:var(--bg-primary);--bs-border-color:var(--border-primary);--bs-border-radius:var(--radius-control);--bs-link-color:var(--color-primary-700);--bs-link-hover-color:var(--color-primary-800)}@media (prefers-contrast:more){:root{--border-width-thin:2px;--border-width-thick:3px;--focus-ring:0 0 0 4px var(--color-primary-500)}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--transition-fast:0s;--transition-base:0s;--transition-slow:0s;--transition-bounce:linear}}@media (width<=767px){:root{--topbar-fixed-height:56px;--touch-target-min:48px;--spacing-md:1rem;--spacing-lg:1.25rem;--spacing-xl:1.75rem;--space-section:1.5rem;--space-stack:.75rem;--card-padding-mobile:.75rem}}.text-primary{color:var(--text-primary)!important}.text-secondary{color:var(--text-secondary)!important}.text-tertiary{color:var(--text-tertiary)!important}.text-muted{color:var(--text-muted)!important}.text-success{color:var(--color-success)!important}.text-danger{color:var(--color-danger)!important}.text-warning{color:var(--color-warning)!important}.text-info{color:var(--color-info)!important}.bg-primary{background-color:var(--bg-primary)!important}.bg-secondary{background-color:var(--bg-secondary)!important}.bg-tertiary{background-color:var(--bg-tertiary)!important}.bg-surface{background-color:var(--surface-base)!important}.border-primary{border-color:var(--border-primary)!important}.border-secondary{border-color:var(--border-secondary)!important}.z-behind{z-index:var(--z-behind)!important}.z-base{z-index:var(--z-base)!important}.z-content{z-index:var(--z-content)!important}.z-sticky{z-index:var(--z-sticky)!important}.z-fixed{z-index:var(--z-fixed)!important}.z-overlay{z-index:var(--z-overlay)!important}.z-modal{z-index:var(--z-modal)!important}.z-toast{z-index:var(--z-toast)!important}.z-critical{z-index:var(--z-critical-ui)!important}.shadow-none{box-shadow:none!important}.shadow-xs{box-shadow:var(--shadow-xs)!important}.shadow-sm{box-shadow:var(--shadow-sm)!important}.shadow-base{box-shadow:var(--shadow-base)!important}.shadow-md{box-shadow:var(--shadow-md)!important}.shadow-lg{box-shadow:var(--shadow-lg)!important}.shadow-xl{box-shadow:var(--shadow-xl)!important}.rounded-none{border-radius:var(--border-radius-none)!important}.rounded-sm{border-radius:var(--border-radius-sm)!important}.rounded{border-radius:var(--border-radius-base)!important}.rounded-md{border-radius:var(--border-radius-md)!important}.rounded-lg{border-radius:var(--border-radius-lg)!important}.rounded-xl{border-radius:var(--border-radius-xl)!important}.rounded-2xl{border-radius:var(--border-radius-2xl)!important}.rounded-full{border-radius:var(--border-radius-full)!important}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:var(--border-radius-full);background-clip:content-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color);background-clip:content-box}::-webkit-scrollbar-corner{background:var(--scrollbar-track-color)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);box-sizing:border-box}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-primary);transition:color var(--transition-base), background-color var(--transition-base);margin:0}.btn,.btn-standard{--bs-btn-border-width:1px;--bs-btn-focus-box-shadow:none;justify-content:center;align-items:center;gap:var(--spacing-sm);box-sizing:border-box;min-height:var(--control-height);min-width:var(--control-height);padding:0 var(--spacing-lg);font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);text-align:center;white-space:nowrap;color:var(--bs-btn-color,var(--text-primary));background-color:var(--bs-btn-bg,transparent);border:1px solid var(--bs-btn-border-color,transparent);border-radius:var(--radius-control);box-shadow:none;cursor:pointer;-webkit-user-select:none;user-select:none;transition:var(--transition-colors);background-image:none;text-decoration:none;display:inline-flex}.btn:before,.btn-standard:before{display:none}.btn:hover:not(:disabled){color:var(--bs-btn-hover-color,var(--bs-btn-color));background-color:var(--bs-btn-hover-bg,var(--bs-btn-bg));border-color:var(--bs-btn-hover-border-color,var(--bs-btn-border-color))}.btn:active:not(:disabled),.btn.active{color:var(--bs-btn-active-color,var(--bs-btn-hover-color));background-color:var(--bs-btn-active-bg,var(--bs-btn-hover-bg));border-color:var(--bs-btn-active-border-color,var(--bs-btn-hover-border-color))}.btn:focus-visible{outline:var(--focus-ring-outline);outline-offset:var(--focus-ring-offset);box-shadow:none}.btn:disabled,.btn.disabled{color:var(--text-tertiary);background-color:var(--color-gray-100);border-color:var(--color-gray-200);opacity:1;cursor:not-allowed;pointer-events:none;box-shadow:none}.btn.btn-loading:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;order:-1;width:1em;height:1em;animation:.8s linear infinite btn-loading-spin}.btn-spinner{width:1em;height:1em;margin-right:var(--spacing-xs);vertical-align:-.125em;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;animation:.8s linear infinite btn-loading-spin;display:inline-block}.btn-spinner-lg{width:2rem;height:2rem;color:var(--color-primary-600);border-width:3px;margin-right:0}@keyframes btn-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn.btn-loading:after{animation-duration:2s}}.btn-primary{--bs-btn-color:var(--color-gray-50);--bs-btn-bg:var(--color-primary-600);--bs-btn-border-color:var(--color-primary-600);--bs-btn-hover-color:var(--color-gray-50);--bs-btn-hover-bg:var(--color-primary-700);--bs-btn-hover-border-color:var(--color-primary-700);--bs-btn-active-color:var(--color-gray-50);--bs-btn-active-bg:var(--color-primary-800);--bs-btn-active-border-color:var(--color-primary-800)}.btn-secondary{--bs-btn-color:var(--text-primary);--bs-btn-bg:var(--color-gray-50);--bs-btn-border-color:var(--border-secondary);--bs-btn-hover-color:var(--text-primary);--bs-btn-hover-bg:var(--color-gray-100);--bs-btn-hover-border-color:var(--color-gray-400);--bs-btn-active-color:var(--text-primary);--bs-btn-active-bg:var(--color-gray-200);--bs-btn-active-border-color:var(--color-gray-400)}.btn-ghost{--bs-btn-color:var(--text-secondary);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--text-primary);--bs-btn-hover-bg:var(--color-gray-100);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--text-primary);--bs-btn-active-bg:var(--color-gray-200);--bs-btn-active-border-color:transparent}.btn-danger{--bs-btn-color:var(--color-gray-50);--bs-btn-bg:var(--color-danger-600);--bs-btn-border-color:var(--color-danger-600);--bs-btn-hover-color:var(--color-gray-50);--bs-btn-hover-bg:var(--color-danger-700);--bs-btn-hover-border-color:var(--color-danger-700);--bs-btn-active-color:var(--color-gray-50);--bs-btn-active-bg:var(--color-danger-800);--bs-btn-active-border-color:var(--color-danger-800)}.btn-ghost-danger{--bs-btn-color:var(--color-danger-700);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--color-danger-700);--bs-btn-hover-bg:var(--color-danger-light);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--color-danger-800);--bs-btn-active-bg:var(--color-danger-light);--bs-btn-active-border-color:var(--color-danger-600)}.btn-success{--bs-btn-color:var(--color-gray-50);--bs-btn-bg:var(--color-success-700);--bs-btn-border-color:var(--color-success-700);--bs-btn-hover-color:var(--color-gray-50);--bs-btn-hover-bg:var(--color-success-800);--bs-btn-hover-border-color:var(--color-success-800);--bs-btn-active-color:var(--color-gray-50);--bs-btn-active-bg:var(--color-success-800);--bs-btn-active-border-color:var(--color-success-800)}.btn-warning{--bs-btn-color:var(--color-gray-900);--bs-btn-bg:var(--color-warning);--bs-btn-border-color:var(--color-warning);--bs-btn-hover-color:var(--color-gray-900);--bs-btn-hover-bg:var(--color-warning-700);--bs-btn-hover-border-color:var(--color-warning-700)}.btn-info{--bs-btn-color:var(--color-gray-50);--bs-btn-bg:var(--color-info-700);--bs-btn-border-color:var(--color-info-700);--bs-btn-hover-color:var(--color-gray-50);--bs-btn-hover-bg:var(--color-info-700);--bs-btn-hover-border-color:var(--color-info-700)}.btn-outline-primary,.btn-outline-secondary,.btn-outline-success,.btn-outline-success-variant,.btn-outline-danger,.btn-outline-warning,.btn-outline-info,.btn-outline-dark,.btn-outline-light{--bs-btn-bg:var(--color-gray-50);--bs-btn-hover-color:var(--bs-btn-color);--bs-btn-hover-border-color:var(--bs-btn-border-color);--bs-btn-active-color:var(--bs-btn-color);--bs-btn-active-border-color:var(--bs-btn-border-color)}.btn-outline-primary{--bs-btn-color:var(--color-primary-700);--bs-btn-border-color:var(--color-primary-300);--bs-btn-hover-bg:var(--color-primary-50);--bs-btn-active-bg:var(--color-primary-100)}.btn-outline-secondary,.btn-outline-dark,.btn-outline-light{--bs-btn-color:var(--text-primary);--bs-btn-border-color:var(--border-secondary);--bs-btn-hover-bg:var(--color-gray-100);--bs-btn-active-bg:var(--color-gray-200)}.btn-outline-success,.btn-outline-success-variant{--bs-btn-color:var(--color-success-700);--bs-btn-border-color:var(--color-gray-400);--bs-btn-hover-bg:var(--color-success-light);--bs-btn-active-bg:var(--color-success-light)}.btn-outline-danger{--bs-btn-color:var(--color-danger-700);--bs-btn-border-color:var(--color-warning-light);--bs-btn-hover-bg:var(--color-danger-light);--bs-btn-active-bg:var(--color-danger-light)}.btn-outline-warning{--bs-btn-color:var(--color-warning-700);--bs-btn-border-color:var(--color-warning);--bs-btn-hover-bg:var(--color-warning-light);--bs-btn-active-bg:var(--color-warning-light)}.btn-outline-info{--bs-btn-color:var(--color-info-700);--bs-btn-border-color:var(--color-primary-300);--bs-btn-hover-bg:var(--color-info-light);--bs-btn-active-bg:var(--color-info-light)}.btn-link{--bs-btn-color:var(--color-primary-700);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--color-primary-800);--bs-btn-hover-bg:transparent;--bs-btn-hover-border-color:transparent;text-underline-offset:2px;text-decoration:underline}.btn-sm{min-height:var(--control-height-compact);min-width:var(--control-height-compact);padding:0 var(--spacing-md);font-size:var(--font-size-xs)}.btn-lg{min-width:52px;min-height:52px;padding:0 var(--spacing-xl);font-size:var(--font-size-base)}@media (pointer:coarse),(width<=767px){.btn-sm{min-height:var(--control-height);min-width:var(--control-height);font-size:var(--font-size-sm)}}.btn-icon-only{min-width:var(--control-height);width:var(--control-height);padding:0}.btn-full-width{width:100%}.btn-rounded,.btn-pill{border-radius:var(--radius-pill)}.cursor-pointer{cursor:pointer}.filter-pill{border-radius:var(--radius-pill);padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:var(--transition-colors);white-space:nowrap}.status-indicator{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-base);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);display:inline-flex}.status-indicator:before{content:"";border:2px solid var(--color-gray-50);width:10px;height:10px;box-shadow:var(--elevation-1);border-radius:50%;flex-shrink:0}.status-indicator.status-passed:before{background-color:var(--color-success)}.status-indicator.status-failed:before{background-color:var(--color-danger-600)}.status-indicator.status-pending:before{background-color:var(--color-warning)}.status-indicator.status-all:before{background-color:var(--color-gray-500)}.floating-hydrant-list{z-index:999;width:400px;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);position:fixed;top:80px;bottom:20px;left:20px}.dropdown-menu{z-index:1060!important}.navbar .dropdown-menu,.top-bar .dropdown-menu{z-index:1070!important}.floating-hydrant-list.minimized{width:200px;height:auto;max-height:none}.floating-hydrant-list.minimized .floating-list-controls,.floating-hydrant-list.minimized .floating-list-content{display:none}.floating-hydrant-list.minimized .floating-list-card{height:auto}.floating-list-card{background:var(--color-gray-50);border:var(--border-standard);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;height:100%;display:flex;overflow:hidden}.floating-list-header{background:var(--color-gray-100);padding:var(--spacing-md);border-bottom:var(--border-standard);flex-shrink:0}.floating-hydrant-list.minimized .floating-list-header{padding:var(--spacing-sm) var(--spacing-md)}.floating-hydrant-list.minimized .floating-list-header h6{display:inline-flex}.floating-hydrant-list.minimized .floating-list-header .badge{display:none}.floating-hydrant-list.minimized .floating-list-header>.d-flex{justify-content:space-between}.floating-list-controls{padding:var(--spacing-md);border-bottom:var(--border-standard);flex-shrink:0}.floating-list-content{padding:var(--spacing-sm);flex:1;height:auto;min-height:0;max-height:100%;overflow-x:hidden;overflow-y:auto!important}.hydrant-list-items{gap:var(--spacing-sm);flex-direction:column;display:flex}.hydrant-list-item{background:var(--color-gray-50);border:var(--border-standard);border-radius:var(--border-radius-md);padding:var(--spacing-md);cursor:pointer;transition:border-color var(--transition-base), box-shadow var(--transition-base);overflow-wrap:break-word;position:relative;overflow:hidden}.hydrant-list-item:hover{border-color:var(--color-primary-500);box-shadow:var(--shadow-sm)}@media (width<=1024px){.floating-hydrant-list{will-change:height;z-index:1001!important;width:100%!important;height:60px!important;max-height:none!important;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)!important;border-radius:12px 12px 0 0!important;margin:0!important;padding:0!important;position:fixed!important;inset:auto 0 0!important;transform:none!important}.floating-hydrant-list.mobile-open{height:45vh!important}.floating-hydrant-list .floating-list-content{display:none!important}.floating-hydrant-list.mobile-open .floating-list-content{display:block!important;overflow:auto!important}.floating-hydrant-list .floating-list-card{border-radius:12px 12px 0 0!important;height:100%!important}.floating-hydrant-list:not(.mobile-open) .floating-list-controls{opacity:0!important;visibility:hidden!important;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)!important}.floating-hydrant-list.mobile-open .floating-list-controls,.floating-hydrant-list.mobile-open .floating-list-content{opacity:1!important;visibility:visible!important;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)!important}.floating-hydrant-list .hydrant-list-item{padding:calc(var(--spacing-sm) * .75)!important;min-height:auto!important}.floating-hydrant-list .hydrant-item-header{margin-bottom:calc(var(--spacing-xs) * .75)!important}.floating-hydrant-list .hydrant-item-details{gap:calc(var(--spacing-xs) * .5)!important}.floating-hydrant-list .hydrant-item-actions{margin-top:calc(var(--spacing-xs) * .75)!important}.floating-hydrant-list .hydrant-item-actions .btn{padding:calc(var(--spacing-xs) * .75) calc(var(--spacing-sm) * .75)!important;font-size:calc(var(--font-size-sm) * .9)!important}}@media (width>=1025px){.hydrant-map-container{top:var(--topbar-height,64px);width:100vw;height:calc(100vh - var(--topbar-height,64px));z-index:1;min-height:0;position:fixed;left:0;right:0;overflow:hidden}.hydrant-map-container-parent,.hydrant-map-container-parent>.col-12{margin:0!important;padding:0!important}.hydrant-map-container .leaflet-control-container{z-index:1000}.hydrant-map-container .leaflet-bottom.leaflet-right{bottom:20px;right:20px}.marker-cluster{color:#007bffe6;width:40px;height:40px;box-shadow:var(--elevation-1);text-align:center;background-color:#fffffff2;border:3px solid #007bffe6;border-radius:50%;justify-content:center;align-items:center;font:700 14px/1 Helvetica Neue,Arial,Helvetica,sans-serif;display:flex}.marker-cluster-icon{background:0 0!important;border:none!important}.marker-cluster-small{color:#fff!important;background-color:#28a745f2!important;border-color:#28a745!important}.marker-cluster-medium{color:var(--text-primary)!important;background-color:#ffc107f2!important;border-color:#ffc107!important}.marker-cluster-large{color:#fff!important;background-color:#dc3545f2!important;border-color:#dc3545!important}}@media (width<=1024px){.hydrant-map-container{inset:var(--topbar-height,64px) 0 0 0;z-index:1;width:100%;height:auto;min-height:0;position:fixed}}.hydrant-list-item:focus-visible{outline:2px solid var(--color-primary-600);outline-offset:2px;border-color:var(--color-primary-500);box-shadow:var(--shadow-sm)}.hydrant-list-item.status-passed{border-left:4px solid var(--color-success)}.hydrant-list-item.status-failed{border-left:4px solid var(--color-danger)}.hydrant-list-item.status-pending{border-left:4px solid var(--color-warning)}.hydrant-list-item.selected{border-color:var(--color-primary);box-shadow:var(--elevation-1);background-color:#3b82f61a}.hydrant-item-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:flex-start;display:flex}.hydrant-id strong{font-size:var(--font-size-base);color:var(--text-primary)}.hydrant-id small{font-size:var(--font-size-xs);color:var(--text-secondary)}.hydrant-item-details{margin-bottom:var(--spacing-sm)}.hydrant-properties{gap:var(--spacing-xs);margin-bottom:var(--spacing-xs);flex-wrap:wrap;display:flex}.property-tag{background:var(--color-gray-200);color:var(--color-gray-700);padding:2px var(--spacing-xs);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);white-space:nowrap}.hydrant-test-info{font-size:var(--font-size-xs);color:var(--color-gray-500)}.hydrant-item-actions{gap:var(--spacing-xs);justify-content:flex-end;display:flex}.filter-pills-container{border-top:var(--border-standard);padding-top:var(--spacing-md)}.filter-dropdown-container{position:relative}.filter-dropdown{z-index:1050;width:50%;margin-top:2px;position:absolute;top:100%;left:0}.filter-dropdown-content{background:var(--surface-base);border:var(--border-standard);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);overflow:hidden}.filter-dropdown-item{width:100%;padding:var(--spacing-sm) var(--spacing-md);color:var(--text-primary);text-align:left;cursor:pointer;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);background:0 0;border:none;display:flex}.filter-dropdown-item:hover{background:var(--bg-secondary)}.filter-dropdown-item.active{background:var(--color-primary-100);color:var(--color-primary-700)}.filter-dropdown-item:not(:last-child){border-bottom:1px solid var(--border-color)}@media (width<=1024px){.floating-hydrant-list{width:350px}}.floating-locate-control{z-index:1000;position:absolute;top:20px;right:20px}.floating-locate-btn{background:var(--color-primary-600);color:#fff;width:48px;height:48px;box-shadow:var(--shadow-lg);cursor:pointer;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);font-size:var(--font-size-lg);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.floating-locate-btn:hover:not(:disabled){background:var(--color-primary-700);box-shadow:var(--shadow-xl)}.floating-locate-btn:active:not(:disabled){transform:translateY(0)}.floating-locate-btn:disabled{opacity:.6;cursor:not-allowed}.floating-locate-info,.floating-locate-error,.floating-locate-warning{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--border-radius-md);padding:var(--spacing-sm);font-size:var(--font-size-xs);box-shadow:var(--shadow-sm);overflow-wrap:break-word;pointer-events:auto;z-index:1001;background:#fffffff2;max-width:200px;position:absolute;top:calc(100% + 8px);right:0}.floating-locate-info:before,.floating-locate-error:before,.floating-locate-warning:before{content:"";border-bottom:6px solid #fffffff2;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;position:absolute;bottom:100%;right:16px}.floating-locate-error{color:var(--color-danger)}.floating-locate-warning{color:var(--color-warning)}.floating-locate-help-btn{color:inherit;cursor:pointer;font-size:inherit;margin-left:var(--spacing-xs);background:0 0;border:none;text-decoration:underline}.leaflet-control-zoom{overflow:hidden;box-shadow:var(--shadow-lg)!important;border-radius:var(--border-radius-md)!important;border:none!important}.leaflet-control-zoom a{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-primary)!important;font-size:var(--font-size-lg)!important;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)!important;background:#fffffff2!important;border:none!important;width:40px!important;height:40px!important;font-weight:600!important;line-height:40px!important}.leaflet-control-zoom a:hover{background:var(--color-primary-600)!important;color:#fff!important}.leaflet-control-zoom a:active{transform:translateY(0)!important}.leaflet-control-zoom a:first-child{border-bottom:1px solid #0000001a!important}.hydrant-popup .leaflet-popup-content-wrapper{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);padding:0}.hydrant-popup .leaflet-popup-content{margin:0;padding:0}.hydrant-popup-content{padding:var(--spacing-md)}.hydrant-popup-header{margin-bottom:var(--spacing-md)}.hydrant-status-circle{border-radius:50%;flex-shrink:0;width:12px;height:12px;display:inline-block}.hydrant-popup-title{font-weight:600;font-size:var(--font-size-md);color:var(--text-primary)}.hydrant-popup-actions{margin-top:var(--spacing-sm)}.form-check-input{background-color:var(--input-bg);border:1px solid var(--color-gray-400);width:1.25em;height:1.25em;margin-top:.125em}.form-check-input:checked{background-color:var(--color-primary-600);border-color:var(--color-primary-600)}.form-check-input:focus-visible{border-color:var(--color-primary-600);box-shadow:none;outline:var(--focus-ring-outline);outline-offset:var(--focus-ring-offset)}.form-check-label{font-size:var(--font-size-sm);color:var(--text-primary)}.form-group{margin-bottom:var(--spacing-xl)}.form-group:last-child{margin-bottom:0}.form-label{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);line-height:var(--line-height-snug);display:block}.form-label.required:after{content:" *";color:var(--color-danger);font-weight:var(--font-weight-semibold)}.form-control,.form-select{width:100%;min-height:var(--control-height);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-family-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--input-bg);border:1px solid var(--color-gray-400);border-radius:var(--radius-control);box-shadow:none;transition:var(--transition-colors);appearance:none;display:block}.form-control{background-image:none}.form-field+.form-field{margin-top:var(--spacing-lg)}.form-field-required{color:var(--color-danger-700)}.form-field-help,.form-field-error{margin:var(--spacing-xs) 0 0;font-size:var(--font-size-xs);line-height:var(--line-height-snug)}.form-field-help{color:var(--text-secondary)}.form-field-error{color:var(--color-danger-700)}.form-field :is(.form-control,.form-select)[aria-invalid=true]{border-color:var(--color-danger-600)}.inline-alert{align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-control);font-size:var(--font-size-sm);line-height:var(--line-height-normal);border:1px solid #0000;display:flex}.inline-alert>.fas{margin-top:.2em}.inline-alert-body{flex:1;min-width:0}.inline-alert-danger{background:var(--color-danger-light);border-color:var(--color-danger-light);color:var(--color-danger-800)}.inline-alert-warning{background:var(--color-warning-light);border-color:var(--color-warning-light);color:var(--color-danger-800)}.inline-alert-success{background:var(--color-success-light);border-color:var(--color-success-light);color:var(--color-success-800)}.inline-alert-info{background:var(--color-primary-50);border-color:var(--color-primary-100);color:var(--color-primary-900)}.inline-alert-dismiss{border-radius:var(--radius-control);width:32px;height:32px;color:inherit;cursor:pointer;background:0 0;border:0;margin:-4px -8px -4px 0}.form-control-sm,.form-select-sm{min-height:var(--control-height);padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm);font-size:var(--font-size-sm);border-radius:var(--radius-control)}.form-control:hover:not(:disabled,:focus-visible),.form-select:hover:not(:disabled,:focus-visible){border-color:var(--color-gray-500)}.form-control:focus-visible,.form-select:focus-visible{color:var(--text-primary);background-color:var(--input-bg);border-color:var(--color-primary-600);outline:var(--focus-ring-outline);box-shadow:0 0 0 3px var(--input-focus-ring)}.form-control::placeholder{color:var(--text-muted);opacity:1}.form-control:disabled,.form-select:disabled{background-color:var(--bg-tertiary);opacity:1;cursor:not-allowed}.form-control.is-invalid,.form-select.is-invalid{border-color:var(--color-danger)}.form-control.is-invalid:focus-visible{border-color:var(--color-danger);box-shadow:var(--focus-ring-danger)}.form-select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m1 6 7 7 7-7'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right var(--spacing-lg) center;padding-right:calc(var(--spacing-2xl) + 16px);background-size:16px 12px}.invalid-feedback{width:100%;margin-top:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-danger);line-height:var(--line-height-snug);display:block}.form-text{margin-top:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--text-tertiary);line-height:var(--line-height-snug)}.card{overflow-wrap:break-word;background-color:var(--card-bg);border:var(--border-width-thin) var(--border-style) var(--card-border);border-radius:var(--border-radius-lg);min-width:0;box-shadow:var(--card-shadow);transition:box-shadow var(--transition-base), transform var(--transition-base);background-clip:border-box;flex-direction:column;display:flex;position:relative}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);background-color:var(--bg-secondary);border-bottom:var(--border-width-thin) var(--border-style) var(--card-border);border-top-left-radius:calc(var(--border-radius-lg) - var(--border-width-thin));border-top-right-radius:calc(var(--border-radius-lg) - var(--border-width-thin));margin-bottom:0}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-tight);margin-bottom:0}.card-body{padding:var(--spacing-xl);flex:auto}.card-footer{padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl);background-color:var(--bg-secondary);border-top:var(--border-width-thin) var(--border-style) var(--card-border);border-bottom-left-radius:calc(var(--border-radius-lg) - var(--border-width-thin));border-bottom-right-radius:calc(var(--border-radius-lg) - var(--border-width-thin))}.table{width:100%;margin-bottom:var(--spacing-xl);background-color:var(--table-bg);border-collapse:collapse;border-spacing:0}.table th,.table td{padding:var(--spacing-md) var(--spacing-lg);vertical-align:top;border-bottom:var(--border-width-thin) var(--border-style) var(--table-border);text-align:left}.table th{background-color:var(--bg-secondary);font-weight:var(--font-weight-semibold);color:var(--text-primary);border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:var(--table-stripe)}.table-hover tbody tr:hover{background-color:var(--table-hover)}.modal{z-index:var(--z-modal);width:100%;height:100%;display:none;position:fixed;top:0;left:0;overflow:hidden auto}.modal.show{display:block}.modal-backdrop{z-index:var(--z-modal-backdrop);background-color:var(--modal-backdrop);width:100vw;height:100vh;position:fixed;top:0;left:0}.modal-dialog{width:auto;margin:var(--spacing-3xl) auto;pointer-events:none;max-width:500px;position:relative}.modal-content{pointer-events:auto;background-color:var(--modal-bg);border:var(--border-width-thin) var(--border-style) var(--border-primary);border-radius:var(--border-radius-xl);width:100%;box-shadow:var(--modal-shadow);background-clip:padding-box;flex-direction:column;display:flex;position:relative}.modal-header{padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);border-bottom:var(--border-width-thin) var(--border-style) var(--border-primary);border-top-left-radius:calc(var(--border-radius-xl) - var(--border-width-thin));border-top-right-radius:calc(var(--border-radius-xl) - var(--border-width-thin));justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-tight);margin-bottom:0}.modal-body{padding:var(--spacing-xl);flex:auto;position:relative}.modal-footer{justify-content:flex-end;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl);border-top:var(--border-width-thin) var(--border-style) var(--border-primary);border-bottom-left-radius:calc(var(--border-radius-xl) - var(--border-width-thin));border-bottom-right-radius:calc(var(--border-radius-xl) - var(--border-width-thin));flex-wrap:wrap;display:flex}.alert{padding:var(--spacing-lg) var(--spacing-xl);margin-bottom:var(--spacing-xl);border:var(--border-width-thin) var(--border-style) transparent;border-radius:var(--border-radius-md);font-size:var(--font-size-sm);line-height:var(--line-height-normal);position:relative}.alert-success{color:var(--color-success);background-color:var(--color-success-light);border-color:var(--color-success)}.alert-danger{color:var(--color-danger);background-color:var(--color-danger-light);border-color:var(--color-danger)}.report-generating{opacity:.9;position:relative}.report-generating-indicator{color:var(--color-primary);font-size:var(--font-size-sm);align-items:center;gap:.5rem;display:inline-flex}.report-generating-indicator .spinner-border{border-width:2px;width:1rem;height:1rem}.alert-warning{color:var(--color-warning);background-color:var(--color-warning-light);border-color:var(--color-warning)}.alert-info{color:var(--color-info);background-color:var(--color-info-light);border-color:var(--color-info)}.navbar{padding:var(--spacing-lg) var(--spacing-xl);background-color:var(--navbar-bg);border-bottom:var(--border-width-thin) var(--border-style) var(--navbar-border);z-index:var(--z-sticky);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:relative}.nav-brand{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm);margin-right:var(--spacing-xl);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--navbar-text);white-space:nowrap;text-decoration:none}.toast{max-width:350px;margin-bottom:var(--spacing-md);background-color:var(--surface-raised);border:var(--border-width-thin) var(--border-style) var(--border-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);opacity:0;z-index:var(--z-toast);transition:opacity var(--transition-base), transform var(--transition-base);background-clip:padding-box;position:relative}.toast.show{opacity:1}.toast-container{top:var(--spacing-xl);right:var(--spacing-xl);z-index:var(--z-toast);pointer-events:none;position:fixed}.loading{pointer-events:none;opacity:.6;position:relative}.spinner{border-radius:var(--border-radius-full);border:2px solid #0000;border-top-color:currentColor;width:20px;height:20px;animation:1s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sr-only{clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{top:-40px;left:var(--spacing-md);background:var(--text-primary);color:var(--text-inverse);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius-base);font-weight:var(--font-weight-medium);z-index:var(--z-critical-ui);transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);text-decoration:none;position:absolute}.skip-link:focus-visible{top:var(--spacing-md)}@media (width<=767px){.form-control,.form-select{font-size:var(--font-size-base)}.card-header,.card-body,.card-footer{padding:var(--spacing-lg)}.table th,.table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.modal-dialog{margin:var(--spacing-md);max-width:calc(100% - var(--spacing-lg))}.toast-container{top:var(--spacing-md);right:var(--spacing-md);left:var(--spacing-md)}.toast{max-width:100%}}@media (prefers-reduced-motion:reduce){.btn:hover,.card:hover{transform:none}.spinner{animation:none}}.skeleton-loader{background:linear-gradient(90deg, var(--color-gray-200) 25%, var(--color-gray-100) 50%, var(--color-gray-200) 75%);border-radius:var(--border-radius-base);background-size:200% 100%;display:inline-block;position:relative;overflow:hidden}.skeleton-animated{animation:1.1s linear infinite skeleton-shimmer}.skeleton-list .skeleton-animated{opacity:.85;animation:none}@keyframes skeleton-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-card{pointer-events:none;opacity:.7}.skeleton-card .equipment-header{margin-bottom:var(--spacing-md)}.skeleton-card .equipment-info{gap:var(--spacing-sm)}.equipment-id-skeleton{margin-bottom:var(--spacing-xs)}.equipment-type-skeleton{opacity:.8}.skeleton-card .equipment-details{gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.skeleton-card .detail-item{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.skeleton-card .detail-item:last-child{margin-bottom:0}.table-skeleton{border-collapse:collapse;width:100%}.table-skeleton th,.table-skeleton td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:var(--border-width-thin) solid var(--border-primary)}.table-skeleton .skeleton-loader{width:100%;height:16px}.btn-skeleton{background:var(--color-gray-200);border:var(--border-width-thin) solid var(--color-gray-300);color:#0000;cursor:default;pointer-events:none}.card-skeleton{background:var(--color-gray-50);border:var(--border-width-thin) solid var(--color-gray-200)}.card-skeleton .card-header{background:var(--color-gray-100)}.loading-screen{background:var(--bg-primary);z-index:var(--z-overlay);justify-content:center;align-items:center;animation:.18s ease-out fade-in;display:flex;position:fixed;inset:0}.loading-container{max-width:320px;padding:var(--spacing-2xl);background:var(--surface-raised);border-radius:var(--border-radius-2xl);box-shadow:var(--shadow-md);border:1px solid var(--border-primary);flex-direction:column;justify-content:center;align-items:center;animation:.22s ease-out 20ms both slide-up;display:flex}.loading-container.no-animation{animation:none}.loading-content{align-items:center;gap:var(--spacing-xl);text-align:center;flex-direction:column;display:flex}.loading-brand{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-direction:column;display:flex}.loading-brand .brand-icon{background:var(--color-primary-500);border-radius:var(--border-radius-xl);width:48px;height:48px;box-shadow:var(--shadow-base);justify-content:center;align-items:center;animation:2s ease-in-out infinite pulse;display:flex}.loading-brand .brand-icon i{font-size:var(--font-size-2xl);color:#fff}.loading-brand h2{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);letter-spacing:-.02em;margin:0}.loading-animation{margin:var(--spacing-lg) 0}.loading-icon{justify-content:center;align-items:center;width:40px;height:40px;display:flex}.loading-icon i{font-size:var(--font-size-2xl);color:var(--color-primary-500)}.loading-progress{background:var(--color-gray-200);border-radius:var(--border-radius-full);width:200px;height:6px;position:relative;overflow:hidden}.progress-bar{background:var(--color-primary-600);border-radius:var(--border-radius-full);height:100%;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)}.loading-text{text-align:center}.loading-text h3{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-primary)}.loading-text p{font-size:var(--font-size-sm);color:var(--text-secondary);opacity:.9;margin:0}.loading-dots{gap:var(--spacing-sm);justify-content:center;display:flex}.loading-dots .dot{background:var(--color-primary-500);border-radius:var(--border-radius-full);width:8px;height:8px;animation:1.4s ease-in-out infinite both dot-pulse}.loading-dots .dot:first-child{animation-delay:-.32s}.loading-dots .dot:nth-child(2){animation-delay:-.16s}.loading-dots .dot:nth-child(3){animation-delay:0s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulse{0%,to{box-shadow:var(--shadow-base);transform:scale(1)}50%{box-shadow:var(--shadow-lg);transform:scale(1.05)}}@keyframes dot-pulse{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes progress-flow{0%{transform:translate(-100%)}to{transform:translate(300%)}}[data-theme=dark] .loading-screen{background:var(--bg-primary)}[data-theme=dark] .loading-container{background:var(--surface-raised);border-color:var(--border-secondary);box-shadow:var(--elevation-1)}@media (width<=767px){.loading-container{max-width:280px;margin:0 var(--spacing-lg);padding:var(--spacing-xl)}.loading-brand h2{font-size:var(--font-size-lg)}.loading-progress{width:160px}}@media (prefers-reduced-motion:reduce){.loading-screen,.loading-container,.loading-brand .brand-icon,.loading-dots .dot,.loading-icon i,.progress-bar{animation:none}}.loading-screen:focus-visible{outline:var(--focus-ring-outline)}@media (prefers-contrast:more){.btn,.form-control,.card{border-width:var(--border-width-thick)}.skeleton-loader{background:linear-gradient(90deg, var(--color-gray-400) 25%, var(--color-gray-300) 50%, var(--color-gray-400) 75%)}.loading-container{border-width:var(--border-width-thick)}}.hydrant-mini-popup{cursor:pointer;font-family:var(--font-family-base);align-items:center;gap:10px;padding:6px 10px;display:flex}.hmp-header{flex-shrink:0;align-items:center;gap:6px;display:flex}.hmp-id{font-weight:700;font-size:var(--font-size-sm);color:var(--text-primary,var(--color-gray-800));letter-spacing:-.01em}.hmp-status{width:18px;height:18px;font-size:var(--font-size-xs);color:var(--color-gray-50);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.hmp-status--success{background:var(--color-success)}.hmp-status--danger{background:var(--color-danger)}.hmp-status--warning{background:var(--color-warning)}.hmp-status--secondary{background:var(--color-gray-400)}.hmp-metrics{flex-direction:column;gap:1px;min-width:0;display:flex}.hmp-flow{font-size:var(--font-size-xs);color:var(--text-primary,var(--color-gray-700));align-items:center;gap:4px;font-weight:600;display:flex}.hmp-flow:before{content:"";background:var(--flow-color,var(--color-gray-400));border-radius:50%;flex-shrink:0;width:6px;height:6px}.hmp-date{font-size:var(--font-size-xs);color:var(--color-text-muted,var(--color-gray-500));white-space:nowrap}.hydrant-popup .leaflet-popup-content-wrapper{border-radius:var(--radius-card)!important;box-shadow:var(--elevation-1)!important;background:var(--color-gray-50)!important;padding:0!important}.hydrant-popup .leaflet-popup-content{min-width:auto!important;margin:0!important;padding:0!important}.hydrant-popup .leaflet-popup-tip{background:var(--color-gray-50)!important;box-shadow:var(--elevation-1)!important}.hydrant-list-item.recently-selected{box-shadow:var(--elevation-1)}:root :is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:var(--focus-ring-outline);outline-offset:var(--focus-ring-offset)}.workspace-station-row{width:100%;min-height:var(--control-height);justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border-default);border-radius:var(--radius-control);background:var(--color-background-card);color:var(--color-text-primary);text-align:left;transition:var(--transition-colors);display:flex}.workspace-station-row:hover,.workspace-station-row[aria-pressed=true]{background:var(--color-primary-light)}.workspace-station-options{gap:var(--spacing-sm);display:grid}.station-row-label{justify-content:space-between;align-items:center;gap:var(--spacing-md);display:flex}.skeleton-loader{flex-direction:column;width:100%;animation:.3s ease-out both skeleton-fade-in;display:flex}.skeleton-line{background:var(--color-gray-100,var(--color-gray-100));border-radius:var(--border-radius-sm,4px);position:relative;overflow:hidden}.skeleton-line:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--color-gray-50,var(--color-gray-100)) 40%, var(--color-gray-50,var(--color-gray-100)) 60%, transparent 100%);will-change:transform;position:absolute;inset:0;transform:translate(-100%)}@keyframes skeleton-fade-in{0%{opacity:0}to{opacity:1}}.skeleton-pulse{animation:.3s ease-out both skeleton-fade-in,2s ease-in-out infinite skeleton-pulse}.skeleton-pulse:after{animation:2s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.7}}.skeleton-wave:after{animation:1.8s ease-in-out infinite skeleton-shimmer}.skeleton-stagger>*{animation:.4s ease-out both skeleton-fade-in;animation-delay:calc(var(--skeleton-index,0) * 60ms)}.skeleton-stagger>:first-child{--skeleton-index:0}.skeleton-stagger>:nth-child(2){--skeleton-index:1}.skeleton-stagger>:nth-child(3){--skeleton-index:2}.skeleton-stagger>:nth-child(4){--skeleton-index:3}.skeleton-stagger>:nth-child(5){--skeleton-index:4}.skeleton-stagger>:nth-child(6){--skeleton-index:5}.skeleton-stagger>:nth-child(7){--skeleton-index:6}.skeleton-stagger>:nth-child(8){--skeleton-index:7}.skeleton-stagger>:nth-child(9){--skeleton-index:8}.skeleton-stagger>:nth-child(10){--skeleton-index:9}.page-skeleton{background-color:var(--bg-primary,var(--color-gray-50));contain:layout style paint;min-height:100vh}.page-skeleton-topbar{padding:0 var(--spacing-md,1rem);height:var(--topbar-fixed-height);box-sizing:border-box;border-bottom:1px solid var(--border-primary,var(--color-gray-200));background-color:var(--bg-primary,var(--color-gray-50));z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.page-skeleton-topbar-left,.page-skeleton-topbar-right{align-items:center;gap:var(--spacing-sm,.5rem);display:flex}.page-skeleton-header{padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--border-primary);background-color:var(--bg-primary);z-index:100;align-items:center;display:flex;position:sticky;top:0}.page-skeleton-body{padding:var(--spacing-lg,1.5rem);gap:var(--spacing-xl);max-width:var(--layout-content-wide,1152px);width:100%;margin:0 auto}.page-skeleton-sidebar{flex-shrink:0;width:250px}.page-skeleton-content{width:100%;min-width:0}.skeleton-search-bar{align-items:center;gap:var(--spacing-sm,.5rem);padding:var(--spacing-sm,.5rem) var(--spacing-md,1rem);background:var(--bg-primary,var(--color-gray-50));border:1px solid var(--border-primary,var(--color-gray-200));border-radius:var(--border-radius-lg,8px);margin-bottom:var(--spacing-md,1rem);display:flex}.skeleton-equipment-card{background:var(--bg-primary,var(--color-gray-50));border:1px solid var(--border-primary,var(--color-gray-200));border-radius:var(--border-radius-lg,8px);margin-bottom:var(--spacing-md,1rem);contain:layout style paint;overflow:hidden}.skeleton-equipment-card-header{padding:var(--spacing-sm,.5rem) var(--spacing-md,1rem);border-bottom:1px solid var(--border-primary,var(--color-gray-200));background:var(--bg-secondary,var(--color-gray-100));justify-content:space-between;align-items:center;display:flex}.skeleton-equipment-table{border-collapse:collapse;width:100%}.skeleton-equipment-table thead{background:var(--bg-secondary,var(--color-gray-100))}.skeleton-equipment-table th{padding:var(--spacing-sm,.5rem) var(--spacing-md,1rem);border-bottom:2px solid var(--border-primary,var(--color-gray-200));font-size:0}.skeleton-equipment-table td{padding:var(--spacing-sm,.5rem) var(--spacing-md,1rem);border-bottom:1px solid var(--border-primary,var(--color-gray-200));vertical-align:middle}.skeleton-equipment-table tbody tr{animation:.4s ease-out both skeleton-fade-in;animation-delay:calc(var(--skeleton-index,0) * 60ms)}.skeleton-equipment-table tbody tr:last-child td{border-bottom:none}.card-skeleton{background-color:var(--surface-base,var(--color-gray-50));border:1px solid var(--border-primary,var(--color-gray-200));border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card-skeleton-image{width:100%}.card-skeleton-body{padding:var(--spacing-lg)}.table-skeleton{background-color:var(--surface-base,var(--color-gray-50));border:1px solid var(--border-primary,var(--color-gray-200));border-radius:var(--border-radius-lg);padding:var(--spacing-lg)}.table-skeleton-header{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-primary)}.table-skeleton-rows{padding-top:var(--spacing-md)}@media (width<=767px){.page-skeleton-topbar{padding:0 var(--spacing-sm,.5rem);height:48px}.page-skeleton-header{padding:var(--spacing-md)}.page-skeleton-body{padding:var(--spacing-md);flex-direction:column}.page-skeleton-sidebar{order:2;width:100%}.page-skeleton-content{order:1}.card-skeleton-body,.table-skeleton{padding:var(--spacing-md)}.skeleton-search-bar,.skeleton-equipment-table th,.skeleton-equipment-table td{padding:var(--spacing-xs,.25rem) var(--spacing-sm,.5rem)}}@media (prefers-reduced-motion:reduce){.skeleton-pulse,.skeleton-wave{animation:none}.skeleton-line:after{animation:none;display:none}.skeleton-line{opacity:.7}.skeleton-loader,.skeleton-stagger>*,.skeleton-equipment-table tbody tr{opacity:1;animation:none}}.skeleton-loader:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.skeleton-inline{display:inline-block}.skeleton-center{margin:0 auto}.skeleton-full-width{width:100%}.skeleton-auto-width{width:auto}.skeleton-loading{position:relative}.skeleton-loading:after{content:"";font-size:var(--font-size-sm);color:var(--text-secondary);pointer-events:none;background:#fffc;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.skeleton-modern{border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm)}.skeleton-minimal{box-shadow:none;background-color:#0000;border:none}.skeleton-elevated{box-shadow:var(--shadow-md)}.skeleton-text-block{margin-bottom:var(--spacing-md)}.skeleton-text-block .skeleton-line:last-child{width:75%}.skeleton-list-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--border-primary);display:flex}.skeleton-list-item:last-child{border-bottom:none}.skeleton-list-item .skeleton-line:first-child{border-radius:var(--border-radius-full);flex-shrink:0;width:40px;height:40px}.skeleton-list-item .skeleton-line:last-child{flex-grow:1}.skeleton-map-placeholder{background:var(--color-gray-100,var(--color-gray-100));border-radius:var(--border-radius-lg,8px);justify-content:center;align-items:center;min-height:400px;display:flex;position:relative;overflow:hidden}.skeleton-map-placeholder:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--color-gray-50,var(--color-gray-100)) 40%, var(--color-gray-50,var(--color-gray-100)) 60%, transparent 100%);will-change:transform;animation:2s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-map-icon{color:var(--color-gray-300,var(--color-gray-300));font-size:var(--font-size-2xl);z-index:1}.skeleton-equipment-card,.card-skeleton,.table-skeleton{contain:layout style paint}.equipment-tables-container>.card-base,.equipment-tables-container>.skeleton-equipment-card{content-visibility:auto;contain-intrinsic-size:auto 400px}@media (width<=767px){.skeleton-equipment-table tbody tr{height:96px}}.modern-loading-state{min-height:200px;padding:var(--spacing-xl);background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-primary);justify-content:center;align-items:center;display:flex}.modern-loading-message{gap:var(--spacing-lg);flex-direction:column}.loading-message-content{align-items:center;gap:var(--spacing-lg);text-align:center;flex-direction:column;display:flex}.loading-text{gap:var(--spacing-sm);flex-direction:column;display:flex}.loading-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0}.loading-subtitle{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.loading-spinner{gap:var(--spacing-xs);justify-content:center;align-items:center;display:flex}.spinner-dot{background-color:var(--color-primary-500);border-radius:var(--border-radius-full);width:8px;height:8px;animation:1.4s ease-in-out infinite both spinner-pulse}.spinner-dot:first-child{animation-delay:-.32s}.spinner-dot:nth-child(2){animation-delay:-.16s}.spinner-dot:nth-child(3){animation-delay:0s}@keyframes spinner-pulse{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.inline-loading{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);color:var(--text-secondary);display:inline-flex}.inline-loading-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.inline-loading-sm .spinner-dot{width:6px;height:6px}.inline-loading-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base)}.inline-loading-lg .spinner-dot{width:10px;height:10px}.inline-spinner{align-items:center;gap:2px;display:flex}.inline-message{font-weight:var(--font-weight-medium)}.progress-loading{background-color:var(--surface-base);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.progress-loading-content{gap:var(--spacing-md);flex-direction:column;display:flex}.progress-loading-text{justify-content:space-between;align-items:center;display:flex}.progress-message{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);margin:0}.progress-percentage{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-secondary);margin:0}.progress-loading-bar{background-color:var(--color-gray-200);border-radius:var(--border-radius-full);width:100%;height:8px;position:relative;overflow:hidden}.progress-loading-fill{background:linear-gradient(90deg, var(--color-primary-500) 0%, var(--color-primary-400) 100%);border-radius:var(--border-radius-full);height:100%;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);position:relative}.progress-loading-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff4d 50%,#0000 100%);animation:2s ease-in-out infinite progress-shimmer;position:absolute;inset:0}@keyframes progress-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.empty-state{min-height:300px;padding:var(--spacing-3xl);background-color:var(--bg-primary);border-radius:var(--border-radius-lg);border:1px solid var(--border-primary);justify-content:center;align-items:center;display:flex}.empty-state-content{align-items:center;gap:var(--spacing-lg);text-align:center;flex-direction:column;max-width:400px;display:flex}.empty-state-icon{background-color:var(--bg-secondary);border-radius:var(--border-radius-full);width:64px;height:64px;color:var(--text-tertiary);font-size:var(--font-size-2xl);justify-content:center;align-items:center;display:flex}.empty-state-text{gap:var(--spacing-sm);flex-direction:column;display:flex}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0}.empty-state-description{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin:0}.empty-state-action{margin-top:var(--spacing-md)}@media (width<=767px){.modern-loading-state{min-height:150px;padding:var(--spacing-lg)}.loading-message-content{gap:var(--spacing-md)}.loading-title{font-size:var(--font-size-base)}.loading-subtitle{font-size:var(--font-size-xs)}.progress-loading{padding:var(--spacing-md)}.empty-state{min-height:250px;padding:var(--spacing-xl)}.empty-state-icon{width:48px;height:48px;font-size:var(--font-size-xl)}.empty-state-title{font-size:var(--font-size-base)}.empty-state-description{font-size:var(--font-size-xs)}}@media (prefers-reduced-motion:reduce){.spinner-dot{opacity:.7;animation:none}.progress-loading-fill{transition:none}.progress-loading-fill:after{animation:none}}.modern-loading-state:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.loading-center{text-align:center}.loading-left{text-align:left}.loading-right{text-align:right}.loading-full-width{width:100%}.loading-auto-width{width:auto}.loading-modern{background-color:var(--surface-base);box-shadow:var(--shadow-sm)}.loading-minimal{box-shadow:none;background-color:#0000;border:none}.loading-elevated{box-shadow:var(--shadow-md)}.loading-dashboard{background-color:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);padding:var(--spacing-xl)}.loading-card{background-color:var(--surface-base);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-lg)}.loading-table{background-color:var(--surface-base);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);overflow:hidden}.loading-form{background-color:var(--surface-base);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);padding:var(--spacing-xl)}.contextual-page-loader{background:var(--bg-primary,var(--color-gray-50));contain:layout style paint;min-height:100vh}.contextual-page-loader-with-header{background:var(--bg-primary,var(--color-gray-50));min-height:100vh}.contextual-header-skeleton{background:var(--bg-primary,var(--color-gray-50));border-bottom:1px solid var(--border-primary,var(--color-gray-200))}.equipment-list-skeleton{padding:var(--spacing-lg,1.5rem);max-width:var(--layout-content-wide,1152px);margin:0 auto}.reports-page-skeleton{background:var(--bg-primary,var(--color-gray-50))}.reports-breadcrumb-skeleton{background:var(--bg-secondary,var(--color-gray-100))}.station-selection-skeleton{padding:var(--spacing-xl,2rem) var(--spacing-lg,1.5rem)}.station-skeleton-container{max-width:700px;margin:0 auto}.testing-page-skeleton{padding:var(--spacing-lg,1.5rem);max-width:var(--layout-content-wide,1152px);margin:0 auto}.loading-message-container{flex-direction:column;justify-content:center;align-items:center;min-height:200px;display:flex}.loading-message-container .spinner-border{width:3rem;height:3rem}.quick-loading-state{justify-content:center;align-items:center;min-height:100px;display:flex}.loading-dots{align-items:center;gap:.5rem;display:flex}.loading-dots span{background:var(--color-primary-500,var(--color-primary-500));border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite both loading-dots}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}.loading-pulse{justify-content:center;align-items:center;display:flex}.pulse-circle{background:var(--color-primary-500,var(--color-primary-500));border-radius:50%;width:40px;height:40px;animation:1.5s ease-in-out infinite loading-pulse-anim}@keyframes loading-dots{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes loading-pulse-anim{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@media (width<=767px){.contextual-page-loader{padding:0}.equipment-list-skeleton{padding:var(--spacing-sm,.5rem)}.station-selection-skeleton{padding:var(--spacing-md,1rem) var(--spacing-sm,.5rem)}.testing-page-skeleton{padding:var(--spacing-sm,.5rem)}}@media (prefers-reduced-motion:reduce){.loading-dots span,.pulse-circle{opacity:.7;animation:none}}.btn-enhanced.loading{position:relative;color:#0000!important}.btn-enhanced.loading:after{content:"";border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:1s linear infinite button-loading-spin;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes button-loading-spin{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.equipment-card{transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);cursor:pointer;position:relative;overflow:hidden}.equipment-card:before{content:"";width:100%;height:100%;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);background:linear-gradient(90deg,#0000,#ffffff1a,#0000);position:absolute;top:0;left:-100%}.equipment-card:hover:before{left:100%}.equipment-card:hover{box-shadow:var(--elevation-1);z-index:10}.equipment-card:active{box-shadow:var(--elevation-1);transition:transform var(--duration-fast) var(--ease-standard);transform:translateY(-1px)scale(1.01)}.equipment-card.status-transition{transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)}.equipment-card.status-transition.status-passed{animation:.6s ease-out status-passed-animation}.equipment-card.status-transition.status-failed{animation:.6s ease-out status-failed-animation}@keyframes status-passed-animation{0%{background:#10b9811a;transform:scale(.95)}50%{background:#10b98133;transform:scale(1.05)}to{background:0 0;transform:scale(1)}}@keyframes status-failed-animation{0%{background:#ef44441a;transform:scale(.95)}50%{background:#ef444433;transform:scale(1.05)}to{background:0 0;transform:scale(1)}}.status-transition{transition:background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard)}.unified-modal-backdrop{transition:opacity var(--duration-fast) var(--ease-standard)}.dropdown-menu{opacity:0;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);transform:translateY(-8px)}.dropdown-menu.show{opacity:1;transform:translateY(0)}.status-pulse{animation:2s infinite status-pulse-animation}@keyframes status-pulse-animation{0%{box-shadow:var(--elevation-1)}70%{box-shadow:var(--elevation-1)}to{box-shadow:var(--elevation-1)}}.status-checkmark{animation:.6s ease-in-out status-checkmark-animation}@keyframes status-checkmark-animation{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.skeleton-shimmer{background:linear-gradient(90deg, var(--color-gray-100) 25%, var(--color-gray-200) 50%, var(--color-gray-100) 75%);background-size:200% 100%;animation:1.5s infinite skeleton-shimmer-animation}@keyframes skeleton-shimmer-animation{0%{background-position:-200% 0}to{background-position:200% 0}}.scroll-smooth{scroll-behavior:smooth}.fade-in{opacity:0;transition:opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);transform:translateY(20px)}.fade-in.visible{opacity:1;transform:translateY(0)}.touch-feedback{position:relative;overflow:hidden}.touch-feedback:before{content:"";width:0;height:0;transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);background:#ffffff4d;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.touch-feedback:active:before{width:300px;height:300px}.animate-gpu{backface-visibility:hidden;perspective:1000px;transform:translateZ(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.equipment-card:hover{transform:none}}.app-container{width:100%;max-width:var(--layout-content-max);padding-inline:var(--space-inline);margin-inline:auto}.app-container--narrow{max-width:var(--layout-content-narrow)}.app-container--wide{max-width:var(--layout-content-wide)}.stack{gap:var(--space-stack);flex-direction:column;display:flex}.stack--section{gap:var(--space-section)}.stack--compact{gap:var(--info-density-spacing)}.cluster{gap:var(--space-inline);flex-wrap:wrap;align-items:center;display:flex}.cluster--space-between{justify-content:space-between}.cluster--center{justify-content:center}.card-base{background:var(--color-gray-50);border:1px solid var(--border-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base)}.card-base:hover{box-shadow:var(--shadow-base)}.card-dense{padding:var(--card-compact-padding);gap:var(--card-compact-gap);display:grid}.responsive-table-wrapper{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.responsive-table{border-collapse:collapse;width:100%}@media (width<=767px){.responsive-table{display:block}.responsive-table thead{display:none}.responsive-table tbody,.responsive-table tr{display:block}.responsive-table tr{margin-bottom:var(--space-stack);padding:var(--card-compact-padding);background:var(--color-gray-50);border:1px solid var(--border-primary);border-radius:var(--border-radius-md)}}.touch-target{min-height:var(--touch-comfortable);min-width:var(--touch-comfortable);justify-content:center;align-items:center;display:inline-flex}.mobile-action-row{gap:var(--space-inline);width:100%;margin-top:var(--card-compact-gap);display:flex}.mobile-action-row>*{min-height:var(--touch-comfortable);flex:1}@media (width>=768px){.mobile-action-row{width:auto;margin-top:0}.mobile-action-row>*{flex:0 auto}}.container-responsive{width:100%;max-width:100%;padding:0 var(--spacing-lg);box-sizing:border-box;margin:0 auto}.container-responsive.container-sm{max-width:576px}.container-responsive.container-md{max-width:768px}.container-responsive.container-lg{max-width:992px}.container-responsive.container-xl{max-width:1200px}.container-responsive.container-xxl{max-width:1400px}.viewport-safe{box-sizing:border-box;max-width:100%;overflow-x:hidden}.viewport-safe *{box-sizing:border-box;max-width:100%}.table-responsive-wrapper{-webkit-overflow-scrolling:touch;border-radius:var(--border-radius-lg);width:100%;box-shadow:var(--shadow-sm);overflow-x:auto}.table-responsive-wrapper table{border-collapse:collapse;width:100%;margin:0}@media (width<=767px){.container-responsive{padding:0 var(--spacing-xs)}.table-responsive-wrapper{border-radius:var(--border-radius-md);margin:0 calc(-1 * var(--spacing-xs))}}.card-info-dense{gap:var(--info-density-spacing);padding:var(--card-compact-padding);background:var(--color-gray-50);border:1px solid var(--border-primary);border-radius:var(--border-radius-md);transition:var(--transition-colors), opacity var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);grid-template-columns:1fr;display:grid}.card-info-dense:active{background:var(--color-primary-50);border-color:var(--color-primary-300)}.card-info-dense__header{justify-content:space-between;align-items:center;gap:var(--space-inline);display:flex}.card-info-dense__title{font-size:var(--text-base-fluid);font-weight:var(--font-weight-semibold);color:var(--text-primary);line-height:var(--line-height-compact);margin:0}.card-info-dense__badge{font-size:var(--text-label);border-radius:var(--border-radius-base);white-space:nowrap;flex-shrink:0;padding:.25rem .5rem}.card-info-dense__meta{gap:var(--card-compact-gap);font-size:var(--text-compact);color:var(--text-secondary);line-height:var(--line-height-compact);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.card-info-dense__meta-item{flex-direction:column;gap:.125rem;display:flex}.card-info-dense__meta-label{font-size:var(--text-label);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.025em;font-weight:var(--font-weight-medium)}.card-info-dense__meta-value{font-weight:var(--font-weight-medium);color:var(--text-primary)}.card-info-dense__actions{gap:var(--card-compact-gap);margin-top:var(--card-compact-gap);padding-top:var(--card-compact-gap);border-top:1px solid var(--border-primary);display:flex}@media (width>=768px){.card-info-dense{padding:var(--card-padding-desktop);gap:var(--space-stack)}.card-info-dense__meta{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
