:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400}body{margin:0;min-width:320px;min-height:100vh}:root{--primary-color: #4f46e5;--secondary-color: #64748b;--success-color: #10b981;--danger-color: #ef4444;--background: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text-primary: #0f172a;--text-secondary: #64748b}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary)}.dashboard{max-width:1400px;margin:0 auto;padding:20px}.dashboard-header{background:var(--surface);padding:20px 30px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.dashboard-header h1{font-size:28px;font-weight:600;color:var(--primary-color)}.controls{display:flex;gap:15px;flex-wrap:wrap;background:var(--surface);padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.control-group{display:flex;flex-direction:column;gap:5px}.control-group label{font-size:14px;font-weight:500;color:var(--text-secondary)}.control-group select,.control-group input[type=date]{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text-primary);min-width:200px}.control-group select:focus,.control-group input[type=date]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-top:auto;min-width:140px;height:40px;white-space:nowrap}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:#4338ca;transform:translateY(-1px);box-shadow:0 4px 6px #4f46e54d}.btn-secondary{background:var(--secondary-color);color:#fff!important}.btn-secondary:hover{background:#475569;transform:translateY(-1px);box-shadow:0 4px 6px #64748b4d}.btn-tertiary{background:#10b981;color:#fff!important}.btn-tertiary:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:0 4px 6px #10b9814d}.btn:disabled{opacity:.5;cursor:not-allowed}.error-message{background:#fee2e2;color:var(--danger-color);padding:12px 16px;border-radius:6px;margin-bottom:20px;border:1px solid #fecaca}.success-message{background:#d1fae5;color:var(--success-color);padding:12px 16px;border-radius:6px;margin-bottom:20px;border:1px solid #a7f3d0;animation:fadeIn .3s ease-in}.success-message.fade-out{animation:fadeOut 1s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.tabs{display:flex;gap:10px;background:var(--surface);padding:15px;border-radius:8px 8px 0 0;box-shadow:0 1px 3px #0000001a}.tab{padding:10px 20px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s}.tab:hover{background:var(--background)}.tab.active{background:var(--primary-color);color:#fff}.chart-section{background:var(--surface);padding:20px;border-radius:0 0 8px 8px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.chart-container h3{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:20px}.loading,.no-data{text-align:center;padding:60px 20px;color:var(--text-secondary);font-size:16px}.table-section{background:var(--surface);padding:20px;border-radius:8px;box-shadow:0 1px 3px #0000001a}.table-container h3{font-size:20px;font-weight:600;color:var(--text-primary);margin-bottom:20px}.table-responsive{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead th{background:var(--background);padding:12px 16px;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none}.data-table thead th:hover{background:#e2e8f0}.data-table tbody td{padding:12px 16px;border-bottom:1px solid var(--border)}.data-table tbody tr:hover{background:var(--background)}.header-content{display:flex;align-items:center;gap:5px}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-success{background:#d1fae5;color:var(--success-color)}.badge-danger{background:#fee2e2;color:var(--danger-color)}.text-success{color:var(--success-color);font-weight:500}.text-danger{color:var(--danger-color);font-weight:500}@media(max-width:768px){.dashboard{padding:10px}.controls{flex-direction:column}.control-group select,.control-group input[type=date]{width:100%}.tabs{flex-wrap:wrap}.data-table{font-size:12px}.data-table thead th,.data-table tbody td{padding:8px 10px}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--surface);border-radius:8px;padding:30px;max-width:500px;width:90%;box-shadow:0 10px 40px #0000004d}.modal-content h2{margin:0 0 20px;color:var(--text-primary);font-size:24px}.modal-body,.form-group{margin-bottom:20px}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.file-name{color:var(--text-primary);font-weight:500;padding:8px 12px;background:var(--background);border-radius:4px}.radio-group{display:flex;gap:20px;margin-top:8px}.radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--text-primary)}.radio-label input[type=radio]{cursor:pointer}.radio-label span{-webkit-user-select:none;user-select:none}.modal-select,.modal-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--surface);color:var(--text-primary);margin-top:8px}.modal-select:focus,.modal-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4f46e51a}.modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.modal-footer .btn{margin-top:0;padding:10px 20px}
