:root{
  --ink:#111417;
  --ink-2:#242a2f;
  --muted:#687078;
  --line:#e2e7e9;
  --soft:#f5f7f8;
  --soft-2:#edf2f3;
  --cyan:#09dfe7;
  --cyan-dark:#00aeb8;
  --cyan-soft:#e7fbfc;
  --green:#168651;
  --green-soft:#eaf8f1;
  --red:#d24b4b;
  --red-soft:#fff0f0;
  --amber:#b87312;
  --amber-soft:#fff5e4;
  --nav:#111418;
  --shadow:0 14px 40px rgba(18,27,32,.08);
  --radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f2f4f5;color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:var(--nav);color:#fff;padding:23px 18px;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;padding:4px 8px 23px;border-bottom:1px solid #2b3034}
.brand img{width:92px;height:42px;object-fit:contain;background:#fff;border-radius:7px;padding:3px}
.brand span{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:#c0c8cc;font-weight:850}
.main-nav{display:grid;gap:7px;margin-top:22px}
.nav-link{color:#c8d0d4;text-decoration:none;display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:10px;font-weight:760}
.nav-link span{display:grid;place-items:center;width:22px;color:var(--cyan)}
.nav-link:hover,.nav-link.active{background:#252b30;color:#fff}
.sidebar-spacer{flex:1}
.sidebar-note{display:flex;gap:10px;align-items:flex-start;border-top:1px solid #2c3034;padding:18px 8px 15px}
.sidebar-note div{display:grid;gap:3px}.sidebar-note strong{font-size:13px}.sidebar-note small{color:#97a2a8;line-height:1.3}
.status-pulse{width:10px;height:10px;border-radius:50%;background:var(--cyan);margin-top:4px;box-shadow:0 0 0 5px rgba(9,223,231,.12)}
.user-card{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;border-top:1px solid #2c3034;padding:16px 7px 0}
.user-card div{min-width:0;display:grid;gap:2px}.user-card strong{font-size:12px}.user-card small{font-size:10px;color:#929ca1;overflow:hidden;text-overflow:ellipsis}.user-card a{text-decoration:none;color:#aab5ba}
.user-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#2c3439;color:var(--cyan);font-weight:900}
.main-content{min-width:0;padding:28px 32px 48px}
.topbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:26px}
.topbar h1{font-size:34px;letter-spacing:-.035em;margin:4px 0 6px}.topbar p{margin:0}
.eyebrow{font-size:11px;font-weight:900;letter-spacing:.11em;color:#717b82;margin:0 0 5px;text-transform:uppercase}.eyebrow.cyan{color:var(--cyan)}
.subtle{color:var(--muted);line-height:1.55}
.topbar-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap;justify-content:flex-end}
.client-picker{display:grid;gap:5px}.client-picker span{font-size:10px;text-transform:uppercase;font-weight:850;color:var(--muted)}
select,input,textarea{border:1px solid #d8dde0;border-radius:9px;background:#fff;color:var(--ink);outline:none}
select:focus,input:focus,textarea:focus{border-color:var(--cyan-dark);box-shadow:0 0 0 3px rgba(9,223,231,.14)}
.client-picker select{min-width:215px;padding:10px 36px 10px 11px}
.button{border:1px solid transparent;border-radius:9px;padding:11px 15px;font-weight:820;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}
.button.primary{background:var(--ink);color:#fff}.button.primary:hover{background:#262b2f}.button.ghost{background:#fff;color:var(--ink);border-color:#d8dde0}.button.ghost:hover{border-color:#aeb7bc}.button.full-width{width:100%;margin-top:10px}.button[disabled]{opacity:.55;cursor:not-allowed}
.text-link{color:#00747c;text-decoration:none;font-weight:800}.text-link:hover{text-decoration:underline}
.alert{display:flex;justify-content:space-between;gap:15px;align-items:center;border-radius:10px;padding:13px 15px;margin-bottom:18px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:13px;box-shadow:var(--shadow)}
.alert.success{background:var(--green-soft);border-color:#c9ead9;color:#126c43}.alert.error{background:var(--red-soft);border-color:#f2cccc;color:#9e3030}.alert.info{background:var(--cyan-soft);border-color:#bdeff1;color:#006d74}.alert button{border:0;background:none;font-size:20px;color:inherit}
.panel,.welcome-card,.summary-tile,.client-card,.report-preview-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.overview-grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(145px,.65fr));gap:14px;margin-bottom:22px}
.welcome-card{padding:24px;display:flex;justify-content:space-between;gap:25px;align-items:center}.dark-card{background:linear-gradient(135deg,#111418,#272d32);color:#fff;border:0}.dark-card h2{font-size:28px;margin:7px 0 10px}.dark-card p:not(.eyebrow){color:#c7d0d4;line-height:1.6;margin:0;max-width:640px}
.automation-score{min-width:134px;width:134px;height:134px;border-radius:50%;border:9px solid rgba(255,255,255,.12);border-top-color:var(--cyan);display:grid;place-content:center;text-align:center}.automation-score strong{font-size:30px}.automation-score span{max-width:88px;font-size:10px;color:#bfc8cc;text-transform:uppercase;font-weight:800;line-height:1.35}
.summary-tile{padding:20px;display:grid;align-content:center;gap:6px}.summary-tile span{font-size:12px;color:var(--muted)}.summary-tile strong{font-size:34px}.summary-tile small{color:#8a9297;line-height:1.35}
.section-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin:0 0 16px}.section-header.compact{align-items:flex-start}.section-header h2{font-size:23px;margin:3px 0 0;letter-spacing:-.02em}.section-header p.subtle{margin:6px 0 0}
.table-panel{padding:0;overflow:hidden;margin-bottom:20px}.table-panel .section-header{padding:21px 20px 0}
.client-table-head,.client-row{display:grid;grid-template-columns:1.25fr 1.2fr .8fr .65fr 94px;gap:15px;align-items:center;padding:15px 20px}.client-table-head{background:#fafbfb;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.client-row{border-bottom:1px solid var(--line)}.client-row:last-child{border-bottom:0}
.client-name{display:flex;gap:11px;align-items:center;min-width:0}.client-name>div{min-width:0;display:grid;gap:3px}.client-name strong{font-size:14px}.client-name small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.client-name h3{margin:0;font-size:17px}.client-name p{margin:2px 0 0;color:var(--muted)}
.client-avatar{width:44px;height:44px;border-radius:12px;background:var(--ink);color:var(--cyan);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.client-avatar.small{width:36px;height:36px;border-radius:10px;font-size:12px}
.source-pills{display:flex;gap:6px;flex-wrap:wrap}.source-pills.large{margin:3px 0}.source-pill{font-size:10px;border-radius:999px;padding:5px 8px;background:#edf3f4;color:#566169;font-weight:850}.source-pill.on{background:var(--green-soft);color:var(--green)}.source-pill.warn{background:var(--amber-soft);color:var(--amber)}.source-pill.planned{background:#edf0f2;color:#7b848a}
.badge{display:inline-flex;width:max-content;align-items:center;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.badge.ready,.badge.connected,.badge.approved{background:var(--green-soft);color:var(--green)}.badge.issue,.badge.warning{background:var(--amber-soft);color:var(--amber)}.badge.setup,.badge.pending,.badge.not_connected,.badge.planned,.badge.draft{background:#edf0f2;color:#616a70}
.row-action{border:1px solid #d9dfe2;background:#fff;border-radius:8px;padding:8px 10px;font-weight:800;text-decoration:none;text-align:center}.row-action:hover{border-color:var(--cyan-dark)}
.content-grid{display:grid;gap:18px}.two-columns{grid-template-columns:1.35fr .8fr}.connections-layout{grid-template-columns:1.1fr .8fr;margin-bottom:18px}.onboarding-grid{grid-template-columns:1.15fr .85fr}.panel{padding:22px}.muted-panel{background:linear-gradient(145deg,#f7fafb,#edf4f5)}
.automation-list{display:grid;gap:18px}.automation-list>div{display:grid;grid-template-columns:34px 1fr;gap:13px}.automation-list strong{font-size:14px}.automation-list p{color:var(--muted);margin:5px 0 0;line-height:1.5}.check{width:31px;height:31px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:900}
.lead-copy{color:var(--muted);line-height:1.6;margin:0 0 18px}.mini-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mini-status-grid>div{background:var(--soft);padding:12px;border-radius:9px;display:grid;gap:4px}.mini-status-grid span{font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:850}.mini-status-grid strong{font-size:12px}
.toolbar-row{display:flex;justify-content:space-between;gap:15px;align-items:flex-end;margin-bottom:20px}.toolbar-row h2{margin:4px 0 0}
.client-card-grid{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:16px;margin-bottom:22px}.client-card{padding:20px;display:grid;gap:16px}.client-card.selected{border-color:var(--cyan-dark);box-shadow:0 0 0 3px rgba(9,223,231,.12),var(--shadow)}.client-card-top{display:flex;justify-content:space-between;gap:15px}.client-card p{margin:0;color:var(--muted);font-size:13px}.client-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.client-meta div{background:var(--soft);border-radius:9px;padding:10px}.client-meta span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:850;margin-bottom:5px}.client-meta strong{font-size:12px}
.stack-form{display:grid;gap:13px}.field{display:grid;gap:7px}.field>span{font-size:11px;font-weight:850;color:#596268}.field input,.field select,.field textarea{width:100%;padding:11px 12px}.field textarea{min-height:108px;resize:vertical;line-height:1.5}.field small{color:var(--muted);font-size:10px;line-height:1.45}
.numbered-list{display:grid;gap:16px;margin:22px 0 0;padding:0;list-style:none;counter-reset:item}.numbered-list li{display:grid;grid-template-columns:30px 1fr;gap:11px;align-items:start;color:#485158;line-height:1.5}.numbered-list li:before{counter-increment:item;content:counter(item);width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--cyan);display:grid;place-items:center;font-weight:900}
.setup-stepper{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:18px 0}.setup-stepper span{background:var(--soft);border-radius:9px;padding:11px;font-size:10px;font-weight:850;color:var(--muted);text-align:center}.setup-stepper span.complete{background:var(--green-soft);color:var(--green)}
.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.source-card{border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:start}.source-card-icon{width:36px;height:36px;border-radius:10px;background:var(--soft-2);display:grid;place-items:center;font-weight:900}.source-card div:nth-child(2){min-width:0}.source-card strong{font-size:12px}.source-card p{margin:4px 0;color:var(--muted);font-size:11px;line-height:1.4}.source-card small{font-size:10px;color:#879096}
.empty-state{text-align:center;padding:55px 25px}.empty-state h2{margin:10px 0}.empty-state p{color:var(--muted);max-width:580px;margin:0 auto 20px;line-height:1.55}.empty-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--soft);margin:auto;font-size:26px;color:var(--cyan-dark)}
.report-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}.report-controls{position:sticky;top:20px}.report-controls h2{margin:4px 0 16px}.report-control-summary{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--line)}.report-control-summary span{font-size:11px;color:var(--muted)}.report-control-summary strong{font-size:12px;text-align:right}
.connection-checks{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:15px 0}.connection-check{display:flex;align-items:center;justify-content:space-between;padding:11px;border-bottom:1px solid var(--line)}.connection-check:last-child{border-bottom:0}.connection-check div{display:grid;gap:3px}.connection-check strong{font-size:12px}.connection-check small{font-size:10px;color:var(--muted)}.connection-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:900}.connection-icon.ok{background:var(--green-soft);color:var(--green)}.connection-icon.warn{background:var(--amber-soft);color:var(--amber)}.connection-icon.planned{background:#edf0f2;color:#6d767c}
.report-history{display:grid;gap:8px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.report-history>strong{font-size:11px;text-transform:uppercase;color:var(--muted)}.report-history a{display:flex;justify-content:space-between;text-decoration:none;border-radius:8px;padding:9px;background:var(--soft);font-size:11px}.report-history small{color:var(--muted)}
.report-workspace{min-width:0}.report-preview-card{padding:24px}.report-preview-top{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.report-preview-top h2{font-size:28px;margin:4px 0}.report-preview-top p:not(.eyebrow){color:var(--muted);margin:0}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.kpi-grid.five{grid-template-columns:repeat(5,1fr)}.kpi{background:var(--soft);border-radius:10px;padding:14px;display:grid;gap:6px}.kpi span{font-size:10px;color:var(--muted);font-weight:800}.kpi strong{font-size:20px}.delta{font-size:10px;font-weight:850}.delta.positive{color:var(--green)}.delta.negative{color:var(--red)}.delta.neutral{color:var(--amber)}
.insight-card{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff;margin-bottom:14px}.insight-card.warning-card{background:var(--red-soft);border-color:#f4cccc}.insight-card h3{font-size:19px;margin:3px 0 8px}.insight-card p{line-height:1.6;color:#50585e}.card-title-row{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.auto-label{font-size:9px;text-transform:uppercase;font-weight:900;background:var(--cyan-soft);color:#00727a;border-radius:999px;padding:6px 8px}
.summary-editor{width:100%;min-height:158px;border:0;border-radius:0;resize:vertical;line-height:1.72;color:#3f474c;padding:4px 0;box-shadow:none}.summary-editor:focus{border:0;box-shadow:none;outline:2px solid var(--cyan);border-radius:7px;padding:9px}
.report-action-row{display:flex;justify-content:flex-end;gap:10px;margin:-4px 0 15px}.report-section-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.metric-list{display:grid}.metric-list>div{display:grid;grid-template-columns:1fr auto 58px;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}.metric-list>div:last-child{border-bottom:0}.metric-list span{font-size:12px;color:var(--muted)}.metric-list strong{font-size:13px}.metric-list small{text-align:right}
.action-list{display:grid;gap:12px}.action-item{display:grid;grid-template-columns:30px 1fr auto;gap:11px;align-items:start}.action-item>span{width:28px;height:28px;border-radius:50%;background:var(--cyan-soft);color:#00727a;display:grid;place-items:center;font-weight:900}.action-item strong{font-size:12px}.action-item p{font-size:11px;margin:4px 0 0;color:var(--muted)}.action-item>small{font-size:9px;text-transform:uppercase;font-weight:900;color:var(--amber)}
.compact-table{display:grid}.compact-table>div{display:grid;grid-template-columns:1fr auto 55px;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);align-items:center}.compact-table>div:last-child{border-bottom:0}.compact-table span{font-size:11px;overflow:hidden;text-overflow:ellipsis}.compact-table strong{font-size:11px}.compact-table small{text-align:right}
.account-list{display:grid;gap:10px;margin-bottom:16px}.account-card{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:13px}.provider-logo{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-weight:900}.provider-logo.google{background:#fff3dd;color:#e49300}.provider-logo.meta{background:#eef0ff;color:#5266bd}.account-card div{min-width:0}.account-card strong{font-size:12px}.account-card p{margin:3px 0 0;color:var(--muted);font-size:11px}
.roadmap-list{display:grid;gap:14px;margin-top:18px}.roadmap-list>div{display:grid;grid-template-columns:30px 1fr;gap:11px}.roadmap-list>div>span{width:28px;height:28px;border-radius:50%;background:#fff;display:grid;place-items:center;font-weight:900}.roadmap-list strong{font-size:12px}.roadmap-list p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
.mapping-table{display:grid}.mapping-row{display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:15px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.mapping-row:last-child{border-bottom:0}.mapping-row>div{display:grid;gap:3px}.mapping-row span{font-size:10px;color:var(--muted)}.mapping-row strong{font-size:12px}.mapping-row small{font-size:10px;color:var(--muted)}
.template-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.template-card{display:flex;flex-direction:column}.template-card h2{font-size:18px;margin:12px 0 8px}.template-card p{color:var(--muted);line-height:1.55;flex:1}.template-card>small{color:#879096;margin-bottom:14px}.template-icon{width:42px;height:42px;border-radius:12px;background:var(--cyan-soft);color:#00727a;display:grid;place-items:center;font-size:22px}
.settings-list{display:grid}.settings-list label{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.settings-list label:last-child{border-bottom:0}.settings-list div{display:grid;gap:3px}.settings-list strong{font-size:12px}.settings-list small{color:var(--muted);line-height:1.4}.toggle{width:42px;height:22px;border-radius:999px;background:#cdd3d6;position:relative;flex:0 0 auto}.toggle:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:#fff;left:3px;top:3px;box-shadow:0 1px 4px rgba(0,0,0,.2)}.toggle.on{background:var(--cyan-dark)}.toggle.on:after{left:23px}
.deployment-checks{display:grid;gap:11px;margin-top:18px}.deployment-checks>div{display:flex;gap:10px;align-items:center;font-size:12px}.deployment-checks span{width:24px;height:24px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:900}.deployment-checks .pending span{background:#edf0f2;color:#697279}.deployment-checks .pending{color:var(--muted)}
/* authentication */
.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,rgba(9,223,231,.16),transparent 28%),linear-gradient(145deg,#111418,#272d32);padding:24px}.auth-shell{width:min(470px,100%)}.auth-brand{display:flex;align-items:center;justify-content:center;gap:12px;color:#fff;margin-bottom:18px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.auth-brand img{width:96px;height:44px;object-fit:contain;background:#fff;border-radius:7px;padding:3px}.auth-card{background:#fff;border-radius:18px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28)}.auth-card h1{font-size:30px;line-height:1.1;margin:5px 0 9px;letter-spacing:-.035em}.auth-footnote{text-align:center;color:#b7c2c7;font-size:11px;margin-top:14px}
/* printable report */
.report-document-page{background:#dfe3e5;padding:20px}.report-document-toolbar{position:sticky;top:10px;z-index:30;background:#fff;border-radius:12px;padding:12px 15px;margin:0 auto 15px;width:min(210mm,100%);display:flex;justify-content:space-between;box-shadow:var(--shadow)}.report-document{width:210mm;margin:auto;box-shadow:0 18px 60px rgba(0,0,0,.18)}.print-page{width:210mm;min-height:297mm;padding:17mm 18mm;position:relative;page-break-after:always;background:#fff}.report-cover{background:linear-gradient(145deg,#fff 0 63%,#e8fbfc 63%);overflow:hidden}.report-cover:after{content:"";position:absolute;width:155mm;height:155mm;border-radius:50%;background:var(--cyan);right:-86mm;bottom:-84mm}.report-brand{display:flex;align-items:center;gap:5mm;position:relative;z-index:2}.report-brand img{width:43mm;height:17mm;object-fit:contain;object-position:left center}.report-brand span{font-size:9pt;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.cover-content{margin-top:46mm;position:relative;z-index:2}.client-mark{width:20mm;height:20mm;border-radius:5mm;background:var(--ink);color:var(--cyan);display:grid;place-items:center;font-size:18pt;font-weight:900;margin-bottom:8mm}.cover-content h1{font-size:39pt;line-height:1.02;letter-spacing:-.045em;max-width:150mm;margin:3mm 0 4mm}.cover-content>p:not(.eyebrow):not(.cover-copy){font-size:16pt;color:#535c62}.cover-divider{width:22mm;border-top:2px solid var(--ink);margin:13mm 0 5mm}.cover-copy{max-width:120mm;font-size:12pt!important;line-height:1.6;color:#556067!important}.cover-footer{position:absolute;left:18mm;right:18mm;bottom:16mm;display:flex;justify-content:space-between;font-weight:800;font-size:9pt;z-index:2}.report-sheet{display:flex;flex-direction:column}.document-header{display:flex;justify-content:space-between;gap:15mm;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:5mm;margin-bottom:10mm}.document-header h2{font-size:25pt;margin:2mm 0 0}.document-header>span{font-size:9pt;text-transform:uppercase;font-weight:900;color:var(--muted)}.document-kpis,.document-metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm;margin-bottom:8mm}.document-kpis{grid-template-columns:repeat(5,1fr)}.document-metric-grid.five{grid-template-columns:repeat(5,1fr)}.document-kpis article,.document-metric-grid article{border:1px solid var(--line);border-radius:3mm;padding:5mm;display:grid;gap:2mm}.document-kpis span,.document-metric-grid span{font-size:8.5pt;color:var(--muted)}.document-kpis strong,.document-metric-grid strong{font-size:17pt}.document-kpis small,.document-metric-grid small{font-size:8pt}.document-summary{background:#f3f6f7;border-radius:3mm;padding:7mm;margin-bottom:8mm}.document-summary p{font-size:11pt;line-height:1.68;margin:0;color:#41494e}.document-section-title{border-top:2px solid var(--ink);padding-top:4mm;margin:4mm 0}.document-section-title h3{font-size:16pt;margin:1mm 0}.document-actions{display:grid;gap:3mm}.document-actions article{display:grid;grid-template-columns:10mm 1fr 16mm;gap:4mm;border:1px solid var(--line);border-radius:3mm;padding:4mm}.document-actions article>span{width:9mm;height:9mm;border-radius:50%;background:var(--cyan-soft);color:#00727a;display:grid;place-items:center;font-weight:900}.document-actions strong{font-size:10pt}.document-actions p{font-size:8.6pt;line-height:1.45;color:var(--muted);margin:1mm 0 0}.document-actions small{text-transform:uppercase;font-size:7pt;font-weight:900;color:var(--amber)}.document-table{display:grid}.document-table>div{display:grid;grid-template-columns:1fr 25mm 22mm;gap:5mm;padding:3.2mm;border-bottom:1px solid var(--line);align-items:center}.document-table-head{background:var(--soft);text-transform:uppercase;font-size:7.5pt;font-weight:900;color:var(--muted)}.document-table span{font-size:8.5pt}.document-table strong{font-size:8.5pt}.document-table small{text-align:right}.document-highlight{border-radius:3mm;padding:7mm;margin:8mm 0}.document-highlight h3{font-size:17pt;margin:2mm 0}.document-highlight p:not(.eyebrow){font-size:10pt;line-height:1.6;margin:0;color:#4c555b}.positive-highlight{background:var(--green-soft)}.warning-highlight{background:var(--red-soft);border-left:4px solid var(--red)}.neutral-highlight{background:var(--soft)}.document-copy{font-size:11pt;line-height:1.65;color:#4c555b}.future-platform-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5mm;margin:8mm 0}.future-platform-grid article{border:1px solid var(--line);border-radius:3mm;padding:7mm}.future-platform-grid article>span{width:12mm;height:12mm;border-radius:3mm;background:var(--cyan-soft);color:#00727a;display:grid;place-items:center;font-weight:900}.future-platform-grid h3{font-size:13pt;margin:5mm 0 2mm}.future-platform-grid p{font-size:9pt;line-height:1.5;color:var(--muted)}.document-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:4mm;display:flex;justify-content:space-between;font-size:8pt;color:var(--muted)}
@media(max-width:1280px){.overview-grid{grid-template-columns:1.5fr repeat(3,.7fr)}.client-card-grid{grid-template-columns:repeat(2,1fr)}.source-grid{grid-template-columns:repeat(2,1fr)}.template-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.main-nav{display:flex;flex-wrap:wrap}.sidebar-note,.user-card{display:none}.topbar{flex-direction:column}.topbar-actions{justify-content:flex-start}.overview-grid{grid-template-columns:1fr 1fr}.welcome-card{grid-column:1/-1}.two-columns,.connections-layout,.onboarding-grid,.report-layout{grid-template-columns:1fr}.report-controls{position:static}.report-section-grid{grid-template-columns:1fr}.mapping-row{grid-template-columns:1fr 1fr}.template-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.main-content{padding:22px 15px}.sidebar{padding:16px}.brand{padding-bottom:16px}.topbar h1{font-size:29px}.topbar-actions{width:100%;display:grid}.client-picker select{width:100%}.overview-grid{grid-template-columns:1fr}.welcome-card{display:grid}.automation-score{width:105px;height:105px;min-width:105px}.client-table-head{display:none}.client-row{grid-template-columns:1fr;gap:10px}.client-card-grid,.source-grid,.template-grid{grid-template-columns:1fr}.setup-stepper{grid-template-columns:1fr}.kpi-grid.five{grid-template-columns:repeat(2,1fr)}.report-preview-top{flex-direction:column}.mini-status-grid{grid-template-columns:1fr}.mapping-row{grid-template-columns:1fr}.account-card{grid-template-columns:40px 1fr}.account-card>.badge{grid-column:2}.report-document,.print-page{width:100%}.report-document-page{padding:0}.report-document-toolbar{border-radius:0}}
@media print{.no-print{display:none!important}.report-document-page{background:#fff;padding:0}.report-document{box-shadow:none;margin:0}.print-page{margin:0}@page{size:A4;margin:0}}

/* MiHi Hub v4 — live Google connection UI */
.callback-code {
    display: block;
    margin: 12px 0;
    padding: 12px 14px;
    overflow-wrap: anywhere;
    border: 1px solid rgba(10, 89, 77, .18);
    border-radius: 10px;
    background: #f7faf9;
    font-size: .88rem;
}
.account-card-actions {
    align-items: flex-start;
    gap: 14px;
}
.account-card-copy {
    flex: 1;
    min-width: 0;
}
.account-card-copy small {
    display: block;
    margin-top: 5px;
    color: var(--muted, #66736f);
}
.connection-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
}
.connection-controls form {
    margin: 0;
}
.small-button {
    min-height: 36px;
    padding: 8px 12px;
    font-size: .84rem;
}
.text-button {
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #6b7471;
    padding: 7px 4px;
    font-size: .82rem;
}
.disabled-link {
    pointer-events: none;
    opacity: .5;
}
.connection-error {
    color: #a54b3f !important;
}
.resource-panel {
    margin-top: 22px;
}
.resource-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}
.resource-columns h3 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 10px;
}
.resource-columns h3 small {
    display: inline-grid;
    place-items: center;
    min-width: 28px;
    min-height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: #edf5f2;
    color: #0b5c4f;
}
.resource-list {
    display: grid;
    gap: 8px;
    max-height: 410px;
    overflow: auto;
}
.resource-list > div {
    padding: 11px 12px;
    border: 1px solid #e4e9e7;
    border-radius: 10px;
    background: #fff;
}
.resource-list strong,
.resource-list small {
    display: block;
}
.resource-list small {
    margin-top: 3px;
    color: #72807b;
    overflow-wrap: anywhere;
}

@media (max-width: 900px) {
    .account-card-actions {
        display: grid;
        grid-template-columns: auto 1fr;
    }
    .connection-controls {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }
    .resource-columns {
        grid-template-columns: 1fr;
    }
}

/* MiHi Hub v5 — property mapping and live reporting */
.mapping-form { display: grid; gap: 20px; margin-top: 22px; }
.mapping-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.mapping-editor-card { border: 1px solid var(--line); border-radius: 16px; padding: 20px; background: #fbfcfc; display: grid; gap: 15px; }
.mapping-editor-heading { display: flex; align-items: center; gap: 12px; }
.mapping-editor-heading > div { min-width: 0; }
.mapping-editor-heading strong, .mapping-editor-heading small { display: block; }
.mapping-editor-heading small { margin-top: 3px; color: var(--muted); }
.resource-select { width: 100%; }
.live-import-bar { display: grid; grid-template-columns: minmax(220px, 1fr) 155px 155px auto auto; align-items: end; gap: 12px; padding: 17px; border-radius: 14px; background: var(--soft); border: 1px solid var(--line); }
.live-import-bar p { margin: 0 0 3px; }
.live-import-bar strong { font-size: .95rem; }
.compact-field { margin: 0; }
.compact-source-grid { margin-top: 22px; }
.query-table > div { grid-template-columns: minmax(0, 1.5fr) auto auto; }
.truncate-url { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.document-search-table { display: grid; margin-top: 5mm; }
.document-search-table > div { display: grid; grid-template-columns: minmax(0, 1fr) 18mm 24mm 17mm 18mm; gap: 3mm; align-items: center; padding: 2.8mm 3mm; border-bottom: 1px solid var(--line); font-size: 8pt; }
.document-search-table .document-search-head { background: var(--soft); text-transform: uppercase; color: var(--muted); font-weight: 900; font-size: 7pt; }
.document-search-table strong { font-size: 8pt; }
.report-url { overflow-wrap: anywhere; font-size: 7.4pt; }
.page-table > div { grid-template-columns: minmax(0, 1fr) 18mm 24mm 17mm 18mm; }
@media (max-width: 1100px) {
  .mapping-editor-grid { grid-template-columns: 1fr; }
  .live-import-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .live-import-bar > div { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .live-import-bar { grid-template-columns: 1fr; }
  .live-import-bar > div { grid-column: auto; }
}

/* MiHi Hub v5.2 — concise report structure and reliable PDF pagination */
.original-six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.google-reach-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.document-supporting-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4mm;
    margin-bottom: 7mm;
}
.document-supporting-metrics article {
    border: 1px solid var(--line);
    border-radius: 3mm;
    padding: 4mm 5mm;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1.5mm 4mm;
    align-items: center;
    background: var(--soft);
}
.document-supporting-metrics span { font-size: 8pt; color: var(--muted); }
.document-supporting-metrics strong { font-size: 13pt; }
.document-supporting-metrics small { grid-column: 1 / -1; font-size: 7.5pt; }
.compact-title { margin: 3mm 0; padding-top: 3mm; }
.compact-title h3 { font-size: 13pt; }
.compact-copy { font-size: 9.5pt; line-height: 1.55; }
.source-performance-table > div { padding-top: 3mm; padding-bottom: 3mm; }
.second-table-title { margin-top: 6mm; }
.compact-search-table > div { padding-top: 2.2mm; padding-bottom: 2.2mm; }
.search-detail-page .document-header { margin-bottom: 6mm; }
.supporting-stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
.supporting-stat-row > span {
    display: grid;
    gap: 2px;
    min-width: 110px;
    padding: 8px 10px;
    border-radius: 9px;
    background: var(--soft);
}
.supporting-stat-row small { color: var(--muted); font-size: 10px; }
.supporting-stat-row strong { font-size: 14px; }

/* Keep each report section on its own A4 page in browser print/PDF output. */
.print-page {
    break-after: page;
    page-break-after: always;
    break-inside: avoid-page;
    page-break-inside: avoid;
}
.print-page:last-child {
    break-after: auto;
    page-break-after: auto;
}
.document-kpis article,
.document-metric-grid article,
.document-supporting-metrics article,
.document-actions article,
.document-table > div,
.document-search-table > div,
.document-highlight {
    break-inside: avoid;
    page-break-inside: avoid;
}

@media print {
    html, body { width: 210mm; }
    body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .report-document { width: 210mm; }
    .print-page {
        display: block;
        width: 210mm;
        min-height: 297mm;
        margin: 0;
        break-after: page;
        page-break-after: always;
        break-inside: avoid-page;
        page-break-inside: avoid;
    }
    .print-page:last-child {
        break-after: auto;
        page-break-after: auto;
    }
    .report-sheet { display: flex; }
}

/* MiHi Hub v5.3 — landscape, chart-led and client-friendly report output */
.landscape-report .report-document-toolbar {
    width: min(297mm, 100%);
    align-items: center;
}
.toolbar-note {
    color: var(--muted);
    font-size: 11px;
    text-align: center;
}
.landscape-report .report-document {
    width: 297mm;
}
.landscape-report .print-page {
    width: 297mm;
    min-height: 210mm;
    height: 210mm;
    padding: 12mm 15mm;
    overflow: hidden;
}
.landscape-report .report-cover {
    background: linear-gradient(145deg,#fff 0 66%,#e8fbfc 66%);
}
.landscape-report .report-cover:after {
    width: 150mm;
    height: 150mm;
    right: -68mm;
    bottom: -85mm;
}
.landscape-report .cover-content {
    margin-top: 22mm;
}
.landscape-report .cover-content h1 {
    max-width: 210mm;
    font-size: 40pt;
}
.landscape-report .cover-copy {
    max-width: 175mm;
    font-size: 13pt !important;
}
.landscape-report .cover-footer {
    left: 15mm;
    right: 15mm;
    bottom: 11mm;
}
.landscape-report .document-header {
    padding-bottom: 3.5mm;
    margin-bottom: 5.5mm;
}
.landscape-report .document-header h2 {
    font-size: 24pt;
}
.landscape-report .document-kpis,
.landscape-report .document-metric-grid {
    gap: 3.5mm;
    margin-bottom: 5mm;
}
.landscape-report .document-kpis article,
.landscape-report .document-metric-grid article {
    min-height: 32mm;
    padding: 4.5mm 5mm;
    align-content: center;
}
.landscape-report .document-kpis span,
.landscape-report .document-metric-grid span {
    font-size: 9pt;
    font-weight: 750;
}
.landscape-report .document-kpis strong,
.landscape-report .document-metric-grid strong {
    font-size: 23pt;
    letter-spacing: -.035em;
}
.landscape-report .document-kpis small,
.landscape-report .document-metric-grid small {
    font-size: 8.2pt;
}
.landscape-kpis {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
.landscape-six {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}
.landscape-five {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
.overview-lower-grid {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 6mm;
    min-height: 94mm;
}
.landscape-report .document-summary {
    padding: 6mm;
    margin: 0;
}
.landscape-report .document-summary > p:not(.eyebrow) {
    font-size: 10.5pt;
    line-height: 1.62;
}
.no-top-rule {
    border-top: 0;
    padding-top: 0;
    margin-top: 0;
}
.compact-actions {
    gap: 2.4mm;
}
.compact-actions article {
    grid-template-columns: 9mm 1fr 15mm;
    padding: 3.2mm;
}
.compact-actions strong {
    font-size: 9.6pt;
}
.compact-actions p {
    font-size: 8.2pt;
    line-height: 1.38;
}
.report-content-split {
    display: grid;
    grid-template-columns: minmax(0, 1.62fr) minmax(0, .88fr);
    gap: 5mm;
    min-height: 96mm;
}
.document-chart-card,
.support-panel,
.traffic-bars-card,
.search-detail-panel {
    border: 1px solid var(--line);
    border-radius: 3mm;
    background: #fff;
    padding: 4.5mm;
    break-inside: avoid;
    page-break-inside: avoid;
}
.document-chart-card {
    background: linear-gradient(180deg,#fff,#fbfcfc);
}
.chart-title h3,
.support-panel h3,
.traffic-bars-card h3,
.search-detail-panel h3 {
    margin: 1mm 0 3mm;
    font-size: 14pt;
}
.line-chart-wrap {
    width: 100%;
}
.chart-legend {
    display: flex;
    justify-content: flex-end;
    gap: 5mm;
    margin: -2mm 1mm 1mm;
    color: var(--muted);
    font-size: 8pt;
}
.chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 2mm;
}
.legend-swatch {
    width: 8mm;
    height: 1.2mm;
    border-radius: 999px;
    display: inline-block;
}
.current-swatch { background: var(--cyan-dark); }
.comparison-swatch {
    height: 0;
    border-top: 1.2mm dashed #aab4b9;
    border-radius: 0;
}
.report-line-chart {
    display: block;
    width: 100%;
    height: 63mm;
    overflow: visible;
}
.chart-grid-line {
    stroke: #e6ebed;
    stroke-width: 1;
}
.chart-axis-label {
    fill: #737d83;
    font-size: 18px;
    font-weight: 650;
}
.chart-line {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}
.current-line {
    stroke: var(--cyan-dark);
    stroke-width: 3.5;
}
.comparison-line {
    stroke: #aab4b9;
    stroke-width: 2.2;
    stroke-dasharray: 7 7;
}
.chart-empty {
    min-height: 58mm;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 8mm;
    border-radius: 2mm;
    background: var(--soft);
    color: var(--muted);
    text-align: center;
    line-height: 1.5;
}
.support-panel {
    background: var(--soft);
}
.support-panel > p:not(.eyebrow) {
    margin: 0;
    color: #4c555b;
    font-size: 9.5pt;
    line-height: 1.55;
}
.compact-supporting {
    grid-template-columns: 1fr !important;
    gap: 2mm;
    margin: 4mm 0 0;
}
.compact-supporting article {
    padding: 2.5mm 3mm;
    background: #fff;
}
.compact-supporting strong {
    font-size: 12pt;
}
.traffic-split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    min-height: 118mm;
}
.traffic-bars {
    display: grid;
    gap: 3.2mm;
    margin-top: 5mm;
}
.traffic-bar-row {
    display: grid;
    grid-template-columns: 44mm minmax(0, 1fr) 18mm;
    gap: 3mm;
    align-items: center;
    font-size: 8.5pt;
}
.traffic-bar-row > span {
    font-weight: 750;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.traffic-bar-row > div {
    height: 5.5mm;
    border-radius: 999px;
    background: var(--soft-2);
    overflow: hidden;
}
.traffic-bar-row i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg,var(--cyan-dark),var(--cyan));
}
.traffic-bar-row strong {
    text-align: right;
}
.friendly-source-table > div {
    grid-template-columns: minmax(0, 1fr) 23mm 20mm;
    padding: 2.6mm 3mm;
}
.friendly-source-table > div > span:first-child {
    display: grid;
    gap: .5mm;
}
.friendly-source-table > div > span:first-child > strong {
    font-size: 8.5pt;
}
.friendly-source-table > div > span:first-child > small {
    color: var(--muted);
    font-size: 6.8pt;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.client-friendly-note {
    margin-top: 4mm;
    padding: 3.2mm 4mm;
    border-radius: 2.5mm;
    background: var(--cyan-soft);
    color: #3f5055;
    font-size: 8.8pt;
    line-height: 1.45;
}
.search-explainer ul {
    margin: 3mm 0;
    padding-left: 5mm;
    display: grid;
    gap: 2.5mm;
    color: #4c555b;
    font-size: 8.8pt;
    line-height: 1.4;
}
.search-summary-copy {
    margin-top: 4mm !important;
    padding-top: 4mm;
    border-top: 1px solid var(--line);
    font-weight: 650;
}
.search-detail-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5mm;
    min-height: 137mm;
}
.search-detail-panel {
    padding: 4mm;
}
.friendly-search-table {
    margin-top: 2mm;
}
.friendly-search-table > div {
    grid-template-columns: minmax(0, 1fr) 18mm 25mm 18mm;
    padding: 2.25mm 2.5mm;
    gap: 2.5mm;
    font-size: 7.6pt;
}
.friendly-search-table .document-search-head {
    font-size: 6.8pt;
}
.friendly-page-name {
    display: grid;
    min-width: 0;
    gap: .5mm;
}
.friendly-page-name strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 7.8pt;
}
.friendly-page-name small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--muted);
    font-size: 6.5pt;
}
.full-width-chart {
    margin-top: 4mm;
}
.landscape-report .document-footer {
    padding-top: 2.5mm;
    font-size: 7.5pt;
}

@media screen and (max-width: 1150px) {
    .landscape-report .report-document,
    .landscape-report .print-page {
        width: 100%;
        height: auto;
        min-height: auto;
    }
    .landscape-report .print-page {
        padding: 26px;
    }
    .overview-lower-grid,
    .report-content-split,
    .search-detail-columns {
        grid-template-columns: 1fr;
    }
    .landscape-six,
    .landscape-five,
    .landscape-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .toolbar-note { display: none; }
}

@media print {
    @page {
        size: A4 landscape;
        margin: 0;
    }
    html,
    body.landscape-report {
        width: 297mm;
        height: auto;
    }
    .landscape-report .report-document {
        width: 297mm;
    }
    .landscape-report .print-page {
        display: flex;
        flex-direction: column;
        width: 297mm;
        height: 210mm;
        min-height: 210mm;
        margin: 0;
        break-after: page;
        page-break-after: always;
        break-inside: avoid-page;
        page-break-inside: avoid;
    }
    .landscape-report .print-page:last-child {
        break-after: auto;
        page-break-after: auto;
    }
    .report-line-chart,
    .traffic-bars,
    .document-chart-card,
    .search-detail-panel {
        break-inside: avoid;
        page-break-inside: avoid;
    }
}

/* MiHi Hub v5.5 — lighter-touch glossy refinements */
.landscape-report .report-document {
    counter-reset: report-page;
}
.landscape-report .print-page {
    counter-increment: report-page;
    overflow: hidden;
    background:
        radial-gradient(circle at 95% 8%, rgba(0,229,232,.075) 0 21mm, transparent 21.5mm),
        linear-gradient(180deg,#fff 0%,#fff 84%,#fbfcfc 100%);
}
.landscape-report .print-page::before {
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:2.2mm;
    background:linear-gradient(90deg,var(--ink) 0 18%,var(--cyan) 18% 31%,transparent 31%);
}
.landscape-report .document-header {
    position:relative;
    padding-bottom:5.5mm;
    border-bottom:1px solid #cfd7da;
}
.landscape-report .document-header::after {
    content:"";
    position:absolute;
    left:0;
    bottom:-1px;
    width:31mm;
    border-bottom:2px solid var(--cyan-dark);
}
.landscape-report .document-header h2 {
    letter-spacing:-.035em;
}
.landscape-report .document-kpis article,
.landscape-report .document-metric-grid article {
    position:relative;
    overflow:hidden;
    border:1px solid #dce2e4;
    box-shadow:0 3mm 7mm rgba(17,28,34,.055);
    background:linear-gradient(145deg,#fff 0%,#fff 73%,#f5fbfb 100%);
}
.landscape-report .document-kpis article::before,
.landscape-report .document-metric-grid article::before {
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:1.2mm;
    background:var(--cyan);
}
.landscape-report .document-kpis strong,
.landscape-report .document-metric-grid strong {
    letter-spacing:-.035em;
}
.overview-summary-only {
    margin-top:8mm;
}
.glossy-summary {
    position:relative;
    min-height:83mm;
    display:grid;
    grid-template-columns:25mm 1fr;
    align-items:center;
    gap:7mm;
    padding:12mm 15mm;
    background:linear-gradient(125deg,#10191e 0%,#17272d 62%,#0d777d 128%);
    color:#fff;
    box-shadow:0 5mm 14mm rgba(12,24,30,.16);
}
.glossy-summary::after {
    content:"";
    position:absolute;
    width:60mm;
    height:60mm;
    border-radius:50%;
    right:-22mm;
    bottom:-28mm;
    border:1px solid rgba(0,229,232,.45);
}
.glossy-summary .summary-mark {
    align-self:start;
    font-family:Georgia,serif;
    font-size:65pt;
    line-height:.8;
    color:var(--cyan);
}
.glossy-summary .eyebrow { color:var(--cyan); }
.glossy-summary p:last-child {
    color:#fff;
    font-size:15pt;
    line-height:1.62;
    max-width:220mm;
}
.search-page-intro {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:15mm;
    margin:0 0 6mm;
    padding:0 1mm 5mm;
    border-bottom:1px solid var(--line);
}
.search-page-intro h3 {
    margin:1mm 0 0;
    font-size:17pt;
    letter-spacing:-.025em;
}
.search-page-intro > p {
    width:92mm;
    margin:0;
    color:var(--muted);
    font-size:9pt;
    line-height:1.5;
}
.full-search-table {
    margin-top:0;
    border:1px solid #d9e0e3;
    border-radius:3mm;
    overflow:hidden;
    box-shadow:0 3mm 9mm rgba(17,28,34,.06);
}
.full-search-table > div {
    display:grid;
    grid-template-columns:minmax(0,1fr) 25mm 34mm 35mm 31mm;
    gap:5mm;
    align-items:center;
    min-height:10.3mm;
    padding:2.6mm 4mm;
    border-bottom:1px solid #e4e9eb;
    font-size:8.5pt;
}
.full-search-table > div:last-child { border-bottom:0; }
.full-search-table > div:nth-child(odd):not(.document-search-head) {
    background:#fafcfc;
}
.full-search-table .document-search-head {
    min-height:11mm;
    background:linear-gradient(90deg,#10191e,#20343b);
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.055em;
    font-size:7pt;
    font-weight:850;
}
.full-search-table .document-search-head span:not(:first-child),
.full-search-table > div > strong,
.full-search-table > div > span:not(:first-child) {
    text-align:right;
}
.full-search-table .top-result-row {
    background:linear-gradient(90deg,rgba(0,229,232,.13),rgba(0,229,232,.025)) !important;
}
.full-search-table .table-rank {
    display:inline-grid;
    place-items:center;
    width:7mm;
    height:7mm;
    margin-right:3mm;
    border-radius:50%;
    background:#e9fafa;
    color:#05777d;
    font-size:7.4pt;
    vertical-align:middle;
}
.full-search-table .top-result-row .table-rank {
    background:var(--cyan-dark);
    color:#fff;
}
.full-search-table .friendly-page-name {
    grid-template-columns:7mm minmax(0,1fr);
    align-items:center;
    gap:3mm;
}
.full-search-table .friendly-page-name > span {
    display:grid;
    gap:.5mm;
    min-width:0;
}
.full-search-table .friendly-page-name strong {
    font-size:8.6pt;
}
.full-search-table .friendly-page-name small {
    font-size:6.9pt;
}
.search-page-key {
    margin-top:5mm;
    padding:3.3mm 4.5mm;
    border-left:1.3mm solid var(--cyan-dark);
    background:linear-gradient(90deg,#edfafa,#f8fcfc);
    color:#445158;
    font-size:8.4pt;
    line-height:1.45;
}
.landscape-report .document-footer::after {
    content:"Page " counter(report-page);
    margin-left:auto;
    font-weight:800;
    color:#626d73;
}
.landscape-report .document-footer {
    gap:8mm;
}

@media screen and (max-width:1150px) {
    .glossy-summary { grid-template-columns:1fr; }
    .glossy-summary .summary-mark { display:none; }
    .search-page-intro { align-items:flex-start; flex-direction:column; }
    .search-page-intro > p { width:auto; }
    .full-search-table { overflow-x:auto; }
    .full-search-table > div { min-width:900px; }
}

/* MiHi Hub v5.6 — editorial tables and a two-page popular-content section */
.editorial-source-table,
.editorial-search-table {
    background: transparent;
}

.editorial-source-table {
    display: grid;
    align-content: start;
    gap: 1.35mm;
    border: 0;
    box-shadow: none;
}
.editorial-source-table > div {
    border: 1px solid #dde5e7;
    border-radius: 2.4mm;
    background: rgba(255,255,255,.96);
    box-shadow: 0 1.4mm 4mm rgba(18,31,37,.045);
    padding: 2.4mm 3.2mm;
}
.editorial-source-table > .document-table-head {
    border: 0;
    border-radius: 2.4mm;
    background: linear-gradient(90deg,#10191e 0%,#20343b 100%);
    color: #fff;
    letter-spacing: .055em;
    min-height: 9.4mm;
    box-shadow: 0 2mm 5mm rgba(17,28,34,.10);
}
.editorial-source-table > div:not(.document-table-head) {
    position: relative;
    overflow: hidden;
}
.editorial-source-table > div:not(.document-table-head)::before,
.editorial-search-table > div:not(.document-search-head)::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1mm;
    background: #dbe6e8;
}
.editorial-source-table > .featured-table-row::before,
.editorial-search-table > .featured-table-row::before {
    background: var(--cyan-dark);
}
.editorial-source-table .source-table-entry {
    display: grid;
    grid-template-columns: 7mm minmax(0,1fr);
    align-items: center;
    gap: 3mm;
    min-width: 0;
}
.editorial-source-table .source-table-entry > span {
    display: grid;
    min-width: 0;
    gap: .4mm;
}
.editorial-source-table .source-table-entry strong {
    color: #17252b;
    font-size: 8.8pt;
}
.editorial-source-table .source-table-entry small {
    color: #7b878d;
    font-size: 6.8pt;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.editorial-source-table .table-number {
    justify-self: end;
    font-size: 10pt;
    letter-spacing: -.02em;
}

.table-meter {
    display: block;
    width: 100%;
    height: 1.45mm;
    margin-top: 1mm;
    overflow: hidden;
    border-radius: 999px;
    background: #edf2f3;
}
.table-meter > i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg,var(--cyan-dark),var(--cyan));
}

.delta-pill {
    justify-self: end;
    min-width: 17mm;
    padding: 1.2mm 2.2mm;
    border-radius: 999px;
    text-align: center !important;
    font-size: 7.2pt !important;
    font-weight: 900;
}
.delta-pill.positive { background: #e8f7ef; color: #16774a; }
.delta-pill.negative { background: #fff0ee; color: #b8453b; }
.delta-pill.neutral { background: #eef2f3; color: #647178; }

.editorial-search-table {
    display: grid;
    gap: 1.65mm;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: visible;
}
.editorial-search-table > div {
    position: relative;
    min-height: 11.2mm;
    border: 1px solid #dce4e6;
    border-radius: 2.6mm;
    background: rgba(255,255,255,.98);
    box-shadow: 0 1.5mm 4.2mm rgba(17,28,34,.05);
}
.editorial-search-table > .document-search-head {
    min-height: 10.6mm;
    border: 0;
    box-shadow: 0 2.2mm 5.5mm rgba(17,28,34,.12);
}
.editorial-search-table > div:nth-child(odd):not(.document-search-head) {
    background: rgba(255,255,255,.98);
}
.editorial-search-table > .featured-table-row {
    background: linear-gradient(90deg,rgba(0,229,232,.105),rgba(255,255,255,.98) 34%) !important;
}
.editorial-search-table > .rank-1 {
    border-color: rgba(5,119,125,.38);
    box-shadow: 0 2.2mm 6mm rgba(5,119,125,.10);
}
.editorial-search-table > .rank-2,
.editorial-search-table > .rank-3 {
    border-color: rgba(5,119,125,.20);
}

.search-table-entry {
    display: grid !important;
    grid-template-columns: 7.5mm minmax(0,1fr) !important;
    align-items: center !important;
    gap: 3mm !important;
    min-width: 0;
    text-align: left !important;
}
.search-table-entry > span {
    display: grid;
    gap: .8mm;
    min-width: 0;
}
.search-table-entry > span > strong {
    color: #17252b;
    font-size: 8.8pt;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.search-table-entry > span > small {
    color: #7a878d;
    font-size: 6.8pt;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.editorial-search-table .table-rank,
.editorial-source-table .table-rank {
    width: 7mm;
    height: 7mm;
    margin: 0;
    background: #edf7f7;
    color: #05777d;
    border: 1px solid rgba(5,119,125,.14);
    font-size: 7pt;
    font-weight: 950;
}
.editorial-search-table .rank-1 .table-rank,
.editorial-source-table .rank-1 .table-rank {
    background: linear-gradient(145deg,#05777d,#00aeb6);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 1.5mm 3mm rgba(5,119,125,.19);
}
.editorial-search-table .table-number {
    justify-self: end;
    color: #132229;
    font-size: 10.5pt;
    letter-spacing: -.025em;
}
.table-chip {
    justify-self: end;
    min-width: 18mm;
    padding: 1.25mm 2.2mm;
    border-radius: 999px;
    background: #f0f4f5;
    color: #4d5a60;
    text-align: center !important;
    font-size: 7.4pt;
    font-weight: 850;
}
.table-chip.accent-chip {
    background: #e8f8f8;
    color: #05777d;
}
.table-chip.position-chip {
    background: #eef0f7;
    color: #4d5774;
}

.five-row-table {
    gap: 2.6mm;
}
.five-row-table > div:not(.document-search-head) {
    min-height: 17.2mm;
    padding-top: 3.2mm;
    padding-bottom: 3.2mm;
}
.five-row-table .search-table-entry > span > strong {
    font-size: 10pt;
}
.five-row-table .search-table-entry > span > small {
    font-size: 7.3pt;
}
.five-row-table .table-number {
    font-size: 12pt;
}
.five-row-table .table-chip {
    min-width: 21mm;
    padding: 1.8mm 2.5mm;
    font-size: 8pt;
}

.popular-content-page-primary,
.popular-content-page-secondary {
    break-before: page;
    page-break-before: always;
}
.popular-content-page-primary .search-page-intro,
.popular-content-page-secondary .search-page-intro {
    margin-bottom: 7mm;
}

@media print {
    .popular-content-page-primary,
    .popular-content-page-secondary {
        break-before: page !important;
        page-break-before: always !important;
    }
    .editorial-source-table > div,
    .editorial-search-table > div {
        break-inside: avoid;
        page-break-inside: avoid;
    }
}

/* MiHi Hub v5.7 — no revenue/actions and two distinct Google detail pages */
.search-phrases-page,
.google-pages-page {
    break-before: page;
    page-break-before: always;
}

.search-phrases-page .document-header,
.google-pages-page .document-header {
    margin-bottom: 5.5mm;
}

.search-phrases-page .search-page-intro,
.google-pages-page .search-page-intro {
    margin-bottom: 5mm;
}

.search-phrases-page .editorial-search-table,
.google-pages-page .editorial-search-table {
    gap: 1.15mm;
}

.search-phrases-page .editorial-search-table > div,
.google-pages-page .editorial-search-table > div {
    min-height: 9.7mm;
    padding-top: 1.8mm;
    padding-bottom: 1.8mm;
}

.search-phrases-page .editorial-search-table > .document-search-head,
.google-pages-page .editorial-search-table > .document-search-head {
    min-height: 9.3mm;
}

.search-phrases-page .search-table-entry > span > strong,
.google-pages-page .search-table-entry > span > strong {
    font-size: 8.5pt;
}

.google-pages-page .search-table-entry > span > small {
    font-size: 6.5pt;
}

.search-phrases-page .search-page-key,
.google-pages-page .search-page-key {
    margin-top: 4mm;
}

@media print {
    .search-phrases-page,
    .google-pages-page {
        break-before: page !important;
        page-break-before: always !important;
        break-inside: avoid-page;
        page-break-inside: avoid;
    }
}

/* MiHi Hub v5.8 — stronger key-points composition and a print-safe popular-pages layout */
.overview-page .landscape-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 5mm;
    margin: 0 0 8mm;
}
.overview-page .landscape-kpis article {
    grid-column: span 2;
    min-height: 38mm;
    position: relative;
    overflow: hidden;
    align-content: center;
    padding: 7mm 6mm;
    border: 1px solid rgba(17, 31, 37, .09);
    border-radius: 4mm;
    background:
        radial-gradient(circle at 92% 12%, rgba(0, 229, 232, .16), transparent 31%),
        linear-gradient(145deg, #ffffff 0%, #f4f9f9 100%);
    box-shadow: 0 2.5mm 8mm rgba(16, 31, 37, .075);
}
.overview-page .landscape-kpis article:nth-child(4),
.overview-page .landscape-kpis article:nth-child(5) {
    grid-column: span 3;
}
.overview-page .landscape-kpis article::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1.5mm;
    background: linear-gradient(180deg, var(--cyan-dark), var(--cyan));
}
.overview-page .landscape-kpis article::after {
    content: "";
    position: absolute;
    right: -12mm;
    top: -13mm;
    width: 31mm;
    height: 31mm;
    border-radius: 50%;
    border: 1.5mm solid rgba(0, 174, 182, .08);
}
.overview-page .landscape-kpis span {
    font-size: 9.5pt;
    font-weight: 750;
    color: #536168;
}
.overview-page .landscape-kpis strong {
    margin: 1.5mm 0 .8mm;
    font-size: 26pt;
    line-height: 1;
    letter-spacing: -.045em;
    color: #111d22;
}
.overview-page .landscape-kpis small {
    font-size: 8.5pt;
    font-weight: 850;
}
.overview-summary-only {
    flex: 1;
    display: flex;
    min-height: 0;
}
.overview-page .glossy-summary {
    width: 100%;
    min-height: 47mm;
    margin: 0;
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 28mm minmax(0, 1fr);
    align-items: center;
    gap: 7mm;
    padding: 8mm 11mm 8mm 8mm;
    border: 1px solid rgba(7, 107, 113, .20);
    border-radius: 5mm;
    background:
        linear-gradient(118deg, rgba(0, 229, 232, .13), rgba(255,255,255,.98) 36%, #f6fafb 100%);
    box-shadow: 0 3mm 10mm rgba(15, 34, 41, .08);
}
.overview-page .glossy-summary::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2mm;
    background: linear-gradient(180deg, var(--cyan-dark), var(--cyan));
}
.overview-page .glossy-summary::after {
    content: "";
    position: absolute;
    width: 76mm;
    height: 76mm;
    right: -39mm;
    bottom: -52mm;
    border-radius: 50%;
    background: rgba(0, 229, 232, .07);
}
.overview-page .glossy-summary .summary-mark {
    align-self: stretch;
    display: grid;
    place-items: center;
    min-height: 31mm;
    border-radius: 4mm;
    background: linear-gradient(145deg, #111d22, #294047);
    color: var(--cyan);
    font-family: Georgia, serif;
    font-size: 52pt;
    line-height: .75;
    padding-top: 5mm;
    box-shadow: 0 2mm 6mm rgba(17, 29, 34, .16);
}
.overview-page .glossy-summary > div {
    position: relative;
    z-index: 1;
}
.overview-page .glossy-summary .eyebrow {
    margin-bottom: 2.3mm;
    color: #05777d;
    letter-spacing: .13em;
}
.overview-page .glossy-summary p:not(.eyebrow) {
    max-width: 210mm;
    font-size: 12.2pt;
    line-height: 1.58;
    color: #303d43;
}

/* The final Google-content page is now a two-column editorial card list.
   This keeps all ten results on one landscape page without clipping. */
.popular-page-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-flow: column;
    grid-template-rows: repeat(5, minmax(0, 1fr));
    gap: 2.1mm 4.5mm;
    min-height: 0;
    flex: 1;
}
.popular-page-card {
    position: relative;
    min-width: 0;
    padding: 2.7mm 3.4mm 2.4mm;
    overflow: hidden;
    border: 1px solid #dce5e7;
    border-radius: 3mm;
    background: linear-gradient(145deg, #fff, #f9fbfb);
    box-shadow: 0 1.4mm 4mm rgba(17, 29, 34, .045);
    break-inside: avoid;
    page-break-inside: avoid;
}
.popular-page-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1mm;
    background: #dce8e9;
}
.popular-page-card.featured-page-card {
    border-color: rgba(5, 119, 125, .23);
    background: linear-gradient(100deg, rgba(0, 229, 232, .09), #fff 39%);
}
.popular-page-card.featured-page-card::before {
    background: linear-gradient(180deg, var(--cyan-dark), var(--cyan));
}
.popular-page-card-top {
    display: grid;
    grid-template-columns: 7mm minmax(0, 1fr) auto;
    gap: 2.5mm;
    align-items: center;
}
.popular-page-card .table-rank {
    width: 7mm;
    height: 7mm;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #edf7f7;
    border: 1px solid rgba(5,119,125,.14);
    color: #05777d;
    font-size: 7pt;
    font-weight: 950;
}
.popular-page-card.rank-1 .table-rank {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(145deg, #05777d, #00aeb6);
}
.popular-page-card-title {
    min-width: 0;
    display: grid;
    gap: .45mm;
}
.popular-page-card-title strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #17252b;
    font-size: 8.7pt;
}
.popular-page-card-title small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #7a878d;
    font-size: 6.3pt;
}
.popular-page-visits {
    color: #122229;
    font-size: 10.5pt;
    letter-spacing: -.02em;
    white-space: nowrap;
}
.popular-page-visits small {
    color: #6f7c82;
    font-size: 6.5pt;
    font-weight: 750;
    letter-spacing: 0;
}
.popular-page-meter {
    height: 1.25mm;
    margin: 1.5mm 0 1.4mm 9.5mm;
    overflow: hidden;
    border-radius: 999px;
    background: #edf2f3;
}
.popular-page-meter i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--cyan-dark), var(--cyan));
}
.popular-page-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2mm;
    margin-left: 9.5mm;
}
.popular-page-stats span {
    display: grid;
    gap: .15mm;
}
.popular-page-stats small {
    color: #7a878d;
    font-size: 5.9pt;
    line-height: 1.1;
}
.popular-page-stats strong {
    color: #34434a;
    font-size: 7.7pt;
}
.google-pages-page .search-page-key {
    margin-top: 3mm;
    padding-top: 2.5mm;
    padding-bottom: 2.5mm;
}

@media screen and (max-width: 1150px) {
    .overview-page .landscape-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .overview-page .landscape-kpis article,
    .overview-page .landscape-kpis article:nth-child(4),
    .overview-page .landscape-kpis article:nth-child(5) {
        grid-column: auto;
    }
    .popular-page-card-grid {
        grid-template-columns: 1fr;
        grid-auto-flow: row;
        grid-template-rows: none;
    }
}

@media print {
    .overview-page .landscape-kpis article,
    .overview-page .glossy-summary,
    .popular-page-card {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
    .google-pages-page {
        overflow: hidden;
    }
}

/* MiHi Hub v5.9 — force the latest report styling and use a robust two-column page list */
.landscape-report .report-document-toolbar {
    position: relative;
    top: auto;
}

/* Give the key-points page a more confident editorial balance. */
.overview-page .landscape-kpis article {
    min-height: 44mm;
    padding: 8mm 7mm;
}
.overview-page .landscape-kpis strong {
    font-size: 29pt;
}
.overview-page .glossy-summary {
    min-height: 55mm;
    padding-top: 9mm;
    padding-bottom: 9mm;
}
.overview-page .glossy-summary p:not(.eyebrow) {
    font-size: 12.8pt;
    line-height: 1.62;
}

/* The last page is explicitly split into two lists of five. This avoids the
   browser re-flowing a single CSS grid into one long column. */
.popular-page-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5mm;
    flex: 1;
    min-height: 0;
}
.popular-page-list {
    display: grid;
    grid-template-rows: repeat(5, minmax(0, 1fr));
    gap: 2.25mm;
    min-width: 0;
    min-height: 0;
}
.popular-page-row {
    position: relative;
    min-width: 0;
    overflow: hidden;
    padding: 3mm 3.5mm 2.7mm;
    border: 1px solid #dce5e7;
    border-radius: 3mm;
    background: linear-gradient(145deg, #fff, #f8fbfb);
    box-shadow: 0 1.2mm 3.8mm rgba(17, 29, 34, .05);
    break-inside: avoid;
    page-break-inside: avoid;
}
.popular-page-row::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 1mm;
    background: #dce8e9;
}
.popular-page-row.featured-page-row {
    border-color: rgba(5, 119, 125, .24);
    background: linear-gradient(105deg, rgba(0, 229, 232, .09), #fff 42%);
}
.popular-page-row.featured-page-row::before {
    background: linear-gradient(180deg, var(--cyan-dark), var(--cyan));
}
.popular-page-row-main {
    display: grid;
    grid-template-columns: 7mm minmax(0, 1fr) auto;
    gap: 2.5mm;
    align-items: center;
}
.popular-page-row .table-rank {
    width: 7mm;
    height: 7mm;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1px solid rgba(5,119,125,.14);
    background: #edf7f7;
    color: #05777d;
    font-size: 7pt;
    font-weight: 950;
}
.popular-page-row.rank-1 .table-rank {
    color: #fff;
    border-color: transparent;
    background: linear-gradient(145deg, #05777d, #00aeb6);
}
.popular-page-row-title {
    min-width: 0;
    display: grid;
    gap: .35mm;
}
.popular-page-row-title strong,
.popular-page-row-title small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.popular-page-row-title strong {
    color: #17252b;
    font-size: 8.8pt;
}
.popular-page-row-title small {
    color: #7a878d;
    font-size: 6.2pt;
}
.popular-page-row-visits {
    color: #122229;
    font-size: 10.5pt;
    white-space: nowrap;
}
.popular-page-row-visits small {
    color: #6f7c82;
    font-size: 6.5pt;
    font-weight: 750;
}
.popular-page-row-meter {
    height: 1.2mm;
    margin: 1.55mm 0 1.35mm 9.5mm;
    overflow: hidden;
    border-radius: 999px;
    background: #edf2f3;
}
.popular-page-row-meter i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--cyan-dark), var(--cyan));
}
.popular-page-row-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2mm;
    margin-left: 9.5mm;
}
.popular-page-row-stats span {
    display: grid;
    gap: .1mm;
}
.popular-page-row-stats small {
    color: #7a878d;
    font-size: 5.9pt;
    line-height: 1.1;
}
.popular-page-row-stats strong {
    color: #34434a;
    font-size: 7.8pt;
}

/* This page must stay in landscape form even when the browser window itself
   is narrower than the report. Horizontal scrolling is preferable to a broken
   one-column preview. */
@media screen and (max-width: 1150px) {
    .landscape-report .google-pages-page {
        width: 297mm;
        height: 210mm;
        min-height: 210mm;
        padding: 12mm 15mm;
    }
    .popular-page-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media print {
    .popular-page-columns,
    .popular-page-list,
    .popular-page-row {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
    .google-pages-page {
        overflow: hidden !important;
    }
}

/* MiHi Hub v5.10 — MiHi blue-only report branding and fixed landscape composition */
body.landscape-report {
    --brand-blue: #00adef;
    --brand-blue-soft: #eaf7fd;
    --brand-blue-pale: #f5fbfe;
    --cyan: var(--brand-blue);
    --cyan-dark: var(--brand-blue);
    --cyan-soft: var(--brand-blue-soft);
}

/* Keep the report as a true landscape document on screen. Earlier responsive
   rules were reflowing fixed pages and pushing content into the following page. */
@media screen {
    body.landscape-report {
        overflow-x: auto;
    }
    .landscape-report .report-document {
        width: 297mm !important;
        min-width: 297mm !important;
        box-shadow: none !important;
    }
    .landscape-report .print-page {
        width: 297mm !important;
        min-width: 297mm !important;
        height: 210mm !important;
        min-height: 210mm !important;
        padding: 12mm 15mm !important;
        margin: 0 0 18px !important;
        overflow: hidden !important;
        box-shadow: 0 10px 32px rgba(17, 24, 28, .12);
    }
    .landscape-report .print-page:last-child {
        margin-bottom: 0 !important;
    }
    .landscape-report .overview-lower-grid,
    .landscape-report .report-content-split,
    .landscape-report .search-detail-columns,
    .landscape-report .traffic-split,
    .landscape-report .popular-page-columns {
        grid-template-columns: revert !important;
    }
    .landscape-report .search-page-intro {
        flex-direction: row !important;
        align-items: flex-end !important;
    }
    .landscape-report .search-page-intro > p {
        width: 92mm !important;
    }
}

/* Use the single blue from the MiHi logo for every decorative accent. */
.landscape-report .print-page {
    background:
        radial-gradient(circle at 95% 8%, rgba(0, 173, 239, .075) 0 21mm, transparent 21.5mm),
        linear-gradient(180deg, #fff 0%, #fff 84%, #fbfdfe 100%);
}
.landscape-report .print-page::before {
    background: linear-gradient(90deg, var(--ink) 0 18%, var(--brand-blue) 18% 31%, transparent 31%) !important;
}
.landscape-report .document-header::after,
.landscape-report .document-kpis article::before,
.landscape-report .document-metric-grid article::before,
.overview-page .landscape-kpis article::before,
.overview-page .glossy-summary::before,
.editorial-source-table > .featured-table-row::before,
.editorial-search-table > .featured-table-row::before,
.popular-page-row.featured-page-row::before {
    background: var(--brand-blue) !important;
}
.traffic-bar-row i,
.table-meter > i,
.popular-page-row-meter i,
.popular-page-meter i {
    background: var(--brand-blue) !important;
}
.editorial-source-table > .document-table-head,
.full-search-table .document-search-head,
.editorial-search-table > .document-search-head {
    background: var(--brand-blue) !important;
    color: #fff !important;
}
.full-search-table .top-result-row,
.editorial-search-table > .featured-table-row,
.popular-page-row.featured-page-row,
.popular-page-card.featured-page-card {
    background: linear-gradient(90deg, rgba(0, 173, 239, .10), #fff 42%) !important;
}
.full-search-table .table-rank,
.editorial-source-table .table-rank,
.editorial-search-table .table-rank,
.popular-page-row .table-rank,
.popular-page-card .table-rank {
    background: var(--brand-blue-soft) !important;
    border-color: rgba(0, 173, 239, .22) !important;
    color: #006f9f !important;
}
.full-search-table .top-result-row .table-rank,
.popular-page-row.rank-1 .table-rank,
.popular-page-card.rank-1 .table-rank {
    background: var(--brand-blue) !important;
    border-color: var(--brand-blue) !important;
    color: #fff !important;
}
.search-page-key,
.client-friendly-note {
    border-color: var(--brand-blue) !important;
    background: linear-gradient(90deg, var(--brand-blue-soft), #fff) !important;
}
.landscape-report .eyebrow.cyan,
.overview-page .glossy-summary .eyebrow {
    color: #0079aa !important;
}

/* Key points: five generous cards in one row, with the editorial summary fully
   visible beneath. This prevents the summary and footer from being pushed onto
   the next page at common browser zoom levels. */
.overview-page .document-header {
    margin-bottom: 6mm !important;
}
.overview-page .landscape-kpis {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 4mm !important;
    margin: 0 0 6mm !important;
}
.overview-page .landscape-kpis article,
.overview-page .landscape-kpis article:nth-child(4),
.overview-page .landscape-kpis article:nth-child(5) {
    grid-column: auto !important;
    min-height: 43mm !important;
    padding: 6mm 5mm !important;
    background:
        radial-gradient(circle at 92% 12%, rgba(0, 173, 239, .12), transparent 31%),
        linear-gradient(145deg, #fff 0%, var(--brand-blue-pale) 100%) !important;
}
.overview-page .landscape-kpis strong {
    font-size: 25pt !important;
}
.overview-page .overview-summary-only {
    flex: 1 1 auto !important;
    min-height: 0 !important;
}
.overview-page .glossy-summary {
    min-height: 57mm !important;
    max-height: 67mm !important;
    padding: 8mm 10mm 8mm 8mm !important;
    grid-template-columns: 27mm minmax(0, 1fr) !important;
    background: linear-gradient(118deg, rgba(0, 173, 239, .12), #fff 38%, #f8fcfe 100%) !important;
    border-color: rgba(0, 173, 239, .25) !important;
}
.overview-page .glossy-summary .summary-mark {
    min-height: 34mm !important;
    background: var(--brand-blue) !important;
    color: #fff !important;
    box-shadow: 0 2mm 6mm rgba(0, 113, 158, .18) !important;
}
.overview-page .glossy-summary p:not(.eyebrow) {
    font-size: 11.6pt !important;
    line-height: 1.5 !important;
}
.overview-page .document-footer {
    margin-top: 4mm !important;
}

/* Traffic source page: constrain the right-hand ranking to the available page
   height and make all ten rows compact but still easy to scan. */
.traffic-page .document-header {
    margin-bottom: 4mm !important;
}
.traffic-page .traffic-split {
    display: grid !important;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
    gap: 5mm !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: 126mm !important;
    overflow: hidden !important;
}
.traffic-page .traffic-bars-card {
    height: 100% !important;
    padding: 4mm !important;
    overflow: hidden !important;
}
.traffic-page .traffic-bars {
    gap: 2.45mm !important;
    margin-top: 4mm !important;
}
.traffic-page .traffic-bar-row {
    grid-template-columns: 39mm minmax(0, 1fr) 17mm !important;
    gap: 2.5mm !important;
    font-size: 8pt !important;
}
.traffic-page .traffic-bar-row > div {
    height: 4.5mm !important;
}
.traffic-page .editorial-source-table {
    height: 100% !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-rows: 8.5mm repeat(10, minmax(0, 1fr)) !important;
    gap: 1mm !important;
    align-content: stretch !important;
    overflow: hidden !important;
}
.traffic-page .editorial-source-table > div {
    min-height: 0 !important;
    padding: 1.25mm 2.5mm !important;
    border-radius: 2mm !important;
    box-shadow: 0 .7mm 2mm rgba(17, 29, 34, .035) !important;
}
.traffic-page .editorial-source-table > .document-table-head {
    min-height: 0 !important;
    padding-top: 1.7mm !important;
    padding-bottom: 1.7mm !important;
}
.traffic-page .editorial-source-table .source-table-entry {
    grid-template-columns: 6mm minmax(0, 1fr) !important;
    gap: 2mm !important;
}
.traffic-page .editorial-source-table .source-table-entry strong {
    font-size: 7.6pt !important;
    line-height: 1.05 !important;
}
.traffic-page .editorial-source-table .source-table-entry small {
    font-size: 5.8pt !important;
    line-height: 1 !important;
}
.traffic-page .editorial-source-table .table-rank {
    width: 6mm !important;
    height: 6mm !important;
    font-size: 6.3pt !important;
}
.traffic-page .editorial-source-table .table-meter {
    height: 1mm !important;
    margin-top: .55mm !important;
}
.traffic-page .editorial-source-table .table-number {
    font-size: 8.3pt !important;
}
.traffic-page .editorial-source-table .delta-pill {
    min-width: 16mm !important;
    padding: .8mm 1.5mm !important;
    font-size: 6.4pt !important;
}
.traffic-page .client-friendly-note {
    margin-top: 3mm !important;
    padding: 2.5mm 3.5mm !important;
    font-size: 8pt !important;
    line-height: 1.35 !important;
}
.traffic-page .document-footer {
    margin-top: 2.5mm !important;
}

/* Search and popular-content pages stay in their intended landscape layouts. */
.search-phrases-page .editorial-search-table {
    overflow: hidden !important;
}
.google-pages-page .popular-page-columns {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 5mm !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
}
.google-pages-page .popular-page-list {
    grid-template-rows: repeat(5, minmax(0, 1fr)) !important;
    min-height: 0 !important;
}

@media print {
    body.landscape-report {
        --brand-blue: #00adef;
        --brand-blue-soft: #eaf7fd;
        --brand-blue-pale: #f5fbfe;
    }
    .landscape-report .print-page {
        margin: 0 !important;
        box-shadow: none !important;
    }
    .overview-page .landscape-kpis {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
    .overview-page .landscape-kpis article,
    .overview-page .landscape-kpis article:nth-child(4),
    .overview-page .landscape-kpis article:nth-child(5) {
        grid-column: auto !important;
    }
    .traffic-page .traffic-split {
        grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr) !important;
    }
    .google-pages-page .popular-page-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* MiHi Hub v5.11 — split traffic acquisition across two editorial pages */
.traffic-page-intro {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12mm;
    margin: 0 0 5mm;
}
.traffic-page-intro h3 {
    margin: 1mm 0 0;
    font-size: 17pt;
    letter-spacing: -.02em;
}
.traffic-page-intro > p {
    width: 91mm;
    margin: 0;
    color: var(--muted);
    font-size: 9pt;
    line-height: 1.5;
}
.traffic-overview-page .traffic-bars-card,
.traffic-change-page .traffic-detail-table {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}
.traffic-overview-page .traffic-bars-card {
    padding: 5mm 6mm;
    border: 1px solid var(--line);
    border-radius: 4mm;
    background: linear-gradient(145deg, #fff, var(--brand-blue-pale));
    box-shadow: 0 2mm 7mm rgba(17, 29, 34, .055);
}
.traffic-overview-page .traffic-bars-full {
    display: grid;
    grid-template-rows: repeat(10, minmax(0, 1fr));
    gap: 2mm;
    height: 100%;
    margin: 0 !important;
}
.traffic-overview-page .traffic-bar-row {
    display: grid !important;
    grid-template-columns: 8mm 58mm minmax(0, 1fr) 22mm !important;
    gap: 4mm !important;
    align-items: center;
    min-height: 0;
    padding: 2mm 3mm;
    border: 1px solid #e3e9ec;
    border-radius: 2.6mm;
    background: #fff;
    font-size: 9pt !important;
}
.traffic-overview-page .traffic-bar-row.featured-traffic-row {
    border-color: rgba(0, 173, 239, .25);
    background: linear-gradient(90deg, rgba(0, 173, 239, .10), #fff 42%);
}
.traffic-overview-page .traffic-bar-row .table-rank {
    width: 7mm;
    height: 7mm;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--brand-blue-soft);
    border: 1px solid rgba(0, 173, 239, .22);
    color: #006f9f;
    font-size: 7pt;
    font-weight: 950;
}
.traffic-overview-page .traffic-bar-row.rank-1 .table-rank {
    background: var(--brand-blue);
    border-color: var(--brand-blue);
    color: #fff;
}
.traffic-overview-page .traffic-bar-row > span {
    font-weight: 850;
    color: #18272d;
}
.traffic-overview-page .traffic-bar-row > div {
    height: 4.6mm !important;
    border-radius: 999px;
    overflow: hidden;
    background: #eaf0f2;
}
.traffic-overview-page .traffic-bar-row > div i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--brand-blue) !important;
}
.traffic-overview-page .traffic-bar-row > strong {
    text-align: right;
    font-size: 10pt;
}
.traffic-change-page .traffic-detail-table {
    display: grid !important;
    grid-template-rows: 10mm repeat(10, minmax(0, 1fr)) !important;
    gap: 1.4mm !important;
    align-content: stretch;
}
.traffic-change-page .traffic-detail-table > div {
    min-height: 0 !important;
    padding: 2mm 4mm !important;
    border-radius: 2.6mm !important;
}
.traffic-change-page .traffic-detail-table > .document-table-head {
    padding-top: 2.4mm !important;
    padding-bottom: 2.4mm !important;
}
.traffic-change-page .traffic-detail-table .source-table-entry strong {
    font-size: 8.6pt !important;
}
.traffic-change-page .traffic-detail-table .source-table-entry small {
    font-size: 6.6pt !important;
}
.traffic-change-page .traffic-detail-table .table-number {
    font-size: 9.5pt !important;
}
.traffic-overview-page .client-friendly-note,
.traffic-change-page .client-friendly-note {
    margin-top: 4mm !important;
    padding: 3mm 4mm !important;
    font-size: 8.4pt !important;
}
.traffic-overview-page .document-footer,
.traffic-change-page .document-footer {
    margin-top: 3mm !important;
}
@media screen {
    .landscape-report .traffic-page-intro {
        flex-direction: row !important;
        align-items: flex-end !important;
    }
}
@media print {
    .traffic-overview-page .traffic-bars-card,
    .traffic-change-page .traffic-detail-table,
    .traffic-overview-page .traffic-bar-row,
    .traffic-change-page .traffic-detail-table > div {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
}

/* MiHi Hub v5.12 — fit the Google visibility page and download a PDF directly */
@media screen, print {
    .landscape-report .search-overview-page .report-content-split {
        display: grid !important;
        grid-template-columns: minmax(0, 1.68fr) minmax(0, .72fr) !important;
        gap: 5mm !important;
        min-height: 0 !important;
        flex: 1 1 auto !important;
        align-items: stretch !important;
    }
    .search-overview-page .document-metric-grid {
        margin-bottom: 5mm !important;
    }
    .search-overview-page .document-chart-card,
    .search-overview-page .search-explainer {
        min-width: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    .search-overview-page .document-chart-card {
        padding: 4mm !important;
    }
    .search-overview-page .chart-title h3 {
        margin-bottom: 1.8mm !important;
        font-size: 13pt !important;
    }
    .search-overview-page .chart-legend {
        margin-top: -1mm !important;
        margin-bottom: 0 !important;
    }
    .search-overview-page .report-line-chart {
        height: 53mm !important;
    }
    .search-overview-page .search-explainer {
        padding: 4mm !important;
    }
    .search-overview-page .search-explainer h3 {
        margin: .8mm 0 2mm !important;
        font-size: 12.5pt !important;
        line-height: 1.12 !important;
    }
    .search-overview-page .search-explainer ul {
        gap: 1.5mm !important;
        margin: 2mm 0 !important;
        padding-left: 4mm !important;
        font-size: 7.5pt !important;
        line-height: 1.28 !important;
    }
    .search-overview-page .search-summary-copy {
        margin-top: 2.2mm !important;
        padding-top: 2.2mm !important;
        font-size: 7.2pt !important;
        line-height: 1.3 !important;
    }
    .search-overview-page .document-footer {
        margin-top: 3mm !important;
    }
}

/* Export mode removes all screen-only spacing so every fixed landscape sheet
   maps cleanly to one A4 page in the generated PDF. */
body.pdf-exporting {
    background: #fff !important;
}
.pdf-export-mode {
    width: 297mm !important;
    min-width: 297mm !important;
    margin: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
}
.pdf-export-mode .print-page {
    width: 297mm !important;
    min-width: 297mm !important;
    height: 210mm !important;
    min-height: 210mm !important;
    margin: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    break-after: page !important;
    page-break-after: always !important;
}
.pdf-export-mode .print-page:last-child {
    break-after: auto !important;
    page-break-after: auto !important;
}
#download-pdf-button:disabled {
    cursor: wait;
    opacity: .72;
}

/* MiHi Hub v5.13 — final page fit, circular traffic ranks and centred PDF export */
@media screen, print {
    /* The website explanation must sit beside the chart rather than falling
       beneath it and running through the page footer. */
    .landscape-report .website-page .report-content-split {
        display: grid !important;
        grid-template-columns: minmax(0, 1.68fr) minmax(0, .72fr) !important;
        gap: 5mm !important;
        min-height: 0 !important;
        flex: 1 1 auto !important;
        align-items: stretch !important;
    }
    .website-page .document-metric-grid {
        margin-bottom: 5mm !important;
    }
    .website-page .document-chart-card,
    .website-page .support-panel {
        min-width: 0 !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    .website-page .document-chart-card {
        padding: 4mm !important;
    }
    .website-page .chart-title h3 {
        margin-bottom: 1.8mm !important;
        font-size: 13pt !important;
    }
    .website-page .chart-legend {
        margin-top: -1mm !important;
        margin-bottom: 0 !important;
    }
    .website-page .report-line-chart {
        height: 52mm !important;
    }
    .website-page .support-panel {
        padding: 4mm !important;
    }
    .website-page .support-panel h3 {
        margin: .8mm 0 2mm !important;
        font-size: 12.5pt !important;
        line-height: 1.12 !important;
    }
    .website-page .support-panel > p:not(.eyebrow) {
        font-size: 7.5pt !important;
        line-height: 1.34 !important;
    }
    .website-page .compact-supporting {
        gap: 1.35mm !important;
        margin: 2.2mm 0 0 !important;
    }
    .website-page .compact-supporting article {
        min-height: 0 !important;
        padding: 1.7mm 2.2mm !important;
    }
    .website-page .compact-supporting span {
        font-size: 6.5pt !important;
    }
    .website-page .compact-supporting strong {
        font-size: 9.6pt !important;
    }
    .website-page .compact-supporting small {
        font-size: 6.2pt !important;
    }
    .website-page .document-footer {
        margin-top: 3mm !important;
    }

    /* Match the round ranking markers used throughout the rest of the report. */
    .traffic-change-page .traffic-detail-table .table-rank {
        display: inline-grid !important;
        place-items: center !important;
        width: 6.5mm !important;
        height: 6.5mm !important;
        min-width: 6.5mm !important;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 50% !important;
        box-sizing: border-box !important;
        line-height: 1 !important;
        text-align: center !important;
        vertical-align: middle !important;
    }
    .traffic-change-page .traffic-detail-table .source-table-entry {
        grid-template-columns: 6.5mm minmax(0, 1fr) !important;
        align-items: center !important;
    }
}

/* The direct PDF generator captures each fixed sheet separately. These rules
   remove all screen offsets before capture so every page lands centrally on A4. */
.pdf-export-mode,
.pdf-export-mode .print-page {
    position: relative !important;
    left: 0 !important;
    right: auto !important;
    top: 0 !important;
    transform: none !important;
}
.pdf-export-mode .print-page {
    box-sizing: border-box !important;
}

/* MiHi Hub v5.14 — keep GA4 support metrics clear and evenly spaced */
@media screen, print {
    .website-page .compact-supporting {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 1.25mm !important;
    }
    .website-page .compact-supporting article {
        min-height: 10.5mm !important;
        align-content: center !important;
    }
}


/* MiHi Hub v5.15 — dedicated engagement metrics and clearer interaction wording */
.engagement-page .engagement-metric-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4mm;
    margin-bottom: 6mm;
}
.engagement-page .engagement-metric-grid article {
    min-height: 31mm;
    padding: 5.2mm 4.6mm;
    align-content: center;
}
.engagement-page .engagement-metric-grid span {
    min-height: 7mm;
    font-size: 8.4pt;
    font-weight: 800;
}
.engagement-page .engagement-metric-grid strong {
    font-size: 21pt;
    line-height: 1;
}
.engagement-page .engagement-metric-grid small {
    font-size: 7.7pt;
}
.engagement-page .engagement-content-split {
    display: grid;
    grid-template-columns: minmax(0, 1.78fr) minmax(62mm, .72fr);
    gap: 5mm;
    min-height: 0;
    flex: 1;
}
.engagement-page .document-chart-card,
.engagement-page .engagement-guide-panel {
    min-height: 105mm;
    height: 100%;
}
.engagement-page .document-chart-card {
    padding: 6mm;
}
.engagement-page .chart-title h3 {
    font-size: 15.5pt;
}
.engagement-page .report-line-chart {
    height: 74mm;
}
.engagement-guide-panel {
    padding: 6mm 5.5mm;
    overflow: hidden;
}
.engagement-guide-panel h3 {
    margin: 1.5mm 0 3mm;
    font-size: 16pt;
    line-height: 1.08;
}
.engagement-guide-panel > p:not(.eyebrow) {
    margin-bottom: 4mm;
    font-size: 8.5pt;
    line-height: 1.45;
}
.engagement-guide-list {
    display: grid;
    gap: 2.6mm;
}
.engagement-guide-list article {
    padding: 3.5mm 3.8mm;
    border: 1px solid #dbe5e9;
    border-left: 1.2mm solid var(--cyan);
    border-radius: 3mm;
    background: #fff;
}
.engagement-guide-list strong {
    display: block;
    margin-bottom: 1mm;
    color: #111d22;
    font-size: 9pt;
}
.engagement-guide-list span {
    display: block;
    color: #58666e;
    font-size: 7.5pt;
    line-height: 1.38;
}
@media print {
    .engagement-page .engagement-metric-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
    .engagement-page .engagement-content-split {
        grid-template-columns: minmax(0, 1.78fr) minmax(62mm, .72fr) !important;
    }
}


/* MiHi Hub v5.16 — four focused engagement measures */
.engagement-page .engagement-metric-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.engagement-page .engagement-metric-grid article {
    min-height: 32mm !important;
}
.engagement-guide-panel > p:not(.eyebrow) {
    margin-bottom: 2.8mm !important;
}
.engagement-guide-list {
    gap: 1.8mm !important;
}
.engagement-guide-list article {
    padding: 2.4mm 3mm !important;
}
.engagement-guide-list strong {
    margin-bottom: .6mm !important;
    font-size: 8.4pt !important;
}
.engagement-guide-list span {
    font-size: 7pt !important;
    line-height: 1.3 !important;
}
@media print {
    .engagement-page .engagement-metric-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* MiHi Hub v5.17 — engagement figures presented as premium KPI cards */
@media screen, print {
    .engagement-page .engagement-content-split.engagement-card-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1.58fr) minmax(78mm, .82fr) !important;
        gap: 5mm !important;
        min-height: 0 !important;
        flex: 1 !important;
        align-items: stretch !important;
    }

    .engagement-page .engagement-chart-card {
        min-height: 133mm !important;
        height: 100% !important;
        padding: 6mm !important;
    }

    .engagement-page .engagement-chart-card .report-line-chart {
        height: 91mm !important;
    }

    .engagement-stat-panel {
        display: flex !important;
        flex-direction: column !important;
        min-width: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow: visible !important;
    }

    .engagement-stat-heading {
        margin: 1.3mm 0 3mm !important;
        color: #6c7880 !important;
    }

    .engagement-stat-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
        gap: 4mm !important;
        flex: 1 !important;
        min-height: 0 !important;
    }

    .engagement-stat-card {
        position: relative !important;
        display: grid !important;
        align-content: center !important;
        min-width: 0 !important;
        min-height: 59mm !important;
        padding: 7mm 5.2mm 6mm !important;
        overflow: hidden !important;
        border: 1px solid #dbe5e9 !important;
        border-left: 1.6mm solid var(--cyan) !important;
        border-radius: 5mm !important;
        background: linear-gradient(135deg, #ffffff 0%, #ffffff 61%, rgba(0, 173, 239, .09) 100%) !important;
        box-shadow: 0 4mm 10mm rgba(17, 29, 34, .065) !important;
    }

    .engagement-stat-card::after {
        content: "" !important;
        position: absolute !important;
        top: -16mm !important;
        right: -13mm !important;
        width: 31mm !important;
        height: 31mm !important;
        border: 1.4mm solid rgba(0, 173, 239, .085) !important;
        border-radius: 50% !important;
        pointer-events: none !important;
    }

    .engagement-stat-card > span {
        position: relative !important;
        z-index: 1 !important;
        display: block !important;
        min-height: 11mm !important;
        margin-bottom: 2.2mm !important;
        color: #53616a !important;
        font-size: 9.4pt !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
    }

    .engagement-stat-card > strong {
        position: relative !important;
        z-index: 1 !important;
        display: block !important;
        margin-bottom: 3mm !important;
        color: #101b21 !important;
        font-size: 24pt !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        letter-spacing: -.6pt !important;
        white-space: nowrap !important;
    }

    .engagement-stat-card > small {
        position: relative !important;
        z-index: 1 !important;
        display: block !important;
        font-size: 8.2pt !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
    }

    .engagement-stat-empty {
        display: grid !important;
        place-items: center !important;
        flex: 1 !important;
        padding: 8mm !important;
        border: 1px dashed #b8d8e5 !important;
        border-radius: 5mm !important;
        background: rgba(0, 173, 239, .04) !important;
        color: #58666e !important;
        font-size: 9pt !important;
        line-height: 1.45 !important;
        text-align: center !important;
    }
}

@media print {
    .engagement-page .engagement-content-split.engagement-card-layout {
        grid-template-columns: minmax(0, 1.58fr) minmax(78mm, .82fr) !important;
    }
    .engagement-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* MiHi Hub v5.19 — engagement cards above the chart and one consolidated traffic page */
@media screen, print {
    .engagement-page .engagement-stats-top {
        margin: 0 0 5mm;
    }
    .engagement-page .engagement-stat-heading {
        margin: 0 0 2.5mm;
    }
    .engagement-page .engagement-stat-grid-top {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 5mm !important;
    }
    .engagement-page .engagement-stat-grid-top .engagement-stat-card {
        min-height: 31mm !important;
        padding: 5mm 6mm !important;
        border-radius: 4mm !important;
    }
    .engagement-page .engagement-stat-grid-top .engagement-stat-card > span {
        font-size: 8.6pt !important;
    }
    .engagement-page .engagement-stat-grid-top .engagement-stat-card > strong {
        margin-top: 2mm !important;
        font-size: 22pt !important;
        line-height: 1 !important;
    }
    .engagement-page .engagement-stat-grid-top .engagement-stat-card > small {
        margin-top: 2.5mm !important;
        font-size: 7.6pt !important;
    }
    .engagement-page .engagement-chart-full {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        padding: 5mm 6mm !important;
        overflow: hidden !important;
    }
    .engagement-page .engagement-chart-full .report-line-chart {
        height: 70mm !important;
    }
    .engagement-page .document-footer {
        margin-top: 3mm !important;
    }

    .traffic-overview-page .traffic-bar-row {
        grid-template-columns: 8mm 51mm minmax(0, 1fr) 20mm 20mm !important;
        gap: 3mm !important;
        padding: 1.8mm 3mm !important;
    }
    .traffic-overview-page .traffic-bar-row > strong {
        text-align: right !important;
        font-size: 9.5pt !important;
    }
    .traffic-overview-page .traffic-bar-row > .delta-pill {
        justify-self: end !important;
        min-width: 17mm !important;
        padding: 1mm 1.6mm !important;
        text-align: center !important;
        font-size: 7pt !important;
        line-height: 1 !important;
        border-radius: 999px !important;
    }
    .traffic-overview-page .traffic-bars-full {
        grid-template-rows: repeat(10, minmax(0, 1fr)) !important;
        gap: 1.7mm !important;
    }
    .traffic-overview-page .traffic-bars-card {
        padding: 4.5mm 5.5mm !important;
    }
    .traffic-overview-page .client-friendly-note {
        margin-top: 3mm !important;
    }
}


/* MiHi Hub v5.19.2 — forced final layout overrides */
@media screen, print {
  .engagement-page .engagement-stats-top { display:block !important; margin:0 0 4mm !important; }
  .engagement-page .engagement-stat-grid-top { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:4mm !important; }
  .engagement-page .engagement-stat-grid-top .engagement-stat-card { min-height:29mm !important; padding:4mm 5mm !important; }
  .engagement-page .engagement-chart-full { display:block !important; width:100% !important; flex:1 1 auto !important; min-height:0 !important; }
  .engagement-page .engagement-chart-full .report-line-chart { height:69mm !important; }
  .traffic-overview-page .traffic-bar-row { display:grid !important; grid-template-columns:8mm 50mm minmax(0,1fr) 20mm 21mm !important; gap:3mm !important; align-items:center !important; }
  .traffic-overview-page .traffic-bar-row > .delta-pill { display:inline-flex !important; align-items:center !important; justify-content:center !important; min-width:18mm !important; }
}

/* MiHi Hub v5.20 — final Google visibility and PDF engagement composition fixes */
@media screen, print {
    /* Keep all five Search Console headline figures in one clean row. This
       deliberately overrides the generic narrow-screen two-column rule. */
    .landscape-report .search-overview-page .google-reach-grid,
    .pdf-export-mode .search-overview-page .google-reach-grid {
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 4mm !important;
        margin: 0 0 4mm !important;
        flex: 0 0 auto !important;
    }

    .search-overview-page .google-reach-grid article {
        min-height: 30mm !important;
        height: 30mm !important;
        padding: 4mm 4.5mm !important;
        align-content: center !important;
    }

    .search-overview-page .google-reach-grid article > span {
        min-height: 5.5mm !important;
        font-size: 8.1pt !important;
        line-height: 1.15 !important;
    }

    .search-overview-page .google-reach-grid article > strong {
        font-size: 20pt !important;
        line-height: 1 !important;
    }

    .search-overview-page .google-reach-grid article > small {
        font-size: 7.3pt !important;
        line-height: 1.1 !important;
    }

    /* Give the Google chart and guide an explicit shared height so neither
       can fall through the footer in the Hub preview or downloaded PDF. */
    .landscape-report .search-overview-page .report-content-split,
    .pdf-export-mode .search-overview-page .report-content-split {
        display: grid !important;
        grid-template-columns: minmax(0, 1.72fr) minmax(0, .68fr) !important;
        gap: 5mm !important;
        flex: 0 0 82mm !important;
        width: 100% !important;
        height: 82mm !important;
        min-height: 82mm !important;
        max-height: 82mm !important;
        align-items: stretch !important;
        overflow: hidden !important;
    }

    .search-overview-page .document-chart-card,
    .search-overview-page .search-explainer {
        width: 100% !important;
        height: 82mm !important;
        min-height: 82mm !important;
        max-height: 82mm !important;
        overflow: hidden !important;
    }

    .search-overview-page .document-chart-card {
        padding: 4mm 5mm !important;
    }

    .search-overview-page .chart-title h3 {
        margin: .8mm 0 1.5mm !important;
        font-size: 12.2pt !important;
        line-height: 1.12 !important;
    }

    .search-overview-page .chart-legend {
        margin: -1mm 0 0 !important;
        font-size: 7pt !important;
    }

    .search-overview-page .report-line-chart {
        display: block !important;
        width: 100% !important;
        height: 50mm !important;
        max-height: 50mm !important;
    }

    .search-overview-page .search-explainer {
        padding: 4mm !important;
    }

    .search-overview-page .search-explainer h3 {
        margin: .6mm 0 1.8mm !important;
        font-size: 12pt !important;
        line-height: 1.08 !important;
    }

    .search-overview-page .search-explainer ul {
        gap: 1.2mm !important;
        margin: 1.5mm 0 !important;
        padding-left: 4mm !important;
        font-size: 7.1pt !important;
        line-height: 1.22 !important;
    }

    .search-overview-page .search-summary-copy {
        margin-top: 1.7mm !important;
        padding-top: 1.7mm !important;
        font-size: 6.8pt !important;
        line-height: 1.22 !important;
    }

    .search-overview-page .document-footer {
        margin-top: auto !important;
    }

    /* The engagement PDF previously stretched the graph card into the spare
       flex space and placed its visible content too low. Use a fixed block
       immediately beneath the four KPI cards instead. */
    .landscape-report .engagement-page .engagement-stats-top,
    .pdf-export-mode .engagement-page .engagement-stats-top {
        display: block !important;
        flex: 0 0 auto !important;
        margin: 0 0 4mm !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 4mm !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top .engagement-stat-card,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top .engagement-stat-card {
        min-height: 31mm !important;
        height: 31mm !important;
        max-height: 31mm !important;
        padding: 4mm 5mm !important;
    }

    .landscape-report .engagement-page .engagement-chart-full,
    .pdf-export-mode .engagement-page .engagement-chart-full {
        display: block !important;
        flex: 0 0 94mm !important;
        width: 100% !important;
        height: 94mm !important;
        min-height: 94mm !important;
        max-height: 94mm !important;
        margin: 0 !important;
        padding: 5mm 6mm !important;
        overflow: hidden !important;
    }

    .engagement-page .engagement-chart-full .chart-title h3 {
        margin: .8mm 0 1.5mm !important;
        font-size: 13.4pt !important;
        line-height: 1.1 !important;
    }

    .engagement-page .engagement-chart-full .chart-legend {
        margin: -1mm 0 0 !important;
    }

    .landscape-report .engagement-page .engagement-chart-full .report-line-chart,
    .pdf-export-mode .engagement-page .engagement-chart-full .report-line-chart {
        display: block !important;
        width: 100% !important;
        height: 66mm !important;
        max-height: 66mm !important;
    }

    .engagement-page .document-footer {
        margin-top: auto !important;
    }
}

/* html2canvas evaluates layout against the landscape sheet width. Preserve
   these final compositions even if that internal viewport falls below the
   older 1150px responsive breakpoint. */
@media screen and (max-width: 1150px) {
    .landscape-report .search-overview-page,
    .landscape-report .engagement-page {
        width: 297mm !important;
        height: 210mm !important;
        min-height: 210mm !important;
        padding: 12mm 15mm !important;
    }

    .landscape-report .search-overview-page .google-reach-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }

    .landscape-report .search-overview-page .report-content-split {
        grid-template-columns: minmax(0, 1.72fr) minmax(0, .68fr) !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

/* MiHi Hub v5.21 — keep every engagement KPI label and comparison fully
   inside its card in the on-screen report and in the generated PDF. */
@media screen, print {
    .landscape-report .engagement-page .engagement-stats-top,
    .pdf-export-mode .engagement-page .engagement-stats-top {
        flex: 0 0 auto !important;
        margin: 0 0 4mm !important;
    }

    .landscape-report .engagement-page .engagement-stat-heading,
    .pdf-export-mode .engagement-page .engagement-stat-heading {
        margin: 0 0 2mm !important;
        line-height: 1 !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 4mm !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top .engagement-stat-card,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top .engagement-stat-card {
        box-sizing: border-box !important;
        display: grid !important;
        grid-template-rows: minmax(8mm, auto) 1fr auto !important;
        align-content: stretch !important;
        height: 38mm !important;
        min-height: 38mm !important;
        max-height: 38mm !important;
        padding: 4.5mm 5.5mm 4mm !important;
        overflow: hidden !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top .engagement-stat-card > span,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top .engagement-stat-card > span {
        align-self: start !important;
        min-height: 0 !important;
        margin: 0 !important;
        font-size: 8.4pt !important;
        line-height: 1.12 !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top .engagement-stat-card > strong,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top .engagement-stat-card > strong {
        align-self: center !important;
        margin: 0 !important;
        font-size: 21.5pt !important;
        line-height: 1 !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top .engagement-stat-card > small,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top .engagement-stat-card > small {
        align-self: end !important;
        margin: 0 !important;
        font-size: 7.4pt !important;
        line-height: 1.12 !important;
    }

    /* Give the taller KPI row room by trimming only empty chart-card space;
       the actual plotted graph remains large and readable. */
    .landscape-report .engagement-page .engagement-chart-full,
    .pdf-export-mode .engagement-page .engagement-chart-full {
        flex: 0 0 87mm !important;
        height: 87mm !important;
        min-height: 87mm !important;
        max-height: 87mm !important;
        padding: 4.5mm 6mm !important;
    }

    .landscape-report .engagement-page .engagement-chart-full .report-line-chart,
    .pdf-export-mode .engagement-page .engagement-chart-full .report-line-chart {
        height: 59mm !important;
        max-height: 59mm !important;
    }
}

/* MiHi Hub v5.22 — remove the final engagement-page dead space.
   The page now uses explicit grid rows, so the chart begins immediately
   beneath the KPI cards and expands through the remaining page height. */
@media screen, print {
    .landscape-report .engagement-page,
    .pdf-export-mode .engagement-page {
        display: grid !important;
        grid-template-rows: auto auto minmax(0, 1fr) auto !important;
        align-content: stretch !important;
        justify-content: stretch !important;
        row-gap: 0 !important;
    }

    .landscape-report .engagement-page .document-header,
    .pdf-export-mode .engagement-page .document-header {
        margin-bottom: 5mm !important;
    }

    .landscape-report .engagement-page .engagement-stats-top,
    .pdf-export-mode .engagement-page .engagement-stats-top {
        margin: 0 0 4mm !important;
        align-self: start !important;
    }

    .landscape-report .engagement-page .engagement-chart-full,
    .pdf-export-mode .engagement-page .engagement-chart-full {
        align-self: stretch !important;
        display: block !important;
        box-sizing: border-box !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 4.5mm 6mm !important;
        flex: none !important;
        overflow: hidden !important;
    }

    .landscape-report .engagement-page .engagement-chart-full .line-chart-wrap,
    .pdf-export-mode .engagement-page .engagement-chart-full .line-chart-wrap {
        height: calc(100% - 17mm) !important;
        min-height: 0 !important;
    }

    .landscape-report .engagement-page .engagement-chart-full .report-line-chart,
    .pdf-export-mode .engagement-page .engagement-chart-full .report-line-chart {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 63mm !important;
        max-height: none !important;
    }

    .landscape-report .engagement-page .document-footer,
    .pdf-export-mode .engagement-page .document-footer {
        align-self: end !important;
        margin-top: 3mm !important;
    }
}

/* MiHi Hub v5.23 — the engagement KPI grid must have one row only.
   An older shared print rule still imposed two rows on .engagement-stat-grid,
   leaving an empty second row and pushing the graph down the page. */
@media screen, print {
    .landscape-report .engagement-page .engagement-stat-grid-top,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        grid-template-rows: minmax(0, auto) !important;
        grid-auto-rows: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        align-content: start !important;
        overflow: visible !important;
    }

    .landscape-report .engagement-page .engagement-stat-grid-top .engagement-stat-card,
    .pdf-export-mode .engagement-page .engagement-stat-grid-top .engagement-stat-card {
        grid-row: 1 !important;
    }

    .landscape-report .engagement-page .engagement-stats-top,
    .pdf-export-mode .engagement-page .engagement-stats-top {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

/* MiHi Hub v5.24 — select a separate Google login for each data source */
.per-source-account-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}
.mapping-source-fields {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
  gap: 12px;
  align-items: end;
}
.google-ads-account-card {
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr) minmax(0, .9fr);
  align-items: end;
}
.google-ads-account-card .mapping-editor-heading {
  align-self: start;
}
.future-source-note {
  display: grid;
  gap: 4px;
  min-height: 100%;
  padding: 13px 15px;
  border: 1px dashed rgba(0, 173, 239, .38);
  border-radius: 12px;
  background: rgba(0, 173, 239, .055);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}
.future-source-note strong {
  color: #0079aa;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.mapping-account-select,
.resource-select {
  width: 100%;
}
.resource-select:disabled,
.resource-search:disabled {
  cursor: not-allowed;
  opacity: .58;
  background: #f1f4f5;
}
.mapping-editor-card .field > span {
  min-height: 18px;
}

@media (max-width: 1180px) {
  .google-ads-account-card {
    grid-template-columns: 1fr 1fr;
  }
  .google-ads-account-card .mapping-editor-heading {
    grid-column: 1 / -1;
  }
}

@media (max-width: 820px) {
  .per-source-account-grid,
  .mapping-source-fields,
  .google-ads-account-card {
    grid-template-columns: 1fr;
  }
  .google-ads-account-card,
  .google-ads-account-card .mapping-editor-heading {
    grid-column: auto;
  }
}


/* MiHi Hub v5.25 — Google Ads OAuth and automatic account discovery */
.connection-info {
    display: block;
    margin-top: 6px;
    color: var(--muted, #5f6b78);
    line-height: 1.45;
}
.three-resource-columns {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.warning-note {
    border-style: dashed;
}
.google-ads-account-card code {
    font-size: .9em;
}
@media (max-width: 1180px) {
    .three-resource-columns {
        grid-template-columns: 1fr;
    }
}

/* MiHi Hub v5.26 — Google Ads campaign-level reporting controls */
.campaign-filter-panel {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid rgba(0, 173, 239, 0.22);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(0, 173, 239, 0.07), rgba(255, 255, 255, 0.94));
}
.campaign-filter-heading {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 14px;
}
.campaign-filter-heading > div {
    min-width: 0;
}
.campaign-filter-heading span {
    display: block;
    font-size: 14px;
    font-weight: 750;
    color: #17202a;
}
.campaign-filter-heading small {
    display: block;
    margin-top: 4px;
    color: #68747d;
    line-height: 1.45;
}
.campaign-filter-heading .button {
    flex: 0 0 auto;
    white-space: nowrap;
}
.campaign-choice-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    max-height: 330px;
    margin-top: 14px;
    padding: 4px;
    overflow: auto;
}
.campaign-choice-list.is-hidden {
    display: none;
}
.campaign-choice {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    min-width: 0;
    padding: 12px 13px;
    border: 1px solid #dce5ea;
    border-radius: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.campaign-choice:hover {
    border-color: rgba(0, 173, 239, .55);
    box-shadow: 0 7px 20px rgba(32, 61, 76, .08);
    transform: translateY(-1px);
}
.campaign-choice input {
    width: 17px;
    height: 17px;
    margin: 2px 0 0;
    accent-color: #00adef;
    flex: 0 0 auto;
}
.campaign-choice span {
    min-width: 0;
}
.campaign-choice strong,
.campaign-choice small {
    display: block;
}
.campaign-choice strong {
    overflow: hidden;
    color: #17202a;
    font-size: 13px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.campaign-choice small {
    margin-top: 4px;
    color: #77838b;
    font-size: 11px;
    line-height: 1.35;
}
@media (max-width: 980px) {
    .campaign-filter-heading {
        display: grid;
    }
    .campaign-choice-list {
        grid-template-columns: 1fr;
    }
}


/* MiHi Hub v5.27 — complete Google Ads report and campaign layout */
.google-ads-preview-scope {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0 16px;
}
.google-ads-preview-scope > span {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--soft);
}
.google-ads-preview-scope small { color: var(--muted); font-size: 11px; }
.google-ads-preview-scope strong { font-size: 13px; }
.google-ads-preview-campaigns { margin-top: 18px; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.google-ads-preview-campaigns > div {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) .65fr .65fr .8fr;
    gap: 12px;
    align-items: center;
    padding: 11px 13px;
    border-bottom: 1px solid var(--line);
}
.google-ads-preview-campaigns > div:last-child { border-bottom: 0; }
.google-ads-preview-campaigns .preview-campaign-head { background: var(--soft); color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.google-ads-preview-campaigns span { min-width: 0; font-size: 12px; }
.google-ads-preview-campaigns span:first-child { display: grid; gap: 2px; }
.google-ads-preview-campaigns strong,
.google-ads-preview-campaigns small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.google-ads-preview-campaigns small { color: var(--muted); font-size: 10px; }

@media screen, print {
    .landscape-report .ads-page,
    .pdf-export-mode .ads-page,
    .landscape-report .ads-campaign-page,
    .pdf-export-mode .ads-campaign-page {
        display: grid !important;
        grid-template-rows: auto auto auto minmax(0, 1fr) auto !important;
        align-content: stretch !important;
    }
    .ads-report-context {
        display: grid;
        grid-template-columns: 1.05fr 1.55fr .62fr;
        gap: 3.5mm;
        margin: 0 0 4mm;
    }
    .ads-report-context > div,
    .ads-pending-details > div {
        min-width: 0;
        display: grid;
        gap: 1mm;
        padding: 3.2mm 4mm;
        border: 1px solid #dce5e7;
        border-radius: 3mm;
        background: linear-gradient(145deg, #fff, #f7fbfb);
    }
    .ads-report-context span,
    .ads-pending-details span { color: #7a878d; font-size: 7.2pt; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
    .ads-report-context strong,
    .ads-pending-details strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #17252b; font-size: 9pt; }
    .ads-metric-grid { margin-bottom: 4mm !important; }
    .ads-metric-grid article { min-height: 29mm !important; height: 29mm !important; padding: 3.5mm 4mm !important; }
    .ads-metric-grid strong { font-size: 20pt !important; }
    .ads-overview-lower {
        display: grid;
        grid-template-columns: minmax(0, 2.25fr) minmax(58mm, .75fr);
        gap: 4mm;
        min-height: 0;
        align-self: stretch;
    }
    .ads-overview-lower.without-chart { grid-template-columns: 1fr; }
    .ads-chart-card {
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 4mm 5mm !important;
        overflow: hidden;
    }
    .ads-chart-card .chart-title h3 { margin: .7mm 0 1.5mm !important; font-size: 13.2pt !important; }
    .ads-chart-card .report-line-chart { width: 100% !important; height: 61mm !important; max-height: 61mm !important; }
    .ads-summary-card {
        padding: 5mm;
        border-radius: 4mm;
        color: #fff;
        background: linear-gradient(145deg, #12353c, #05777d);
        box-shadow: 0 2mm 7mm rgba(9, 49, 55, .16);
    }
    .ads-summary-card .eyebrow { color: #8ff8fa; }
    .ads-summary-card h3 { margin: 1.5mm 0 2.5mm; color: #fff; font-size: 15pt; line-height: 1.16; }
    .ads-summary-card > p:not(.eyebrow) { margin: 0 0 4mm; color: rgba(255,255,255,.82); font-size: 8.5pt; line-height: 1.48; }
    .ads-scope-stat { display: grid; gap: .7mm; padding: 2.5mm 0; border-top: 1px solid rgba(255,255,255,.2); }
    .ads-scope-stat span { color: rgba(255,255,255,.65); font-size: 7pt; }
    .ads-scope-stat strong { color: #fff; font-size: 9pt; }
    .ads-pending-page { grid-template-rows: auto auto auto auto minmax(0, 1fr) auto !important; }
    .ads-pending-hero {
        display: grid;
        grid-template-columns: 22mm minmax(0, 1fr);
        gap: 6mm;
        align-items: center;
        padding: 7mm;
        margin-bottom: 5mm;
        border-radius: 4mm;
        background: linear-gradient(115deg, rgba(0,174,182,.12), #f5fbfb 58%, #fff);
        border: 1px solid rgba(5,119,125,.18);
    }
    .ads-pending-icon {
        width: 20mm;
        height: 20mm;
        display: grid;
        place-items: center;
        border-radius: 50%;
        color: #fff;
        background: linear-gradient(145deg, #05777d, #00aeb6);
        font-size: 22pt;
        font-weight: 950;
    }
    .ads-pending-hero h3 { margin: 1mm 0 2mm; font-size: 18pt; }
    .ads-pending-hero p:not(.eyebrow) { margin: 0; max-width: 205mm; color: #536168; font-size: 10pt; line-height: 1.55; }
    .ads-skeleton-grid {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 3.5mm;
        margin-bottom: 5mm;
    }
    .ads-skeleton-grid article {
        min-height: 31mm;
        display: grid;
        align-content: center;
        gap: 1.3mm;
        padding: 4mm;
        border-radius: 3mm;
        border: 1px dashed #c7d5d8;
        background: #fbfdfd;
    }
    .ads-skeleton-grid span { color: #6e7d83; font-size: 8pt; }
    .ads-skeleton-grid strong { color: #a5b1b5; font-size: 22pt; }
    .ads-skeleton-grid small { color: #8d9a9f; font-size: 7pt; }
    .ads-pending-details { display: grid; grid-template-columns: 1fr 1.45fr 1.1fr; gap: 4mm; align-self: start; }
    .ads-campaign-page { grid-template-rows: auto auto minmax(0, 1fr) auto auto !important; }
    .ads-campaign-intro {
        display: grid;
        grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
        gap: 8mm;
        align-items: end;
        padding: 0 0 4mm;
    }
    .ads-campaign-intro h3 { margin: 1mm 0 0; font-size: 15pt; }
    .ads-campaign-intro > p { margin: 0; color: #647178; font-size: 8.4pt; line-height: 1.45; }
    .ads-campaign-table {
        min-height: 0;
        overflow: hidden;
        border: 1px solid #dbe4e6;
        border-radius: 3mm;
        background: #fff;
    }
    .ads-campaign-table > div {
        display: grid;
        grid-template-columns: minmax(0, 1.65fr) .68fr .62fr .52fr .62fr .62fr .78fr;
        gap: 2.5mm;
        align-items: center;
        padding: 2.55mm 3mm;
        border-bottom: 1px solid #e3eaec;
    }
    .ads-campaign-table > div:last-child { border-bottom: 0; }
    .ads-campaign-table-head {
        background: #eef5f6;
        color: #67757b;
        font-size: 6.7pt;
        font-weight: 950;
        text-transform: uppercase;
        letter-spacing: .035em;
    }
    .ads-campaign-row { min-height: 11.5mm; }
    .ads-campaign-row > span { min-width: 0; color: #445158; font-size: 7.5pt; }
    .ads-campaign-row > span:not(:first-child) { text-align: right; }
    .ads-campaign-name { display: grid; gap: .4mm; text-align: left !important; }
    .ads-campaign-name strong,
    .ads-campaign-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ads-campaign-name strong { color: #17252b; font-size: 8.2pt; }
    .ads-campaign-name small { color: #879399; font-size: 6.4pt; }
    .ads-campaign-footnote { margin: 2.5mm 0 0; color: #78858b; font-size: 7.2pt; }
}

@media screen and (max-width: 1150px) {
    .google-ads-preview-scope { grid-template-columns: 1fr; }
    .google-ads-preview-campaigns > div { grid-template-columns: minmax(0, 1fr) repeat(3, auto); }
    .landscape-report .ads-overview-lower { grid-template-columns: minmax(0, 2.25fr) minmax(58mm, .75fr) !important; }
    .landscape-report .ads-skeleton-grid { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
    .landscape-report .ads-report-context { grid-template-columns: 1.05fr 1.55fr .62fr !important; }
    .landscape-report .ads-campaign-table > div { grid-template-columns: minmax(0, 1.65fr) .68fr .62fr .52fr .62fr .62fr .78fr !important; }
}

/* v5.28 Meta connection readiness */
.meta-setup-card{border-left-color:#5367c7}.meta-setup-card a{color:var(--cyan-dark);font-weight:800}.meta-resource-panel{border-top:4px solid #5266bd}.meta-resource-columns{grid-template-columns:minmax(240px,.8fr) minmax(420px,2fr)}.account-card-copy small{display:block;margin-top:5px}.account-card-copy .connection-info,.account-card-copy .connection-error{margin-top:7px}.provider-logo.meta{background:linear-gradient(135deg,#eef0ff,#e1e7ff);color:#4057c7}.badge.not_connected{background:#eef2f4;color:#65727a}.connection-controls form{margin:0}.resource-list>p.connection-info{margin:12px 0 0}.callback-code{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:920px){.meta-resource-columns{grid-template-columns:1fr}.account-card{grid-template-columns:42px 1fr}.connection-controls{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}}

/* MiHi Hub v5.30 — simplified Meta Ads reporting */
.meta-ads-account-card {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .72fr) minmax(0, .9fr);
    align-items: end;
    border-color: rgba(82, 102, 189, .22);
    background: linear-gradient(145deg, rgba(82, 102, 189, .035), #fff 48%);
}
.meta-ads-account-card .mapping-editor-heading { align-self: start; }
.meta-source-icon {
    color: #fff !important;
    background: linear-gradient(145deg, #4057c7, #7b5fd4) !important;
}
.meta-campaign-filter-panel {
    border-color: rgba(82, 102, 189, .24);
    background: linear-gradient(145deg, rgba(82, 102, 189, .07), rgba(255, 255, 255, .96));
}
.meta-campaign-choice:hover { border-color: rgba(82, 102, 189, .55); }
.meta-campaign-choice input { accent-color: #5266bd; }
.meta-future-note {
    border-color: rgba(82, 102, 189, .34);
    background: rgba(82, 102, 189, .055);
}
.meta-future-note strong { color: #4057c7; }
.meta-ads-preview-card { border-top: 4px solid #5266bd; }
.meta-ads-preview-scope > span { background: linear-gradient(145deg, #fff, #f7f6ff); }
.meta-ads-preview-campaigns .preview-campaign-head { background: #f0effa; }
.meta-ads-awaiting-card { border-left: 4px solid #5266bd; }

@media (max-width: 1180px) {
    .meta-ads-account-card {
        grid-template-columns: 1fr 1fr;
    }
    .meta-ads-account-card .mapping-editor-heading {
        grid-column: 1 / -1;
    }
}
@media (max-width: 820px) {
    .meta-ads-account-card {
        grid-template-columns: 1fr;
        grid-column: auto;
    }
    .meta-ads-account-card .mapping-editor-heading { grid-column: auto; }
}

@media screen, print {
    .meta-ads-page .document-header::before,
    .meta-ads-campaign-page .document-header::before {
        background: #5266bd !important;
    }
    .meta-ads-page .document-header .eyebrow,
    .meta-ads-campaign-page .document-header .eyebrow,
    .meta-ads-chart-card .eyebrow,
    .meta-ads-campaign-intro .eyebrow {
        color: #5266bd !important;
    }
    .meta-ads-metric-grid article {
        border-color: rgba(82, 102, 189, .18) !important;
        background: linear-gradient(145deg, #fff, #f8f7ff) !important;
    }
    .meta-ads-summary-card {
        background: linear-gradient(145deg, #283672, #5f4fa3) !important;
        box-shadow: 0 2mm 7mm rgba(52, 48, 116, .18) !important;
    }
    .meta-ads-summary-card .eyebrow { color: #d9d7ff !important; }
    .meta-ads-pending-hero {
        background: linear-gradient(115deg, rgba(82,102,189,.12), #f7f6ff 58%, #fff) !important;
        border-color: rgba(82,102,189,.2) !important;
    }
    .meta-ads-pending-icon {
        background: linear-gradient(145deg, #4057c7, #7b5fd4) !important;
    }
    .meta-ads-campaign-table .ads-campaign-table-head { background: #f0effa !important; }
}
