:root{--color-neutral: #656567;--color-brand: #5CA9DD;--color-secondary: #92C5EB;--color-tertiary: #AAE0FA;--color-cta: #EC5E48;--color-success: #92C500;--color-warning: #F59031;--color-danger: #F73B3B;--color-informational: #0EA5E9;--color-bg-primary: #FFFFFF;--color-bg-secondary: #F8F9FA;--color-bg-tertiary: #F3F4F6;--color-text-primary: #1F2937;--color-text-secondary: #656567;--color-text-tertiary: #9CA3AF;--color-border: #E5E7EB;--color-border-hover: #D1D5DB;--spacing-4: .25rem;--spacing-8: .5rem;--spacing-12: .75rem;--spacing-16: 1rem;--spacing-24: 1.5rem;--spacing-32: 2rem;--radius-sm: .375rem;--radius-xl: .75rem;--radius-2xl: 1rem;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--shadow-soft: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-card: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-modal: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden}#app{width:100%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}h1{font-size:1.75rem;font-weight:600}h2{font-size:1.25rem;font-weight:600}h3{font-size:1rem;font-weight:600}.container{max-width:1400px;margin:0 auto;padding:var(--spacing-24)}.header{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--spacing-24);margin-bottom:var(--spacing-32);box-shadow:var(--shadow-soft)}.header h1{color:var(--color-text-primary);margin-bottom:var(--spacing-8)}.data-source{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--spacing-24);margin-bottom:var(--spacing-32);box-shadow:var(--shadow-card)}.source-buttons{display:flex;gap:var(--spacing-16);margin-bottom:var(--spacing-24);flex-wrap:wrap}.btn{padding:var(--spacing-12) var(--spacing-24);border:1px solid transparent;border-radius:var(--radius-xl);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all var(--transition-normal);display:inline-flex;align-items:center;gap:var(--spacing-8);position:relative;overflow:hidden}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#fff3;transform:translate(-50%,-50%);transition:width var(--transition-normal),height var(--transition-normal)}.btn:hover:before{width:300px;height:300px}.btn-primary{background:var(--color-brand);color:#fff;box-shadow:var(--shadow-soft)}.btn-primary:hover{background:#4a98cc;box-shadow:var(--shadow-card);transform:translateY(-2px)}.btn-secondary{background:var(--color-bg-primary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{border-color:var(--color-border-hover);background:var(--color-bg-tertiary)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.file-upload{display:none}.loading-container{display:none;align-items:center;justify-content:center;gap:var(--spacing-24);padding:var(--spacing-32);background:var(--color-bg-secondary);border-radius:var(--radius-2xl);margin-bottom:var(--spacing-32);border:1px solid var(--color-border)}.loading-container.active{display:flex}.loading-car{position:absolute;top:-30px;left:0;font-size:2rem;width:auto;height:auto;transform:translate(-50%) scaleX(-1);transition:left .3s ease;z-index:5;pointer-events:none}.loading-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-12)}.loading-text{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);text-align:center}.progress-wrapper{display:flex;align-items:center;gap:var(--spacing-12);padding-top:25px}.progress-label-start,.progress-label-end{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);min-width:30px;text-align:center}.progress-bar{flex:1;height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-xl);position:relative;overflow:visible;border:1px solid var(--color-border)}.progress-fill{height:100%;background:var(--color-brand);transition:width .3s ease;border-radius:var(--radius-xl)}.controls{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--spacing-24);margin-bottom:var(--spacing-32);box-shadow:var(--shadow-card)}.controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-24)}.control-group{display:flex;flex-direction:column;gap:var(--spacing-8)}.control-group label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.input{padding:var(--spacing-12);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text-primary);font-size:.9375rem;transition:all var(--transition-normal)}.input:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px #5ca9dd1a}.input::placeholder{color:var(--color-text-tertiary)}.multi-select{position:relative}.multi-select-trigger{padding:var(--spacing-12);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);color:var(--color-text-primary);cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all var(--transition-normal)}.multi-select-trigger:hover{border-color:var(--color-border-hover)}.multi-select-dropdown{position:absolute;top:calc(100% + var(--spacing-8));left:0;right:0;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);max-height:300px;overflow-y:auto;z-index:100;display:none}.multi-select-dropdown.active{display:block}.multi-select-option{padding:var(--spacing-12);cursor:pointer;transition:background var(--transition-fast);display:flex;align-items:center;gap:var(--spacing-8)}.multi-select-option:hover{background:var(--color-bg-tertiary)}.multi-select-option input[type=checkbox]{width:18px;height:18px;cursor:pointer}.range-container{display:flex;flex-direction:column;gap:var(--spacing-8)}.range-value{font-size:1.125rem;font-weight:600;color:var(--color-brand)}input[type=range]{width:100%;height:6px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);outline:none;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--color-brand);border-radius:50%;cursor:pointer;box-shadow:var(--shadow-soft);transition:transform var(--transition-fast)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]::-moz-range-thumb{width:20px;height:20px;background:var(--color-brand);border-radius:50%;cursor:pointer;border:none;box-shadow:var(--shadow-soft)}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-32);margin-bottom:var(--spacing-32)}.dashboard-panel{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--spacing-16);box-shadow:var(--shadow-card)}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-16);padding-bottom:var(--spacing-12);border-bottom:1px solid var(--color-border)}.panel-title{font-size:1.25rem;font-weight:600}.panel-badge{padding:var(--spacing-4) var(--spacing-12);border-radius:var(--radius-xl);font-size:.8125rem;font-weight:600}.panel-badge.low{background:#92c5001a;color:var(--color-success)}.panel-badge.high{background:#f73b3b1a;color:var(--color-danger)}.vehicle-list{display:flex;flex-direction:column;gap:var(--spacing-12)}.vehicle-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--spacing-12);cursor:pointer;transition:all var(--transition-normal)}.vehicle-card:hover{border-color:var(--color-brand);box-shadow:var(--shadow-card);transform:translateY(-2px)}.vehicle-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-8)}.vehicle-model{font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.vehicle-count{padding:var(--spacing-4) var(--spacing-12);background:var(--color-brand);color:#fff;border-radius:var(--radius-xl);font-weight:600;font-size:.8125rem}.vehicle-avg{color:var(--color-text-secondary);font-size:.875rem}.vehicle-details{max-height:0;overflow:hidden;transition:max-height var(--transition-slow)}.vehicle-card.expanded .vehicle-details{max-height:2000px;margin-top:var(--spacing-16);padding-top:var(--spacing-16);border-top:1px solid var(--color-border)}.vehicle-item{padding:var(--spacing-8);background:var(--color-bg-primary);border-radius:var(--radius-xl);margin-bottom:var(--spacing-4);border:1px solid var(--color-border)}.vehicle-item:last-child{margin-bottom:0}.vehicle-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-4);font-size:.8125rem}.vehicle-info-row{display:flex;flex-direction:column}.vehicle-info-label{color:var(--color-text-tertiary);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.vehicle-info-value{color:var(--color-text-primary);font-weight:500}.mileage-highlight{font-weight:600;font-size:1rem}.mileage-highlight.low{color:var(--color-success)}.mileage-highlight.high{color:var(--color-danger)}.empty-state{text-align:center;padding:var(--spacing-32);color:var(--color-text-secondary)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-16);opacity:.5}.error-message{background:#f73b3b1a;border:1px solid var(--color-danger);border-radius:var(--radius-xl);padding:var(--spacing-16);color:var(--color-danger);margin-bottom:var(--spacing-24);display:none}.error-message.active{display:block}@media(max-width:1024px){.dashboard{grid-template-columns:1fr}}@media(max-width:768px){.container{padding:var(--spacing-16)}.controls-grid{grid-template-columns:1fr}.source-buttons{flex-direction:column}h1{font-size:1.5rem}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-xl)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}.hidden{display:none!important}
