@import url(https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=JetBrains+Mono:wght@400;500&display=swap);:root{--gray-50:#fafafa;--gray-100:#f5f5f4;--gray-200:#e7e5e4;--gray-300:#d6d3d1;--gray-400:#a8a29e;--gray-500:#78716c;--gray-600:#57534e;--gray-700:#44403c;--gray-800:#292524;--gray-900:#1c1917;--accent:#0d9488;--accent-light:#14b8a6;--accent-dark:#0f766e;--accent-subtle:#0d948814;--accent-muted:#0d948826;--success:#22c55e;--warning:#f59e0b;--error:#ef4444;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 12px 32px #00000014;--shadow-xl:0 24px 48px #0000001a;--font-sans:"DM Sans",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"JetBrains Mono","SF Mono",Consolas,monospace;--space-unit:8px;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1)}*,:after,:before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;text-rendering:optimizeLegibility}body{background:#fafafa;background:var(--gray-50);color:#292524;color:var(--gray-800);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-sans);line-height:1.6;margin:0}::selection{background:#0d948826;background:var(--accent-muted);color:#1c1917;color:var(--gray-900)}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#d6d3d1;background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a8a29e;background:var(--gray-400)}:focus-visible{outline:2px solid #0d9488;outline:2px solid var(--accent);outline-offset:2px}code{background:#f5f5f4;background:var(--gray-100);border-radius:4px;font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-family:var(--font-mono);font-size:.875em;padding:.125em .375em}.App{background:var(--gray-50);min-height:100vh;padding:0}.app-layout{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.app-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff;background:#fffffff2;border-bottom:1px solid var(--gray-200);justify-content:space-between;padding:1rem 2rem;position:sticky;top:0;z-index:100}.app-header,.app-header__brand{align-items:center;display:flex}.app-header__brand{gap:1rem}.app-header__logo{align-items:center;background:var(--accent);border-radius:10px;color:#fff;display:flex;font-size:1.125rem;font-weight:700;height:40px;justify-content:center;letter-spacing:-.5px;width:40px}.app-header__title{color:var(--gray-900);font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.app-header__subtitle{color:var(--gray-500);font-size:.8125rem;font-weight:400}.app-header__badge{align-items:center;background:var(--accent-subtle);border-radius:100px;color:var(--accent-dark);display:inline-flex;font-size:.75rem;font-weight:500;gap:.375rem;padding:.375rem .75rem}.app-header__badge:before{animation:pulse-dot 2s ease-in-out infinite;background:var(--accent);border-radius:50%;content:"";height:6px;width:6px}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.app-main{margin:0 auto;max-width:1440px;padding:2rem;width:100%}.section{background:#fff;border:1px solid var(--gray-200);border-radius:12px;margin-bottom:1.5rem;overflow:hidden}.section--elevated{border-color:var(--gray-100);box-shadow:var(--shadow-md)}.section__header{align-items:center;background:var(--gray-50);border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;padding:1rem 1.5rem}.section__title{align-items:center;color:var(--gray-700);display:flex;font-size:.875rem;font-weight:600;gap:.625rem;letter-spacing:.05em;text-transform:uppercase}.section__title-icon{color:var(--accent);font-size:1.125rem}.section__content{padding:1.5rem}.section__content--compact{padding:1rem 1.5rem}.config-panel{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.config-panel__item{display:flex;flex-direction:column;gap:.375rem}.config-panel__item--action{justify-self:start}.config-panel__label{color:var(--gray-500);font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.upload-zone{background:var(--gray-50);border:2px dashed var(--gray-300);border-radius:8px;cursor:pointer;padding:2rem;text-align:center;transition:all .2s var(--ease-out)}.upload-zone:hover{background:var(--accent-subtle);border-color:var(--accent)}.upload-zone__icon{color:var(--gray-400);font-size:2.5rem;margin-bottom:.75rem}.upload-zone:hover .upload-zone__icon{color:var(--accent)}.upload-zone__text{color:var(--gray-600);font-size:.875rem}.upload-zone__hint{color:var(--gray-400);font-size:.75rem;margin-top:.25rem}.data-table-wrapper{border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.time-controls{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.time-controls__group{display:flex;flex-direction:column;gap:.375rem}.time-controls__label{color:var(--gray-500);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.time-controls__duration{align-items:center;background:var(--gray-100);border-radius:8px;color:var(--gray-700);display:flex;font-family:var(--font-mono);font-size:.9375rem;font-weight:500;gap:.5rem;padding:.75rem 1rem}.time-controls__duration-icon{color:var(--accent)}.chart-section{background:#fff;border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.chart-header{background:var(--gray-50);border-bottom:1px solid var(--gray-100);justify-content:space-between;padding:1rem 1.5rem}.chart-header,.chart-title{align-items:center;display:flex}.chart-title{color:var(--gray-700);font-size:.875rem;font-weight:600;gap:.625rem;letter-spacing:.05em;text-transform:uppercase}.chart-container{background:#fff;padding:1.5rem}#graphdiv{border-radius:8px;height:400px;overflow:hidden;width:100%}.dygraph-legend{background:#fff!important;border:1px solid var(--gray-200)!important;border-radius:6px!important;box-shadow:var(--shadow-md)!important;font-family:var(--font-mono)!important;font-size:.8125rem!important;padding:.5rem .75rem!important}.dygraph-axis-label{color:var(--gray-500)!important;font-family:var(--font-sans)!important;font-size:.6875rem!important}.dygraph-xlabel,.dygraph-ylabel{color:var(--gray-600)!important;font-weight:500!important}.export-section{background:var(--gray-50);border-top:1px solid var(--gray-100);display:flex;padding:1.5rem}.btn,.export-section{justify-content:center}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .15s var(--ease-out)}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--secondary{background:var(--gray-100);border:1px solid var(--gray-200);color:var(--gray-700)}.btn--secondary:hover{background:var(--gray-200);border-color:var(--gray-300)}.btn--large{font-size:.9375rem;padding:1rem 2rem}.status-badge{align-items:center;border-radius:100px;display:inline-flex;font-size:.75rem;font-weight:500;gap:.375rem;padding:.25rem .625rem}.status-badge--success{background:#22c55e1a;color:#15803d}.status-badge--warning{background:#f59e0b1a;color:#b45309}.status-badge--info{background:var(--accent-subtle);color:var(--accent-dark)}.chip{align-items:center;background:var(--gray-100);border-radius:6px;color:var(--gray-600);display:inline-flex;font-size:.75rem;font-weight:500;padding:.25rem .625rem}.chip--accent{background:var(--accent-subtle);color:var(--accent-dark)}.empty-state{color:var(--gray-500);padding:3rem 2rem;text-align:center}.empty-state__icon{color:var(--gray-300);font-size:3rem;margin-bottom:1rem}.empty-state__title{color:var(--gray-700);font-size:1rem;font-weight:600;margin-bottom:.375rem}.empty-state__description{color:var(--gray-500);font-size:.875rem}@media (max-width:768px){.app-header{align-items:flex-start;flex-direction:column;gap:.5rem;padding:.75rem 1rem}.app-main{padding:1rem}.config-panel,.time-controls{grid-template-columns:1fr}#graphdiv{height:300px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeIn .3s var(--ease-out) forwards}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}
/*# sourceMappingURL=main.4faaaeda.css.map*/