*{box-sizing:border-box;margin:0;padding:0}:root{--primary-gradient:linear-gradient(135deg,#667eea,#764ba2);--dark-gradient:linear-gradient(135deg,#1a202c,#2d3748);--ocean-gradient:linear-gradient(135deg,#4fd1c7,#3182ce);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--border-radius-xl:20px;--shadow-sm:0 2px 4px #0000000d;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 8px 15px #0000001a;--shadow-xl:0 12px 24px #00000026;--shadow-2xl:0 20px 40px #0003;--transition-fast:0.15s ease;--transition-normal:0.2s ease;--transition-slow:0.3s ease;--backdrop-blur:blur(20px);--backdrop-blur-sm:blur(10px)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;overflow-x:hidden}[data-theme=light]{--bg-primary:#fffffff2;--bg-secondary:#f7fafce6;--text-primary:#2d3748;--text-secondary:#718096;--text-muted:#a0aec0;--border-color:#e2e8f0cc}[data-theme=dark]{--bg-primary:#2d3748f2;--bg-secondary:#1a202ce6;--text-primary:#f7fafc;--text-secondary:#a0aec0;--text-muted:#718096;--border-color:#4a5568cc}[data-theme=dark] body{background:linear-gradient(135deg,#1a202c,#2d3748);background:var(--dark-gradient)}[data-theme=ocean] body{background:linear-gradient(135deg,#4fd1c7,#3182ce);background:var(--ocean-gradient)}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--bg-primary);border-bottom:1px solid var(--border-color);box-shadow:0 8px 15px #0000001a;box-shadow:var(--shadow-lg);padding:2rem;padding:var(--spacing-xl);transition:all .2s ease;transition:all var(--transition-normal);z-index:100}.header-content{margin:0 auto 1.5rem;margin-bottom:var(--spacing-lg)}.header-title{align-items:flex-start;display:flex;flex-direction:column}.header-title h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:2.5rem;font-weight:700;margin-bottom:.25rem;margin-bottom:var(--spacing-xs)}.header-title p{color:var(--text-secondary);font-size:1.1rem;font-weight:500}.header-status{gap:1rem;gap:var(--spacing-md)}.header-status,.header-toolbar{align-items:center;display:flex}.header-toolbar{flex-wrap:wrap;gap:1.5rem;gap:var(--spacing-lg);margin:0 auto;max-width:1400px}.header-actions{align-items:center;flex-wrap:wrap;gap:.5rem;gap:var(--spacing-sm)}.notifications-container{display:flex;flex-direction:column;gap:.5rem;gap:var(--spacing-sm);max-width:400px;position:fixed;right:1.5rem;right:var(--spacing-lg);top:1.5rem;top:var(--spacing-lg);z-index:1000}.notification-banner{align-items:center;animation:slideInRight .3s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;border-radius:var(--border-radius-md);box-shadow:0 12px 24px #00000026;box-shadow:var(--shadow-xl);display:flex;gap:1rem;gap:var(--spacing-md);padding:1rem;padding:var(--spacing-md)}.notification-banner--success{border-left:4px solid #48bb78}.notification-banner--error{border-left:4px solid #f56565}.notification-banner--warning{border-left:4px solid #ed8936}.notification-banner--info{border-left:4px solid #4299e1}.notification-banner__content{align-items:center;color:var(--text-primary);display:flex;flex:1 1;font-weight:500;gap:.5rem;gap:var(--spacing-sm)}.notification-banner__icon{flex-shrink:0}.notification-banner__actions{align-items:center;display:flex;gap:.5rem;gap:var(--spacing-sm)}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.connection-status{align-items:center;border-radius:8px;border-radius:var(--border-radius-sm);display:flex;font-size:.875rem;font-weight:500;gap:.25rem;gap:var(--spacing-xs);padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm);transition:all .2s ease;transition:all var(--transition-normal)}.connection-status--online{background:#48bb781a;border:1px solid #48bb784d;color:#48bb78}.connection-status--offline{background:#f565651a;border:1px solid #f565654d;color:#f56565}.connection-status--connecting{background:#ed89361a;border:1px solid #ed89364d;color:#ed8936}.theme-selector select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius-sm);color:var(--text-primary);font-size:.875rem;padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm);transition:all .2s ease;transition:all var(--transition-normal)}.theme-selector select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.app-main{flex:1 1;margin:0 auto;max-width:1400px;padding:2rem;padding:var(--spacing-xl);width:100%}.search-bar{display:flex;flex:1 1;flex-direction:column;gap:.5rem;gap:var(--spacing-sm);max-width:400px}.search-bar__input{align-items:center;display:flex;position:relative}.search-bar__input svg{color:var(--text-muted);left:1rem;left:var(--spacing-md);position:absolute;z-index:1}.search-bar__input input{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;border-radius:var(--border-radius-md);color:var(--text-primary);font-size:.875rem;padding:.5rem 1rem .5rem 2.5rem;padding:var(--spacing-sm) var(--spacing-md) var(--spacing-sm) 2.5rem;transition:all .2s ease;transition:all var(--transition-normal);width:100%}.search-bar__input input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.search-bar__filters{flex-wrap:wrap}.search-bar__filters,.search-filter{display:flex;gap:.25rem;gap:var(--spacing-xs)}.search-filter{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius-sm);color:var(--text-secondary);cursor:pointer;font-size:.75rem;padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm);transition:all .2s ease;transition:all var(--transition-normal)}.search-filter:hover{background:#667eea;border-color:#667eea;color:#fff}.filter-panel{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;border-radius:var(--border-radius-md);max-width:300px;overflow:hidden}.filter-panel,.filter-panel__header{transition:all .2s ease;transition:all var(--transition-normal)}.filter-panel__header{align-items:center;background:var(--bg-secondary);cursor:pointer;display:flex;justify-content:space-between;padding:.5rem 1rem;padding:var(--spacing-sm) var(--spacing-md)}.filter-panel__header:hover{background:#667eea1a}.filter-panel__title{align-items:center;color:var(--text-primary);display:flex;font-size:.875rem;font-weight:500;gap:.25rem;gap:var(--spacing-xs)}.filter-panel__content{display:flex;flex-direction:column;gap:1rem;gap:var(--spacing-md);padding:1rem;padding:var(--spacing-md)}.filter-group{display:flex;flex-direction:column;gap:.25rem;gap:var(--spacing-xs)}.filter-group label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.filter-date-range{align-items:center;display:flex;flex-wrap:wrap;gap:.25rem;gap:var(--spacing-xs)}.filter-date-range input,.filter-group input,.filter-group select{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius-sm);color:var(--text-primary);font-size:.875rem;padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm);transition:all .2s ease;transition:all var(--transition-normal)}.filter-date-range input:focus,.filter-group input:focus,.filter-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.filter-actions{display:flex;justify-content:flex-end}.quick-stats{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;border-radius:var(--border-radius-lg);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);margin-bottom:2rem;margin-bottom:var(--spacing-xl);padding:1.5rem;padding:var(--spacing-lg)}.quick-stats__grid{grid-gap:1.5rem;grid-gap:var(--spacing-lg);display:grid;gap:1.5rem;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.quick-stat{background:var(--bg-secondary);border-radius:12px;border-radius:var(--border-radius-md);padding:1rem;padding:var(--spacing-md);text-align:center;transition:all .2s ease;transition:all var(--transition-normal)}.quick-stat:hover{box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.quick-stat__value{color:var(--text-primary);font-size:1.875rem;font-weight:700;margin-bottom:.25rem;margin-bottom:var(--spacing-xs)}.quick-stat__label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.projects-container{margin-top:1.5rem;margin-top:var(--spacing-lg)}.projects-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);padding-bottom:1rem;padding-bottom:var(--spacing-md)}.projects-stats{color:var(--text-secondary);font-size:.875rem;font-weight:500}.projects-stats span:not(:first-child){margin-left:.25rem;margin-left:var(--spacing-xs)}.projects-grid{grid-gap:2rem;grid-gap:var(--spacing-xl);display:grid;gap:2rem;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.projects-list{display:flex;flex-direction:column;gap:1rem;gap:var(--spacing-md)}.project-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;border-radius:var(--border-radius-lg);box-shadow:0 8px 15px #0000001a;box-shadow:var(--shadow-lg);overflow:hidden;padding:2rem;padding:var(--spacing-xl);position:relative;transition:all .3s ease;transition:all var(--transition-slow)}.project-card:before{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .2s ease;transition:transform var(--transition-normal)}.project-card:hover:before{transform:scaleX(1)}.project-card:hover{border-color:#667eea4d;box-shadow:0 20px 40px #0003;box-shadow:var(--shadow-2xl);transform:translateY(-8px)}.project-card__header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem;margin-bottom:var(--spacing-md)}.project-card__title{flex:1 1}.project-card__title h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;line-height:1.4;margin-bottom:.25rem;margin-bottom:var(--spacing-xs)}.project-id{background:#667eea1a;border:1px solid #667eea33;border-radius:12px;border-radius:var(--border-radius-md);color:#667eea;font-size:.75rem;font-weight:600;padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm)}.project-card__actions{display:flex;gap:.25rem;gap:var(--spacing-xs);margin-left:1rem;margin-left:var(--spacing-md)}.project-description{color:var(--text-secondary);font-size:.875rem;line-height:1.6}.project-card__meta,.project-description{margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.project-card__meta{border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);padding:.5rem 0;padding:var(--spacing-sm) 0}.project-meta__item{align-items:center;color:var(--text-muted);display:flex;font-size:.75rem;gap:.25rem;gap:var(--spacing-xs)}.project-card__footer{align-items:center;display:flex;gap:.5rem;gap:var(--spacing-sm)}.btn{align-items:center;border:none;border-radius:12px;border-radius:var(--border-radius-md);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:600;gap:.25rem;gap:var(--spacing-xs);justify-content:center;min-height:40px;overflow:hidden;padding:.5rem 1.5rem;padding:var(--spacing-sm) var(--spacing-lg);position:relative;text-decoration:none;transition:all .2s ease;transition:all var(--transition-normal);white-space:nowrap}.btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .3s ease;transition:left var(--transition-slow);width:100%}.btn:hover:before{left:100%}.btn--primary{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);border:1px solid #ffffff1a;box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);color:#fff}.btn--primary:hover:not(:disabled){box-shadow:0 12px 24px #00000026;box-shadow:var(--shadow-xl);transform:translateY(-2px)}.btn--secondary{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary)}.btn--secondary:hover:not(:disabled){background:var(--bg-primary);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--ghost{background:#0000;border:1px solid #0000;color:var(--text-secondary)}.btn--ghost:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.btn--ghost.btn--active{background:#667eea1a;border-color:#667eea4d;color:#667eea}.btn--danger{background:linear-gradient(135deg,#f56565,#e53e3e);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);color:#fff}.btn--danger:hover:not(:disabled){box-shadow:0 8px 20px #f5656566;transform:translateY(-2px)}.btn--warning{background:linear-gradient(135deg,#ed8936,#dd6b20);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);color:#fff}.btn--warning:hover:not(:disabled){box-shadow:0 8px 20px #ed893666;transform:translateY(-2px)}.btn--small{font-size:.75rem;min-height:32px;padding:var(--spacing-xs) var(--spacing-sm)}.btn--loading{cursor:not-allowed;opacity:.8;pointer-events:none}.btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.btn-icon{align-items:center;background:var(--bg-secondary);border:none;border:1px solid var(--border-color);border-radius:12px;border-radius:var(--border-radius-md);color:var(--text-secondary);cursor:pointer;display:inline-flex;height:40px;justify-content:center;transition:all .2s ease;transition:all var(--transition-normal);width:40px}.btn-icon:hover{background:var(--bg-primary);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);color:var(--text-primary);transform:translateY(-1px)}.btn-icon--ghost{background:#0000;border:1px solid #0000}.btn-icon--active{background:#667eea1a;border-color:#667eea4d;color:#667eea}.btn-icon--small{height:32px;width:32px}.loading-spinner{align-items:center;color:#fff;display:flex;flex-direction:column;font-size:1.2rem;gap:1rem;justify-content:center;padding:4rem}.error-message{background:#fc8181e6;border:1px solid #fc81814d;border-radius:12px;color:#742a2a;gap:.75rem;margin-bottom:2rem;padding:1rem 1.5rem}.empty-state{color:#fffc;padding:4rem}.empty-state svg{color:#fff9;margin-bottom:1rem}.empty-state h3{color:#ffffffe6}.analysis-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;padding:2rem}.analysis-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.analysis-header h2{color:#2d3748;font-size:2rem;font-weight:700}.analysis-meta{color:#718096;display:flex;font-size:.9rem;gap:2rem}.metrics-grid{grid-gap:1.5rem;grid-gap:var(--spacing-lg);display:grid;gap:1.5rem;gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:3rem;margin-bottom:var(--spacing-2xl)}.metric-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-backdrop-filter:var(--backdrop-blur-sm);backdrop-filter:var(--backdrop-blur-sm);border:1px solid #ffffff1a;border-radius:16px;border-radius:var(--border-radius-lg);box-shadow:0 8px 15px #0000001a;box-shadow:var(--shadow-lg);overflow:hidden;padding:2rem;padding:var(--spacing-xl);position:relative;transition:all .3s ease;transition:all var(--transition-slow)}.metric-card:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease;transition:opacity var(--transition-normal)}.metric-card:hover:before{opacity:1}.metric-card:hover{box-shadow:0 20px 40px #0003;box-shadow:var(--shadow-2xl);transform:translateY(-8px) scale(1.02)}.metric-card--clickable{cursor:pointer}.metric-card--blue{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.metric-card--green{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff}.metric-card--orange{background:linear-gradient(135deg,#ed8936,#dd6b20);color:#fff}.metric-card--purple{background:linear-gradient(135deg,#9f7aea,#805ad5);color:#fff}.metric-card--indigo{background:linear-gradient(135deg,#667eea,#5a67d8);color:#fff}.metric-card--teal{background:linear-gradient(135deg,#38b2ac,#319795);color:#fff}.metric-card__header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);position:relative;z-index:1}.metric-card__icon{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-backdrop-filter:var(--backdrop-blur-sm);backdrop-filter:var(--backdrop-blur-sm);background:#fff3;border-radius:12px;border-radius:var(--border-radius-md);padding:.5rem;padding:var(--spacing-sm)}.metric-card__info{flex:1 1;margin-left:1rem;margin-left:var(--spacing-md)}.metric-card__info h3{font-size:.875rem;font-weight:600;margin-bottom:.25rem;margin-bottom:var(--spacing-xs);opacity:.9}.metric-card__subtitle{font-size:.75rem;font-weight:400;opacity:.7}.metric-card__trend{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-backdrop-filter:var(--backdrop-blur-sm);backdrop-filter:var(--backdrop-blur-sm);background:#fff3;border-radius:8px;border-radius:var(--border-radius-sm);display:flex;font-size:.75rem;font-weight:600;gap:.25rem;gap:var(--spacing-xs);padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm)}.metric-card__trend--up{color:#48bb78}.metric-card__trend--down{color:#f56565}.metric-card__value{font-size:2.25rem;font-weight:700;line-height:1;position:relative;z-index:1}.chart-container{border:1px solid var(--border-color);border-radius:16px;border-radius:var(--border-radius-lg);box-shadow:0 8px 15px #0000001a;box-shadow:var(--shadow-lg);margin-bottom:2rem;margin-bottom:var(--spacing-xl);padding:2rem;padding:var(--spacing-xl);transition:all .3s ease;transition:all var(--transition-slow)}.chart-container,.chart-container--expanded{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--bg-primary)}.chart-container--expanded{border-radius:20px;border-radius:var(--border-radius-xl);bottom:5%;box-shadow:0 20px 40px #0003;box-shadow:var(--shadow-2xl);left:5%;overflow:auto;position:fixed;right:5%;top:5%;z-index:1000}.chart-container__header{align-items:flex-start;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);padding-bottom:1rem;padding-bottom:var(--spacing-md)}.chart-container__title h3{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin-bottom:.25rem;margin-bottom:var(--spacing-xs)}.chart-container__subtitle{color:var(--text-secondary);font-size:.875rem;font-weight:400}.chart-container__actions{align-items:center;display:flex;gap:.25rem;gap:var(--spacing-xs)}.chart-container__content{min-height:250px}.chart-container__options{border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;margin-top:1.5rem;margin-top:var(--spacing-lg);padding-top:1rem;padding-top:var(--spacing-md)}.chart-options{display:flex;gap:.5rem;gap:var(--spacing-sm)}.charts-container{grid-gap:2rem;grid-gap:var(--spacing-xl);display:grid;gap:2rem;gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:3rem;margin-bottom:var(--spacing-2xl)}.empty-state{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:16px;border-radius:var(--border-radius-lg);box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md);padding:3rem;padding:var(--spacing-2xl);text-align:center}.empty-state svg{color:var(--text-muted);margin-bottom:1.5rem;margin-bottom:var(--spacing-lg);opacity:.6}.empty-state h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin-bottom:.5rem;margin-bottom:var(--spacing-sm)}.empty-state p{color:var(--text-secondary);font-size:.875rem;line-height:1.6;margin-bottom:1.5rem;margin-bottom:var(--spacing-lg)}.progress-loader{animation:fadeIn .3s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--border-radius-xl);box-shadow:0 12px 24px #00000026;box-shadow:var(--shadow-xl);max-width:600px;padding:var(--spacing-2xl)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.progress-header{gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.progress-header h3{color:var(--text-primary)}.progress-bar-container{gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.progress-bar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;border-radius:var(--border-radius-sm)}.progress-fill{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);border-radius:8px;border-radius:var(--border-radius-sm);box-shadow:0 0 10px #667eea4d;transition:width var(--transition-slow)}.progress-fill:after{background:linear-gradient(90deg,#0000,#fff6 50%,#0000)}.progress-text{color:var(--text-primary);font-size:1rem;font-weight:700;min-width:60px}.progress-message{color:var(--text-secondary);font-weight:500;margin-bottom:var(--spacing-md)}.progress-details{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-backdrop-filter:var(--backdrop-blur-sm);backdrop-filter:var(--backdrop-blur-sm);border-radius:12px;border-radius:var(--border-radius-md);font-weight:600;padding:1rem 1.5rem;padding:var(--spacing-md) var(--spacing-lg)}.progress-loader[data-stage=fetching] .progress-fill{box-shadow:0 0 10px #48bb784d}.progress-loader[data-stage=processing] .progress-fill{box-shadow:0 0 10px #ed89364d}.slow-conversations{background:#fff5f5;border:1px solid #fed7d7;border-radius:16px;margin-bottom:2rem;padding:2rem}.slow-conversations-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.slow-conversations h3{color:#c53030;margin:0}.slow-conversations h3,.time-filter,.time-filter label{align-items:center;display:flex;gap:.5rem}.time-filter label{color:#4a5568;font-size:.9rem}.time-filter input{border:1px solid #e2e8f0;border-radius:4px;font-size:.9rem;padding:.25rem .5rem}.time-filter input:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.slow-conversations-list{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.slow-conversation-item{align-items:center;background:#fff;border:1px solid #fed7d7;border-radius:8px;display:flex;gap:1rem;justify-content:space-between;padding:1rem}.conversation-time{color:#c53030;font-weight:600}.more-conversations{color:#718096;font-style:italic;margin-top:1rem}.no-conversations{color:#718096;font-style:italic;margin-top:1rem;text-align:center}.no-conversations,.pagination-controls{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.pagination-controls{align-items:center;display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.pagination-controls button{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#4a5568;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .2s}.pagination-controls button:hover:not(:disabled){background:#edf2f7;border-color:#cbd5e0}.pagination-controls button:disabled{cursor:not-allowed;opacity:.5}.pagination-info{color:#4a5568;font-size:.9rem;font-weight:500}.additional-metrics{background:#f7fafc;border:1px solid #e2e8f0;border-radius:16px;padding:2rem}.metric-row{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1rem 0}.metric-row:last-child{border-bottom:none}.metric-row.error{color:#c53030}.metric-row strong{color:#2d3748}.metric-row span{color:#4a5568;font-weight:500}.progress-loader{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 8px 32px #0000001a;margin:0 auto;max-width:500px;padding:3rem;text-align:center}.progress-header{align-items:center;display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.progress-header h3{color:#2d3748;font-size:1.5rem;font-weight:600;margin:0}.progress-header svg{color:#667eea}.progress-bar-container{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.progress-bar{background:#e2e8f0;flex:1 1;height:12px;overflow:hidden}.progress-bar,.progress-fill{border-radius:6px;position:relative}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);height:100%;transition:width .3s ease}.progress-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-text{color:#2d3748;font-weight:600;min-width:50px;text-align:right}.progress-message{color:#718096;font-size:1rem;margin-bottom:1rem}.progress-details{background:#667eea1a;border:1px solid #667eea33;border-radius:8px;color:#667eea;font-weight:500;padding:.75rem 1rem}.progress-loader[data-stage=fetching] .progress-header svg{color:#48bb78}.progress-loader[data-stage=fetching] .progress-fill{background:linear-gradient(90deg,#48bb78,#38a169)}.progress-loader[data-stage=processing] .progress-header svg{color:#ed8936}.progress-loader[data-stage=processing] .progress-fill{background:linear-gradient(90deg,#ed8936,#dd6b20)}@media (max-width:1200px){.charts-container{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (max-width:768px){:root{--spacing-xl:1rem;--spacing-2xl:1.5rem}.app-header{padding:1rem;padding:var(--spacing-md);position:relative}.header-content{align-items:stretch;flex-direction:column;gap:1rem;gap:var(--spacing-md);margin-bottom:1rem;margin-bottom:var(--spacing-md)}.header-title h1{font-size:1.875rem}.header-toolbar{align-items:stretch;flex-direction:column;gap:1rem;gap:var(--spacing-md)}.header-actions{flex-wrap:wrap;justify-content:center}.filter-panel,.search-bar{max-width:100%}.app-main{padding:1rem;padding:var(--spacing-md)}.projects-grid{grid-template-columns:1fr}.project-card{padding:1.5rem;padding:var(--spacing-lg)}.project-card__header{align-items:stretch;flex-direction:column;gap:.5rem;gap:var(--spacing-sm)}.project-card__actions{justify-content:flex-end;margin-left:0}.project-card__footer{flex-direction:column;gap:.5rem;gap:var(--spacing-sm)}.quick-stats__grid{grid-template-columns:repeat(2,1fr)}.metrics-grid{grid-template-columns:1fr}.metric-card{padding:1.5rem;padding:var(--spacing-lg)}.metric-card__header{align-items:center;flex-direction:row}.metric-card__value{font-size:2rem}.charts-container{grid-template-columns:1fr}.chart-container{padding:1.5rem;padding:var(--spacing-lg)}.chart-container--expanded{bottom:2%;left:2%;right:2%;top:2%}.analysis-header{align-items:flex-start;flex-direction:column;gap:1rem;gap:var(--spacing-md)}.analysis-meta{flex-direction:column;gap:.25rem;gap:var(--spacing-xs)}.notifications-container{left:.5rem;left:var(--spacing-sm);max-width:none;right:.5rem;right:var(--spacing-sm);top:.5rem;top:var(--spacing-sm)}.notification-banner{padding:.5rem;padding:var(--spacing-sm)}.progress-loader{margin:1rem;margin:var(--spacing-md)}.empty-state,.progress-loader{padding:1.5rem;padding:var(--spacing-lg)}}@media (max-width:480px){.header-title h1{font-size:1.5rem}.btn{font-size:.75rem;min-height:36px;padding:.25rem 1rem;padding:var(--spacing-xs) var(--spacing-md)}.btn--small{font-size:.7rem;min-height:28px;padding:.25rem .5rem;padding:var(--spacing-xs) var(--spacing-sm)}.metric-card__value{font-size:1.5rem}.quick-stats__grid{grid-template-columns:1fr}.quick-stat__value{font-size:1.5rem}.project-card__footer{align-items:stretch}.project-card__footer .btn{flex:1 1;justify-content:center}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-4px,0)}70%{transform:translate3d(0,-2px,0)}90%{transform:translate3d(0,-1px,0)}}.spin{animation:spin 1s linear infinite}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.bounce{animation:bounce 1s ease infinite}.fade-in{animation:fadeIn .3s ease}.slide-up{animation:slideUp .3s ease}.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}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem;gap:var(--spacing-sm)}.gap-4{gap:1rem;gap:var(--spacing-md)}.gap-6{gap:1.5rem;gap:var(--spacing-lg)}.keywords-analysis{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin:2rem 0;padding:2rem}.keywords-analysis h3{align-items:center;color:#2d3748;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin-bottom:1.5rem}.keywords-table{border:1px solid #0000001a;border-radius:12px;overflow:hidden}.keywords-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.9rem;font-weight:600}.keywords-header,.keywords-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:2fr 1fr 1fr 1fr;padding:1rem 1.5rem}.keywords-row{border-bottom:1px solid #0000000d;transition:background-color .2s ease}.keywords-row:hover{background-color:#667eea0d}.keywords-row:last-child{border-bottom:none}.keyword-name{color:#2d3748;font-family:Courier New,monospace;font-size:.9rem;font-weight:600}.keyword-average,.keyword-conversations,.keyword-occurrences{color:#4a5568;font-weight:500;text-align:center}.keyword-conversations{color:#38a169}.keyword-occurrences{color:#3182ce}.keyword-average{color:#d69e2e}@media (max-width:768px){.keywords-header,.keywords-row{gap:.5rem;grid-template-columns:1fr;text-align:center}.keyword-name,.keywords-header span:not(:first-child),.keywords-row span:not(:first-child){font-size:.8rem}}.completed-conversations-analysis{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000001a;margin:2rem 0;padding:2rem}.completed-conversations-analysis h3{align-items:center;color:#2d3748;display:flex;font-size:1.5rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.analysis-description{color:#718096;font-size:1rem;line-height:1.5;margin-bottom:1.5rem}.completed-conversations-table{border:1px solid #0000001a;border-radius:12px;overflow:hidden}.completed-conversations-header{background:linear-gradient(135deg,#38a169,#48bb78);color:#fff;font-size:.9rem;font-weight:600}.completed-conversation-row,.completed-conversations-header{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr 1fr 1fr;padding:1rem 1.5rem}.completed-conversation-row{border-bottom:1px solid #0000000d;transition:background-color .2s ease}.completed-conversation-row:hover{background-color:#38a1690d}.completed-conversation-row:last-child{border-bottom:none}.inicios-count{color:#3182ce}.cierres-count,.inicios-count{font-weight:600;text-align:center}.cierres-count{color:#d69e2e}.completion-status{color:#38a169;font-weight:600;text-align:center}.conversation-id-link{border-radius:4px;color:#3182ce;font-weight:600;padding:.2rem .4rem;text-decoration:none;transition:all .2s ease}.conversation-id-link:hover{background-color:#3182ce1a;color:#2c5282;text-decoration:underline}.chatwoot-link{background:linear-gradient(135deg,#3182ce,#4299e1);border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#fff;display:inline-block;font-size:.9rem;font-weight:600;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.chatwoot-link:hover{background:linear-gradient(135deg,#2c5282,#3182ce);box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.chatwoot-link-small{background:linear-gradient(135deg,#3182ce,#4299e1);border-radius:6px;box-shadow:0 1px 3px #0000001a;color:#fff;display:inline-block;font-size:.8rem;font-weight:600;padding:.3rem .6rem;text-decoration:none;transition:all .2s ease}.chatwoot-link-small:hover{background:linear-gradient(135deg,#2c5282,#3182ce);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}@media (max-width:768px){.completed-conversation-row,.completed-conversations-header{gap:.5rem;grid-template-columns:1fr;text-align:center}.chatwoot-link,.completed-conversation-row span:not(:first-child),.completed-conversations-header span:not(:first-child){font-size:.8rem}.chatwoot-link{padding:.3rem .8rem}.conversation-id-link{font-size:.9rem;padding:.3rem .6rem}}.header-actions{display:flex;gap:1rem;margin-top:1rem}.cache-manager{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:1200px;padding:2rem}.cache-manager__header{align-items:flex-start;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin-bottom:2rem;padding:1.5rem}.cache-manager__header h2{color:#333;flex:1 1;font-size:1.5rem;font-weight:600;margin:0;min-width:200px}.cache-manager__stats{display:flex;flex:1 1;flex-direction:row;gap:1rem;min-width:250px}.cache-manager__actions{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.75rem}.stat-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1rem;text-align:left;transition:all .2s ease}.stat-card:hover{box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.stat-label{color:#6c757d;display:block;font-size:.9rem;margin-bottom:.5rem}.stat-value{color:#333;display:block;font-size:1.5rem;font-weight:700}.cache-manager__files{margin-top:2rem}.cache-manager__files h3{color:#333;font-size:1.3rem;margin-bottom:1rem}.cache-files{display:flex;flex-direction:column;gap:.5rem}.cache-file{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s ease}.cache-file:hover{background:#e9ecef;transform:translateY(-1px)}.cache-file--expired{background:#fff3cd;border-color:#ffeaa7}.cache-file--valid{background:#d1ecf1;border-color:#bee5eb}.cache-file__info{flex:1 1}.cache-file__name{color:#333;font-family:monospace;font-size:.9rem;font-weight:700;margin-bottom:.25rem;word-break:break-all}.cache-file__details{color:#6c757d;display:flex;font-size:.8rem;gap:1rem}.cache-file__age,.cache-file__size{background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:.25rem .5rem}.cache-file__status{border-radius:4px;font-weight:700;padding:.25rem .5rem}.status--valid{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.status--expired{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.cache-file__actions{display:flex;gap:.5rem}.btn--small{font-size:.8rem;padding:.25rem .5rem}.cache-manager__empty{color:#6c757d;padding:3rem;text-align:center}.cache-manager__empty p{font-size:1.1rem;margin:0}.cache-manager__loading{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:3rem}.cache-manager__loading svg{color:var(--text-primary)}@media (max-width:768px){.cache-manager{padding:1rem}.cache-manager__header{align-items:stretch;flex-direction:column;gap:1rem}.cache-manager__stats{flex-direction:row;flex-wrap:wrap;gap:.75rem}.cache-manager__actions{flex-wrap:wrap;justify-content:center}.stat-card{flex:1 1;min-width:100px;text-align:center}}.cache-file{align-items:stretch;flex-direction:column;gap:1rem}.cache-file__details{flex-wrap:wrap}.cache-file__actions{justify-content:center}.projects-cache-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-top:2rem}.project-cache-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden;transition:all .2s ease}.project-cache-card:hover{box-shadow:0 4px 8px #00000026}.project-cache-header{align-items:center;background:#edf2f7;border-bottom:2px solid #f8f9fa;border-radius:8px 8px 0 0;cursor:pointer;display:flex;justify-content:space-between;margin-bottom:1rem;padding:1rem;transition:background-color .2s}.project-cache-header:hover{background:#e2e8f0}.project-cache-header h3{color:#333;font-size:1.3rem;font-weight:600;margin:0}.project-cache-stats{display:flex;font-size:.9rem;gap:1rem}.project-cache-header-content{flex:1 1}.project-cache-toggle{align-items:center;background:#fff;border:1px solid #cbd5e0;border-radius:4px;display:flex;height:24px;justify-content:center;margin-left:1rem;width:24px}.toggle-icon{color:#4a5568;font-size:12px;transition:transform .2s}.toggle-icon.expanded{transform:rotate(0deg)}.project-cache-content{background:#fff;border-radius:0 0 8px 8px;padding:1rem}.cache-count{background:#e3f2fd;color:#1976d2}.cache-count,.cache-size{border-radius:4px;font-weight:500;padding:.25rem .5rem}.cache-size{background:#f3e5f5;color:#7b1fa2}.project-cache-files{display:flex;flex-direction:column;gap:.75rem}.project-cache-file{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem;transition:all .2s ease}.project-cache-file:hover{background:#e9ecef;transform:translateX(2px)}.project-cache-file.cache-file--expired{background:#fff3cd;border-color:#ffeaa7}.project-cache-file.cache-file--valid{background:#d1ecf1;border-color:#bee5eb}.project-cache-file .cache-file__info{flex:1 1}.project-cache-file .cache-file__name{color:#333;font-size:.95rem;font-weight:600;margin-bottom:.25rem}.project-cache-file .cache-file__details{color:#6c757d;display:flex;flex-wrap:wrap;font-size:.8rem;gap:.75rem}.cache-file__expires,.cache-file__expires-in{background:#fff;border:1px solid #dee2e6;border-radius:3px;font-weight:500;padding:.2rem .4rem}.cache-file__expires-in{background:#fff3cd;border-color:#ffeaa7;color:#856404}.project-cache-empty{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;padding:2rem;text-align:center}.project-cache-empty p{font-size:1rem;margin:0}@media (max-width:768px){.projects-cache-grid{gap:1rem;grid-template-columns:1fr}.project-cache-header{align-items:stretch;flex-direction:column;gap:.5rem}.project-cache-stats{justify-content:center}.project-cache-file{align-items:stretch;flex-direction:column;gap:.75rem}.project-cache-file .cache-file__actions,.project-cache-file .cache-file__details{justify-content:center}}.project-manager{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin:0 auto;max-width:1200px;padding:2rem}.project-manager__header{align-items:flex-start;background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;margin-bottom:2rem;padding:1.5rem}.project-manager__header h3{color:#333;flex:1 1;font-size:1.5rem;font-weight:600;margin:0;min-width:200px}.project-manager__actions{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.75rem}.project-manager__list{display:flex;flex-direction:column;gap:1rem}.project-manager__item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;padding:1.5rem;transition:all .2s ease}.project-manager__item:hover{background:#e9ecef;box-shadow:0 2px 6px #0000001a;transform:translateY(-1px)}.project-manager__item-info{flex:1 1}.project-manager__item-info h4{color:#333;font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.project-manager__item-info p{color:#6c757d;font-size:.9rem;margin:0 0 .5rem}.project-manager__item-info small{color:#adb5bd;font-size:.8rem}.project-manager__item-actions{display:flex;gap:.5rem}.project-manager__empty{color:#6c757d;padding:3rem;text-align:center}.project-manager__empty p{font-size:1.1rem;margin:0}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 10px 25px #0003;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal__header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem}.modal__header h3{color:#333;font-size:1.3rem;font-weight:600;margin:0}.modal__form{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.9rem;margin-bottom:.5rem}.form-group input,.form-group textarea{border:1px solid #ddd;border-radius:6px;font-size:.9rem;padding:.75rem;transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.modal__actions{border-top:1px solid #e9ecef;display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem}@media (max-width:768px){.project-manager{padding:1rem}.project-manager__header{align-items:stretch;flex-direction:column}.project-manager__actions{justify-content:stretch}.project-manager__item{align-items:stretch;flex-direction:column;gap:1rem}.project-manager__item-actions{justify-content:flex-end}.form-row{grid-template-columns:1fr}.modal{margin:1rem;max-height:calc(100vh - 2rem)}.modal__actions{flex-direction:column}}.app-toolbar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);-webkit-backdrop-filter:var(--backdrop-blur);backdrop-filter:var(--backdrop-blur);background:#fffffff2;border-bottom:1px solid #0000001a;padding:1rem 2rem;position:sticky;top:80px;z-index:900}.app[data-theme=dark] .app-toolbar{background:#2d3748f2;border-bottom-color:#ffffff1a}.toolbar-content{justify-content:space-between;margin:0 auto;max-width:1400px}.toolbar-actions,.toolbar-content{align-items:center;display:flex;gap:1rem}.app-main{padding-top:0}@media (max-width:768px){.app-toolbar{padding:.8rem 1rem;top:140px}.toolbar-content{flex-direction:column;gap:.8rem}.toolbar-actions{flex-wrap:wrap;justify-content:space-between;width:100%}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:20px}.login-card{animation:slideUp .5s ease-out;background:#fff;border-radius:20px;box-shadow:0 20px 40px #0000001a;max-width:400px;padding:40px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:30px;text-align:center}.login-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#333;font-size:2.5em;font-weight:600;margin:0 0 10px}.login-header p{color:#666;font-size:.95em;margin:0}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#333;font-size:.9em;font-weight:500}.form-group input{border:2px solid #e1e1e1;border-radius:10px;font-size:1em;outline:none;padding:15px;transition:all .3s ease}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c44;font-size:.9em;gap:8px;padding:12px}.error-message,.login-button{align-items:center;display:flex}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1em;font-weight:600;gap:10px;justify-content:center;margin-top:10px;padding:15px;transition:all .3s ease}.login-button:hover:not(:disabled){box-shadow:0 10px 20px #667eea4d;transform:translateY(-2px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{box-shadow:none;cursor:not-allowed;opacity:.7;transform:none}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:18px;width:18px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-footer{border-top:1px solid #eee;margin-top:30px;padding-top:20px;text-align:center}.login-footer p{color:#999;font-size:.85em;margin:0}@media (max-width:480px){.login-container{padding:15px}.login-card{padding:30px 25px}.login-header h1{font-size:2em}}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;position:sticky;top:0;z-index:1000}.header-content{justify-content:space-between;margin:0 auto;max-width:1400px;padding:1rem 2rem}.header-content,.header-left{align-items:center;display:flex}.header-title{color:#fff;font-size:1.8em;font-weight:600;margin:0}.header-right{gap:1.5rem}.header-right,.user-info{align-items:center;display:flex}.user-info{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:25px;gap:.5rem;padding:.5rem 1rem}.user-icon{font-size:1.2em}.username{font-size:.95em;font-weight:500}.user-role{font-size:.85em;font-style:italic;opacity:.8}.logout-button{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #ffffff4d;border-radius:25px;color:#fff;cursor:pointer;display:flex;font-size:.9em;font-weight:500;gap:.5rem;padding:.6rem 1.2rem;transition:all .3s ease}.logout-button:hover{background:#ffffff40;border-color:#ffffff80;transform:translateY(-1px)}.logout-button:active{transform:translateY(0)}.logout-icon{font-size:1em}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem;padding:1rem}.header-title{font-size:1.5em}.header-right{justify-content:space-between;width:100%}.user-info{flex:1 1;justify-content:center}}@media (max-width:480px){.header-content{padding:.8rem}.header-title{font-size:1.3em}.logout-button span:not(.logout-icon),.user-info .user-role,.user-info .username{display:none}}
/*# sourceMappingURL=main.f283fa6b.css.map*/