@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#152133;font-synthesis:none;text-rendering:optimizelegibility;--blue:#155eef;--green:#12a594;--ink:#152133;--muted:#697586;--line:#e4e9ef;--panel:#fff;background:#f4f7fa;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:#f4f7fa;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{grid-template-columns:244px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);z-index:30;background:#fff;flex-direction:column;height:100vh;padding:24px 16px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:0 8px 30px;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#155eef,#0f8f84);border-radius:8px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 7px 18px #155eef3d}.brand strong,.brand span{display:block}.brand strong{letter-spacing:.08em;font:800 15px Manrope,sans-serif}.brand span{color:#8590a0;margin-top:1px;font-size:10px}.mobile-close{color:var(--muted);background:0 0;border:0;margin-left:auto;display:none}.nav-label{color:#9aa4b2;letter-spacing:.12em;margin:0 11px 10px;font-size:10px;font-weight:700;display:block}.nav-item{color:#667284;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:11px;width:100%;height:42px;margin:2px 0;padding:0 11px;font-size:13px;font-weight:500;display:flex}.nav-item span{flex:1}.nav-item:hover{color:var(--ink);background:#f5f7fa}.nav-item.active{color:var(--blue);background:#edf4ff;font-weight:700}.subnav{border-left:1px solid #d9e1ea;margin:2px 0 14px 38px;padding-left:15px;display:grid}.subnav button{color:#8490a0;text-align:left;background:0 0;border:0;padding:7px 0;font-size:12px}.subnav button.selected{color:var(--ink);font-weight:700}.sidebar-bottom{margin-top:auto}main{min-width:0}.topbar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;justify-content:space-between;align-items:center;height:72px;padding:0 32px;display:flex;position:sticky;top:0}.breadcrumbs{align-items:center;gap:10px;font-size:12px;display:flex}.breadcrumbs span,.breadcrumbs b{color:#9aa4b2;font-weight:500}.breadcrumbs strong{color:#4b5666}.top-actions,.profile,.heading-actions,.table-tools{align-items:center;display:flex}.top-actions{gap:14px}.profile{gap:9px}.profile strong,.profile span{display:block}.profile strong{font-size:12px}.profile span{color:#8b95a4;margin-top:2px;font-size:10px}.avatar{color:#12483f;background:#d7f1e9;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:grid}.menu-button{color:var(--ink);background:0 0;border:0;display:none}.icon-button{color:#667284;background:#fff;border:1px solid #dfe5ec;border-radius:6px;place-items:center;width:38px;height:38px;padding:0;display:inline-grid}.icon-button:hover{color:var(--blue);border-color:#b8cdf8}.notification{position:relative}.notification i{background:#ef6351;border:1px solid #fff;border-radius:50%;width:6px;height:6px;position:absolute;top:8px;right:8px}.content{width:min(1480px,100%);margin:0 auto;padding:30px 32px 44px}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px;display:flex}.eyebrow,.panel-kicker{color:var(--blue);letter-spacing:.1em;font-size:10px;font-weight:800}h1,h2{color:var(--ink);letter-spacing:0;margin:0;font-family:Manrope,sans-serif}h1{margin-top:6px;font-size:27px;line-height:1.25}h2{margin-top:4px;font-size:16px}.page-heading p{color:var(--muted);margin:6px 0 0;font-size:13px}.heading-actions{gap:9px}.primary-button,.secondary-button{border-radius:6px;justify-content:center;align-items:center;gap:8px;height:38px;padding:0 16px;font-size:12px;font-weight:700;display:inline-flex}.primary-button{border:1px solid var(--blue);color:#fff;background:var(--blue);box-shadow:0 5px 12px #155eef2e}.primary-button:hover{background:#104dcc}.secondary-button{color:#3b4656;background:#fff;border:1px solid #dfe5ec}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.metric-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.metric-card{grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:104px;padding:18px;display:grid;box-shadow:0 2px 7px #18273a06}.metric-icon{border-radius:7px;place-items:center;width:38px;height:38px;display:grid}.metric-icon.blue{color:#155eef;background:#eaf1ff}.metric-icon.green{color:#0b8b7d;background:#e5f6f2}.metric-icon.amber{color:#c77900;background:#fff3dc}.metric-icon.coral{color:#d74b3b;background:#ffebe8}.metric-copy span,.metric-copy strong{display:block}.metric-copy span{color:#7c8797;font-size:11px}.metric-copy strong{margin-top:5px;font:700 20px Manrope,sans-serif}.metric-change{color:#0c8e6d;align-self:end;align-items:center;gap:3px;font-size:10px;font-weight:700;display:flex}.analytics-grid{grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:14px;margin-bottom:14px;display:grid}.panel{overflow:hidden}.panel-head{border-bottom:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:16px;min-height:69px;padding:16px 18px;display:flex}.panel-kicker{color:#8b95a4}.period-control{border:1px solid var(--line);background:#f7f9fb;border-radius:6px;padding:3px;display:flex}.period-control button{color:#788495;background:0 0;border:0;border-radius:4px;height:27px;padding:0 10px;font-size:10px}.period-control button.active{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 4px #1a2b411c}.chart-summary{align-items:center;gap:12px;padding:17px 18px 0;display:flex}.chart-summary strong{font:700 22px Manrope,sans-serif}.chart-summary span{color:#0c8e6d;align-items:center;gap:4px;font-size:10px;font-weight:700;display:flex}.main-chart{height:245px;padding:8px 12px 0}.chart-legend{color:#778292;justify-content:flex-end;gap:18px;padding:0 18px 16px;font-size:10px;display:flex}.chart-legend span{align-items:center;gap:6px;display:flex}.chart-legend i,.channel-list i{border-radius:2px;width:7px;height:7px}.revenue-dot{background:var(--blue)}.spend-dot{background:var(--green)}.donut-wrap{height:220px;margin-top:4px;position:relative}.donut-center{pointer-events:none;text-align:center;place-content:center;display:grid;position:absolute;inset:0}.donut-center strong{font:700 18px Manrope,sans-serif}.donut-center span{color:#8a95a4;font-size:10px}.channel-list{gap:11px;padding:0 20px 18px;display:grid}.channel-list div,.channel-list span{align-items:center;display:flex}.channel-list div{color:#576374;justify-content:space-between;font-size:11px}.channel-list span{gap:8px}.channel-list strong{color:#273344}.campaign-panel{margin-bottom:20px}.table-heading{min-height:76px}.table-tools{flex-wrap:wrap;justify-content:flex-end;gap:8px}.table-export-button{white-space:nowrap}.search-field,.filter-wrap{color:#8c96a4;background:#fff;border:1px solid #dfe5ec;border-radius:6px;align-items:center;height:36px;display:flex}.search-field{gap:7px;width:220px;padding:0 10px}.search-field input{width:100%;color:var(--ink);border:0;outline:0;font-size:11px}.search-field input::placeholder{color:#9aa4b2}.filter-wrap{padding-left:10px}.filter-wrap select{color:#657183;background:0 0;border:0;outline:0;height:100%;padding:0 25px 0 7px;font-size:11px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:1040px}th{color:#8c96a4;border-bottom:1px solid var(--line);text-align:left;letter-spacing:.05em;text-transform:uppercase;background:#f8fafc;height:42px;padding:0 14px;font-size:9px;font-weight:700}td{color:#586475;white-space:nowrap;border-bottom:1px solid #edf0f4;height:70px;padding:0 14px;font-size:11px}tbody tr:hover{background:#fbfcfe}tbody tr:last-child td{border-bottom:0}.campaign-name{align-items:center;gap:10px;display:flex}.campaign-name>span{color:#155eef;background:#eaf1ff;border-radius:6px;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.campaign-name strong,.campaign-name small{display:block}.campaign-name strong{color:#273344;font-size:11px}.campaign-name small{color:#0c8e6d;margin-top:3px;font-size:9px}.campaign-date strong,.campaign-date span{display:block}.campaign-date strong{color:#384456;font-size:10px;font-weight:600}.campaign-date span{color:#8a95a4;text-transform:uppercase;margin-top:3px;font-size:9px}.status{border-radius:4px;padding:5px 8px;font-size:9px;font-weight:700}.status.active{color:#087866;background:#def4ee}.status.upcoming{color:#9a6700;background:#fff1ce}.status.completed{color:#697586;background:#edf0f4}.spend-cell span{display:block}.spend-cell i{background:#e7ebf0;border-radius:4px;width:70px;height:3px;margin-top:6px;display:block;overflow:hidden}.spend-cell b{border-radius:inherit;background:var(--blue);height:100%;display:block}.row-menu{color:#929baa;background:0 0;border:0}.empty-state{color:#7e8998;text-align:center;padding:35px;font-size:12px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#121d2d94;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.export-modal{background:#fff;border-radius:8px;width:min(580px,100%);animation:.2s ease-out modal-in;overflow:hidden;box-shadow:0 24px 70px #101c2c40}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:83px;padding:20px 22px;display:flex}.modal-grid{grid-template-columns:1fr 1fr;gap:15px;padding:22px;display:grid}.modal-grid label{color:#697586;font-size:10px;font-weight:700}.modal-grid select{color:#273344;background:#fff;border:1px solid #dfe5ec;border-radius:6px;outline:0;width:100%;height:42px;margin-top:7px;padding:0 12px;font-size:12px}.modal-grid select:focus{border-color:#8eb2fa;box-shadow:0 0 0 3px #e8f0ff}.modal-note{color:#0a786b;background:#e8f7f4;border-radius:6px;align-items:center;gap:8px;margin:0 22px 20px;padding:11px 13px;font-size:11px;display:flex}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;padding:14px 22px;display:flex}.nav-backdrop{display:none}.spinning svg{animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}@media (width<=1100px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.metrics-grid{grid-template-columns:repeat(2,1fr)}.analytics-grid{grid-template-columns:1fr}.channel-panel{grid-template-columns:1fr 1fr;display:grid}.channel-panel .panel-head{grid-column:1/-1}.channel-list{align-content:center}}@media (width<=760px){.app-shell{display:block}.sidebar{width:260px;transition:transform .2s;position:fixed;left:0;transform:translate(-105%);box-shadow:12px 0 32px #101d2e1f}.sidebar.open{transform:translate(0)}.mobile-close,.menu-button{display:block}.nav-backdrop{z-index:25;background:#121d2d73;border:0;display:block;position:fixed;inset:0}.topbar{height:64px;padding:0 18px}.breadcrumbs,.profile>div:last-child{display:none}.content{padding:22px 16px 32px}.page-heading{align-items:flex-start}.page-heading p{max-width:320px}.heading-actions .icon-button{display:none}.metrics-grid{grid-template-columns:1fr 1fr}.metric-card{grid-template-columns:auto 1fr;min-height:112px}.metric-change{grid-column:2}.table-heading{flex-direction:column;align-items:flex-start}.table-tools{width:100%}.search-field{flex:1;width:auto}}@media (width<=520px){h1{font-size:23px}.page-heading{flex-direction:column}.heading-actions,.heading-actions .primary-button{width:100%}.metrics-grid{grid-template-columns:1fr}.metric-card{grid-template-columns:auto 1fr auto;min-height:88px}.metric-change{grid-column:auto}.panel-head{align-items:flex-start}.period-control button{padding:0 6px}.channel-panel{display:block}.table-export-button{width:100%}.modal-grid{grid-template-columns:1fr}.modal-backdrop{padding:10px}}@media print{.sidebar,.topbar,.heading-actions,.table-tools,.modal-backdrop{display:none!important}.app-shell{display:block}.content{padding:0}.panel,.metric-card{break-inside:avoid;box-shadow:none}}.app-shell{display:block}.brand-wordmark{color:var(--ink);letter-spacing:.08em;font:800 14px Manrope,sans-serif}.brand-wordmark span{color:var(--blue);letter-spacing:.1em;margin-left:10px;font:700 10px DM Sans,sans-serif}.campaign-cell{max-width:190px;color:var(--ink);white-space:normal;margin-bottom:7px;font-size:11px;line-height:1.3;display:block}.report-panel td:first-child{min-width:210px}.report-panel td:nth-child(2){white-space:normal;min-width:270px}.city-list{flex-wrap:wrap;gap:5px;max-width:330px;display:flex}.city-list span{color:#536174;white-space:nowrap;background:#f8fafc;border:1px solid #e2e8ef;border-radius:4px;padding:4px 7px;font-size:10px;line-height:1.2}.city-list span.selected{color:#155eef;background:#eaf1ff;border-color:#8eb2fa;font-weight:700}.summary-strip{border:1px solid var(--line);background:var(--line);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.summary-strip>div{background:#fff;min-height:86px;padding:17px 20px}.summary-strip span,.summary-strip strong{display:block}.summary-strip span{color:var(--muted);font-size:11px}.summary-strip strong{color:var(--ink);margin-top:8px;font:700 20px Manrope,sans-serif}.report-panel{margin-bottom:20px}.table-note{color:#778292;border-bottom:1px solid #edf0f4;padding:11px 18px;font-size:11px}.report-panel table{min-width:1120px}.report-panel th{white-space:nowrap;text-transform:none;letter-spacing:0;height:58px;padding:0 16px;line-height:1.35}.report-panel td{height:72px;padding:0 16px;font-size:12px}.report-panel tbody tr:first-child{background:#fbfdff}.row-label{border-radius:5px;min-width:75px;padding:7px 10px;font-size:11px;font-weight:800;display:inline-flex}.row-label.target{color:#155eef;background:#eaf1ff}.row-label.delivered{color:#087866;background:#def4ee}.cost-cell{color:var(--ink);font-weight:800}@media (width<=760px){.summary-strip{grid-template-columns:1fr 1fr}.table-tools{align-items:stretch}.filter-wrap{flex:1}.filter-wrap select{width:100%;min-width:0}}@media (width<=520px){.summary-strip strong{font-size:17px}.summary-strip>div{padding:14px}.table-note{line-height:1.5}}
