*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#0f0f23;color:#e0e0e0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App{background:linear-gradient(135deg,#0f0f23,#1a1a3e 50%,#0f0f23);display:flex;flex-direction:column;min-height:100vh}.App-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:1.5rem 2rem}.header-content h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2,#f093fb);-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:700}.header-content p{color:#fff9;font-size:.9rem;margin-top:.25rem}.header-badge{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;display:flex;font-size:.85rem;font-weight:500;gap:.5rem;padding:.5rem 1rem}.tab-navigation{background:#0003;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;padding:1.5rem 2rem}.tab{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;color:#ffffffb3;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.tab:hover{background:#ffffff1a;border-color:#667eea80;color:#fff;transform:translateY(-2px)}.tab.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 20px #667eea66;color:#fff}.tab svg{height:18px;width:18px}.main-content{flex:1 1;margin:0 auto;max-width:1400px;padding:2rem;position:relative;width:100%}.section-header{margin-bottom:2rem}.section-header h2{color:#fff;font-size:1.75rem;font-weight:600;margin-bottom:.5rem}.section-header p{color:#ffffff80;font-size:.95rem}.refresh-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;margin-top:1rem;padding:.6rem 1.25rem;transition:all .3s ease}.refresh-btn:hover{box-shadow:0 4px 15px #667eea66;transform:translateY(-2px)}.services-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-bottom:2rem}.service-card{background:#ffffff08;border:1px solid #ffffff14;border-left:4px solid;border-radius:16px;padding:1.5rem;transition:all .3s ease}.service-card:hover{background:#ffffff0d;box-shadow:0 10px 40px #0000004d;transform:translateY(-4px)}.service-header{align-items:flex-start;display:flex;gap:1rem;margin-bottom:1.25rem}.service-icon{align-items:center;border-radius:12px;display:flex;height:48px;justify-content:center;width:48px}.service-icon svg{height:24px;width:24px}.service-info h3{color:#fff;font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.8rem;font-weight:500;gap:.35rem;padding:.25rem .75rem}.status-badge.online{background:#28a74526;color:#28a745}.status-badge.offline{background:#dc354526;color:#dc3545}.service-details{display:flex;flex-direction:column;gap:.75rem}.detail-row{align-items:center;color:#ffffffb3;display:flex;font-size:.9rem;gap:.5rem}.detail-row span{color:#ffffff80}.detail-row strong{color:#fff}.detail-row code{background:#667eea33;border-radius:4px;color:#a5b4fc;font-size:.85rem;padding:.15rem .5rem}.detail-row svg{height:14px;opacity:.6;width:14px}.service-error{background:#dc35451a;border-radius:8px;padding:1rem}.service-error p{color:#dc3545;margin-bottom:.5rem}.service-error code{color:#ffffff80;font-size:.8rem}.weather-widget{background:linear-gradient(135deg,#667eea33,#764ba233);border:1px solid #667eea4d;border-radius:16px;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;padding:1.5rem 2rem}.weather-icon,.weather-widget{align-items:center;display:flex}.weather-icon{background:#ffffff1a;border-radius:50%;color:#a5b4fc;flex-shrink:0;height:80px;justify-content:center;width:80px}.weather-icon svg{height:40px;width:40px}.weather-info{flex:1 1;min-width:150px}.weather-info h4{color:#fff;font-size:1.1rem;margin-bottom:.5rem}.weather-info .location{color:#ffffffb3;font-size:1rem;margin-bottom:.25rem}.weather-info .temp{color:#a5b4fc;font-size:2.5rem;font-weight:700;line-height:1}.weather-info .conditions{color:#fff9;font-size:.95rem;margin-top:.25rem;text-transform:capitalize}.weather-analytics{display:flex;flex-wrap:wrap;gap:1.5rem;margin-left:auto}.weather-stat{align-items:center;background:#ffffff0d;border-radius:10px;display:flex;flex-direction:column;min-width:100px;padding:.75rem 1rem}.weather-stat .label{color:#ffffff80;font-size:.75rem;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.weather-stat .value{color:#fff;font-size:1.25rem;font-weight:600}.dashboard-stats{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;padding:1.5rem}.dashboard-stats h3{align-items:center;color:#fff;display:flex;font-size:1.1rem;gap:.5rem;margin-bottom:1.25rem}.dashboard-stats h3 svg{flex-shrink:0;height:20px!important;max-width:20px;min-width:20px;width:20px!important}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{background:#ffffff08;border-radius:12px;gap:1rem;padding:1rem}.stat-card,.stat-icon{align-items:center;display:flex}.stat-icon{background:linear-gradient(135deg,#667eea4d,#764ba24d);border-radius:10px;color:#a5b4fc;height:40px;justify-content:center;min-height:40px;min-width:40px;width:40px}.stat-icon svg{height:20px;width:20px}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;padding-right:2.5rem!important}select option{background-color:#1a1a3e;color:#fff;padding:.5rem}.stat-info{display:flex;flex-direction:column}.stat-label{color:#ffffff80;font-size:.8rem}.stat-value{color:#fff;font-size:1rem;font-weight:600}.profile-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;overflow:hidden}.profile-header{background:linear-gradient(135deg,#667eea33,#764ba233);gap:1.5rem;padding:2rem}.avatar,.profile-header{align-items:center;display:flex}.avatar{background:#ffffff1a;border-radius:50%;color:#a5b4fc;height:80px;justify-content:center;width:80px}.avatar svg{height:40px;width:40px}.profile-info h3{color:#fff;font-size:1.5rem;margin-bottom:.25rem}.profile-subtitle{color:#ffffff80;font-size:.9rem}.profile-details{padding:1.5rem 2rem}.profile-row{border-bottom:1px solid #ffffff0d;display:flex;justify-content:space-between;padding:.75rem 0}.profile-row:last-child{border-bottom:none}.profile-row .label{color:#ffffff80;font-size:.9rem;text-transform:capitalize}.profile-row .value{color:#fff;font-weight:500}.profile-footer{align-items:center;background:#0003;color:#ffffff80;display:flex;font-size:.85rem;gap:.5rem;padding:1rem 2rem}.profile-footer code{background:#667eea33;border-radius:4px;color:#a5b4fc;padding:.15rem .5rem}.reports-container{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;overflow:hidden}.reports-header{background:linear-gradient(135deg,#667eea33,#764ba233);padding:1.5rem 2rem}.reports-header h3{align-items:center;color:#fff;display:flex;gap:.5rem;margin-bottom:.25rem}.reports-header p{color:#ffffff80;font-size:.9rem}.report-section{border-bottom:1px solid #ffffff0d;padding:1.5rem 2rem}.report-section:last-of-type{border-bottom:none}.report-section h4{align-items:center;color:#a5b4fc;display:flex;font-size:1rem;gap:.5rem;margin-bottom:1rem}.report-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.report-item{background:#ffffff08;border-radius:8px;padding:1rem}.report-item .label{color:#ffffff80;display:block;font-size:.8rem;margin-bottom:.25rem;text-transform:capitalize}.report-item .value{color:#fff;font-weight:500;word-break:break-word}.report-footer{align-items:center;background:#0003;color:#ffffff80;display:flex;font-size:.85rem;gap:.5rem;padding:1rem 2rem}.report-id{margin-top:.75rem}.report-id code{background:#667eea33;border-radius:4px;color:#a5b4fc;font-size:.85rem;padding:.25rem .75rem}.report-item .value.highlight{color:#a5b4fc;font-size:1.25rem}.report-item .value.success{color:#28a745}.report-item .value.error{color:#dc3545}.profile-row .value.status-active{color:#28a745;text-transform:capitalize}.profile-row .value.status-inactive{color:#ffc107;text-transform:capitalize}.stat-card.weather-stat{background:linear-gradient(135deg,#667eea26,#764ba226);border:1px solid #667eea4d}.upload-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;max-width:500px;padding:2rem}.upload-form{display:flex;flex-direction:column;gap:1.5rem}.dropzone{border:2px dashed #667eea80;border-radius:12px;cursor:pointer;padding:3rem 2rem;text-align:center;transition:all .3s ease}.dropzone:hover{background:#667eea1a;border-color:#667eea}.dropzone.has-file{background:#28a7451a;border-color:#28a745}.dropzone-content{align-items:center;display:flex;flex-direction:column;gap:.75rem}.dropzone-content svg{color:#667eea;height:48px;width:48px}.dropzone-content p{color:#ffffffb3}.dropzone-content .hint{color:#fff6;font-size:.85rem}.dropzone-content .filename{color:#fff;font-weight:600}.dropzone-content .filesize{color:#ffffff80;font-size:.85rem}.progress-bar{background:#ffffff1a;border-radius:2px;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#667eea,#764ba2);height:100%;transition:width .3s ease}.upload-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.upload-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.upload-button:disabled{cursor:not-allowed;opacity:.5}.upload-status{align-items:flex-start;border-radius:10px;display:flex;font-size:.9rem;gap:.75rem;margin-top:1rem;padding:1rem;white-space:pre-line}.upload-status.success{background:#28a74526;border:1px solid #28a7454d;color:#28a745}.upload-status.error{background:#dc354526;border:1px solid #dc35454d;color:#dc3545}.upload-status.progress{background:#667eea26;border:1px solid #667eea4d;color:#a5b4fc}.error-card{background:#dc35451a;border:1px solid #dc35454d;border-radius:12px;color:#dc3545;padding:2rem;text-align:center}.loading-overlay{align-items:center;background:#0f0f23e6;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.spinner{border:3px solid #667eea33;border-radius:50%;border-top-color:#667eea;height:50px;width:50px}.spinner,.spinner-small{animation:spin 1s linear infinite}.spinner-small{border:2px solid #667eea33;border-radius:50%;border-top-color:#667eea;display:inline-block;height:20px;vertical-align:middle;width:20px}.loading-inline{align-items:center;color:#ffffffb3;display:flex;font-size:.95rem;gap:.75rem;padding:2rem}@keyframes spin{to{transform:rotate(1turn)}}.refresh-btn{align-items:center;display:inline-flex;gap:.5rem}.refresh-btn svg{height:16px;width:16px}.refresh-btn:disabled{cursor:not-allowed;opacity:.5}.loading-overlay p{color:#ffffffb3;margin-top:1rem}.App-footer{background:#0000004d;border-top:1px solid #ffffff0d;flex-wrap:wrap;justify-content:space-between;padding:.75rem 2rem}.App-footer,.footer-content{align-items:center;display:flex;gap:.75rem}.footer-content{color:#fff6;font-size:.85rem}.footer-divider{opacity:.5}.footer-status{align-items:center;display:flex;gap:1rem}.footer-status-item{align-items:center;cursor:default;display:flex;gap:.35rem}.footer-status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.footer-status-name{color:#ffffffb3;font-size:.75rem;font-weight:500}.footer-status-type{color:#fff6;font-size:.65rem;font-style:italic}.footer-version{cursor:pointer;transition:color .2s ease}.footer-version:hover{color:#a5b4fc;text-decoration:underline}.modal-overlay{align-items:center;background:#000000d9;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:linear-gradient(135deg,#1a1a3e,#0f0f23);border:1px solid #667eea4d;border-radius:16px;display:flex;flex-direction:column;max-height:90vh;max-width:1200px;overflow:hidden;position:relative;width:100%}.modal-close{align-items:center;background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;line-height:1;position:absolute;right:1rem;top:1rem;transition:all .2s ease;width:36px;z-index:10}.modal-close:hover{background:#c82333;transform:scale(1.1)}.modal-title{background:#667eea1a;color:#fff;font-size:1.5rem;margin:0;padding:1.5rem 2rem}.modal-tabs,.modal-title{border-bottom:1px solid #ffffff1a}.modal-tabs{display:flex;gap:0}.modal-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#fff9;cursor:pointer;flex:1 1;font-size:.95rem;font-weight:500;padding:1rem 1.5rem;transition:all .2s ease}.modal-tab:hover{background:#ffffff0d;color:#fff}.modal-tab.active{background:#667eea1a;border-bottom-color:#667eea;color:#a5b4fc}.modal-diagram{align-items:center;flex:1 1;min-height:400px;overflow:auto;padding:2rem}.mermaid-container,.modal-diagram{display:flex;justify-content:center}.mermaid-container{width:100%}.mermaid-container svg{height:auto;max-width:100%}@media (max-width:768px){.modal-overlay{padding:1rem}.modal-content{max-height:95vh}.modal-title{font-size:1.2rem;padding:1rem 1.5rem}.modal-tab{font-size:.85rem;padding:.75rem 1rem}.modal-diagram{padding:1rem}.App-header{flex-direction:column;gap:1rem;text-align:center}.tab-navigation{padding:1rem}.tab{font-size:.85rem;padding:.6rem 1rem}.tab span{display:none}.main-content{padding:1rem}.services-grid{grid-template-columns:1fr}.profile-header{flex-direction:column;text-align:center}.footer-content,.header-right{flex-direction:column;gap:.5rem}}.header-right{align-items:center;display:flex;gap:1rem}.traffic-simulator{gap:.75rem}.sim-button,.traffic-simulator{align-items:center;display:flex}.sim-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.sim-button:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.sim-button.running{animation:pulse 2s infinite;background:linear-gradient(135deg,#f5576c,#f093fb)}.sim-button svg{height:16px;width:16px}@keyframes pulse{0%,to{box-shadow:0 0 0 0 #f5576c66}50%{box-shadow:0 0 0 8px #f5576c00}}.sim-stats{align-items:center;background:#ffffff1a;border-radius:4px;color:#ffffffe6;display:flex;font-size:.8rem;gap:.75rem;padding:.4rem .75rem}.sim-indicator{animation:blink 1s infinite;background:#4ade80;border-radius:50%;height:8px;width:8px}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.summary-bar{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.summary-stat{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:column;min-width:140px;padding:1rem 1.5rem}.summary-stat .stat-label{color:#fff9;font-size:.75rem;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.summary-stat .stat-value{color:#fff;font-size:1.5rem;font-weight:600}.summary-stat .stat-value.currency{color:#4ade80}.summary-stat .stat-value.pending{color:#fbbf24}.summary-stat .stat-value.approved{color:#4ade80}.data-table-container{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;overflow:hidden}.data-table{border-collapse:collapse;font-size:.9rem;width:100%}.data-table thead{background:#ffffff0d;border-bottom:1px solid #ffffff1a}.data-table th{color:#fffc;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:1rem 1.25rem;text-align:left;text-transform:uppercase;white-space:nowrap}.data-table th.sortable{cursor:pointer;padding-right:1.75rem;position:relative;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{background:#ffffff08;color:#fff}.data-table th.sortable .sort-icon{font-size:.7rem;opacity:.4;position:absolute;right:.5rem;top:50%;transform:translateY(-50%)}.data-table th.sortable.active .sort-icon{color:#667eea;opacity:1}.data-table th.sortable:hover .sort-icon{opacity:.7}.data-table tbody tr{border-bottom:1px solid #ffffff0d;transition:background .2s ease}.data-table tbody tr:hover{background:#ffffff0d}.data-table tbody tr:last-child{border-bottom:none}.data-table td{color:#ffffffe6;padding:1rem 1.25rem;vertical-align:middle}.data-table td.mono{font-family:SF Mono,Monaco,Consolas,monospace;font-size:.85rem}.data-table td.amount{color:#4ade80;font-weight:600}.data-table td.date{color:#fff9;font-size:.85rem}.data-table td .status-pill{align-items:center;border-radius:20px;display:inline-flex;font-size:.75rem;font-weight:500;padding:.25rem .75rem;text-transform:capitalize}.data-table td .status-pill.draft{background:#9ca3af33;color:#9ca3af}.data-table td .status-pill.pending,.data-table td .status-pill.submitted{background:#fbbf2433;color:#fbbf24}.data-table td .status-pill.approved,.data-table td .status-pill.completed,.data-table td .status-pill.validated{background:#4ade8033;color:#4ade80}.data-table td .status-pill.deleted,.data-table td .status-pill.failed{background:#f8717133;color:#f87171}.data-table td .action-btn{background:#667eea33;border:none;border-radius:6px;color:#667eea;cursor:pointer;font-size:.8rem;padding:.4rem .8rem;transition:all .2s ease}.data-table td .action-btn:hover{background:#667eea66}.data-table td .action-btn:disabled{cursor:not-allowed;opacity:.5}.data-table td .action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.data-table td .action-btn.primary:hover{box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.pagination{align-items:center;background:#ffffff05;border-top:1px solid #ffffff14;display:flex;justify-content:space-between;padding:1rem 1.25rem}.pagination-info{color:#fff9;font-size:.85rem}.pagination-controls{align-items:center;display:flex;gap:.5rem}.pagination-btn{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;color:#fffc;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background:#ffffff1a;border-color:#fff3}.pagination-btn:disabled{cursor:not-allowed;opacity:.4}.pagination-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;color:#fff}.page-size-select{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;color:#fffc;cursor:pointer;font-size:.85rem;padding:.5rem}.page-size-select option{background:#1a1a2e;color:#fff}.empty-state{color:#ffffff80;padding:3rem;text-align:center}.empty-state svg{height:48px;margin-bottom:1rem;opacity:.5;width:48px}.empty-state p{margin:0}.file-info{display:flex;flex-direction:column;gap:.125rem}.file-info .filename{color:#fff;font-weight:500}.file-info .filesize{color:#ffffff80;font-size:.75rem}@media (max-width:768px){.summary-bar{flex-direction:column}.summary-stat{width:100%}.data-table-container{overflow-x:auto}.data-table{min-width:600px}.pagination{flex-direction:column;gap:1rem}}
/*# sourceMappingURL=main.c346f6fd.css.map*/