:root{--bg:#f5f8f9;--surface:#fff;--ink:#141b26;--muted:#64748b;--border:#e4e8ef;--primary:#0e7d6b;--primary-dark:#0a5d50;--warning:#d78b29}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:Inter,"Noto Sans Arabic",system-ui,-apple-system,"Segoe UI",sans-serif;display:flex;flex-direction:column}a{color:inherit}.topbar{background:#fff;border-bottom:1px solid var(--border)}.topbar-inner{max-width:1280px;margin:auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;font-size:21px;font-weight:900;white-space:nowrap}.brand span,.text-link{color:var(--primary)}.top-actions{display:flex;align-items:center;gap:20px}.identity{color:var(--muted);font-size:14px}.text-link{font-weight:700;text-decoration:none}.lang-pill,.period-pill{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;text-decoration:none;font-weight:700}.lang-pill{border:1px solid var(--border)}.page-shell{width:100%;max-width:1280px;margin:auto;padding:48px 24px;flex:1}.connect-shell{width:100%;max-width:900px;margin:auto;padding:64px 24px;flex:1}.hero{text-align:center}.hero h1{font-size:clamp(30px,5vw,48px);line-height:1.25;margin:0 auto 28px;max-width:760px}.reassurance-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;background:#eaf6f3;border:1px solid #cde8e2;border-radius:16px;padding:18px;color:var(--primary);font-weight:600}.channel-list{display:grid;gap:14px;margin-top:42px}.channel-row{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;align-items:center;justify-content:space-between;gap:18px}.channel-row h2{font-size:18px;margin:0 0 5px}.channel-row p{color:var(--muted);margin:0}.channel-row.disabled{opacity:.72}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;background:var(--primary);color:#fff;border-radius:12px;padding:11px 20px;text-decoration:none;font-weight:700;width:max-content}.button:hover{background:var(--primary-dark)}.button-quiet{background:#fff;color:var(--ink);border:1px solid var(--border);font-weight:650}.button-quiet:hover{background:var(--bg)}.pill{display:inline-flex;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700}.active-pill{background:var(--primary);color:#fff}.muted-pill{background:#e8ebef;color:#4b5563}.warning-pill{background:#fff1dc;color:#9a5c0d}.site-footer,.data-footer{border-top:1px solid var(--border);padding:28px 24px;text-align:center;color:var(--muted);display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.page-heading,.report-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.page-heading h1,.report-heading h1{font-size:clamp(30px,4vw,42px);margin:0 0 8px}.page-heading p,.report-heading p{color:var(--muted);margin:0}.search input{width:320px;max-width:100%;min-height:46px;border:1px solid var(--border);border-radius:12px;padding:10px 16px;font:inherit}.account-grid,.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.account-card,.service-card,.stat-card,.finding-card,.state-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 1px 2px rgba(20,27,38,.04)}.account-card{display:flex;flex-direction:column;gap:22px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card-head h2{font-size:20px;margin:0 0 5px}.account-id{font-size:13px;color:var(--muted);direction:ltr;display:block}.spend-box{background:var(--bg);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:14px}.spend-box strong{font-size:19px;color:var(--ink)}.spend-box small{font-size:12px}.service-grid{margin-top:32px}.service-card p{color:var(--muted);overflow-wrap:anywhere}.period-nav{display:flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;padding:5px;background:#fff}.period-pill{color:var(--muted)}.period-pill.selected{background:#eaf6f3;color:var(--primary)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.stat-card h2{font-size:16px;margin:0 0 28px}.stat-card strong{display:block;font-size:30px}.stat-card strong small{font-size:14px;color:var(--muted)}.stat-card p{font-size:13px;color:var(--muted);border-top:1px solid var(--border);padding-top:15px;margin:15px 0 0}.findings{display:grid;grid-template-columns:2fr 1fr;gap:18px;margin-top:34px}.finding-card{position:relative;overflow:hidden}.finding-card:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:5px;background:var(--primary)}.finding-card h2{font-size:18px;margin:0 0 10px}.finding-card p{color:#526070;line-height:1.8;margin:0}.finding-card.warning:before{background:var(--warning)}.more-findings{color:var(--muted)}.state-card{max-width:760px;margin:48px auto;line-height:1.8}.warning-state{border-inline-start:5px solid var(--warning)}.centered{text-align:center}.centered .brand{display:block;margin-bottom:28px}.centered .button{margin-top:18px}.reconnect-page{justify-content:center}.reconnect-shell{width:100%;padding:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(max-width:800px){.identity{display:none}.page-heading,.report-heading{align-items:stretch;flex-direction:column}.period-nav{width:100%;overflow:auto}.account-grid,.service-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.findings{grid-template-columns:1fr}.search input{width:100%}}@media(max-width:480px){.topbar-inner,.page-shell,.connect-shell{padding-inline:16px}.top-actions{gap:10px}.channel-row{align-items:flex-start;flex-direction:column}.stats-grid{gap:12px}.stat-card{padding:17px}.stat-card strong{font-size:24px}}
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px}.price-card{background:#fff;border:1px solid #e4e8ef;border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:14px}.price-card h2,.price-card p{margin:0}.price-card strong{font-size:28px}.offer-card{margin-top:28px}
.audit-group,.offers,.audit-page>section{margin-top:32px}.audit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.audit-card{background:#fff;border:1px solid var(--border);border-inline-start:5px solid var(--primary);border-radius:12px;padding:20px}.audit-card h3{margin:0}.audit-card details{margin-top:18px}.audit-card summary{cursor:pointer;font-weight:700}.audit-card pre{white-space:pre-wrap;overflow-wrap:anywhere}.state-missing .audit-card{border-inline-start-color:#b42318}.state-partial .audit-card{border-inline-start-color:var(--warning)}.state-unknown .audit-card,.reconnect-card{border-inline-start-color:#64748b}.audit-card ul{padding-inline-start:20px}
.blocked-stat{border-color:#e8b04b;background:#fffaf0}.blocked-stat h2{display:flex;align-items:center;gap:8px}.warning-triangle{color:#b7791f;font-size:22px}.blocked-stat .unavailable-number{color:#a0a8b3}.blocked-stat form{margin-top:15px}.blocked-stat .button{border:0;cursor:pointer}.muted-state,.unavailable-cell{color:var(--muted)}.unavailable-cell{font-size:13px}.trend-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px;margin-top:24px;overflow-x:auto}.trend-card table{width:100%;border-collapse:collapse}.trend-card th,.trend-card td{padding:12px;border-bottom:1px solid var(--border);text-align:start}.trend-card th{color:var(--muted);font-size:13px}
.app-layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh;width:100%;direction:inherit}.app-sidebar{position:sticky;inset-block-start:0;height:100vh;overflow:auto;background:var(--surface);border-inline-end:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:22px}.sidebar-brand{font-size:21px;font-weight:900;text-decoration:none;padding-inline:10px}.sidebar-brand span{color:var(--primary)}.sidebar-nav{display:flex;flex-direction:column;gap:18px}.nav-section h2{margin:0 10px 6px;color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:8px 10px;border-radius:9px;text-decoration:none;font-size:14px;font-weight:650}.nav-item small{font-size:10px;color:var(--muted);text-align:end}.nav-item:hover{background:var(--bg)}.nav-item.active{background:#eaf6f3;color:var(--primary)}.nav-item.muted{color:var(--muted)}.nav-item.locked{border:1px dashed var(--border)}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border);padding-top:14px}.legal-links{display:flex;flex-wrap:wrap;gap:8px;padding:8px 10px}.legal-links a{font-size:11px;color:var(--muted)}.signout{color:var(--primary)}.app-content{min-width:0;display:flex;flex-direction:column;min-height:100vh}.app-content>.topbar{display:none}.app-content>.page-shell{margin-inline:auto}.billing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.billing-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.billing-card h2{margin:0;font-size:18px}.billing-card p{color:var(--muted)}
@media(max-width:899px){.app-layout{display:block}.app-sidebar{position:sticky;z-index:20;height:auto;inset-block-start:0;border-inline-end:0;border-block-end:1px solid var(--border);padding:10px 16px;gap:8px}.sidebar-brand{padding:4px 0}.sidebar-nav{display:flex;flex-direction:row;overflow-x:auto;gap:8px}.nav-section{display:flex;gap:4px}.nav-section h2{display:none}.nav-item{white-space:nowrap}.nav-item small{display:none}.sidebar-footer{display:flex;margin:0;padding:0;border:0}.sidebar-footer .legal-links,.sidebar-footer .signout{display:none}}
.dashboard-home{display:flex;flex-direction:column;gap:32px}.home-strip,.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.home-strip{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px}.home-strip h1,.home-strip p,.section-head h2,.section-head p{margin:0}.home-strip>div:last-child,.chart-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.overview-chart{margin-top:0}.daily-trend{width:100%;min-width:620px}.chart-axis{stroke:var(--border)}.spend-bar{fill:var(--primary)}.date-label{font-size:10px;fill:var(--muted);text-anchor:middle}.chart-legend span{font-size:13px;color:var(--muted)}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--primary);margin-inline-end:5px}.empty-chart{text-align:center;padding:38px}.empty-chart .button{margin:auto}.home-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.home-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.service-link{text-decoration:none;display:flex;flex-direction:column;gap:12px}.service-link h3{margin:0;font-size:17px}.service-link.state-later{opacity:.72}.accounts-section{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px}.account-list{display:flex;flex-direction:column}.account-row{display:grid;grid-template-columns:minmax(180px,2fr) auto 1fr 1.4fr auto;align-items:center;gap:16px;padding:14px 8px;border-bottom:1px solid var(--border);text-decoration:none}.account-row small{display:block;color:var(--muted);font-size:11px}.show-all{border:0;background:none;cursor:pointer}.section-title{margin:0 0 16px}@media(max-width:1100px){.home-stats{grid-template-columns:repeat(3,1fr)}.home-service-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.home-strip,.section-head{align-items:flex-start;flex-direction:column}.home-stats,.home-service-grid{grid-template-columns:1fr}.account-row{grid-template-columns:1fr auto}.account-row .freshness{display:none}}
.dashboard-notice{background:var(--surface);border:1px solid var(--border);border-inline-start:5px solid var(--warning);border-radius:12px;padding:16px;display:flex;gap:12px;align-items:center}.home-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-service-grid>.service-card{margin:0;min-width:0}.home-unavailable-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;font-size:13px}.unavailable-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}.service-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:5px 9px;border-radius:999px;background:var(--bg);color:var(--muted);text-decoration:none;white-space:normal}.service-chip small{font-size:10px}.reconnect-chip{background:#fff1dc;color:#8a520b}.home-onboarding{max-width:720px;width:100%;margin:32px auto;padding:36px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:16px}.home-onboarding h2{margin-top:0}.home-onboarding p{color:var(--muted)}.onboarding-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}.reconnect-button{background:var(--warning)}@media(max-width:1100px){.home-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.home-service-grid{grid-template-columns:1fr}.home-unavailable-strip{align-items:flex-start}.unavailable-chips{width:100%}.service-chip{min-width:0}.home-onboarding{padding:24px}}
.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 1px 2px rgba(20,27,38,.04)}.app-form,.wizard{display:grid;gap:20px}.app-form{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:24px}.app-form label,.wizard label{display:flex;flex-direction:column;gap:8px;font-weight:650}.app-form select,.app-form input,.wizard select,.wizard input{width:100%;min-height:44px;border:1px solid var(--border);border-radius:10px;padding:9px 12px;background:#fff;color:var(--ink);font:inherit}.app-form button{align-self:end;border:0}.wizard fieldset{min-width:0;margin:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wizard legend{padding:0 8px;font-size:18px;font-weight:800}.wizard input[type=checkbox]{width:auto;min-height:0}.hours-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(100px,1fr) 1fr 1fr auto;gap:12px;align-items:end;padding-top:12px;border-top:1px solid var(--border)}.insights-page>section{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;margin-top:24px;overflow-x:auto}.insights-page table{width:100%;border-collapse:collapse}.insights-page th,.insights-page td{padding:12px;text-align:start;border-bottom:1px solid var(--border)}.insights-page th{color:var(--muted)}.scorecard-card>h1{margin-top:0}.scorecard-card article{border-top:1px solid var(--border);padding:18px 0}.scorecard-card article h2{margin:0 0 10px}.scorecard-card article p{margin:7px 0;color:var(--muted)}.plan-page>form,.plan-page>.offer-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;margin-top:20px}@media(max-width:700px){.app-form,.wizard fieldset{grid-template-columns:1fr}.hours-row{grid-template-columns:1fr}.app-form select,.app-form input,.app-form button,.wizard select,.wizard input,.wizard .button{width:100%}}
.verdict-grid{display:grid;grid-template-columns:2fr 1fr;gap:22px}.verdict-card,.risk-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px}.verdict-card{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-inline-start:6px solid var(--primary)}.verdict-card.status-worse,.verdict-card.status-insufficient{border-inline-start-color:var(--warning)}.verdict-card h2,.risk-card h2{margin:20px 0 8px;font-size:16px}.verdict-number,.risk-card strong{display:block;font-size:clamp(28px,4vw,44px)}.verdict-card p,.risk-card p{color:var(--muted);margin-bottom:0}.verdict-action{flex:0 0 auto}@media(max-width:800px){.verdict-grid{grid-template-columns:1fr}.verdict-card{align-items:stretch;flex-direction:column}.verdict-action{width:100%}}
.readiness-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px}.readiness-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.readiness-head h2{margin:0}.readiness-counts{display:flex;gap:8px;flex-wrap:wrap}.readiness-counts span,.risk-tag{padding:5px 9px;border-radius:999px;font-size:12px;font-weight:700}.must-do-count{background:#fee4e2;color:#b42318}.warning-count{background:#fff1dc;color:#8a520b}.done-count{background:#eaf6f3;color:var(--primary)}.readiness-group{margin-top:22px}.readiness-group h3{font-size:14px;color:var(--muted);margin:0 0 8px}.readiness-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:14px 8px;border-top:1px solid var(--border)}.readiness-row p{margin:4px 0 0;color:var(--muted);font-size:13px}.readiness-dot{width:12px;height:12px;border-radius:50%;background:#b42318}.state-warning .readiness-dot{background:var(--warning)}.state-blocked{opacity:.62}.state-blocked .readiness-dot{background:#94a3b8}.state-done .readiness-dot{background:var(--primary)}.readiness-action{min-height:36px;padding:7px 12px}.risk-high{color:#b42318}.risk-medium{color:#8a520b}.risk-low{color:var(--muted)}.readiness-done{margin-top:20px}.readiness-done summary{cursor:pointer;font-weight:800}@media(max-width:700px){.readiness-head{align-items:flex-start;flex-direction:column}.readiness-row{grid-template-columns:auto 1fr}.readiness-row .risk-tag,.readiness-row .readiness-action{grid-column:2}.readiness-action{width:100%}}

/* answers typed directly on a checklist row */
.readiness-inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}
.readiness-inline .inline-control{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;color:#5b6b7a}
.readiness-inline .inline-control input,.readiness-inline .inline-control select{
  padding:.45rem .55rem;border:1px solid #cfd8e0;border-radius:6px;font-size:.9rem;min-width:9rem;background:#fff}
.readiness-inline .inline-control input:focus,.readiness-inline .inline-control select:focus{
  outline:2px solid #0f6b52;outline-offset:1px}
.readiness-inline button{align-self:flex-end}
.inline-error{color:#b3261e;font-weight:600;margin-top:.25rem}
[dir="rtl"] .readiness-inline{flex-direction:row-reverse}
@media (max-width:720px){.readiness-inline{width:100%}.readiness-inline .inline-control input,
  .readiness-inline .inline-control select{min-width:0;width:100%}}

/* campaign form */
.stack-form{display:flex;flex-direction:column;gap:.9rem;max-width:38rem}
.stack-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#37474f}
.stack-form input,.stack-form select,.stack-form textarea{
  padding:.55rem .6rem;border:1px solid #cfd8e0;border-radius:6px;font:inherit;background:#fff}
.state-card.errors,.errors{list-style:none;padding-inline-start:1rem}

/* insights: two sections, charts not tables */
.insight-section{margin-top:1.8rem}
.insight-section>h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.06em;color:#5b6b7a;margin-bottom:.7rem}
.insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;margin-bottom:1rem}
.insight-grid .trend-card{padding:1rem 1.1rem}
.insight-grid .section-head h3{font-size:1rem;margin:0}
.rank-chart{width:100%;height:auto;overflow:visible}
.rank-chart .rank-label{font-size:12px;fill:#5b6b7a}
.rank-chart .rank-count{font-size:12px;fill:#37474f;font-weight:700}
.rank-bar{fill:#0f6b52}
.rank-bar.rank-page1{fill:#3f9c7f}.rank-bar.rank-page2{fill:#c9a227}.rank-bar.rank-beyond{fill:#b0bec5}
.series-line{stroke:#0f6b52}
.finding-list{list-style:none;padding:0;margin:.3rem 0 0;display:flex;flex-direction:column;gap:.5rem}
.finding-list li{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem;
  border-bottom:1px solid #eceff1;padding-bottom:.4rem}
.finding-list li span{color:#5b6b7a;white-space:nowrap}
.app-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}
.app-form .inline-control{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:#5b6b7a}
.app-form select{padding:.5rem .6rem;border:1px solid #cfd8e0;border-radius:6px;font:inherit;background:#fff;min-width:14rem}
.unpaired summary{cursor:pointer;font-weight:600}

/* the three orders lead the page: one verb, one number, one button each */
.orders{margin:0 0 1.4rem}
.orders-heading{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#5b6b7a;margin:0 0 .6rem}
.order-card{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
  background:#fff;border:1px solid #e3e8ec;border-inline-start-width:5px;border-radius:10px;
  padding:1rem 1.2rem;margin-bottom:.6rem}
.order-card strong{display:block;font-size:1.05rem;margin-bottom:.15rem}
.order-card p{margin:0;color:#5b6b7a;font-size:.92rem}
.order-card .button{flex-shrink:0}
.order-card.state-danger{border-inline-start-color:#b3261e}
.order-card.state-good{border-inline-start-color:#0f6b52}
.order-card.state-neutral{border-inline-start-color:#b0bec5}
.readiness-summary{cursor:pointer;font-weight:600;padding:.6rem 0;color:#37474f}
details.readiness-panel[open] .readiness-summary{margin-bottom:.4rem}
@media (max-width:640px){.order-card{flex-direction:column;align-items:flex-start;gap:.7rem}}

/* the numbers stay available, they just stop being the first thing seen */
.dashboard-details{margin-top:1rem;border-top:1px solid #e3e8ec;padding-top:.6rem}
.details-summary{cursor:pointer;font-weight:600;color:#37474f;padding:.4rem 0}
.dashboard-details[open] .details-summary{margin-bottom:.8rem}

/* fields we filled in from connected accounts, so a wrong guess is visibly correctable */
.derived-note{border-inline-start:4px solid #0f6b52}
.derived-tag{color:#0f6b52;font-size:.72rem;font-weight:600}

/* campaign review: per-ad creative brief cards */
.creative-section h2{margin-top:0;font-size:1.05rem}
.creative-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-top:.8rem}
.creative-card{background:#fff;border:1px solid var(--border);border-inline-start:5px solid var(--primary);
  border-radius:12px;padding:1.1rem;display:flex;flex-direction:column;gap:.7rem}
.creative-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.creative-card-head h3{margin:0;font-size:1rem}
.brief-field{font-size:.9rem}
.copy-field{display:flex;flex-direction:column;gap:.3rem}
.copy-field-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.copy-source{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);border:1px solid var(--border);
  border-radius:8px;padding:.6rem .7rem;margin:0;font-size:.85rem;max-height:12rem;overflow-y:auto}
.copy-btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.3rem .7rem;
  font-size:.78rem;font-weight:600;cursor:pointer;flex-shrink:0}
.copy-btn.copied{background:#eaf6f3;border-color:var(--primary);color:var(--primary)}
.script-table{width:100%;border-collapse:collapse;font-size:.82rem}
.script-table th,.script-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);text-align:start;vertical-align:top}
.reuse-hint{font-size:.85rem}
@media(max-width:700px){.creative-grid{grid-template-columns:1fr}}

/* where the finished asset has to go - PMax video is YouTube-only, so this is
   the difference between a usable brief and an mp4 the owner cannot attach */
.brief-delivery{border-inline-start:3px solid #c9a227;padding-inline-start:.6rem;margin-top:.5rem;font-size:.9rem}

/* one task, platforms as a multi-select - owner order 2026-08-28: no more per-platform
   tabs, a checklist that generates every selected platform's proposal together */
.platform-picker h2,.shared-summary h2{margin-top:0;font-size:1.05rem}
.platform-checklist{display:flex;flex-wrap:wrap;gap:.6rem}
.platform-check-row{display:flex;align-items:center;gap:.5rem;background:#fff;
  border:1px solid var(--border);border-radius:999px;padding:.5rem 1rem;font-size:.88rem;
  font-weight:600;cursor:pointer}
.platform-check-row input[type=checkbox]{width:auto;min-height:0;margin:0}
.platform-check-row.is-disabled{opacity:.62;cursor:default}
.platform-check-row .link{font-weight:600;font-size:.82rem}
.platform-block{margin-top:1rem}
.platform-block h2{margin-top:0;font-size:1.15rem}
.platform-block .creative-section{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
.platform-block .creative-section h3{margin:0 0 .5rem;font-size:1rem}
.shared-summary .stack-form{gap:.5rem}

/* Create-campaign page: the .state-card 760px cap is right for a lone status
   card, wrong for THE working surface of the product - it squeezed every
   platform block into the middle of the screen (owner, 2026-08-29: "why are
   you using only small of middle of page"). Full shell width here. */
.campaign-page .state-card{max-width:none;margin:0 0 24px}
.campaign-page .platform-picker{margin-bottom:24px}
.inline-answer{display:inline-flex;gap:8px;margin-inline-start:10px;vertical-align:middle}
.inline-answer input[type=text]{min-height:40px;border:1px solid var(--border);border-radius:10px;padding:7px 12px;font:inherit;width:230px;max-width:60vw}
.inline-answer .button{min-height:40px;padding:7px 16px}
@media(max-width:640px){.inline-answer{display:flex;margin:8px 0 0;width:100%}.inline-answer input[type=text]{flex:1;width:auto;max-width:none}}

/* Wide screens: the owner works on a ~2100px content area; one 1280px text
   column left half of it empty. Let the page breathe and put platform
   blocks side by side instead of stretching a single column of text. */
.campaign-page{max-width:1720px}
.platform-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(540px,1fr));gap:24px;align-items:start}
.platform-blocks .state-card{margin:0}
@media(max-width:1200px){.platform-blocks{grid-template-columns:1fr}}
.account-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.account-strip select{min-height:40px;border:1px solid var(--border);border-radius:10px;padding:7px 12px;font:inherit}

/* The generated ad reads as an AD, not as data (owner, 2026-08-29). The preview
   mirrors Google's own search-result card; prompts stop looking like code. */
.ad-preview{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 18px;max-width:640px;text-align:left}
.ad-preview-tag{font-size:13px;color:#202124;margin-bottom:4px}
.ad-badge{font-weight:700;border:1px solid #202124;border-radius:4px;padding:0 4px;font-size:11px;margin-inline-end:6px}
.ad-preview-headline{color:#1a0dab;font-size:19px;line-height:1.35;margin:2px 0;cursor:default}
.ad-preview-desc{color:#4d5156;font-size:14px;line-height:1.55}
.fact-chips{display:flex;gap:8px;flex-wrap:wrap}
.fact-chip{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:13px}
.why-fold{margin-top:4px}
.page-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.button-lg{font-size:17px;padding:14px 28px}
/* prompts and scripts are instructions to read, not code to compile */
.copy-source{font-family:inherit;font-size:14px;line-height:1.8;white-space:pre-wrap;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px;margin:8px 0}

/* Council R3 (grok+perplexity, 2026-08-29): body 15px/1.6 floor, Noto Sans
   Arabic for Arabic, Inter for Latin; line-height never below 1.55. */
body{font-size:15px;line-height:1.6}
.platform-accordion{margin:0}
.platform-accordion>summary{cursor:pointer;font-weight:700;font-size:17px;padding:18px 24px;background:var(--surface);border:1px solid var(--border);border-radius:12px;list-style-position:inside}
.platform-accordion[open]>summary{border-radius:12px 12px 0 0}
.platform-accordion>.state-card{border-top:0;border-radius:0 0 12px 12px}
/* the primary platform spans the full row; secondaries stack under it */
.platform-blocks{grid-template-columns:1fr}
.keyword-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kw-chip{background:#eaf6f3;color:var(--primary-dark);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600}
.kw-negative{background:#fdf0ef;color:#9c3428;text-decoration:line-through}

/* Business health page - the entry verdict */
.health-page{max-width:980px}
.health-hero{display:flex;align-items:center;gap:36px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:32px;margin-bottom:28px}
.score-ring{--ring:var(--primary);width:132px;height:132px;border-radius:50%;flex:0 0 auto;
  background:conic-gradient(var(--ring) calc(var(--score)*1%), #e8ebef 0);display:flex;align-items:center;justify-content:center}
.score-ring.verdict-fair{--ring:var(--warning)}
.score-ring.verdict-poor{--ring:#c0392b}
.score-inner{width:104px;height:104px;border-radius:50%;background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center}
.score-inner strong{font-size:34px;line-height:1}
.score-inner small{color:var(--muted);font-size:12px}
.health-verdict h2{margin:0 0 6px;font-size:24px}
.next-actions{margin:4px 0 0;padding-inline-start:20px;font-weight:600}
.health-rows{display:grid;gap:14px}
.health-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 22px}
.health-row-head{display:flex;align-items:center;gap:12px}
.health-row-head h3{margin:0;font-size:16px;flex:1}
.health-dot{width:11px;height:11px;border-radius:50%;background:var(--primary)}
.state-weak .health-dot,.state-unknown .health-dot{background:#94a3b8}
.state-missing .health-dot{background:var(--warning)}
.state-broken .health-dot{background:#c0392b}
.health-state{font-size:13px;font-weight:700;color:var(--muted)}
.state-broken .health-state{color:#c0392b}
.health-row p{margin:8px 0 0}
.health-action{font-weight:600}
.fix-chip{font-size:12px;border-radius:999px;padding:3px 10px;margin-inline-end:6px;font-weight:700}
.fix-auto{background:#eaf6f3;color:var(--primary-dark)}
.fix-upgrade{background:#fff1dc;color:#8a520b}
.fix-owner{background:#e8ebef;color:#4b5563}
.health-evidence{font-size:12px;color:var(--muted)}

/* Chat page - the grounded conversation surface (chat_web.py). User messages
   sit at the inline-end, assistant at the inline-start; logical properties
   mirror the layout automatically under dir="rtl". */
.chat-page{max-width:820px;display:flex;flex-direction:column}
.chat-empty h2{margin:0 0 6px;font-size:18px}
.chat-intents{margin:10px 0 0;padding-inline-start:20px;line-height:2}
.chat-thread{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.chat-msg{max-width:78%;border:1px solid var(--border);border-radius:14px;padding:12px 16px;background:var(--surface)}
.chat-msg p{margin:0;white-space:pre-wrap}
.chat-msg-user{align-self:flex-end;background:#eaf6f3;border-color:#cde8e2;border-end-end-radius:4px}
.chat-msg-assistant{align-self:flex-start;border-end-start-radius:4px}
.chat-refused{background:#fdf8ef;border-color:#f0e2c8}
.chat-who{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}
.chat-refused .chat-who{color:#8a520b}
.chat-cites{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px}
.chat-cites-label{font-size:12px;font-weight:700;color:var(--muted);margin:10px 0 0}
.chat-cites .chat-cites-label{margin:0}
.cite-chip{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px}
.cite-chip code{color:var(--muted);font-size:11px}
.chat-action-note{font-size:13px;font-weight:600;color:var(--primary-dark);margin-top:8px}
.chat-form{display:flex;gap:10px;margin-top:auto}
.chat-input{flex:1;min-height:44px;border:1px solid var(--border);border-radius:12px;padding:10px 14px;font:inherit;background:var(--surface)}
.chat-input:focus{outline:2px solid var(--primary);outline-offset:1px}
.storyboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:8px}
.shot-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px}
.shot-time{font-size:12px;font-weight:700;color:var(--primary-dark)}
.shot-phase{font-size:12px;color:var(--muted)}
.shot-voice{font-size:14px;line-height:1.6;flex:1}
.shot-onscreen{font-size:12px;color:var(--muted);border-top:1px dashed var(--border);padding-top:6px}

/* Creative verdict page - is the problem the creative or the ad? (creative_verdict_web.py) */
.creatives-page{max-width:980px}
.creatives-empty p{margin:0;color:var(--muted);line-height:1.8}
.creative-rows{display:grid;gap:14px}
.creative-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 22px}
.creative-head{display:flex;align-items:center;gap:12px}
.creative-head h3{margin:0;font-size:16px;flex:1;min-width:0;overflow-wrap:anywhere}
.verdict-chip{font-size:12px;border-radius:999px;padding:3px 10px;font-weight:700;white-space:nowrap}
.chip-hook,.chip-body{background:#fee4e2;color:#b42318}
.chip-ad{background:#fff1dc;color:#8a520b}
.chip-healthy{background:#eaf6f3;color:var(--primary-dark)}
.chip-no_data{background:#e8ebef;color:#4b5563}
.creative-reason{margin:8px 0 0;color:var(--muted);line-height:1.8}
.retention-curve{display:block;width:100%;max-width:420px;height:64px;margin-top:12px;background:var(--bg);border:1px solid var(--border);border-radius:8px}
.retention-curve polyline{stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke}
.creative-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0;font-size:13px;color:var(--muted)}

/* Performance page - the one money-first answer (performance_web.py). Append-only block. */
.performance-page{max-width:1080px}
.perf-verdict{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:none;margin:0 0 24px}
.perf-verdict .dot{flex:0 0 auto}
.perf-freshness{font-size:13px}
.performance-page .dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#94a3b8}
.performance-page .dot-yellow{background:var(--warning)}
.performance-page .dot-green{background:var(--primary)}
.performance-page .dot-grey{background:#94a3b8}
.perf-money h2,.perf-list h2{font-size:18px;margin:0 0 14px}
.perf-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.perf-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 22px}
.perf-card h3{margin:0 0 12px;font-size:16px}
.perf-card.perf-untracked{border-inline-start:5px solid var(--warning)}
.perf-metric{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 0;border-top:1px dashed var(--border);padding-top:8px}
.perf-metric:first-of-type{border-top:0;padding-top:0}
.perf-metric-label{color:var(--muted);font-size:13px}
.perf-amount{font-weight:700;white-space:nowrap}
.perf-amount .currency-code{font-size:12px;color:var(--muted);font-weight:600}
.perf-note{font-size:13px;line-height:1.7;margin:8px 0 0}
.perf-honesty{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 0;color:#8a520b;font-weight:600}
.perf-honesty .button{min-height:36px;padding:7px 12px}
.perf-combined{margin:14px 0 0;font-size:13px}
.perf-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:32px}
.perf-row{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 18px;margin-bottom:12px}
.perf-row.state-good{border-inline-start:5px solid var(--primary)}
.perf-row.state-danger{border-inline-start:5px solid #b3261e}
.perf-row h3{margin:0;font-size:15px}
.perf-identity{margin:4px 0 0;font-size:12px}
.perf-why{margin:8px 0 0;font-weight:600;line-height:1.7}
.perf-insufficient{margin-top:6px;font-size:13px}
.perf-empty{max-width:640px;line-height:1.8}
.perf-action{display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:none;margin:32px 0 0;border-inline-start:5px solid var(--primary)}
.perf-action .button{margin-inline-start:auto}
@media(max-width:800px){.perf-lists{grid-template-columns:1fr}.perf-action{align-items:flex-start;flex-direction:column}.perf-action .button{margin-inline-start:0}}

/* --- append-only (2026-08-31): health page tab groups + sidebar prominence --- */

/* Health: "Working on" account line under the score header */
.working-account{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-12px 0 20px;color:var(--muted);font-size:14px}
.working-account strong{color:var(--ink)}
.account-switch{display:inline-flex;gap:6px;flex-wrap:wrap}
.account-switch a{border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:12px;text-decoration:none;color:var(--muted);background:var(--surface)}
.account-switch a:hover{background:var(--bg)}
.account-switch a.active{background:#eaf6f3;border-color:var(--primary);color:var(--primary-dark);font-weight:700}

/* Health: in-page tabs grouped by relevance (owner order 2026-08-31) */
.fix-all-form{margin:16px 0 4px}
.health-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:2px solid var(--border);margin:20px 0 16px}
.health-tab{display:inline-flex;align-items:center;gap:8px;border:0;background:none;font:inherit;font-weight:700;font-size:15px;color:var(--muted);padding:10px 16px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px}
.health-tab:hover{color:var(--ink)}
.health-tab.active{color:var(--ink);border-bottom-color:var(--primary)}
.tab-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.tab-dot-red{background:#c0392b}
.tab-dot-amber{background:var(--warning)}
.tab-dot-green{background:var(--primary)}
.tab-dot-grey{background:#94a3b8}
.health-panel .tab-empty{color:var(--muted);margin:4px 0;background:var(--surface);border:1px dashed var(--border);border-radius:12px;padding:16px 20px}
.health-leftover{margin-top:14px}

/* Health: PENDING_DATA renders as an amber "created" chip, distinct from Missing */
.state-pending_data .health-dot{background:var(--warning)}
.state-pending_data .health-state{background:#fff1dc;color:#8a520b;border-radius:999px;padding:3px 10px}

/* Sidebar: main section headers become visually primary (owner order 2026-08-31:
   "the main tabs need to be more obvious"). Markup untouched - test_nav stays
   green; logical properties keep RTL mirroring. */
@media(min-width:900px){
  .sidebar-nav{gap:10px}
  .nav-section{border-top:1px solid var(--border);padding-top:12px}
  .nav-section:first-child{border-top:0;padding-top:0}
  .nav-section h2{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:.08em;margin:0 10px 8px}
  .nav-section:has(.nav-item.active){background:#f2f8f6;border-radius:12px;padding:10px 6px 8px;margin-inline:-6px;border-top-color:transparent}
  .nav-section:has(.nav-item.active) h2{color:var(--primary)}
}
/* --- performance daily breakdown (performance_web.py daily section) --------- */
.perf-daily{margin-top:32px}
.perf-daily h2{font-size:18px;margin:0 0 14px}
.perf-daily-channel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 20px;margin-bottom:16px}
.perf-daily-channel h3{margin:0 0 10px;font-size:15px}
.perf-daily-channel.perf-untracked{border-inline-start:5px solid var(--warning)}
.perf-spark{display:block;width:100%;max-width:420px;height:44px;margin:0 0 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px}
.perf-spark polyline{stroke:var(--primary);stroke-width:2;vector-effect:non-scaling-stroke}
.perf-daily-scroll{overflow-x:auto}
.perf-daily-table{width:100%;border-collapse:collapse;font-size:13px;min-width:340px}
.perf-daily-table th{text-align:start;color:var(--muted);font-weight:600;padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.perf-daily-table td{padding:6px 10px;border-bottom:1px dashed var(--border);white-space:nowrap}
.perf-daily-table tr:last-child td{border-bottom:0}
.perf-daily-gap{margin:4px 0 0;font-size:12px}
/* dashboard stored score circles */
.scores-strip{display:flex;align-items:flex-start;gap:clamp(14px,2.4vw,30px);overflow-x:auto;padding:8px 2px 22px;scrollbar-width:thin}.scores-strip .scores-circle{--score-color:var(--muted);position:relative;display:grid;grid-template-columns:82px;grid-template-rows:82px auto;justify-items:center;gap:7px;min-width:104px;color:var(--ink);text-decoration:none;text-align:center}.scores-strip svg{width:82px;height:82px;grid-area:1/1;transform:rotate(-90deg)}.scores-strip circle{fill:none;stroke-width:4}.scores-strip .scores-track{stroke:var(--border)}.scores-strip .scores-progress{stroke:var(--score-color);stroke-linecap:round;stroke-dasharray:var(--score) 100}.scores-strip strong{grid-area:1/1;align-self:center;z-index:1;font-size:17px;letter-spacing:-.02em}.scores-strip span{font-size:13px;font-weight:700;line-height:1.25}.scores-strip .score-good{--score-color:var(--primary)}.scores-strip .score-warn{--score-color:var(--warning)}.scores-strip .score-bad{--score-color:#c0392b}.scores-strip .score-unknown{--score-color:#9aa2ad;color:var(--muted)}.scores-strip .scores-circle:hover strong{color:var(--primary)}
