:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{background:#f6f7fb}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}*{box-sizing:border-box}button,input,select{font:inherit}button{cursor:pointer}.app-shell{color:#16181d;background:#f6f7fb;grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#fff;background:#101218;flex-direction:column;height:100vh;padding:24px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:4px 6px 26px;display:flex}.brand-mark{color:#101218;background:#fff;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.brand strong{font-size:15px;line-height:1.2;display:block}.brand span{color:#959ba9;margin-top:4px;font-size:11px;display:block}.nav{gap:6px;display:grid}.nav-item{color:#a7adbb;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:11px 12px;transition:all .2s;display:flex}.nav-item:hover{color:#fff;background:#1a1d25}.nav-item.active{color:#fff;background:#242832}.sidebar-footer{color:#8f95a3;border-top:1px solid #272a33;margin-top:auto;padding:16px 8px 0}.sidebar-footer span,.sidebar-footer small{display:block}.sidebar-footer span{font-size:12px}.sidebar-footer small{margin-top:4px;font-size:11px}.main-content{min-width:0;padding:34px}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.eyebrow,.panel-kicker{color:#777e8c;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:700}.topbar h1{color:#15171c;letter-spacing:-.04em;margin:0;font-size:30px;font-weight:750}.subtitle{color:#737986;margin:8px 0 0;font-size:14px}.refresh-button,.apply-button{border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-weight:650;display:inline-flex}.refresh-button{color:#20232a;background:#fff;border:1px solid #e1e4eb;min-height:42px;padding:0 14px}.refresh-button:hover{background:#f8f9fb}.refresh-button:disabled,.apply-button:disabled{cursor:not-allowed;opacity:.55}.filter-panel{background:#fff;border:1px solid #e6e8ee;border-radius:14px;grid-template-columns:minmax(170px,1.35fr) minmax(150px,1fr) minmax(150px,1fr) minmax(170px,1fr) auto;gap:12px;padding:16px;display:grid;box-shadow:0 8px 24px #13182609}.filter-group{min-width:0}.filter-group label{color:#747a86;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.filter-group select,.filter-group input{color:#262930;background:#fff;border:1px solid #dde1e8;border-radius:9px;outline:none;width:100%;height:40px}.filter-group select{padding:0 11px}.filter-group select:focus,.filter-group input:focus{border-color:#9da5b4}.date-input{position:relative}.date-input svg{color:#8a909c;pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.date-input input{padding:0 10px 0 35px}.filter-action{align-items:flex-end;display:flex}.apply-button{color:#fff;white-space:nowrap;background:#17191f;height:40px;padding:0 16px}.apply-button:hover{background:#292c34}.error-banner{color:#a33131;background:#fff5f5;border:1px solid #f1c8c8;border-radius:10px;margin-top:16px;padding:12px 14px;font-size:13px}.project-strip{background:#fff;border:1px solid #e7e9ef;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px;display:grid;overflow:hidden}.project-strip>div{border-right:1px solid #eceef2;min-width:0;padding:13px 15px}.project-strip>div:last-child{border-right:0}.project-label{color:#8a909c;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;font-size:10px;display:block}.project-strip strong{color:#292c33;text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.metric-card{background:#fff;border:1px solid #e5e8ee;border-radius:14px;min-width:0;padding:18px;box-shadow:0 8px 22px #13182606}.metric-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.metric-title{color:#6d7480;font-size:12px;font-weight:650}.metric-icon{color:#343841;background:#f2f4f7;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.metric-value{color:#181a1f;letter-spacing:-.04em;text-overflow:ellipsis;margin-top:18px;font-size:28px;font-weight:760;overflow:hidden}.metric-foot{color:#9a9fa9;margin-top:8px;font-size:10px}.dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(300px,.82fr);gap:14px;margin-top:18px;display:grid}.panel{background:#fff;border:1px solid #e5e8ee;border-radius:14px;min-width:0;box-shadow:0 8px 22px #13182606}.panel-header{border-bottom:1px solid #eceef2;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:17px 18px;display:flex}.panel-header h2{color:#202229;letter-spacing:-.02em;margin:0;font-size:16px;font-weight:720}.panel-meta{color:#8d939e;font-size:11px}.chart-wrap{height:340px;padding:18px 14px 14px}.empty-state{color:#a0a5af;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;height:100%;display:flex}.empty-state strong{color:#555b66;font-size:13px}.empty-state span{color:#989ea8;max-width:320px;font-size:11px;line-height:1.5}.empty-state.compact{min-height:270px;padding:22px}.source-count{color:#646a75;background:#f1f3f6;border-radius:999px;justify-content:center;align-items:center;min-width:28px;height:28px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.sources-list{padding:10px}.source-row{border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 8px;display:grid}.source-row+.source-row{margin-top:2px}.source-row:hover{background:#f8f9fb}.source-icon{color:#555b65;background:#f0f2f5;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.source-main{min-width:0}.source-main strong,.source-main span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.source-main strong{color:#2a2d34;font-size:12px}.source-main span{color:#8e949e;margin-top:3px;font-size:10px}.status-badge{border-radius:999px;padding:5px 8px;font-size:9px;font-weight:700}.status-badge.active{color:#318550;background:#eef8f1}.status-badge.inactive{color:#858b94;background:#f3f4f6}.spin{animation:.8s linear infinite rotate}@keyframes rotate{to{transform:rotate(360deg)}}@media (width<=1180px){.filter-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-action{grid-column:span 2}.apply-button{width:100%}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media (width<=820px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;padding:16px;position:static}.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-footer{display:none}.main-content{padding:20px 14px 28px}.topbar{flex-direction:column}.refresh-button{width:100%}.project-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.project-strip>div:nth-child(2){border-right:0}.project-strip>div:nth-child(-n+2){border-bottom:1px solid #eceef2}}@media (width<=560px){.filter-panel,.metrics-grid,.project-strip{grid-template-columns:1fr}.filter-action{grid-column:auto}.project-strip>div{border-bottom:1px solid #eceef2;border-right:0}.project-strip>div:last-child{border-bottom:0}.topbar h1{font-size:25px}.metric-value{font-size:24px}.panel-header{flex-direction:column;align-items:flex-start}}
