:root{--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-heading:"Outfit", var(--font-sans);--bg-app:#f8fafc;--bg-card:#fff;--bg-hover:#f1f5f9;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#eff6ff;--text-main:#0f172a;--text-muted:#475569;--text-light:#94a3b8;--border:#e2e8f0;--border-focus:#cbd5e1;--success:#10b981;--success-light:#ecfdf5;--success-text:#065f46;--warning:#f59e0b;--warning-light:#fef3c7;--warning-text:#92400e;--danger:#ef4444;--danger-light:#fef2f2;--danger-text:#991b1b;--info:#06b6d4;--info-light:#ecfeff;--info-text:#155e75;--sidebar-width:250px;--header-height:70px;--border-radius-sm:6px;--border-radius-md:10px;--border-radius-lg:16px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000000a, 0 4px 6px -4px #0000000a}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-main);font-weight:600}a{color:var(--primary);text-decoration:none;transition:color .2s}a:hover{color:var(--primary-hover)}button,input,select,textarea{font-family:inherit;font-size:inherit;outline:none}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-layout{margin-top:var(--header-height);flex:1;display:flex}.app-header{height:var(--header-height);background-color:var(--bg-card);border-bottom:1px solid var(--border);z-index:100;box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:fixed;top:0;left:0;right:0}.logo-section{align-items:center;gap:8px;display:flex}.logo-icon{background-color:var(--primary-light);border-radius:var(--border-radius-md);width:40px;height:40px;color:var(--primary);justify-content:center;align-items:center;font-size:24px;font-weight:800;display:flex}.logo-text{font-family:var(--font-heading);letter-spacing:-.5px;font-size:20px;font-weight:800}.logo-accent{color:var(--primary)}.header-controls{align-items:center;gap:16px;display:flex}.workspace-selector-container{background:var(--bg-app);border-radius:var(--border-radius-md);border:1px solid var(--border);align-items:center;gap:8px;padding:6px 12px;display:flex}.workspace-select{color:var(--text-main);cursor:pointer;background:0 0;border:none;padding-right:8px;font-weight:500}.portal-toggle{background:var(--bg-app);border-radius:var(--border-radius-md);border:1px solid var(--border);padding:4px;display:flex}.toggle-btn{border-radius:var(--border-radius-sm);cursor:pointer;border:none;align-items:center;gap:6px;padding:6px 16px;font-size:13.5px;font-weight:600;transition:all .2s;display:flex}.toggle-btn.active{background-color:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}.toggle-btn.inactive{color:var(--text-muted);background:0 0}.toggle-btn.inactive:hover{color:var(--text-main)}.app-sidebar{width:var(--sidebar-width);background-color:var(--bg-card);border-right:1px solid var(--border);top:var(--header-height);z-index:90;flex-direction:column;justify-content:space-between;padding:24px 16px;display:flex;position:fixed;bottom:0;left:0}.nav-menu{flex-direction:column;gap:4px;display:flex}.nav-item{border-radius:var(--border-radius-md);color:var(--text-muted);cursor:pointer;align-items:center;gap:12px;padding:10px 16px;font-weight:500;transition:all .2s;display:flex}.nav-item:hover{background-color:var(--bg-hover);color:var(--text-main)}.nav-item.active{background-color:var(--primary-light);color:var(--primary);font-weight:600}.app-content{margin-left:var(--sidebar-width);min-height:calc(100vh - var(--header-height));flex:1;padding:32px;overflow-y:auto}.view-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.view-title-group h2{letter-spacing:-.5px;margin-bottom:4px;font-size:24px;font-weight:700}.view-title-group p{color:var(--text-muted);font-size:14px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:28px;display:grid}.stat-card{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);padding:20px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.stat-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);font-size:13.5px;font-weight:600}.stat-icon{border-radius:var(--border-radius-sm);width:32px;height:32px;color:var(--primary);background-color:var(--primary-light);justify-content:center;align-items:center;display:flex}.stat-value{font-family:var(--font-heading);color:var(--text-main);margin-bottom:6px;font-size:26px;font-weight:700}.stat-footer{align-items:center;gap:4px;font-size:12.5px;display:flex}.trend-badge{border-radius:4px;align-items:center;gap:2px;padding:2px 6px;font-weight:600;display:inline-flex}.trend-badge.up{background-color:var(--success-light);color:var(--success-text)}.trend-badge.down{background-color:var(--danger-light);color:var(--danger-text)}.trend-badge.neutral{background-color:var(--bg-hover);color:var(--text-muted)}.dashboard-grid{grid-template-columns:2fr 1fr;gap:24px;margin-bottom:28px;display:grid}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-panel{background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;padding:24px;display:flex}.panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;display:flex}.panel-title{color:var(--text-main);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.panel-actions{gap:8px;display:flex}.alerts-list{flex-direction:column;gap:12px;max-height:380px;display:flex;overflow-y:auto}.alert-item{border-radius:var(--border-radius-md);border-left:4px solid #0000;gap:12px;padding:12px;font-size:13.5px;transition:background-color .2s;display:flex}.alert-item.info{background-color:var(--info-light);border-left-color:var(--info);color:var(--info-text)}.alert-item.success{background-color:var(--success-light);border-left-color:var(--success);color:var(--success-text)}.alert-item.warning{background-color:var(--warning-light);border-left-color:var(--warning);color:var(--warning-text)}.alert-item.danger{background-color:var(--danger-light);border-left-color:var(--danger);color:var(--danger-text)}.alert-icon-wrap{align-items:flex-start;margin-top:2px;display:flex}.alert-body{flex:1}.alert-title{margin-bottom:2px;font-weight:600}.alert-time{opacity:.7;margin-top:4px;font-size:11px}.table-responsive{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.data-table th{border-bottom:1px solid var(--border);color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;background-color:#fafafa;padding:12px 16px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);color:var(--text-main);vertical-align:middle;padding:14px 16px}.data-table tbody tr:hover{background-color:#fcfcfc}.slider-group{margin-bottom:20px}.slider-label{justify-content:space-between;margin-bottom:8px;font-size:13.5px;font-weight:600;display:flex}.slider-label span.muted{color:var(--text-muted);font-weight:400}.custom-slider{background:var(--border);-webkit-appearance:none;border-radius:3px;outline:none;width:100%;height:6px}.custom-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--primary);cursor:pointer;border-radius:50%;width:18px;height:18px;transition:transform .1s}.custom-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.btn{border-radius:var(--border-radius-md);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--bg-card);border-color:var(--border);color:var(--text-muted)}.btn-secondary:hover{background-color:var(--bg-hover);color:var(--text-main)}.btn-danger{background-color:var(--danger);color:#fff}.btn-danger:hover{background-color:var(--danger-text)}.progress-bar-wrap{background-color:var(--border);border-radius:4px;width:100%;height:8px;margin:8px 0;overflow:hidden}.progress-bar-fill{background-color:var(--primary);border-radius:4px;height:100%;transition:width .3s}.progress-bar-fill.warning{background-color:var(--warning)}.progress-bar-fill.danger{background-color:var(--danger)}.badge{text-transform:capitalize;border-radius:9999px;align-items:center;padding:2px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-light);color:var(--success-text)}.badge-warning{background:var(--warning-light);color:var(--warning-text)}.badge-danger{background:var(--danger-light);color:var(--danger-text)}.badge-info{background:var(--info-light);color:var(--info-text)}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-10{gap:10px}.gap-20{gap:20px}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.simulation-bar{background-color:var(--primary-light);border-top:1px solid var(--border);color:var(--primary);z-index:110;justify-content:space-between;align-items:center;padding:8px 24px;font-size:12.5px;font-weight:500;display:flex;position:fixed;bottom:0;left:0;right:0}.sim-actions{gap:12px;display:flex}.sim-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-main);cursor:pointer;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;transition:all .1s}.sim-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.pulse-indicator{background-color:var(--success);border-radius:50%;width:8px;height:8px;display:inline-block;position:relative}.pulse-indicator:after{content:"";background-color:var(--success);opacity:.8;border-radius:50%;width:100%;height:100%;animation:1.8s ease-in-out infinite pulse;position:absolute;top:0;left:0;transform:scale(1)}@keyframes pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.8)}}
