body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}html{font-size:16px}.dashboard-layout{--bg-primary:#fff;--surface-50:#f8f9fa;--border:#e9ecef;--border-light:#f1f3f5;--text-secondary:#6b5b4f;--text-light:#8a7a70;background:#f8f9fa;display:flex;font-family:Inter,sans-serif;height:100vh;overflow:hidden}.dashboard-sidebar{background:#fff;border-right:1px solid #e9ecef;color:#3d3229;display:flex;flex-direction:column;position:relative;transition:all .3s ease;width:280px;z-index:100}.dashboard-sidebar.closed{width:80px}.sidebar-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;justify-content:space-between;padding:1.5rem}.logo-section,.sidebar-header{align-items:center;display:flex}.logo-section{gap:.75rem}.dashboard-logo{height:32px;width:auto}.dashboard-title{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.25rem;font-weight:600;white-space:nowrap}.sidebar-toggle{background:#e9ecef;border:none;border-radius:8px;color:#6b5b4f;cursor:pointer;padding:.5rem;transition:all .3s ease}.sidebar-toggle:hover{background:#8b7355;color:#fff}.dashboard-sidebar.closed .dashboard-title,.dashboard-sidebar.closed .sidebar-header p{display:none}.sidebar-nav{flex:1 1;overflow-y:auto;padding:1.5rem 0}.nav-section{margin-bottom:2rem;padding:0 1rem}.nav-section h3{color:#6b5b4f;font-size:.75rem;font-weight:600;letter-spacing:.1em;margin:0 0 1rem;text-transform:uppercase}.dashboard-sidebar.closed .nav-section h3{display:none}.nav-item{align-items:center;background:none;border:none;border-radius:8px;color:#6b5b4f;cursor:pointer;display:flex;font-size:.9rem;gap:.75rem;padding:.75rem 1rem;text-align:left;transition:all .3s ease;width:100%}.nav-item:hover{background:#f8f9fa;color:#3d3229}.nav-item.active{background:#8b7355;color:#fff}.dashboard-sidebar.closed .nav-item span{display:none}.dashboard-sidebar.closed .nav-item{justify-content:center;padding:.75rem}.sidebar-footer{background:#f8f9fa;border-top:1px solid #e9ecef;padding:1.5rem}.user-info{gap:.75rem}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:#8b7355;border-radius:50%;color:#fff;height:40px;justify-content:center;width:40px}.dashboard-sidebar.closed .user-details{display:none}.user-details p{font-size:.875rem;margin:0}.user-name{color:#3d3229;font-weight:600}.user-email{color:#6b5b4f;font-size:.75rem}.dashboard-main{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.dashboard-header{align-items:center;background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 2px 4px #0000000d;display:flex;gap:1rem;justify-content:space-between;padding:1.5rem 2rem}.mobile-menu-btn,.mobile-sidebar-backdrop{display:none}.notifications-popover{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #0000001a;margin-top:8px;max-height:min(70vh,460px);overflow:hidden;position:absolute;right:0;text-align:left;top:100%;width:min(320px,calc(100vw - 2rem));z-index:100}.header-left h1{color:#3d3229;font-family:Antonio,sans-serif;font-size:2rem;font-weight:600;margin:0 0 .25rem}.header-subtitle{color:#6b5b4f;font-size:.875rem;margin:0}.header-right{align-items:center;display:flex;gap:1rem}.notification-btn{background:#f8f9fa;border:none;border-radius:8px;color:#6b5b4f;cursor:pointer;padding:.75rem;position:relative;transition:all .3s ease}.notification-btn:hover{background:#e9ecef}.notification-badge{background:#dc3545;border-radius:50px;color:#fff;font-size:.75rem;min-width:20px;padding:.125rem .375rem;position:absolute;right:-4px;text-align:center;top:-4px}.header-user{background:#f8f9fa;border-radius:8px;display:flex;gap:.5rem;padding:.5rem 1rem}.header-avatar{align-items:center;background:#8b7355;border-radius:50%;color:#fff;display:flex;height:32px;justify-content:center;width:32px}.dashboard-content{flex:1 1;min-width:0;overflow-y:auto;padding:2rem}.dashboard-search-overlay{align-items:flex-start;background:#141210b8;display:flex;inset:0;justify-content:center;padding:10vh 1rem 1rem;position:fixed;z-index:2200}.dashboard-search-panel{background:#fff;border-radius:10px;box-shadow:0 24px 60px #00000038;max-height:82vh;overflow:hidden;width:min(760px,100%)}.dashboard-search-input{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:.75rem;padding:1rem}.dashboard-search-input svg{color:var(--accent);flex-shrink:0}.dashboard-search-input input{border:none;color:#3d3229;flex:1 1;font:inherit;font-size:1rem;min-width:0;outline:none}.dashboard-search-input button{align-items:center;background:#f8f9fa;border:none;border-radius:8px;color:#6b5b4f;cursor:pointer;display:inline-flex;height:36px;justify-content:center;width:36px}.dashboard-search-results{max-height:calc(82vh - 69px);overflow-y:auto;padding:1rem}.search-empty-state{color:#6b5b4f;padding:2rem 1rem;text-align:center}.search-result-group{margin-bottom:1.25rem}.search-result-group h2{color:#3d3229;font-size:.85rem;font-weight:700;margin:0 0 .65rem;text-transform:uppercase}.search-result-list{grid-gap:.75rem;display:grid;gap:.75rem}.search-result-card{background:#fff;border:1px solid var(--border);border-radius:8px;padding:1rem}.search-result-card span{color:var(--accent);font-size:.72rem;font-weight:700;text-transform:uppercase}.search-result-card h3{color:#3d3229;font-size:1rem;margin:.25rem 0}.search-result-card p{color:#6b5b4f;font-size:.875rem;line-height:1.45;margin:0}.overview-dashboard .welcome-section{margin-bottom:2rem}.overview-dashboard h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 .5rem}.overview-dashboard p{color:#6b5b4f;margin:0}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));margin-bottom:2rem}.stat-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:1rem;padding:1.5rem;transition:all .3s ease}.stat-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.stat-icon{align-items:center;background:#8b7355;border-radius:12px;color:#fff;display:flex;height:60px;justify-content:center;width:60px}.stat-content h3{color:#3d3229;font-size:2rem;font-weight:700;margin:0 0 .25rem}.stat-content p{color:#6b5b4f;font-size:.875rem;margin:0}.dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.dashboard-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;min-width:0;overflow-wrap:anywhere;padding:1.5rem}.dashboard-card h3{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.project-list{display:flex;flex-direction:column;gap:1rem}.project-item h4{color:#3d3229;font-weight:600;margin:0 0 .25rem}.project-item p{color:#6b5b4f;font-size:.875rem;margin:0 0 .75rem}.progress-bar{background:#e9ecef;border-radius:4px;height:8px;overflow:hidden;width:100%}.progress-fill{background:#8b7355;border-radius:4px;height:100%;transition:width .3s ease}.action-buttons{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.action-btn{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#6b5b4f;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;justify-content:center;padding:1rem;transition:all .3s ease}.action-btn:hover{background:#8b7355;border-color:#8b7355;color:#fff}.timeline-dashboard h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 2rem}.gantt-chart{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.gantt-header{border-bottom:1px solid #e9ecef;margin-bottom:1.5rem;padding-bottom:1rem}.timeline-periods{grid-gap:1rem;color:#6b5b4f;display:grid;font-weight:600;gap:1rem;grid-template-columns:repeat(4,1fr);text-align:center}.gantt-tasks{display:flex;flex-direction:column;gap:1rem}.gantt-task{align-items:center;display:flex;gap:1rem;padding:.75rem 0}.task-name{color:#3d3229;font-weight:500;width:150px}.task-bar{background:#8b7355;border-radius:4px;height:24px;position:relative}.progress-dashboard h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 2rem}.progress-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.progress-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.progress-card h3{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.stage-status{border-radius:50px;display:inline-block;font-size:.75rem;font-weight:600;margin-bottom:.75rem;padding:.25rem .75rem;text-transform:uppercase}.stage-status.completed{background:#d4edda;color:#155724}.stage-status.in-progress{background:#fff3cd;color:#856404}.stage-status.pending{background:#f8d7da;color:#721c24}.progress-card p{color:#6b5b4f;font-size:.875rem;margin:0}.reporting-dashboard h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 2rem}.report-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.report-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.report-card h3{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.report-card p{color:#6b5b4f;font-size:.875rem;margin:0 0 1.5rem}.download-btn{background:#8b7355;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.download-btn:hover{background:#6b5b4f}.kpi-dashboard h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 2rem}.kpi-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.kpi-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem;text-align:center}.kpi-card h3{color:#6b5b4f;font-family:Antonio,sans-serif;font-size:1rem;font-weight:600;margin:0 0 1rem;text-transform:uppercase}.kpi-value{color:#3d3229;font-size:3rem;font-weight:700;margin:0 0 .5rem}.kpi-trend{font-size:.875rem;font-weight:500}.kpi-trend.positive{color:#28a745}.kpi-trend.negative{color:#dc3545}.kpi-trend.neutral{color:#6b5b4f}.live-data-dashboard h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 2rem}.integration-options{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.integration-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.integration-card h3{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.integration-card p{color:#6b5b4f;font-size:.875rem;margin:0 0 1.5rem}.connect-btn{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#6b5b4f;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.connect-btn:hover{background:#e9ecef}.connect-btn.active{background:#28a745;border-color:#28a745;color:#fff}.monitoring-dashboard h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 2rem}.sensor-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.sensor-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:1.5rem}.sensor-icon{align-items:center;background:#8b7355;border-radius:12px;color:#fff;display:flex;height:60px;justify-content:center;margin-bottom:1rem;width:60px}.sensor-card h3{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.sensor-status{border-radius:50px;display:inline-block;font-size:.75rem;font-weight:600;margin-bottom:1rem;padding:.25rem .75rem;text-transform:uppercase}.sensor-status.normal{background:#d4edda;color:#155724}.sensor-status.warning{background:#fff3cd;color:#856404}.sensor-status.error{background:#f8d7da;color:#721c24}.sensor-card p{color:#6b5b4f;font-size:.875rem;margin:.25rem 0}@media (max-width:1024px){.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width:768px){.dashboard-layout{height:100dvh}.mobile-menu-btn{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;color:#3d3229;cursor:pointer;display:inline-flex;flex:0 0 40px;height:40px;justify-content:center;width:40px}.mobile-sidebar-backdrop{background:#14121073;border:0;display:block;inset:0;position:fixed;z-index:900}.dashboard-sidebar{box-shadow:12px 0 32px #0000002e;height:100dvh;left:-280px;position:fixed;top:0;z-index:1000}.dashboard-sidebar.closed{left:-280px;width:280px}.dashboard-sidebar.open{left:0;width:min(280px,86vw)}.dashboard-main{margin-left:0}.dashboard-header{align-items:flex-start;padding:1rem}.header-left{flex:1 1;min-width:0}.dashboard-content{padding:1rem}.header-left h1{font-size:1.5rem}.action-buttons{grid-template-columns:1fr}.timeline-periods{grid-template-columns:repeat(2,1fr)}.task-name{font-size:.875rem;width:120px}.notifications-popover{left:1rem;position:fixed;right:1rem;top:72px;width:auto}.dashboard-search-overlay{align-items:stretch;padding:0}.dashboard-search-panel{border-radius:0;max-height:100dvh;width:100%}.dashboard-search-results{max-height:calc(100dvh - 69px);padding:.75rem}}@media (max-width:480px){.integration-options,.kpi-grid,.progress-cards,.report-grid,.sensor-grid,.stats-grid{grid-template-columns:1fr}.dashboard-header{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:40px 1fr}.header-left h1,.header-title{font-size:1.35rem;overflow-wrap:anywhere}.header-right{grid-column:1/-1;justify-content:space-between;width:100%}.header-user{min-width:0;padding:.5rem .75rem}.header-user-info{min-width:0}.header-user-name,.header-user-role{max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-card{align-items:flex-start}.kpi-value,.stat-content h3{font-size:2rem}}.dashboard-layout{--accent:#8b7355}.sector-badge{align-items:flex-start;background:#fafafa;border:1px solid;border-radius:10px;display:flex;gap:.6rem;margin:0 1rem .5rem;padding:.75rem 1rem}.sector-badge svg{flex-shrink:0;margin-top:2px}.sector-label{color:#6b5b4f;font-size:.7rem;font-weight:600;letter-spacing:.08em;margin:0;text-transform:uppercase}.role-label{font-size:.8rem;font-weight:700;margin:.1rem 0 0}.nav-chevron{margin-left:auto;opacity:.7}.logout-btn{align-items:center;background:#fff0f0;border:1px solid #f8d7da;border-radius:8px;color:#c0392b;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:.5rem;margin-top:.75rem;padding:.6rem 1rem;transition:all .2s ease;width:100%}.logout-btn:hover{background:#c0392b;border-color:#c0392b;color:#fff}.header-role-tag{align-items:center;border:1px solid;border-radius:50px;display:inline-flex;font-size:.75rem;font-weight:600;gap:.4rem;margin-bottom:.35rem;padding:.2rem .65rem}.header-title{color:#3d3229;font-family:Antonio,sans-serif;font-size:2rem;font-weight:600;line-height:1.1;margin:0 0 .2rem}.header-user{align-items:center}.header-user-info{display:flex;flex-direction:column}.header-user-name{color:#3d3229;font-size:.875rem;font-weight:600;line-height:1.2}.header-user-role{color:#6b5b4f;font-size:.72rem;line-height:1.2}.dashboard-container{display:flex;flex-direction:column;gap:2rem}.dashboard-container h2{color:#3d3229;font-family:Antonio,sans-serif;font-size:1.75rem;font-weight:600;margin:0 0 .25rem}.dashboard-container>p{color:#6b5b4f;font-size:.875rem;margin:-1.5rem 0 0}.dashboard-card.alert{border-left:4px solid #dc3545}.backend-dashboard{text-align:left}.backend-metrics-grid,.backend-panels-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.backend-metric-card{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 8px #0000000f;display:flex;gap:.85rem;padding:1rem}.backend-metric-card .metric-icon{align-items:center;background:color-mix(in srgb,var(--accent),#fff 86%);border-radius:8px;color:var(--accent);display:inline-flex;flex:0 0 38px;height:38px;justify-content:center;width:38px}.backend-metric-card span{color:#6b5b4f;display:block;font-size:.78rem;font-weight:700;text-transform:uppercase}.backend-metric-card strong{color:#3d3229;display:block;font-size:1.65rem;line-height:1.1;margin-top:.2rem}.backend-metric-card p,.backend-panel>p,.endpoints-title p{color:#6b5b4f;font-size:.875rem;margin:.35rem 0 0}.backend-metric-card.positive{border-left:4px solid #2e7d32}.backend-metric-card.warning{border-left:4px solid #ef8f00}.backend-list{grid-gap:.75rem;display:grid;gap:.75rem;margin-top:1rem}.backend-list-item{align-items:center;background:#f8f9fa;border:1px solid var(--border-light);border-radius:8px;display:flex;gap:1rem;justify-content:space-between;padding:.85rem}.backend-list-item span,.backend-list-item strong{display:block}.backend-list-item strong{color:#3d3229;font-size:.95rem}.backend-list-item span{color:#6b5b4f;font-size:.85rem;margin-top:.2rem}.backend-list-item em{background:#fff;border:1px solid var(--border);border-radius:999px;color:var(--accent);flex:0 0 auto;font-size:.75rem;font-style:normal;font-weight:700;padding:.25rem .55rem}.endpoints-panel{overflow:hidden}.endpoints-title{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.endpoints-title svg{color:var(--accent)}.endpoint-list{border:1px solid var(--border);border-radius:8px;display:grid;overflow:hidden}.endpoint-row{grid-gap:.75rem;align-items:center;border-bottom:1px solid var(--border-light);display:grid;gap:.75rem;grid-template-columns:72px minmax(220px,1fr) minmax(180px,.8fr) 120px;padding:.85rem}.endpoint-row:last-child{border-bottom:none}.endpoint-method,.endpoint-status{font-size:.75rem;font-weight:800}.endpoint-method{background:var(--accent);border-radius:6px;color:#fff;padding:.3rem .45rem;text-align:center}.endpoint-row code{color:#3d3229;overflow-wrap:anywhere;white-space:normal}.endpoint-row p{color:#6b5b4f;font-size:.85rem;margin:0}.endpoint-status{align-items:center;color:#2e7d32;display:inline-flex;gap:.35rem}@media (max-width:860px){.endpoint-row{grid-template-columns:64px 1fr}.endpoint-row p,.endpoint-status{grid-column:2}}@media (max-width:480px){.backend-list-item{align-items:flex-start;flex-direction:column}.endpoint-row{grid-template-columns:1fr}.endpoint-row p,.endpoint-status{grid-column:auto}.endpoint-method{width:-webkit-max-content;width:max-content}}.App{min-height:100vh;text-align:center}.App-header{background-color:#007bff;box-shadow:0 2px 8px #0000001a;color:#fff;margin-bottom:2rem;padding:20px}.App-header h1{font-size:2.5rem;margin:0}.App-main{padding:0 2rem}.dashboard-section{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:1200px;padding:2rem}.dashboard-section h2{color:#333;margin-bottom:1rem}.dashboard-section p{color:#666;line-height:1.6}
/*# sourceMappingURL=main.5be4c698.css.map*/