*{box-sizing:border-box}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}.appShell{grid-template-columns:242px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--sidebar);color:#fff;flex-direction:column;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;gap:11px;padding:3px 7px 25px;text-decoration:none;display:flex}.owMark{background:var(--accent);letter-spacing:-.04em;border-radius:11px;place-items:center;width:40px;height:40px;font-size:12px;font-weight:800;display:grid}.brandCopy{gap:1px;min-width:0;display:grid}.brandCopy strong{letter-spacing:-.02em;font-size:15px}.sidebar nav{gap:4px;display:grid}.sidebar nav a{color:#aeb2bb;border-radius:9px;align-items:center;gap:10px;padding:10px 11px;font-size:13px;font-weight:550;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sidebar nav a:hover{color:#fff;background:#15171b}.sidebar nav a.active{color:#fff;background:#1b1e24}.navIcon{color:#777d88;place-items:center;width:19px;height:19px;font-size:14px;display:grid}.sidebarFoot{border-top:1px solid #202329;align-items:center;gap:10px;margin-top:auto;padding:13px 9px 3px;display:flex}.sidebarFoot>span{background:#191c20;border:1px solid #2b2f36;border-radius:9px;place-items:center;width:31px;height:31px;font-size:10px;font-weight:800;display:grid}.sidebarFoot div{gap:1px;display:grid}.sidebarFoot strong{font-size:12px}.content{width:100%;min-width:0;max-width:1660px;margin:0 auto;padding:30px 34px 54px}.pageHeader{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:750;display:block}.pageHeader h1,.campaignTitleRow h1{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:28px;line-height:1.1}.pageHeader p,.campaignTitleRow p{color:var(--muted);margin:7px 0 0;font-size:13px;line-height:1.5}.primaryButton,.secondaryButton{white-space:nowrap;border:1px solid #0000;border-radius:10px;padding:10px 13px;font-size:12px;font-weight:700;text-decoration:none}.primaryButton{background:var(--ink);color:#fff}.secondaryButton{color:var(--ink);border-color:var(--line-strong);background:#fff}.secondaryButton:hover{background:#fafafa}.secondaryButton.small{padding:8px 10px}.textLink{color:#4f5863;font-size:12px;font-weight:700;text-decoration:none}.textLink:hover{color:var(--ink)}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metricsThree{grid-template-columns:repeat(3,minmax(0,1fr))}.metric,.panel{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px}.metric{padding:16px 17px}.metric>span{color:var(--muted);margin-bottom:10px;font-size:11px;display:block}.metric strong{letter-spacing:-.04em;font-size:25px;line-height:1;display:block}.metric em{color:var(--success);margin-top:8px;font-size:11px;font-style:normal;display:block}.metric em.warn{color:var(--warn)}.panel{margin-top:14px;padding:18px}.panelHead{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.panelHead>div{align-items:baseline;gap:10px;display:flex}.panelHead h2{letter-spacing:-.02em;margin:0;font-size:15px}.panelHead span{color:var(--muted);font-size:11px}.hubGrid{grid-template-columns:1.45fr .75fr;gap:14px;margin-top:14px;display:grid}.hubGrid .panel{margin-top:0}.lowerHubGrid{grid-template-columns:1fr .65fr}.campaignList{display:grid}.campaignRow{border-top:1px solid #eef0f3;grid-template-columns:minmax(250px,1fr) 95px 100px 90px 28px;align-items:center;gap:14px;padding:13px 4px;text-decoration:none;display:grid}.campaignRow:first-child{border-top:0}.campaignIdentity{align-items:center;gap:11px;min-width:0;display:flex}.campaignIdentity>div{min-width:0}.campaignIdentity strong,.campaignIdentity span{display:block}.campaignIdentity strong{font-size:13px}.campaignIdentity span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:11px;overflow:hidden}.campaignMiniMetric span,.campaignMiniMetric strong{display:block}.campaignMiniMetric span{color:var(--muted);margin-bottom:4px;font-size:10px}.campaignMiniMetric strong{font-size:12px}.rowArrow{color:#9a9ea6;font-size:17px}.campaignRow:hover .rowArrow,.campaignTableRow:hover .rowArrow{color:var(--accent)}.platformLogo{white-space:nowrap;align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.platformLogo svg{flex:none;display:block}.metaLogo svg{width:31px;height:18px}.metaLogo svg path{fill:none;stroke:#0866ff;stroke-width:3.1px;stroke-linecap:round;stroke-linejoin:round}.googleLogo svg{width:24px;height:24px}.platformLogo.compact{border:1px solid var(--line);background:#f6f7f9;border-radius:10px;justify-content:center;width:34px;height:34px}.platformLogo.compact.metaLogo svg{width:25px;height:15px}.platformLogo.compact.googleLogo svg{width:20px;height:20px}.platformCards{gap:10px;display:grid}.platformCard{border:1px solid var(--line);background:#fafbfc;border-radius:12px;padding:14px;text-decoration:none;display:block}.platformCard:hover{background:#fff;border-color:#cfd3db}.platformCard p{color:var(--muted);margin:10px 0 12px;font-size:11px;line-height:1.45}.connectionBadge{border-radius:999px;width:max-content;padding:5px 7px;font-size:10px;font-weight:750;display:inline-flex}.connectionBadge.manual,.connectionBadge.connected{background:var(--success-soft);color:var(--success)}.insight{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0;margin-bottom:10px;padding:11px 12px}.insight.neutral{background:#f6f7f8;border-left-color:#b5b9c1}.insight strong{font-size:12px}.insight p{color:#555d68;margin:5px 0 0;font-size:12px;line-height:1.5}.clientList{display:grid}.clientRow{border-bottom:1px solid var(--line);grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:10px 0;text-decoration:none;display:grid}.clientRow:last-child{border-bottom:0}.clientAvatar{color:#fff;background:#111317;border-radius:10px;place-items:center;width:38px;height:38px;font-size:11px;font-weight:800;display:grid}.clientAvatar.large{border-radius:12px;width:48px;height:48px}.clientRow strong,.clientRow span{display:block}.clientRow strong{font-size:12px}.clientRow div span{color:var(--muted);margin-top:3px;font-size:10px}.clientRow b{color:var(--muted);font-size:10px;font-weight:600}.filterBar{align-items:center;gap:7px;margin:0 0 13px;display:flex}.filterChip{border:1px solid var(--line);color:#686d76;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:11px;font-weight:650;display:inline-flex}.filterChip .platformLogo.compact{background:0 0;border:0;width:auto;height:auto}.filterChip .platformLogo.compact.metaLogo svg{width:20px}.filterChip .platformLogo.compact.googleLogo svg{width:17px;height:17px}.filterChip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.filterSpacer{flex:1}.filterHint{color:var(--muted);font-size:11px}.campaignTable{display:grid}.campaignTableHead,.campaignTableRow{grid-template-columns:minmax(270px,1.4fr) 125px 105px 90px 100px 90px 80px;align-items:center;gap:10px;display:grid}.campaignTableHead{color:var(--muted);padding:4px 7px 10px;font-size:10px;font-weight:650}.campaignTableRow{border-top:1px solid #eceef1;padding:13px 7px;font-size:12px;text-decoration:none}.campaignTableRow>div strong,.campaignTableRow>div small{display:block}.campaignTableRow>div strong{font-size:12px}.campaignTableRow>div small{color:var(--muted);margin-top:4px;font-size:10px}.campaignTableRow .platformLogo{font-size:11px}.emptyRow{color:#858a93;background:#fafbfc}.statusPill{border-radius:999px;width:max-content;padding:5px 8px;font-size:10px;font-weight:750;display:inline-flex}.statusPill.active{background:var(--success-soft);color:var(--success)}.statusPill.muted{color:#777c84;background:#f0f1f3}.campaignBreadcrumb{color:#8a8f97;align-items:center;gap:8px;margin-bottom:14px;font-size:11px;display:flex}.campaignBreadcrumb a{color:#5f6570;text-decoration:none}.campaignBreadcrumb a:hover{color:var(--ink)}.campaignTitleRow{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.campaignTitleMain{align-items:flex-start;gap:13px;display:flex}.campaignTitleMain>.platformLogo.compact{width:42px;height:42px;margin-top:2px}.campaignHeaderActions{align-items:center;gap:8px;display:flex}.date{border:1px solid var(--line);color:#585e67;background:#fff;border-radius:9px;padding:8px 10px;font-size:11px}.campaignTabs{border-bottom:1px solid var(--line);gap:4px;margin:21px 0 17px;display:flex}.campaignTabs a{color:#737882;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 11px;font-size:12px;font-weight:650;text-decoration:none}.campaignTabs a:hover{color:var(--ink)}.twoCols{grid-template-columns:1.25fr .75fr;gap:14px;margin-top:14px;display:grid}.twoCols .panel{margin-top:0}.funnel{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.funnelWide{grid-template-columns:repeat(7,minmax(0,1fr))}.funnelStep{text-align:center;border:1px solid var(--line);background:#f8f9fb;border-radius:11px;padding:14px 8px}.funnelStep strong{font-size:18px;display:block}.funnelStep span{color:var(--muted);font-size:10px}.tableWrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 8px;font-weight:650}td{white-space:nowrap;border-bottom:1px solid #edf0f2;padding:11px 8px}.winner{background:var(--success-soft);color:var(--success);border-radius:999px;padding:4px 7px;font-size:10px;font-weight:750}.panelNote{color:var(--muted);margin:13px 0 0;font-size:11px}.statusList{display:grid}.statusList>div{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 0;display:grid}.statusList>div:last-child{border-bottom:0}.statusList strong{font-size:12px}.statusList span{color:var(--muted);font-size:12px}.statusList b{border-radius:999px;padding:5px 7px;font-size:10px;font-weight:750}.statusOk{color:var(--success);background:var(--success-soft)}.statusWarn{color:var(--warn);background:var(--warn-soft)}.statusMuted{color:#666c75;background:#f0f1f3}.callout{background:var(--accent-soft);border:1px solid #dce0ff;border-radius:13px;margin-top:14px;padding:15px 17px}.callout strong{font-size:13px}.callout p{color:#555d68;margin:6px 0 0;font-size:12px;line-height:1.5}.warnCallout{background:#fff8ed;border-color:#ead8bc}.clientGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.clientCard{border:1px solid var(--line);background:#fafbfc;border-radius:12px;grid-template-columns:50px 1fr 22px;align-items:center;gap:11px;padding:14px;text-decoration:none;display:grid}.clientCard:hover{background:#fff;border-color:#cfd3da}.clientCard strong{font-size:13px}.clientCard p{color:var(--muted);margin:4px 0;font-size:11px}.clientCard small{color:#848990;font-size:10px}.sourceGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.sourceCard{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:17px}.sourceCard>strong{font-size:13px;display:block}.sourceCard p{min-height:48px;color:var(--muted);margin:11px 0;font-size:11px;line-height:1.5}.sourceActions{justify-content:space-between;align-items:center;gap:10px;display:flex}.sourceIcon.neutral{background:#f1f2f5;border-radius:10px;place-items:center;width:35px;height:35px;margin-bottom:9px;font-size:16px;display:grid}.settingsGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.settingsGrid>div{border:1px solid var(--line);background:#f8f9fb;border-radius:11px;padding:13px 14px}.settingsGrid span{color:var(--muted);margin-bottom:5px;font-size:10px;display:block}.settingsGrid strong{font-size:13px}@media (max-width:1180px){.metrics{grid-template-columns:repeat(2,1fr)}.hubGrid,.lowerHubGrid,.twoCols{grid-template-columns:1fr}.campaignRow{grid-template-columns:minmax(220px,1fr) 90px 90px 80px 24px}.campaignTableHead,.campaignTableRow{grid-template-columns:minmax(230px,1fr) 115px 95px 80px 90px 80px 65px}.funnelWide{grid-template-columns:repeat(4,1fr)}.sourceGrid,.clientGrid{grid-template-columns:repeat(2,1fr)}}@media (max-width:800px){.appShell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.sidebar nav{grid-template-columns:repeat(3,1fr)}.sidebarFoot{display:none}.content{padding:22px 15px 40px}.pageHeader,.campaignTitleRow{flex-direction:column}.metrics,.metricsThree{grid-template-columns:1fr 1fr}.campaignHeaderActions{flex-wrap:wrap}.campaignRow{grid-template-columns:1fr 24px}.campaignMiniMetric,.campaignTableHead{display:none}.campaignTableRow{grid-template-columns:1fr 100px}.campaignTableRow>:nth-child(n+3):not(:last-child){display:none}.campaignTabs{overflow:auto}.statusList>div{grid-template-columns:1fr;gap:5px}.statusList b{justify-self:start}.settingsGrid,.sourceGrid,.clientGrid{grid-template-columns:1fr}.funnelWide{grid-template-columns:repeat(2,1fr)}}@media (max-width:520px){.sidebar nav{grid-template-columns:repeat(2,1fr)}.metrics,.metricsThree{grid-template-columns:1fr}.filterHint{display:none}.pageHeader h1,.campaignTitleRow h1{font-size:25px}.campaignTitleMain>.platformLogo.compact{width:38px;height:38px}.funnel{grid-template-columns:repeat(2,1fr)}}:root{--bg:#f6f8fb;--card:#fff;--ink:#15171b;--muted:#747b86;--line:#e8ebf0;--line-strong:#dce1e8;--sidebar:#fff;--sidebar-soft:#f3f6fb;--accent:#1479f8;--accent-dark:#0868e5;--accent-soft:#edf5ff;--success:#16785f;--success-soft:#e9f7f2;--warn:#9a6422;--warn-soft:#fff5e7;--shadow:0 5px 18px #141f320b}.appShell{grid-template-columns:252px minmax(0,1fr)}.sidebar{color:var(--ink);border-right:1px solid var(--line);background:#fff;padding:18px 14px}.brand{color:var(--ink);border-bottom:1px solid #f0f2f5;gap:12px;margin-bottom:14px;padding:5px 8px 18px}.agencyLogo{background:#127cf8;border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid;overflow:hidden;box-shadow:0 4px 12px #1479f829}.agencyLogo.compact{width:31px;height:31px;box-shadow:none;border-radius:9px}.agencyLogo img{object-fit:cover;width:100%;height:100%;display:block}.brandCopy{gap:2px}.brandCopy strong{letter-spacing:-.025em;color:#14171b;font-size:14px;font-weight:760}.brandCopy small{color:#7d8490;font-size:11px;font-weight:550}.navSectionLabel{color:#9aa1ac;letter-spacing:.08em;text-transform:uppercase;padding:0 11px 8px;font-size:9px;font-weight:750}.sidebar nav{gap:3px}.sidebar nav a{color:#626975;border:1px solid #0000;border-radius:10px;padding:10px 11px;font-size:13px;font-weight:620}.sidebar nav a:hover{color:#171a1f;background:#f5f7fa;border-color:#eef1f5}.sidebar nav a.active{background:var(--accent-soft);color:#0868e5;border-color:#dcecff}.navIcon{color:#9aa1ab;width:20px;height:20px;font-size:13px}.sidebar nav a.active .navIcon{color:#1479f8}.sidebarFoot{color:var(--ink);border-top:1px solid #eef1f4;padding:14px 8px 2px}.sidebarFoot strong{color:#202329;font-size:11px}.sidebarFoot small{color:#8b929c;font-size:9px}.content{max-width:1700px;padding:30px 36px 58px}.pageHeader{margin-bottom:22px}.eyebrow{color:#1479f8;letter-spacing:.09em;font-size:10px}.pageHeader h1,.campaignTitleRow h1{font-size:29px;font-weight:760}.pageHeader p,.campaignTitleRow p{color:#7d8490}.primaryButton{background:#15171b;border-radius:11px;padding:10px 14px;box-shadow:0 2px 6px #00000014}.primaryButton:hover{background:#262a30}.secondaryButton{background:#fff;border-color:#dfe3e9;border-radius:10px}.metric,.panel{box-shadow:var(--shadow);border-color:#e7eaf0}.metric{border-radius:15px;padding:17px 18px}.metric>span{color:#858c96}.metric strong{font-size:26px}.metric em{font-weight:560}.panel{border-radius:15px;padding:18px 19px}.panelHead h2{font-size:15px;font-weight:730}.panelHead span{color:#969ca5}.platformCard,.clientCard{background:#fbfcfe;border-color:#e5e9ef}.platformCard:hover,.clientCard:hover{background:#fff;border-color:#d5dbe4}.platformLogo{color:#22262c;gap:9px;font-size:12px;font-weight:720}.platformIconImage{flex:none;place-items:center;display:grid}.metaIconImage{width:30px;height:20px}.metaIconImage img{object-fit:contain;width:100%;height:100%;display:block}.googleAdsIcon{width:24px;height:24px}.googleAdsIcon svg{width:100%;height:100%;display:block}.platformLogo.compact{background:#fff;border:1px solid #e5e9ef;border-radius:10px;width:36px;height:36px;box-shadow:0 2px 8px #151d2a09}.platformLogo.compact .metaIconImage{width:25px;height:17px}.platformLogo.compact .googleAdsIcon{width:20px;height:20px}.clientLogo{background:#53afa0;border:1px solid #e1e7e6;border-radius:11px;flex:none;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.clientLogo.large{border-radius:13px;width:50px;height:50px}.clientLogo img{object-fit:cover;width:100%;height:100%;display:block}.clientLogo.fallback{color:#8a9099;background:#f1f3f6}.clientRow{grid-template-columns:42px 1fr auto;padding:12px 0}.clientCard{grid-template-columns:52px 1fr 22px;padding:15px}.campaignRow{border-top-color:#f0f2f5;border-radius:9px;padding:14px 6px}.campaignRow:hover{background:#f8fafc}.campaignTableRow{border-top-color:#edf0f4}.campaignTableRow:hover:not(.emptyRow){background:#f8fafc}.connectionBadge.manual,.connectionBadge.connected{color:#15765f;background:#eaf8f2}.connectionBadge.not_connected{color:#747b85;background:#f2f4f7}.insight{background:#f0f6ff;border-left-color:#1479f8}.insight.neutral{background:#f7f8fa}.statusPill.active{color:#16785f;background:#eaf8f2}.filterChip.active{background:#15171b;border-color:#15171b}.campaignTabs a.active{color:#15171b;border-bottom-color:#1479f8}@media (max-width:800px){.appShell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:relative}.brand{margin-bottom:10px}.navSectionLabel{display:none}.sidebar nav{grid-template-columns:repeat(3,1fr)}}.sidebarFoot{gap:9px}.sidebarAccount{flex:1;min-width:0}.sidebarAccount strong{white-space:nowrap;text-overflow:ellipsis;max-width:118px;display:block;overflow:hidden}.logoutButton{border:1px solid var(--line);color:#68707a;background:#fff;border-radius:8px;padding:6px 8px;font-size:9px;font-weight:700}.logoutButton:hover{color:#1a1d21;background:#f5f7fa}.logoutButton:disabled{opacity:.55;cursor:wait}.loginPage{background:#f5f8fc;place-items:center;min-height:100vh;padding:28px;display:grid;position:relative;overflow:hidden}.loginBackdrop{pointer-events:none;background:radial-gradient(circle at 20% 5%,#1479f81c,#0000 34%),radial-gradient(circle at 88% 82%,#1479f80f,#0000 30%);position:absolute;inset:0}.loginWrap{z-index:1;width:min(100%,440px);position:relative}.loginAlert{color:#7d531e;background:#fff8ef;border:1px solid #f1dcc2;border-radius:12px;margin:0 0 10px;padding:11px 13px;font-size:12px;line-height:1.45}.loginCard{background:#fff;border:1px solid #e4e9f0;border-radius:20px;padding:28px;box-shadow:0 18px 55px #17284617}.loginBrand{border-bottom:1px solid #edf0f4;align-items:center;gap:11px;padding-bottom:22px;display:flex}.loginLogo{background:#127cf8;border-radius:12px;place-items:center;width:42px;height:42px;display:grid;overflow:hidden}.loginLogo img{object-fit:cover;width:100%;height:100%}.loginBrand div{gap:2px;display:grid}.loginBrand strong{letter-spacing:-.02em;font-size:14px}.loginBrand span{color:var(--muted);font-size:11px}.loginCopy{padding:25px 0 20px}.loginEyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:800;display:block}.loginCopy h1{letter-spacing:-.04em;margin:0;font-size:28px;line-height:1.08}.loginCopy p{color:var(--muted);margin:9px 0 0;font-size:13px;line-height:1.55}.loginIdentity{background:#f8fafc;border:1px solid #e5e9ef;border-radius:13px;align-items:center;gap:11px;margin-bottom:12px;padding:13px 14px;display:flex}.loginIdentityDot{color:#0b70ed;background:#eaf3ff;border-radius:10px;place-items:center;width:33px;height:33px;font-weight:800;display:grid}.loginIdentity div{gap:3px;display:grid}.loginIdentity div span{color:var(--muted);font-size:10px}.loginIdentity strong{font-size:12px}.loginButton{color:#fff;background:#121519;border:0;border-radius:12px;width:100%;padding:13px 16px;font-size:12px;font-weight:750}.loginButton:hover:not(:disabled){background:#252a31}.loginButton:disabled{opacity:.7;cursor:default}.loginStatus{min-height:0}.loginStatus p{border-radius:10px;margin:11px 0 0;padding:10px 11px;font-size:11px;line-height:1.45}.successText{background:var(--success-soft);color:var(--success)}.errorText{background:var(--warn-soft);color:var(--warn)}.loginFineprint{text-align:center;color:#9399a2;margin:16px 0 0;font-size:10px;line-height:1.5}@media (max-width:520px){.loginPage{padding:16px}.loginCard{border-radius:17px;padding:21px}.loginCopy h1{font-size:25px}}.authLoadingPage{place-items:center;min-height:100vh;display:grid}.authLoading{z-index:1;border:1px solid var(--line);color:var(--muted);box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:12px 16px;font-size:13px;position:relative}.authConfirmCard{min-height:260px}
