:root{--bg:#0b1018;--panel:#111927;--panel-2:#151f30;--border:#243247;--text:#f2f5f8;--muted:#92a1b4;--faint:#617086;--green:#76e4b5;--purple:#9a8cff;--orange:#ffb56b;--red:#ff7187;--shadow:0 18px 50px #03060b55}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--text);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}.shell{display:flex;min-height:100vh}.sidebar{width:248px;flex:0 0 248px;background:#0d141f;border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:4px 10px 28px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:#0b1018;background:linear-gradient(135deg,var(--green),var(--purple));font-size:25px;font-weight:800}.brand strong{display:block;font-size:15px;letter-spacing:.02em}.brand small,.app-heading small{display:block;color:var(--faint);font-size:11px;margin-top:2px}.nav{display:flex;flex-direction:column;gap:3px}.nav-label,.eyebrow{display:block;color:var(--faint);font-size:10px;letter-spacing:.16em;font-weight:800}.nav-label{margin:18px 10px 7px}.nav-link{display:flex;align-items:center;gap:11px;color:var(--muted);padding:10px;border:1px solid transparent;border-radius:9px;transition:.15s}.nav-link:hover{color:var(--text);background:var(--panel)}.nav-link.active{color:var(--text);background:linear-gradient(90deg,#18263b,#131c2b);border-color:var(--border)}.nav-link b{width:17px;text-align:center;color:var(--green)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding:18px 10px 0;color:var(--muted);font-size:12px}.sidebar-foot small{color:var(--faint)}.live-dot,.status i,.health-pill i{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 0 4px #76e4b51c;margin-right:7px}.main{min-width:0;flex:1}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 40px 20px;background:#0b1018e8;border-bottom:1px solid var(--border);backdrop-filter:blur(12px)}h1,h2,p{margin:0}h1{font-size:24px;letter-spacing:-.04em;margin-top:4px}h2{font-size:30px;letter-spacing:-.05em;line-height:1.1}.top-actions{display:flex;align-items:center;gap:10px}.top-actions select{background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:9px 12px}.button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:10px 14px}.button.primary{background:var(--green);color:#0b1018;border-color:var(--green);font-weight:800}.button.ghost:hover{background:var(--panel-2)}.content{max-width:1480px;padding:42px 40px 80px}.hero-row,.detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}.hero-row p,.detail-hero p{color:var(--muted);font-size:15px;max-width:650px;margin-top:12px}.health-pill,.privacy-note{border:1px solid #76e4b555;background:#76e4b50d;color:var(--green);padding:9px 13px;border-radius:99px;font-size:12px;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px}.metric{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;min-height:120px}.metric>span,.metric small{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;font-size:27px;letter-spacing:-.05em;margin:12px 0 6px}.metric.accent{border-color:#76e4b54d;background:linear-gradient(145deg,#13271f,#111927)}.metric.warning{border-color:#ffb56b66}.panel{background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:22px;margin-bottom:16px;box-shadow:var(--shadow)}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.panel-head h2{font-size:18px;letter-spacing:-.03em;margin-top:4px}.text-link,.card-link{color:var(--green);font-size:12px;font-weight:700}.app-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.app-card{background:var(--panel-2);border:1px solid var(--border);border-radius:11px;padding:16px;transition:.15s}.app-card:hover{border-color:#76e4b577;transform:translateY(-2px)}.app-heading{display:flex;align-items:flex-start;gap:10px}.app-heading>span:nth-child(2){min-width:0;flex:1}.app-heading strong{display:block;text-transform:capitalize}.app-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:10px;background:#9a8cff1a;color:var(--purple);font-size:18px}.app-icon.large{flex-basis:52px;height:52px;font-size:25px}.status{display:inline-flex;align-items:center;color:var(--green);font-size:10px;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.status i{margin:0 4px 0 0;width:6px;height:6px}.status.bad{color:var(--red)}.status.bad i{background:var(--red);box-shadow:0 0 0 4px #ff71871c}.app-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.app-metrics small,.app-metrics b{display:block}.app-metrics small{color:var(--faint);font-size:10px}.app-metrics b{margin-top:4px;font-size:13px}.card-link{border-top:1px solid var(--border);padding-top:13px;display:flex;justify-content:space-between}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.mini-stats .metric{min-height:auto;padding:13px}.mini-stats .metric strong{font-size:21px;margin:8px 0 0}.list{display:flex;flex-direction:column}.list-row,.alert-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--border);padding:12px 0}.list-row:first-child,.alert-row:first-child{border-top:0}.list-row span{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis}.list-row b{margin-left:auto;font-size:12px;white-space:nowrap}.alert-row>div{min-width:0;flex:1}.alert-row b,.alert-row small{display:block}.alert-row small{color:var(--muted);font-size:12px}.alert-row time{color:var(--faint);font-size:11px}.severity{width:7px;height:7px;border-radius:50%;background:var(--green)}.severity.warn{background:var(--orange)}.severity.critical{background:var(--red)}.empty{color:var(--faint);padding:20px 0}.chart-panel{min-height:260px}.spark{width:100%;height:180px;margin-top:16px;background:linear-gradient(180deg,#9a8cff10,transparent);border-bottom:1px solid var(--border)}.chart-caption{color:var(--faint);font-size:11px;margin-top:10px}.status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.status-grid>div{background:var(--panel-2);border-radius:9px;padding:13px}.status-grid span,.status-grid b,.status-grid small{display:block}.status-grid b{font-size:18px;margin-top:7px}.status-grid small{color:var(--faint);font-size:11px}.status-code{color:var(--green);font-weight:800}.code-4{color:var(--orange)}.code-5{color:var(--red)}.funnel{display:flex;flex-direction:column;gap:8px}.funnel-row{display:grid;grid-template-columns:26px 1fr auto auto;gap:10px;align-items:center;background:var(--panel-2);padding:12px;border-radius:8px}.funnel-row>span{display:grid;place-items:center;background:#9a8cff1a;color:var(--purple);width:24px;height:24px;border-radius:50%;font-size:11px}.funnel-row strong{text-transform:capitalize}.funnel-row b{font-size:12px}.funnel-row small{color:var(--faint)}.bars{display:flex;flex-direction:column;gap:15px}.bar-row{display:grid;grid-template-columns:45px 1fr 35px;gap:10px;align-items:center}.bar-row span,.bar-row b{font-size:12px;color:var(--muted)}.bar-row>div{height:8px;background:#243247;border-radius:9px;overflow:hidden}.bar-row i{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--purple));border-radius:9px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--border)}th{color:var(--faint);font-size:10px;text-transform:uppercase;letter-spacing:.1em}td{color:var(--muted)}td:not(:first-child){text-align:right}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.login-page,.error-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(410px,100%);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:36px;box-shadow:var(--shadow)}.login-card .brand-mark{margin-bottom:30px}.login-card h1{font-size:34px;margin:10px 0}.login-card p{color:var(--muted);margin-bottom:28px}.login-card form{display:flex;flex-direction:column;gap:16px}.login-card label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:12px}.login-card input{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:11px}.form-error{min-height:18px;color:var(--red);font-size:12px}.error-page{text-align:center}.error-page p{color:var(--muted);margin:10px 0 20px}@media(max-width:1050px){.app-grid{grid-template-columns:repeat(2,1fr)}.metric-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{width:66px;flex-basis:66px;padding:14px 8px}.brand{padding:2px 6px 25px}.brand>span:last-child,.nav-label,.nav-link:not(.active)::after,.nav-link{font-size:0}.nav-link{justify-content:center;padding:12px}.nav-link b{font-size:18px}.nav-link.active b{font-size:18px}.sidebar-foot{font-size:0;padding:16px 6px}.sidebar-foot small{display:none}.topbar{padding:18px 18px;align-items:flex-start}.topbar h1{font-size:20px}.top-actions select{max-width:125px}.content{padding:26px 18px 50px}h2{font-size:25px}.hero-row,.detail-hero{flex-direction:column}.metric-grid,.app-grid,.two-col{grid-template-columns:1fr}.mini-stats{grid-template-columns:repeat(3,1fr)}.panel{padding:17px}.funnel-row{grid-template-columns:26px 1fr}.funnel-row b,.funnel-row small{grid-column:2}.health-pill,.privacy-note{align-self:flex-start}}
:root{--chart-grid:#2a394d;--chart-text:#73849a}
.panel-subtitle{color:var(--faint);font-size:12px;margin-top:7px}
.portfolio-hero{margin-bottom:24px}
.portfolio-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.portfolio-chart-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:16px}
.portfolio-three-grid{display:grid;grid-template-columns:1.05fr 1fr .95fr;gap:16px}
.portfolio-two-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.chart-shell{min-width:0}
.chart-visual{min-width:0}
.data-chart{display:block;width:100%;height:260px;overflow:visible}
.chart-gridline{stroke:var(--chart-grid);stroke-width:1;stroke-dasharray:3 5}
.chart-axis{fill:var(--chart-text);font-size:11px}
.chart-area{fill:url(#portfolio-area);fill:#76e4b51b}
.chart-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.chart-line.primary{stroke:var(--green)}
.chart-line.secondary{stroke:var(--purple);stroke-dasharray:5 6}
.chart-dot{stroke:var(--panel);stroke-width:2}
.chart-dot.primary{fill:var(--green)}
.chart-dot.secondary{fill:var(--purple)}
.chart-empty-state{display:flex;align-items:flex-start;gap:10px;margin-top:10px;padding:11px 13px;border:1px dashed #50627d;border-radius:9px;color:var(--muted);font-size:11px}
.chart-empty-state strong,.chart-empty-state span{display:block}
.chart-empty-state strong{color:var(--text);font-size:12px;margin-bottom:2px}
.event-chart{display:block;width:100%;height:auto;min-height:260px;overflow:visible}
.event-chart-label{fill:var(--muted);font-size:12px}
.event-chart-track{fill:#243247}
.event-chart-value{fill:var(--text);font-size:13px;font-weight:800;text-anchor:end}
.event-chart-percent{fill:var(--faint);font-size:11px;text-anchor:end}
.event-chart-empty{fill:var(--faint);font-size:12px}
.chart-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:11px}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}
.chart-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}
.chart-legend strong{margin-left:auto;color:var(--text);font-size:12px}
.chart-legend.multi{gap:8px 12px}
.chart-legend.multi span{font-size:10px}
.chart-legend.multi i{width:7px;height:7px}
.funnel-row{grid-template-columns:26px 1fr 42px 82px}
.funnel-row>div{min-width:0}
.funnel-row>div>strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.funnel-row>div>i{display:block;height:5px;background:#243247;border-radius:6px;overflow:hidden;margin-top:8px}
.funnel-row>div>i em{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--purple));border-radius:inherit}
.funnel-row>b{text-align:right}
.funnel-row small{text-align:right}
.event-list,.progress-list,.device-list{display:flex;flex-direction:column;gap:12px}
.event-row>div,.progress-row>div{display:flex;align-items:center;gap:8px;font-size:12px}
.event-row>div>b,.progress-row>div>b{margin-left:auto;color:var(--text)}
.event-row>div>i{width:8px;height:8px;border-radius:50%;flex:0 0 8px}
.event-row>em,.progress-row>i{display:block;height:6px;background:#243247;border-radius:9px;overflow:hidden;margin-top:6px}
.event-row>em>strong,.progress-row>i>em{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--purple));border-radius:inherit}
.progress-row>i>em{background:var(--green)}
.device-summary{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:16px}
.donut{width:118px;height:118px;border-radius:50%;display:grid;place-items:center}
.donut>div{width:76px;height:76px;border-radius:50%;background:var(--panel);display:grid;place-items:center;align-content:center}
.donut strong,.donut small{display:block;text-align:center}
.donut strong{font-size:18px}
.donut small{color:var(--faint);font-size:10px;margin-top:2px}
.progress-row span{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.legend-note{color:var(--faint);font-size:10px;white-space:nowrap}
.vital-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.vital-card{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:13px}
.vital-card>div{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.vital-card span{color:var(--muted);font-size:11px}
.vital-card b{font-size:16px}
.vital-card small{display:block;color:var(--faint);font-size:10px;margin-top:13px}
.vital-card.good{border-color:#76e4b566}.vital-card.good b{color:var(--green)}
.vital-card.warn{border-color:#ffb56b66}.vital-card.warn b{color:var(--orange)}
.vital-card.bad{border-color:#ff718766}.vital-card.bad b{color:var(--red)}
.vital-card.neutral b{color:var(--muted)}
.privacy-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.privacy-grid>div{background:var(--panel-2);border-radius:9px;padding:13px}
.privacy-grid strong,.privacy-grid span{display:block}
.privacy-grid strong{font-size:20px}
.privacy-grid span{color:var(--faint);font-size:10px;margin-top:4px}
.event-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px}
.activity-table td:first-child{white-space:nowrap}
@media(max-width:1200px){.portfolio-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-chart-grid,.portfolio-three-grid{grid-template-columns:1fr}.portfolio-two-grid{grid-template-columns:1fr}}
@media(max-width:760px){.portfolio-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.device-summary{grid-template-columns:1fr}.donut{margin:0 auto}.vital-grid{grid-template-columns:1fr}.privacy-grid{grid-template-columns:repeat(2,1fr)}.funnel-row{grid-template-columns:26px 1fr 42px}.funnel-row small{grid-column:2 / -1;text-align:left}.activity-table{min-width:620px}.chart-legend strong{margin-left:0}}
