:root{--bg:#0b0f16;--panel:#101725;--muted:#9aa0a6;--border:#1b2533;--text:#e7edf5;--accent:#5aa2ff;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--text-primary:#e2e8f0;--text-secondary:#a0aec0;--text-muted:#6b7280;--card-bg:#2d3748;--card-border:#4a5568;--table-bg:#1f2937;--table-header-bg:#374151;--table-border:#4b5563;--input-bg:#374151;--input-border:#4b5563;--input-text:#f8fafc;--button-bg:#374151;--button-border:#4b5563;--button-text:#f8fafc;--button-hover-bg:#4b5563;--header-bg:#0a0e14;--header-border:#1a1f2e;--nav-hover:#1a2a3d;--progress-bg:#374151;--progress-fill:#10b981;--priority-high:#ef4444;--priority-medium:#f59e0b;--priority-low:#10b981;--variance-positive:#dcfce7;--variance-negative:#fef2f2;--variance-positive-text:#059669;--variance-negative-text:#dc2626;--br:var(--border);--txt:var(--text);--ok:var(--success);--warn:var(--warning);--bad:var(--error)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--header-bg);border-bottom:1px solid var(--header-border);padding:0;position:sticky;top:0;z-index:100}.header-content{display:flex;flex-direction:column;padding:8px 16px;max-width:100%;gap:12px}.header-top-row{justify-content:space-between}.header-bottom-row,.header-top-row{display:flex;align-items:center;width:100%}.header-bottom-row{justify-content:center;gap:20px}.desktop-navigation{display:flex;align-items:center;gap:20px}.header-actions{display:flex;align-items:center;gap:16px}@media (max-width:768px){.header-content{padding:12px 16px;gap:16px}.header-top-row{gap:12px}.header-bottom-row{flex-direction:column;gap:12px;align-items:stretch}.nav-menu{justify-content:center;flex-wrap:wrap;gap:8px}.nav-item{font-size:12px;padding:8px 10px;min-width:-moz-fit-content;min-width:fit-content}.logo-section{flex:1}.header-actions{gap:8px}}@media (max-width:480px){.header-content{padding:8px 12px}.nav-menu{gap:4px}.nav-item{font-size:11px;padding:6px 8px}.logo{font-size:20px}}.mobile-menu-button{display:none;background:none;border:none;cursor:pointer;padding:8px;z-index:1001}.hamburger{width:24px;height:18px;position:relative;transform:rotate(0deg);transition:.5s ease-in-out;cursor:pointer}.hamburger span{display:block;position:absolute;height:3px;width:100%;background:var(--txt);border-radius:2px;opacity:1;left:0;transform:rotate(0deg);transition:.25s ease-in-out}.hamburger span:first-child{top:0}.hamburger span:nth-child(2){top:7px}.hamburger span:nth-child(3){top:14px}.hamburger.open span:first-child{top:7px;transform:rotate(135deg)}.hamburger.open span:nth-child(2){opacity:0;left:-60px}.hamburger.open span:nth-child(3){top:7px;transform:rotate(-135deg)}.mobile-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);z-index:1000;display:flex;align-items:flex-start;justify-content:flex-end;padding:20px}.mobile-menu-content{background:var(--panel);border-radius:12px;padding:20px;width:280px;max-height:80vh;overflow-y:auto;box-shadow:0 10px 30px rgba(0,0,0,.3)}.mobile-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--border)}.mobile-menu-header h3{margin:0;color:var(--txt);font-size:18px;font-weight:600}.mobile-menu-close{background:none;border:none;color:var(--muted);font-size:20px;cursor:pointer;padding:5px;border-radius:4px;transition:all .2s ease}.mobile-menu-close:hover{background:var(--border);color:var(--txt)}.mobile-nav{display:flex;flex-direction:column;gap:8px}.mobile-nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--muted);text-decoration:none;border-radius:8px;transition:all .2s ease;font-weight:500}.mobile-nav-item:hover{background:var(--nav-hover);color:var(--txt)}.mobile-nav-item.active{background:var(--accent);color:white}.nav-icon{font-size:18px;width:24px;text-align:center}.nav-label{font-size:14px}@media (max-width:768px){.mobile-menu-button{display:block}.desktop-navigation,.nav-menu{display:none}.header-bottom-row,.mobile-system-status{justify-content:center;align-items:center}.mobile-system-status{display:flex;width:100%;padding:8px 0;background:rgba(255,255,255,.05);border-radius:8px;margin-top:4px}.mobile-system-status .status-indicators{gap:16px}.mobile-system-status .status-item{font-size:12px}.mobile-system-status .status-dot{width:10px;height:10px}}@media (min-width:769px){.mobile-system-status{display:none}}.nav-menu{display:flex;gap:4px;align-items:center}.nav-item{padding:6px 12px;color:var(--muted);text-decoration:none;font-size:13px;font-weight:500;transition:all .2s;border-bottom:2px solid transparent;white-space:nowrap}.nav-item:hover{color:var(--txt)}.nav-item.active{color:var(--txt);border-bottom-color:var(--accent);font-weight:600}.logo-section{flex:1}.logo-link,.logo-section{display:flex;align-items:center;gap:12px}.logo-link{text-decoration:none;transition:opacity .2s ease}.logo-link:hover{opacity:.8}.logo{font-size:24px;font-weight:700;color:var(--accent);letter-spacing:-.5px}.nav-link{color:var(--text);text-decoration:none;font-size:14px;font-weight:500;padding:8px 12px;border-radius:6px;transition:all .2s ease}.nav-link:hover{background:var(--nav-hover);color:var(--accent)}.nav-link.active{background:var(--accent);color:#f8fafc}.status-section{display:flex;align-items:center;gap:16px}.status-indicators{display:flex;align-items:center;gap:12px}.status-item{display:flex;align-items:center;gap:4px;cursor:pointer;transition:opacity .2s ease}.status-item:hover{opacity:.8}.status-dot{width:8px;height:8px;border-radius:50%;transition:all .2s ease}.status-dot.ok{background:var(--success);box-shadow:0 0 6px rgba(16,185,129,.4)}.status-dot.error{background:var(--error);box-shadow:0 0 6px rgba(239,68,68,.4)}.status-dot.checking{background:var(--warning);box-shadow:0 0 6px rgba(245,158,11,.4);animation:pulse 1.5s infinite}.status-label{font-size:10px;color:var(--muted)}.status-badge,.status-label{font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge{padding:6px 12px;border-radius:20px;font-size:12px;transition:all .2s ease}.status-badge.ok{background:var(--success);color:#f8fafc}.status-badge.error{background:var(--error);color:#f8fafc}.status-badge.checking{background:var(--warning);color:#f8fafc;animation:pulse 1.5s infinite}.app-main{flex:1;padding:0}.wrap{display:grid;grid-template-columns:300px 1fr;gap:12px;max-width:100%;width:100%;margin:0 auto;padding:16px 20px}@media (max-width:1200px){.wrap{grid-template-columns:250px 1fr;padding:12px 16px}}@media (max-width:768px){.wrap{grid-template-columns:1fr;gap:8px;padding:8px 12px}.sidebar{position:static;height:auto;max-height:300px}}.sidebar{background:var(--panel);border:1px solid var(--br);border-radius:14px;padding:12px;position:sticky;top:8px;height:calc(100vh - 16px);overflow:auto}.main{display:flex;flex-direction:column;gap:12px;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.panel{background:var(--panel);border:1px solid var(--br);border-radius:14px;padding:10px}h1{margin:0 0 6px;font-size:20px}.muted{color:var(--muted);font-size:12px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#13212f;color:#cfe6ff;border:1px solid #2b3948;padding:7px 9px;border-radius:9px;cursor:pointer;font-weight:700;font-size:11px}.btn:hover:not(:disabled){background:#1a2a3d}.btn:disabled{opacity:.5;cursor:not-allowed}input[type=date],input[type=file],select{width:100%;padding:8px;background:#0c1117;border:1px solid #1d2835;border-radius:8px;color:var(--txt);margin-top:6px;font-size:12px}.grid{display:grid;gap:8px}.kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.kpi{background:#0c1117;border:1px solid #1d2835;border-radius:10px;padding:8px}.kpi .kpi-t{font-size:12px;color:#9aa0a6}.kpi .kpi-v{font-weight:900;font-size:20px;margin:4px 0}.kpi .kpi-sub{font-size:11px;color:#9aa0a6}.badge{display:inline-flex;padding:2px 6px;border:1px solid #2a2e35;border-radius:7px;background:#0f1115;font-size:11px;gap:6px;align-items:center}.badge.ok{border-color:var(--ok);color:#b6f3d2}.badge.warn{border-color:var(--warn);color:#ffe7a3}.badge.bad{border-color:var(--bad);color:#ffc8c8}table{width:100%;border-collapse:collapse;font-size:12px}td,th{padding:6px 8px;border-bottom:1px solid #212c3b;text-align:left}th{color:#c5cbd3;font-weight:600}.two{grid-template-columns:1fr 1fr}.three,.two{display:grid;gap:12px}.three{grid-template-columns:1fr 1fr 1fr}.info{border-bottom:1px dashed #2b3a4f;cursor:help}.toggle-group{display:inline-flex;border:1px solid #2b3948;border-radius:8px;overflow:hidden}.toggle-group button{background:#0c1117;color:#cfe6ff;border:0;padding:6px 10px;cursor:pointer;font-size:11px}.toggle-group button.active{background:#1a2a3d}.small{font-size:11px;color:#9aa0a6}hr.line{border:none;border-top:1px solid #233043;margin:10px 0}.note{margin-top:6px;font-size:12px;color:#bcd2ee}canvas{width:100%!important;height:auto!important}@media (min-width:1600px){.main{max-width:1440px;margin-left:auto;margin-right:auto}}@media (max-width:1100px){.wrap{grid-template-columns:1fr}.sidebar{position:static;height:auto}.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:768px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.three,.two{grid-template-columns:1fr}.header-content{flex-direction:column;gap:12px;padding:12px}.main-nav{gap:12px}.nav-link{font-size:12px;padding:6px 8px}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-10px)}20%,80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}.insight-card{transition:background-color .2s ease,border-color .2s ease}.insight-card:hover{background:#374151!important;border-color:#6b7280!important}.kpi-grid-layout{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:grid!important;gap:1.5rem!important}.kpi-grid-layout>div{min-width:200px!important;width:100%!important;padding:1.5rem!important}.chart-container{overflow:hidden!important;position:relative!important}.chart-container,.chart-container>div,.chart-container>div>div{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}