:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--border-color: #30363d;--text-primary: #f0f6fc;--text-secondary: #8b949e;--accent-blue: #58a6ff;--accent-green: #3fb950;--accent-yellow: #d29922;--accent-red: #f85149;--accent-purple: #a371f7}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5}.dashboard{min-height:100vh;display:flex;flex-direction:column}.header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.header h1{font-size:1.25rem;font-weight:600;letter-spacing:.05em}.header-actions{display:flex;gap:1rem;align-items:center}.main{flex:1;padding:1.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.section{width:100%}.card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.card-header h2{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--accent-blue);color:#fff}.btn-primary:hover:not(:disabled){background-color:#4c9aed}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--border-color)}.btn-danger{background-color:var(--accent-red);color:#fff}.btn-danger:hover:not(:disabled){background-color:#da3633}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.badge{background-color:var(--bg-tertiary);color:var(--text-secondary);padding:.25rem .75rem;border-radius:20px;font-size:.75rem}.status-badge{background-color:var(--accent-green);color:#fff;padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:500}.progress-container{padding:1.25rem}.progress-bar{height:24px;background-color:var(--bg-tertiary);border-radius:12px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));border-radius:12px;transition:width .3s ease}.progress-info{display:flex;justify-content:space-between;margin-top:.75rem}.progress-numbers{font-size:1.25rem;font-weight:600}.progress-percent{color:var(--text-secondary)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.stat-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.25rem;text-align:center}.stat-value{font-size:2rem;font-weight:700;margin-bottom:.25rem}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.stat-blue .stat-value{color:var(--accent-blue)}.stat-green .stat-value{color:var(--accent-green)}.stat-red .stat-value{color:var(--accent-red)}.stat-purple .stat-value{color:var(--accent-purple)}.stat-gray .stat-value{color:var(--text-secondary)}.charts-container{display:flex;flex-direction:column;gap:1rem}.charts-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.chart-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.chart-card h3{font-size:.875rem;font-weight:600;color:var(--text-secondary);margin-bottom:1rem}.chart-full{grid-column:1 / -1}.controls-form{padding:1.25rem;display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.form-group input{padding:.625rem .875rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.875rem}.form-group input:focus{outline:none;border-color:var(--accent-blue)}.form-group input:disabled{opacity:.5}.form-actions{display:flex;gap:.75rem;margin-left:auto}.file-list{max-height:300px;overflow-y:auto}.file-item{display:flex;align-items:center;gap:1rem;padding:.875rem 1.25rem;border-bottom:1px solid var(--border-color)}.file-item:last-child{border-bottom:none}.file-icon{font-size:1.5rem}.file-info{flex:1}.file-name{font-weight:500}.file-meta{font-size:.75rem;color:var(--text-secondary)}.log-container{max-height:250px;overflow-y:auto;font-family:Monaco,Menlo,monospace;font-size:.75rem}.log-entry{padding:.5rem 1.25rem;border-bottom:1px solid var(--border-color);display:flex;gap:1rem}.log-entry:last-child{border-bottom:none}.log-time{color:var(--text-secondary);flex-shrink:0}.log-message{flex:1}.log-info{color:var(--text-primary)}.log-success .log-message{color:var(--accent-green)}.log-warning .log-message{color:var(--accent-yellow)}.log-error .log-message{color:var(--accent-red)}.empty-state{padding:2rem;text-align:center;color:var(--text-secondary)}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.charts-row{grid-template-columns:1fr}.controls-form{flex-direction:column;align-items:stretch}.form-actions{margin-left:0;justify-content:stretch}.form-actions .btn{flex:1}}
