/*
 * Analytics Capture shared design system.
 * Extracted from the public homepage so every route uses one visual language.
 */
:root{
  /* Compatibility aliases: theme.css owns the base palette values. */
  --ac-ds-ink:var(--ac-ink,#0c1714);
  --ac-ds-ink-soft:var(--ac-ink-soft,#20312b);
  --ac-ds-cream:var(--color-bg,#f3f1e8);
  --ac-ds-paper:var(--color-surface,#ffffff);
  --ac-ds-lime:var(--ac-lime,#a7ff4f);
  --ac-ds-mint:var(--ac-mint,#efffe3);
  --ac-ds-line:var(--color-border,#d7d5c9);
  --ac-ds-muted:var(--color-text-muted,#52605a);
  --ac-ds-on-dark:var(--color-on-dark-muted,#d9e6df);
  --ac-ds-warning:var(--color-warning-border,#b98900);
  --ac-ds-warning-bg:var(--color-warning-bg,#fff8e6);
  --ac-ds-danger:var(--color-danger,#b42318);
  --ac-ds-success:var(--color-link,#285b32);

  --ac-ds-gradient-dark:radial-gradient(circle at 82% 18%,rgba(167,255,79,.12),transparent 32%),linear-gradient(145deg,var(--ac-ds-ink),#14251f 58%,var(--ac-ds-ink-soft));
  --ac-ds-gradient-mint:linear-gradient(145deg,var(--ac-ds-mint),var(--ac-ds-paper));
  --ac-ds-gradient-paper:linear-gradient(145deg,var(--ac-ds-paper),#f8f6ee);

  --ac-ds-space-1:4px;
  --ac-ds-space-2:8px;
  --ac-ds-space-3:12px;
  --ac-ds-space-4:16px;
  --ac-ds-space-5:20px;
  --ac-ds-space-6:24px;
  --ac-ds-space-7:32px;
  --ac-ds-space-8:40px;
  --ac-ds-space-9:56px;
  --ac-ds-space-10:72px;

  --ac-ds-radius-xs:5px;
  --ac-ds-radius-sm:8px;
  --ac-ds-radius-md:12px;
  --ac-ds-radius-lg:14px;
  --ac-ds-radius-xl:20px;

  --ac-ds-shadow-offset:8px 8px 0 var(--ac-ds-ink);
  --ac-ds-shadow-offset-lime:8px 8px 0 var(--ac-ds-lime);
  --ac-ds-shadow-float:0 24px 64px rgba(12,23,20,.16);

  --ac-font-sans:var(--font-sans);
  --ac-font-mono:var(--font-mono);
  --ac-type-xs:11px;
  --ac-type-sm:13px;
  --ac-type-base:16px;
  --ac-type-lead:clamp(17px,1.6vw,21px);
  --ac-type-h3:clamp(22px,2.2vw,30px);
  --ac-type-h2:clamp(34px,4.6vw,58px);
  --ac-type-display:clamp(46px,6vw,82px);

  --ac-ease-out:cubic-bezier(.2,.75,.25,1);
  --ac-ease-standard:cubic-bezier(.2,.8,.2,1);
  --ac-motion-fast:180ms;
  --ac-motion-base:320ms;
  --ac-motion-reveal:380ms;
  --ac-motion-count:400ms;
  --ac-motion-stagger:70ms;
  --ac-motion-pulse:2.7s;

  /* Backward-compatible homepage aliases while public-home.css is simplified. */
  --landing-ink:var(--ac-ds-ink);
  --landing-cream:var(--ac-ds-cream);
  --landing-paper:var(--ac-ds-paper);
  --landing-lime:var(--ac-ds-lime);
  --landing-mint:var(--ac-ds-mint);
  --landing-line:var(--ac-ds-line);
  --landing-muted:var(--ac-ds-muted);
}

body.ac-product{
  font-family:var(--ac-font-sans);
  color:var(--ac-ds-ink);
  background:
    radial-gradient(circle at 8% -10%,rgba(12,23,20,.08),transparent 32rem),
    radial-gradient(circle at 96% 8%,rgba(12,23,20,.06),transparent 28rem),
    var(--ac-ds-cream);
}
body.ac-product :is(button,.button,input,select,textarea){
  font-family:var(--ac-font-sans);
}
body.ac-product :is(code,pre,kbd,samp){
  font-family:var(--ac-font-mono);
}
body.ac-product h1,
body.ac-product h2,
body.ac-product h3{
  color:inherit;
  letter-spacing:-.035em;
}
body.ac-product h1{font-weight:650}
body.ac-product h2,
body.ac-product h3{font-weight:600}

/* Shared page rhythm */
.ac-story-section{padding:clamp(48px,7vw,88px) 0;border-top:1px solid var(--ac-ds-line)}
.ac-section-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(280px,1.2fr);gap:clamp(22px,5vw,56px);align-items:end;margin-bottom:var(--ac-ds-space-7)}
.ac-section-head h2{margin:8px 0 0;font-size:var(--ac-type-h2);line-height:1.02;letter-spacing:-.05em}
.ac-section-head p{max-width:620px;margin:0;color:var(--ac-ds-muted);font-size:var(--ac-type-base);line-height:1.6}
.ac-eyebrow,.ac-kicker{
  display:flex;align-items:center;gap:9px;
  color:var(--ac-ds-muted);
  font-size:var(--ac-type-xs);font-weight:800;
  letter-spacing:.11em;text-transform:uppercase;
}
.ac-eyebrow::before{
  content:"";width:9px;height:9px;flex:0 0 9px;
  border:1px solid var(--ac-ds-ink);border-radius:50%;
  background:var(--ac-ds-lime);
}
.ac-display{font-size:var(--ac-type-display)!important;line-height:.98!important;letter-spacing:-.058em!important}
.ac-lead{color:var(--ac-ds-muted);font-size:var(--ac-type-lead);line-height:1.55}

/* Shared surfaces */
.ac-surface,.ac-card{
  border:1px solid var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-md);
  background:var(--ac-ds-paper);
}
.ac-card{padding:clamp(18px,2.6vw,28px)}
.ac-card--lift{border-color:var(--ac-ds-ink);box-shadow:5px 5px 0 var(--ac-ds-line)}
.ac-card--mint{background:var(--ac-ds-gradient-mint)}
.ac-surface-dark{
  position:relative;isolation:isolate;overflow:hidden;
  border:1px solid var(--ac-ds-ink);
  border-radius:var(--ac-ds-radius-lg);
  background:var(--ac-ds-gradient-dark);
  color:#fff;
  box-shadow:var(--ac-ds-shadow-float);
}
.ac-surface-dark::after{
  content:"";position:absolute;z-index:-1;
  right:-14%;bottom:-44%;width:58%;height:72%;
  border-radius:50%;background:rgba(167,255,79,.10);filter:blur(28px);
}
.ac-surface-dark :is(h1,h2,h3,strong):not(.button *,button *){color:#fff}
.ac-surface-dark :is(h4,label,summary):not(.button *,button *){color:#fff!important}
.ac-surface-dark :is(p,small){color:var(--ac-ds-on-dark)}
.ac-surface-dark :is(.muted,.small,.hint,.help,.flow-muted,.status-line){color:var(--ac-ds-on-dark)!important}
.ac-surface-dark :is(.eyebrow,.hero-kicker,.next-label,.ac-eyebrow,.ac-kicker){color:var(--ac-ds-lime)!important}
.ac-surface-dark .ac-eyebrow::before{border-color:var(--ac-ds-on-dark)}

/* Buttons */
body.ac-product :is(button,.button){
  min-height:44px;
  max-width:100%;
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  line-height:1.4;
  text-align:center;
  border-radius:var(--ac-ds-radius-sm);
  transition:
    transform var(--ac-motion-fast) var(--ac-ease-standard),
    box-shadow var(--ac-motion-fast) var(--ac-ease-standard),
    border-color var(--ac-motion-fast) var(--ac-ease-standard),
    background var(--ac-motion-fast) var(--ac-ease-standard);
}
body.ac-product :is(button,.button):hover:not(:disabled){transform:translateY(-2px)}
body.ac-product :is(button.primary,.button.primary,button[data-variant="primary"],.button[data-variant="primary"]){
  border-color:var(--ac-ds-ink);
  background:var(--ac-ds-ink);
  color:#fff;
  box-shadow:3px 3px 0 var(--ac-ds-lime);
}
body.ac-product :is(button.primary,.button.primary):hover:not(:disabled){
  background:var(--ac-ds-ink-soft);
  box-shadow:5px 5px 0 var(--ac-ds-lime);
}
body.ac-product .ac-surface-dark :is(button.primary,.button.primary,button[data-variant="primary"],.button[data-variant="primary"]){
  border-color:var(--ac-ds-lime)!important;
  background:var(--ac-ds-lime)!important;
  color:var(--ac-ds-ink)!important;
  box-shadow:4px 4px 0 rgba(255,255,255,.92)!important;
}
body.ac-product .ac-surface-dark :is(button,.button):not(.primary):not([data-variant="primary"]){
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.06);
  color:#fff;
}
body.ac-product :is(button,.button) :is(strong,span,small){color:inherit}

/* Status and evidence */
.ac-status-pill{
  display:inline-flex;align-items:center;gap:7px;
  min-height:28px;padding:5px 9px;
  border:1px solid var(--ac-ds-line);border-radius:999px;
  background:#fff;color:var(--ac-ds-muted);
  font-size:var(--ac-type-xs);font-weight:800;
}
.ac-status-pill::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--ac-ds-line);
}
.ac-status-pill[data-state="good"]{border-color:#9fc38f;background:#f4ffed;color:var(--ac-ds-success)}
.ac-status-pill[data-state="good"]::before{background:var(--ac-ds-success)}
.ac-status-pill[data-state="warn"]{border-color:#dfbd76;background:var(--ac-ds-warning-bg);color:#805b00}
.ac-status-pill[data-state="warn"]::before{background:#d08a00}
.ac-status-pill[data-state="bad"]{border-color:#dda19d;background:#fff0f0;color:#9d2828}
.ac-status-pill[data-state="bad"]::before{background:var(--ac-ds-danger)}

.ac-stream,.ac-evidence-list{display:grid;gap:9px}
.ac-stream-row,.ac-evidence-row{
  display:grid;grid-template-columns:32px minmax(0,1fr) auto;
  gap:12px;align-items:center;
  padding:11px 12px;
  border:1px solid var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-sm);
  background:#fff;
}
.ac-stream-row .ac-tick,.ac-evidence-row .ac-tick{
  display:grid;place-items:center;width:31px;height:31px;
  border:1px solid var(--ac-ds-ink);border-radius:50%;
  background:var(--ac-ds-mint);
  color:var(--ac-ds-ink);font-size:12px;font-weight:800;
}
.ac-stream-row[data-state="gap"],.ac-evidence-row[data-state="gap"]{
  border-color:#c0804d;background:var(--ac-ds-warning-bg);
}
.ac-stream-row[data-state="gap"] .ac-tick,.ac-evidence-row[data-state="gap"] .ac-tick{background:var(--ac-ds-warning)}
.ac-stream-row small,.ac-evidence-row small{color:var(--ac-ds-muted)}

.ac-destination-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:7px}
.ac-destination-chip{
  display:grid;place-items:center;min-height:52px;padding:8px;
  border:1px solid var(--ac-ds-line);border-radius:var(--ac-ds-radius-sm);
  background:#fff;color:var(--ac-ds-ink);
  font-size:12px;font-weight:800;text-align:center;
}

/* Loading, empty and error states */
.ac-state{
  padding:18px;border:1px solid var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-md);background:var(--ac-ds-paper);
  color:var(--ac-ds-muted);
}
.ac-state strong{display:block;margin-bottom:4px;color:var(--ac-ds-ink)}
.ac-state--loading{background:linear-gradient(105deg,#fffef8 25%,#f4f2e9 40%,#fffef8 55%);background-size:220% 100%;animation:ac-shimmer 1.6s linear infinite}
.ac-state--empty{border-style:dashed}
.ac-state--error{border-color:#dda19d;background:#fff0f0;color:#9d2828}

/* Content stays visible during slow/failed script loads. Animate only a reveal
   that has completed; do not hide already-painted content during hydration. */
html.ac-motion [data-ac-reveal],
html.ac-motion .ac-reveal{
  opacity:1;transform:none;
}
html.ac-motion [data-ac-reveal].is-visible,
html.ac-motion .ac-reveal.is-visible{animation:ac-reveal-in var(--ac-motion-reveal) var(--ac-ease-out) both}

html.ac-motion [data-ac-stagger] > [data-ac-stagger-item],
html.ac-motion [data-ac-stream] > [data-ac-stream-item]{
  opacity:1;transform:none;
}
html.ac-motion [data-ac-stagger].is-visible > [data-ac-stagger-item],
html.ac-motion [data-ac-stream].is-visible > [data-ac-stream-item]{
  animation:ac-reveal-in var(--ac-motion-base) var(--ac-ease-out) both;
  animation-delay:calc(var(--ac-motion-order,0) * var(--ac-motion-stagger));
}
@keyframes ac-reveal-in{from{opacity:.92;transform:translateY(6px)}to{opacity:1;transform:none}}
html.ac-reduced-motion [data-ac-reveal],
html.ac-reduced-motion .ac-reveal,
html.ac-reduced-motion [data-ac-stagger] > [data-ac-stagger-item],
html.ac-reduced-motion [data-ac-stream] > [data-ac-stream-item]{
  opacity:1!important;transform:none!important;transition:none!important;animation:none!important;
}

/* Homepage animation primitives now live here and can be reused. */
@keyframes ac-signal-pulse{0%,100%{transform:scale(.82);opacity:.62}50%{transform:scale(1);opacity:1}}
@keyframes ac-coverage-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ac-shimmer{to{background-position:-220% 0}}

@media(max-width:800px){
  .ac-section-head{grid-template-columns:1fr}
  .ac-story-section{padding:44px 0}
}
@media(max-width:600px){
  .ac-stream-row,.ac-evidence-row{grid-template-columns:30px minmax(0,1fr)}
  .ac-stream-row>small,.ac-evidence-row>small{grid-column:2}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body.ac-product :is(button,.button){transition:none}
  .ac-state--loading{animation:none;background:var(--ac-ds-paper)}
}


/* Dashboard / workspace storytelling */
.ac-page-dashboard .home-hero{
  padding:clamp(30px,4.8vw,58px);
  border-radius:var(--ac-ds-radius-xl);
  background:var(--ac-ds-gradient-dark)!important;
  box-shadow:var(--ac-ds-shadow-float)!important;
}
.ac-page-dashboard .home-hero .hero-kicker{color:var(--ac-ds-lime);letter-spacing:.13em}
.ac-page-dashboard .home-hero h1{font-size:clamp(42px,5.2vw,72px);line-height:.98;letter-spacing:-.058em}
.ac-page-dashboard .next-card{
  border-color:rgba(167,255,79,.34);
  background:linear-gradient(145deg,rgba(167,255,79,.14),rgba(255,255,255,.045));
}
.ac-page-dashboard .status-grid{
  overflow:hidden;border:1px solid var(--ac-ds-ink);
  border-radius:var(--ac-ds-radius-md);
  background:var(--ac-ds-paper);
}
.ac-page-dashboard .status-card{
  min-height:142px;border:0!important;border-left:1px solid var(--ac-ds-line)!important;
  border-radius:0!important;background:transparent!important;box-shadow:none!important;
  padding:20px;
}
.ac-page-dashboard .status-card:first-child{border-left:0!important}
.ac-page-dashboard .status-card strong{margin-top:14px;font-size:clamp(26px,2.5vw,38px);letter-spacing:-.05em}
.ac-page-dashboard .status-dot{box-shadow:0 0 0 5px rgba(12,23,20,.06)}
.ac-page-dashboard .status-dot.good{box-shadow:0 0 0 5px rgba(40,91,50,.12)}
.ac-page-dashboard .measurement-snapshot,
.ac-page-dashboard .live-visuals,
.ac-page-dashboard .attention,
.ac-page-dashboard .activity,
.ac-page-dashboard .mvp-flow,
.ac-page-dashboard .measurement-flow{
  border-color:var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-md);
  background:var(--ac-ds-paper);
  box-shadow:none;
}
.ac-page-dashboard .measurement-snapshot,
.ac-page-dashboard .live-visuals{border-color:var(--ac-ds-ink)}
.ac-page-dashboard .coverage-ring{
  background:conic-gradient(var(--ac-ds-lime) var(--coverage),rgba(255,255,255,.13) 0)!important;
  box-shadow:0 0 0 1px var(--ac-ds-ink),0 0 0 8px rgba(167,255,79,.08);
}
.ac-page-dashboard .coverage-ring:after{background:var(--ac-ds-ink)!important}
.ac-page-dashboard .coverage-ring strong{color:var(--ac-ds-lime)}
.ac-page-dashboard .snapshot-card:first-child{
  background:var(--ac-ds-ink);color:#fff;border-color:var(--ac-ds-ink);
}
.ac-page-dashboard .snapshot-card:first-child :is(span,a){color:var(--ac-ds-on-dark)}
.ac-page-dashboard .snapshot-card:first-child a{color:var(--ac-ds-lime)}
.ac-page-dashboard .pipeline-fill,.ac-page-dashboard .viz-bar-fill{
  background:linear-gradient(90deg,var(--ac-ds-lime),#79c93d)!important;
}
.ac-page-dashboard .viz-chart-wrap{
  border-color:var(--ac-ds-ink);
  background:linear-gradient(180deg,var(--ac-ds-paper),#f8f6ee);
}
.ac-page-dashboard .attention-item,.ac-page-dashboard .activity-item{
  transition:transform var(--ac-motion-fast) var(--ac-ease-standard),border-color var(--ac-motion-fast) ease,background var(--ac-motion-fast) ease;
}
.ac-page-dashboard .attention-item:hover{transform:translateY(-2px);border-color:var(--ac-ds-ink);background:var(--ac-ds-mint)}
.ac-page-dashboard .empty{border-color:var(--ac-ds-line);color:var(--ac-ds-muted)}

/* Journeys: reuse homepage live-stream and evidence rail language. */
.ac-page-journeys .page{max-width:1180px}
.ac-page-journeys .hero{
  position:relative;overflow:hidden;
  padding:clamp(32px,5vw,58px);
  border:1px solid var(--ac-ds-ink)!important;
  border-radius:var(--ac-ds-radius-xl)!important;
  background:var(--ac-ds-gradient-dark)!important;
  box-shadow:var(--ac-ds-shadow-float)!important;
}
.ac-page-journeys .hero h1{
  font-size:clamp(42px,5.5vw,72px)!important;
  line-height:.98!important;letter-spacing:-.058em!important;
}
.ac-page-journeys .hero-flow{gap:9px}
.ac-page-journeys .hero-flow div{
  border-color:rgba(255,255,255,.15)!important;
  border-radius:var(--ac-ds-radius-sm)!important;
  background:rgba(255,255,255,.05)!important;
}
.ac-page-journeys .hero-flow b{
  border:1px solid rgba(255,255,255,.22);
  background:var(--ac-ds-lime)!important;color:var(--ac-ds-ink)!important;
}
.ac-page-journeys .card{
  border-color:var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-md);
  background:var(--ac-ds-paper);
  box-shadow:none;
}
.ac-page-journeys .active-recorder{
  border-color:var(--ac-ds-ink);
  border-radius:var(--ac-ds-radius-md);
  background:var(--ac-ds-gradient-mint);
}
.ac-page-journeys .live-dot{
  background:var(--ac-ds-lime);
  box-shadow:0 0 0 5px rgba(167,255,79,.14);
  animation:ac-signal-pulse var(--ac-motion-pulse) ease-in-out infinite;
}
.ac-page-journeys .count{color:var(--ac-ds-ink);font-size:40px;letter-spacing:-.055em}
.ac-page-journeys .journey{
  border-color:var(--ac-ds-ink);
  border-radius:var(--ac-ds-radius-md);
  background:var(--ac-ds-paper);
  box-shadow:5px 5px 0 var(--ac-ds-line);
}
.ac-page-journeys .journey-title{font-size:clamp(24px,3vw,34px);letter-spacing:-.045em}
.ac-page-journeys .status-pill{
  border:1px solid var(--ac-ds-line);background:#fff;
}
.ac-page-journeys .timeline{margin-top:24px}
.ac-page-journeys .step-card{
  border-color:var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-sm);
  background:#fff;
}
.ac-page-journeys .step-number{
  border:1px solid var(--ac-ds-ink);
  background:var(--ac-ds-mint);
  color:var(--ac-ds-ink);
}
.ac-page-journeys .step-rail:after{background:var(--ac-ds-line)}
.ac-page-journeys .event-chip,.ac-page-journeys .page-chip{
  border-color:var(--ac-ds-line);background:var(--ac-ds-paper)
}
.ac-page-journeys .event-chip{font-family:var(--ac-font-mono)}
.ac-page-journeys .empty,.ac-page-journeys .notice{
  border:1px solid var(--ac-ds-line);background:var(--ac-ds-paper)
}
.ac-page-journeys .notice.error{border-color:#dda19d;background:#fff0f0}
@media(max-width:930px){
  .ac-page-dashboard .status-card{border-left:0!important;border-top:1px solid var(--ac-ds-line)!important}
  .ac-page-dashboard .status-card:first-child{border-top:0!important}
}
@media(prefers-reduced-motion:reduce){
  .ac-page-journeys .live-dot{animation:none}
}


/* Route-family consistency layer.
   These rules deliberately style shared chrome/surfaces only; specialist page components
   keep their own layout and behaviour contracts. */
body.ac-product .page{
  width:min(100%,1240px);
  margin-inline:auto;
}
body.ac-product :is(header,.intro,.hero,.pro-hero,.source-hero,.monitor-head,.catalog-intro){
  min-width:0;
}
body.ac-product .page > :is(header,.intro):not(.home-hero):not(.monitor-head){
  margin-bottom:var(--ac-ds-space-6);
}
body.ac-product .page > :is(header,.intro):not(.home-hero) h1{
  max-width:900px;
  margin:8px 0 10px;
  font-size:clamp(36px,4.8vw,58px);
  line-height:1;
  letter-spacing:-.052em;
}
body.ac-product .page > :is(header,.intro):not(.home-hero) p{
  max-width:780px;
  color:var(--ac-ds-muted);
  font-size:15px;
  line-height:1.6;
}
body.ac-product .eyebrow{
  color:var(--ac-ds-muted);
  font-size:11px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
body.ac-product :is(.panel,.card,.setup-step,.install-card,.storage-option,.provider,.flow-panel,.flow-card,.module-card,.issue-card,.finding-card){
  border-color:var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-md);
}
body.ac-product :is(.empty,.notice,.note){
  border-radius:var(--ac-ds-radius-md);
}
body.ac-product .empty{
  border-color:var(--ac-ds-line);
  background:var(--ac-ds-paper);
  color:var(--ac-ds-muted);
}
body.ac-product :is(.secure-context-nav,.section-navigation,.tabs,.tab-list){
  scrollbar-width:thin;
}
body.ac-product :is(.secure-context-nav,.section-navigation){
  border-color:var(--ac-ds-line);
}
body.ac-product :is(input,select,textarea){
  border-radius:var(--ac-ds-radius-sm);
}
body.ac-product :is(table,.table-scroll){
  border-color:var(--ac-ds-line);
}

/* Guided setup: preserve forms/checklists, but give the flow the homepage's narrative rhythm. */
body.ac-family-guided :is(.setup-step,.install-card,.storage-option){
  background:var(--ac-ds-paper);
}
body.ac-family-guided .setup-step{
  scroll-margin-top:110px;
}
body.ac-family-guided .setup-step > :is(.section-head,h2):first-child{
  position:relative;
}
@media(min-width:900px){
  body.ac-family-guided .setup-step{
    position:relative;
  }
}

/* Live-data pages: dark story opener + crisp evidence rows, without changing tools/editors. */
body.ac-family-stream .page > :is(header,.hero,.pro-investigator-hero){
  border-color:var(--ac-ds-ink)!important;




}
body.ac-family-stream .page > :is(header,.hero,.pro-investigator-hero) p{color:var(--ac-ds-on-dark)}
body.ac-family-stream :is(.flow-card,.step-card,.event-row,.event-card,.journey){
  background:var(--ac-ds-paper);
}

/* Monitoring/health: evidence first, warning states remain semantically distinct. */
body.ac-family-health :is(.issue-card,.finding-card,.health-card,.check){
  background:var(--ac-ds-paper);
}

/* Integrations: same polished destination treatment as the homepage strip. */
body.ac-family-integrations :is(.provider,.connection-card,.connector-card,.source-card){

  transition:transform var(--ac-motion-fast) var(--ac-ease-standard),box-shadow var(--ac-motion-fast) var(--ac-ease-standard);
}
body.ac-family-integrations :is(.provider,.connection-card,.connector-card,.source-card):hover{
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(12,23,20,.12);
}

/* Governance: calm editorial surfaces, strong review/publish affordances. */
/* Utility pages stay intentionally quieter. */
/* Analysis / Pro surfaces can be richer without changing module internals. */
body.ac-family-analysis .page > :is(.pro-hero,header,.hero){
  border-color:var(--ac-ds-ink)!important;
  border-radius:var(--ac-ds-radius-lg)!important;
  background:var(--ac-ds-gradient-dark)!important;
  color:#fff!important;
  box-shadow:var(--ac-ds-shadow-float);
}
body.ac-family-analysis .page > :is(.pro-hero,header,.hero) :is(h1,h2,h3,strong):not(.button *,button *){color:#fff}
body.ac-family-analysis .page > :is(.pro-hero,header,.hero) p{color:var(--ac-ds-on-dark)}

/* Public acquisition pages share the homepage's paper/card language while preserving
   their purpose-built visualisations, demos and audit controls. */
body.ac-family-public:not(:has(.public-home)) :is(.card,.panel,.tool-card,.audit-card){

  background:var(--ac-ds-paper);
}

/* Mobile consistency without flattening page-specific grids. */
@media(max-width:700px){
  body.ac-product .page{width:100%;padding-inline:14px}
  body.ac-product .page > :is(header,.intro,.hero,.pro-hero,.source-hero,.monitor-head,.catalog-intro){
    border-radius:var(--ac-ds-radius-md)!important;
  }
  body.ac-product .page > :is(header,.intro):not(.home-hero) h1{
    font-size:clamp(34px,11vw,50px);
  }
}


/* ========================================================================== */
/* Styling consistency pass: shared cascade ownership                         */
/* ========================================================================== */

/*
 * The authenticated shell historically flattened the homepage visual language
 * with later !important declarations. Keep specialist component layouts, but
 * let the shared system own type, focus, primary actions and ordinary surfaces.
 */
body.guided-workspace.ac-product{
  --ac-app-content-max:1320px;
}
body.guided-workspace.ac-product .page,
body.guided-workspace.ac-product .page.home{
  width:min(100%,var(--ac-app-content-max));
  max-width:var(--ac-app-content-max);
}
body.guided-workspace.ac-product .page > :is(header,.intro,.hero,.home-hero,.source-hero,.monitor-head,.catalog-intro) h1{
  font-family:var(--ac-font-sans);
  font-size:clamp(34px,4vw,54px)!important;
  line-height:1.02!important;
  letter-spacing:-.048em!important;
  text-wrap:balance;
}
body.guided-workspace.ac-product .page > :is(header,.intro,.hero,.home-hero,.source-hero,.monitor-head,.catalog-intro) h2{
  font-family:var(--ac-font-sans);
  font-size:clamp(24px,2.5vw,34px);
  line-height:1.08;
  letter-spacing:-.035em;
  text-wrap:balance;
}
body.guided-workspace.ac-product :is(.panel,.card,.setup-step,.flow-panel,.install-card,.status-card,.provider,.issue-card,.finding-card){
  background-color:var(--ac-ds-paper);
}
body.guided-workspace.ac-product :is(.button.primary,button.primary){
  box-shadow:3px 3px 0 var(--ac-ds-lime)!important;
}
body.guided-workspace.ac-product :is(.button.primary,button.primary):hover:not(:disabled){
  box-shadow:5px 5px 0 var(--ac-ds-lime)!important;
}
body.ac-product :is(a,button,.button,input,select,textarea,summary):focus-visible{
  outline:3px solid var(--color-link);
  outline-offset:3px;
}
body.ac-product :is(button,.button)[disabled],
body.ac-product :is(button,.button)[aria-disabled="true"]{
  cursor:not-allowed;
  transform:none!important;
}

/*
 * PRO hub exception: its component contract is a deliberate light information
 * panel beside a dark entitlement summary. The family-level dark-hero rule must
 * not paint the parent behind both children or force light-panel copy to white.
 */
body.ac-family-analysis .pro-tools-page .pro-hero{
  overflow:visible;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--ac-ds-ink)!important;
  box-shadow:none!important;
}
body.ac-family-analysis .pro-tools-page .pro-intro{
  border:1px solid var(--ac-ds-ink)!important;
  background:
    radial-gradient(circle at 92% 0,rgba(167,255,79,.2),transparent 18rem),
    var(--ac-ds-gradient-mint)!important;
  color:var(--ac-ds-ink)!important;
  box-shadow:6px 6px 0 var(--ac-ds-ink)!important;
}
body.ac-family-analysis .pro-tools-page .pro-intro :is(h1,h2,h3,strong):not(.button *,button *){
  color:var(--ac-ds-ink)!important;
}
body.ac-family-analysis .pro-tools-page .pro-intro h1{
  max-width:820px;
  font-size:clamp(36px,4.5vw,58px)!important;
  line-height:1.01!important;
  letter-spacing:-.052em!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:balance;
}
body.ac-family-analysis .pro-tools-page .pro-intro p{
  color:var(--ac-ds-muted)!important;
  font-size:clamp(15px,1.45vw,18px);
  line-height:1.58;
}
body.ac-family-analysis .pro-tools-page .pro-intro .eyebrow{
  color:var(--ac-ds-muted)!important;
}
body.ac-family-analysis .pro-tools-page .pro-summary{
  border-color:var(--ac-ds-ink)!important;
  background:var(--ac-ds-gradient-dark)!important;
  color:#fff!important;
  box-shadow:6px 6px 0 var(--ac-ds-lime)!important;
}
body.ac-family-analysis .pro-tools-page .pro-summary :is(strong,h2,h3):not(.button *,button *){color:#fff!important}
body.ac-family-analysis .pro-tools-page .pro-summary :is(span,p){color:var(--ac-ds-on-dark)!important}
body.ac-family-analysis .pro-tools-page .pro-intro .button:not(.primary){
  border-color:var(--ac-ds-line);
  background:rgba(255,255,255,.72);
  color:var(--ac-ds-ink);
}
body.ac-family-analysis .pro-tools-page .pro-intro .button:not(.primary):hover{
  border-color:var(--ac-ds-ink);
  background:#fff;
}

@media(max-width:960px){
  body.ac-family-analysis .pro-tools-page .pro-intro,
  body.ac-family-analysis .pro-tools-page .pro-summary{
    box-shadow:4px 4px 0 var(--ac-ds-ink)!important;
  }
}
@media(max-width:620px){
  body.guided-workspace.ac-product .page,
  body.guided-workspace.ac-product .page.home{
    width:100%;
    padding-inline:14px;
  }
  body.ac-family-analysis .pro-tools-page .pro-intro h1{
    font-size:clamp(34px,10vw,46px)!important;
  }
  body.ac-family-analysis .pro-tools-page .pro-intro .action-row{
    display:grid;
    grid-template-columns:1fr;
  }
  body.ac-family-analysis .pro-tools-page .pro-intro .action-row .button{
    width:100%;
    min-width:0;
    justify-content:center;
  }
}


/* ========================================================================== */
/* Signed-in page families                                                    */
/* ========================================================================== */

/* Guided flow: make setup/discovery/measurement planning feel like one journey. */
body.ac-family-guided .page > :is(header,.intro,.hero){
  margin-bottom:28px;
  padding:clamp(26px,4vw,44px)!important;
  border:1px solid var(--ac-ds-ink)!important;
  border-radius:var(--ac-ds-radius-xl)!important;
  background:
    radial-gradient(circle at 90% 0,rgba(167,255,79,.18),transparent 22rem),
    var(--ac-ds-gradient-mint)!important;
  color:var(--ac-ds-ink)!important;
  box-shadow:6px 6px 0 var(--ac-ds-ink)!important;
}
body.ac-family-guided .page > :is(header,.intro,.hero) :is(h1,h2,h3,strong):not(.button *,button *){color:var(--ac-ds-ink)!important}
body.ac-family-guided .page > :is(header,.intro,.hero) :is(p,.muted){color:var(--ac-ds-muted)!important}
body.ac-family-guided .page > :is(header,.intro,.hero) .eyebrow{color:var(--ac-ds-muted)!important}
body.ac-family-guided :is(.setup-step,.result-panel,.plan-section,.flow-panel){
  margin-bottom:18px;
  border:1px solid var(--ac-ds-line);
  background:var(--ac-ds-paper);
}
body.ac-family-guided :is(.setup-step,.result-panel,.plan-section,.flow-panel) > :is(h2,.section-head):first-child{
  margin-top:0;
}
body.ac-family-guided .setup-step{
  padding:clamp(18px,2.8vw,28px);
  box-shadow:0 12px 34px rgba(12,23,20,.055);
}
body.ac-family-guided .setup-step:hover{
  border-color:#93ad8e;
}
body.ac-family-guided :is(.setup-centre,.setup-readiness,.install-evidence){
  border-color:var(--ac-ds-line)!important;
  background:var(--ac-ds-paper)!important;
  box-shadow:0 10px 28px rgba(12,23,20,.045)!important;
}
body.ac-family-guided .setup-route{
  min-height:88px;
  border-color:var(--ac-ds-line)!important;
  background:var(--ac-ds-gradient-paper)!important;
}
body.ac-family-guided .setup-route:hover,
body.ac-family-guided .setup-route:focus-visible{
  border-color:var(--ac-ds-ink)!important;
  background:var(--ac-ds-mint)!important;
}
body.ac-family-guided .setup-route.current{
  border-color:var(--ac-ds-ink)!important;
  background:var(--ac-ds-mint)!important;
}

/* Data-heavy pages: preserve dense tools, improve hierarchy and scanability. */
body.ac-family-stream .page > :is(header,.hero,.pro-investigator-hero){
  margin-bottom:22px;
  padding:clamp(26px,4vw,44px)!important;
  border:1px solid var(--ac-ds-ink)!important;
  border-radius:var(--ac-ds-radius-xl)!important;
  background:var(--ac-ds-gradient-dark)!important;
  color:#fff!important;
  box-shadow:var(--ac-ds-shadow-float)!important;
}
body.ac-family-stream .page > :is(header,.hero,.pro-investigator-hero) :is(h1,h2,h3,strong):not(.button *,button *){color:#fff!important}
body.ac-family-stream .page > :is(header,.hero,.pro-investigator-hero) :is(p,.muted){color:var(--ac-ds-on-dark)!important}
body.ac-family-stream .page > :is(header,.hero,.pro-investigator-hero) .eyebrow{color:var(--ac-ds-lime)!important}
body.ac-family-stream :is(.flow-card,.event-card,.journey,.investigator-panel,.investigator-pipeline,.technical-workbench){
  border-color:var(--ac-ds-line)!important;
  background:var(--ac-ds-paper)!important;
}
body.ac-family-stream :is(.flow-card,.event-card,.investigator-panel,.investigator-pipeline){
  box-shadow:0 10px 28px rgba(12,23,20,.045);
}
body.ac-family-stream :is(.flow-card,.event-card,.journey,.investigator-action):hover{
  border-color:#8fa98a!important;
}
body.ac-family-stream .technical-workbench{
  overflow:hidden;
}
body.ac-family-stream .technical-workbench > summary{
  background:var(--ac-ds-gradient-paper);
}

/* Integrations: consistent destination-card grammar without touching provider logic. */
body.ac-family-integrations .page > :is(header,.source-hero,.hero){
  margin-bottom:24px;
  padding:clamp(26px,4vw,42px)!important;
  border:1px solid var(--ac-ds-ink)!important;
  border-radius:var(--ac-ds-radius-xl)!important;
  background:
    radial-gradient(circle at 88% 10%,rgba(167,255,79,.16),transparent 18rem),
    var(--ac-ds-paper)!important;
  box-shadow:6px 6px 0 var(--ac-ds-lime)!important;
}
body.ac-family-integrations :is(.provider,.connection-card,.connector-card,.source-card){
  border:1px solid var(--ac-ds-line)!important;
  border-radius:var(--ac-ds-radius-md)!important;
  background:var(--ac-ds-paper)!important;
  box-shadow:0 8px 22px rgba(12,23,20,.045);
}
body.ac-family-integrations :is(.provider,.connection-card,.connector-card,.source-card):hover,
body.ac-family-integrations :is(.provider,.connection-card,.connector-card,.source-card):focus-within{
  border-color:var(--ac-ds-ink)!important;
  box-shadow:0 14px 32px rgba(12,23,20,.09);
}

/* Monitoring / health: evidence cards share one severity language. */
body.ac-family-health .page > :is(header,.monitor-head,.hero){
  margin-bottom:24px;
  padding:clamp(26px,4vw,42px)!important;
  border:1px solid var(--ac-ds-ink)!important;
  border-radius:var(--ac-ds-radius-xl)!important;
  background:
    linear-gradient(135deg,var(--ac-ds-paper),var(--ac-ds-mint))!important;
  box-shadow:6px 6px 0 var(--ac-ds-ink)!important;
}
body.ac-family-health :is(.issue-card,.finding-card,.health-card,.check,.panel,.card){
  border-color:var(--ac-ds-line);
  background:var(--ac-ds-paper);
}
body.ac-family-health :is(.issue-card,.finding-card,.health-card,.check){
  box-shadow:0 8px 24px rgba(12,23,20,.045);
}
body.ac-family-health :is(.issue-card,.finding-card,.health-card,.check):hover{
  border-color:#8fa98a;
}

/* Governance: quiet editorial hierarchy with clear publish/review controls. */
body.ac-family-governance .page > :is(header,.catalog-intro,.hero){
  margin-bottom:24px;
  padding:0 0 22px!important;
  border:0!important;
  border-bottom:2px solid var(--ac-ds-ink)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.ac-family-governance :is(.panel,.card,.plan-section,.catalog-card,.release-card){
  border-color:var(--ac-ds-line);
  background:var(--ac-ds-paper);
}
body.ac-family-governance :is(.panel,.card,.plan-section,.catalog-card,.release-card):focus-within{
  border-color:var(--ac-ds-ink);
}

/* Utility pages should look intentional but stay visually quiet. */
body.ac-family-utility .page > header{
  margin-bottom:24px;
  padding-bottom:20px;
  border-bottom:2px solid var(--ac-ds-ink);
}
body.ac-family-utility :is(.panel,.card,fieldset){
  border-color:var(--ac-ds-line);
  background:var(--ac-ds-paper);
}
body.ac-family-utility fieldset{
  padding:clamp(16px,2.4vw,24px);
}

/* All signed-in families: consistent section rhythm. */
body.guided-workspace.ac-product .page > section + section{
  margin-top:18px;
}
body.guided-workspace.ac-product :is(.section-head,.flow-row,.panel-head,.card-head){
  gap:16px;
}
body.guided-workspace.ac-product :is(.section-head,.panel-head,.card-head) h2{
  margin-top:0;
}
body.guided-workspace.ac-product :is(.section-head,.panel-head,.card-head) p{
  max-width:760px;
  color:var(--ac-ds-muted);
  line-height:1.58;
}

@media(max-width:760px){
  body.ac-family-guided .page > :is(header,.intro,.hero),
  body.ac-family-stream .page > :is(header,.hero,.pro-investigator-hero),
  body.ac-family-integrations .page > :is(header,.source-hero,.hero),
  body.ac-family-health .page > :is(header,.monitor-head,.hero){
    padding:22px!important;
    border-radius:var(--ac-ds-radius-lg)!important;
    box-shadow:4px 4px 0 var(--ac-ds-ink)!important;
  }
  body.guided-workspace.ac-product .page > section + section{
    margin-top:14px;
  }
}


/* ========================================================================== */
/* Public/free pages + Data Lab                                               */
/* ========================================================================== */

body.ac-family-public:not(:has(.public-home)){
  background:
    radial-gradient(circle at 8% -10%,rgba(12,23,20,.08),transparent 32rem),
    radial-gradient(circle at 96% 8%,rgba(12,23,20,.055),transparent 28rem),
    var(--ac-ds-cream);
}
body.ac-family-public:not(:has(.public-home)) .page{
  width:min(100%,1240px);
}
body.ac-family-public:not(:has(.public-home)) .page > :is(header,.hero,.intro){
  border-radius:var(--ac-ds-radius-xl)!important;
}
body.ac-family-public:not(:has(.public-home)) :is(.card,.panel,.tool-card,.audit-card){
  border-color:var(--ac-ds-line)!important;
  border-radius:var(--ac-ds-radius-md)!important;
}
body.ac-family-public:not(:has(.public-home)) :is(.card,.panel,.audit-card){
  background:var(--ac-ds-paper);
}
body.ac-family-public:not(:has(.public-home)) .eyebrow{
  color:var(--ac-ds-muted);
}

/* Free website/cookie audit: homepage-quality entry surface around existing audit controls. */
body[data-ac-route="/pro-audit"] .page > :is(header,.hero,.intro),
body[data-ac-route="/cookie-audit"] .page > :is(header,.hero,.intro),
body[data-ac-route="/demo-audit"] .page > :is(header,.hero,.intro){
  margin-bottom:24px;
  padding:clamp(28px,5vw,52px)!important;
  border:1px solid var(--ac-ds-ink)!important;
  background:
    radial-gradient(circle at 88% 8%,rgba(167,255,79,.15),transparent 19rem),
    var(--ac-ds-gradient-dark)!important;
  color:#fff!important;
  box-shadow:var(--ac-ds-shadow-float)!important;
}
body[data-ac-route="/pro-audit"] .page > :is(header,.hero,.intro) :is(h1,h2,h3),
body[data-ac-route="/cookie-audit"] .page > :is(header,.hero,.intro) :is(h1,h2,h3),
body[data-ac-route="/demo-audit"] .page > :is(header,.hero,.intro) :is(h1,h2,h3){color:#fff!important}
body[data-ac-route="/pro-audit"] .page > :is(header,.hero,.intro) p,
body[data-ac-route="/cookie-audit"] .page > :is(header,.hero,.intro) p,
body[data-ac-route="/demo-audit"] .page > :is(header,.hero,.intro) p{color:var(--ac-ds-on-dark)!important}
body[data-ac-route="/pro-audit"] :is(.audit-card,.result-card,.finding,.card),
body[data-ac-route="/cookie-audit"] :is(.audit-card,.result-card,.finding,.card),
body[data-ac-route="/demo-audit"] :is(.audit-card,.result-card,.finding,.card){
  background:var(--ac-ds-paper)!important;
  box-shadow:0 10px 28px rgba(12,23,20,.05);
}

/* Audit shortcuts sit on the dark hero but use paper cards: reset inherited hero
   foregrounds explicitly so every label remains readable on every audit route. */
body[data-ac-route="/pro-audit"] .page > .hero .eyebrow,
body[data-ac-route="/cookie-audit"] .page > .hero .eyebrow,
body[data-ac-route="/demo-audit"] .page > .hero .eyebrow{
  color:var(--ac-ds-lime)!important;
}
body[data-ac-route="/pro-audit"] .page > .hero .eyebrow::before,
body[data-ac-route="/cookie-audit"] .page > .hero .eyebrow::before,
body[data-ac-route="/demo-audit"] .page > .hero .eyebrow::before{
  border-color:var(--ac-ds-lime)!important;
  background:var(--ac-ds-lime)!important;
}
body[data-ac-route="/pro-audit"] .free-hook > a,
body[data-ac-route="/cookie-audit"] .free-hook > a,
body[data-ac-route="/demo-audit"] .free-hook > a{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:82px;
  border-color:var(--ac-ds-ink)!important;
  border-radius:var(--ac-ds-radius-md)!important;
  background:var(--ac-ds-paper)!important;
  color:var(--ac-ds-ink)!important;
  box-shadow:3px 3px 0 var(--ac-ds-line);
  transition:transform var(--ac-motion-fast) var(--ac-ease-standard),box-shadow var(--ac-motion-fast) var(--ac-ease-standard),background-color var(--ac-motion-fast) var(--ac-ease-standard);
}
body[data-ac-route="/pro-audit"] .free-hook > a :is(strong,b),
body[data-ac-route="/cookie-audit"] .free-hook > a :is(strong,b),
body[data-ac-route="/demo-audit"] .free-hook > a :is(strong,b){color:var(--ac-ds-ink)!important}
body[data-ac-route="/pro-audit"] .free-hook > a span,
body[data-ac-route="/cookie-audit"] .free-hook > a span,
body[data-ac-route="/demo-audit"] .free-hook > a span{color:var(--ac-ds-muted)!important}
body[data-ac-route="/pro-audit"] .free-hook > a.active,
body[data-ac-route="/cookie-audit"] .free-hook > a.active,
body[data-ac-route="/demo-audit"] .free-hook > a.active{
  border-color:var(--ac-ds-ink)!important;
  background:var(--ac-ds-mint)!important;
  color:var(--ac-ds-ink)!important;
  box-shadow:3px 3px 0 var(--ac-ds-lime);
}
body[data-ac-route="/pro-audit"] .free-hook > a:hover,
body[data-ac-route="/cookie-audit"] .free-hook > a:hover,
body[data-ac-route="/demo-audit"] .free-hook > a:hover{
  transform:translateY(-2px);
  box-shadow:4px 5px 0 var(--ac-ds-ink);
}
body[data-ac-route="/pro-audit"] .free-hook > a:focus-visible,
body[data-ac-route="/cookie-audit"] .free-hook > a:focus-visible,
body[data-ac-route="/demo-audit"] .free-hook > a:focus-visible{
  outline:2px solid var(--ac-ds-lime);
  outline-offset:4px;
}

/* Tour and demo: preserve bespoke content while using the homepage shell language. */
body.ac-audit-page .free-hook > a :is(strong,b){color:var(--ac-ds-ink)!important}
body[data-ac-route="/tour"] .page > :is(header,.hero,.intro),
body[data-ac-route="/demo"] .page > :is(header,.hero,.intro){
  margin-bottom:26px;
  padding:clamp(28px,5vw,52px)!important;
  border:1px solid var(--ac-ds-ink)!important;
  background:
    radial-gradient(circle at 90% 4%,rgba(167,255,79,.15),transparent 20rem),
    var(--ac-ds-gradient-dark)!important;
  color:#fff!important;
  box-shadow:var(--ac-ds-shadow-float)!important;
}
body[data-ac-route="/tour"] .page > :is(header,.hero,.intro) :is(h1,h2,h3,strong):not(.button *,button *),
body[data-ac-route="/demo"] .page > :is(header,.hero,.intro) :is(h1,h2,h3,strong):not(.button *,button *){color:#fff!important}
body[data-ac-route="/tour"] .page > :is(header,.hero,.intro) p,
body[data-ac-route="/demo"] .page > :is(header,.hero,.intro) p{color:var(--ac-ds-on-dark)!important}
body[data-ac-route="/tour"] :is(.card,.panel,.step,.tour-card),
body[data-ac-route="/demo"] :is(.card,.panel,.demo-card,.step){
  border-color:var(--ac-ds-line)!important;
  background:var(--ac-ds-paper)!important;
}

/*
 * Data Lab keeps its specialist chart palette. This only normalises shell,
 * typography, controls, tables and cards so /tools and authenticated Data Studio
 * no longer look like a separate product.
 */
body[data-ac-route="/tools"] .pattern-tools,
body[data-ac-route="/pattern-tools"] .pattern-tools,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools{
  --pt-ink:var(--ac-ds-ink);
  --pt-lime:var(--ac-ds-lime);
  font-family:var(--ac-font-sans);
  color:var(--ac-ds-ink);
}
/* Data Lab owns a split hero: light narrative copy beside a dark preview panel.
   Keep the outer hero neutral on both free and authenticated Data Studio routes. */
body[data-ac-route="/tools"] .pattern-tools > .hero,
body[data-ac-route="/pattern-tools"] .pattern-tools > .hero,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools > .hero{
  overflow:visible;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--pt-ink)!important;
  box-shadow:none!important;
}
body[data-ac-route="/tools"] .pattern-tools > .hero :is(h1,h2,h3,strong):not(.button *,button *),
body[data-ac-route="/pattern-tools"] .pattern-tools > .hero :is(h1,h2,h3,strong):not(.button *,button *),
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools > .hero :is(h1,h2,h3,strong):not(.button *,button *){color:var(--pt-ink)!important}
body[data-ac-route="/tools"] .pattern-tools > .hero h1 em,
body[data-ac-route="/pattern-tools"] .pattern-tools > .hero h1 em,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools > .hero h1 em{color:var(--pt-blue)!important}
body[data-ac-route="/tools"] .pattern-tools > .hero p,
body[data-ac-route="/pattern-tools"] .pattern-tools > .hero p,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools > .hero p{color:#536574!important}
body[data-ac-route="/tools"] .pattern-tools .section-head h2,
body[data-ac-route="/pattern-tools"] .pattern-tools .section-head h2,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .section-head h2{
  font-size:clamp(32px,4.4vw,52px);
  line-height:1.02;
  letter-spacing:-.045em;
  text-wrap:balance;
}
body[data-ac-route="/tools"] .pattern-tools :is(.tool-card,.dataset-summary,.table-builder,.story-card,.price-card),
body[data-ac-route="/pattern-tools"] .pattern-tools :is(.tool-card,.dataset-summary,.table-builder,.story-card,.price-card),
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools :is(.tool-card,.dataset-summary,.table-builder,.story-card,.price-card){
  border-radius:var(--ac-ds-radius-lg);
}
body[data-ac-route="/tools"] .pattern-tools .tool-card,
body[data-ac-route="/pattern-tools"] .pattern-tools .tool-card,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .tool-card{
  border-color:var(--ac-ds-line);
  box-shadow:0 10px 28px rgba(12,23,20,.045);
}
body[data-ac-route="/tools"] .pattern-tools .tool-card:hover,
body[data-ac-route="/tools"] .pattern-tools .tool-card:focus-within,
body[data-ac-route="/pattern-tools"] .pattern-tools .tool-card:hover,
body[data-ac-route="/pattern-tools"] .pattern-tools .tool-card:focus-within,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .tool-card:hover,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .tool-card:focus-within{
  border-color:var(--ac-ds-ink);
  box-shadow:0 16px 34px rgba(12,23,20,.09);
}
body[data-ac-route="/tools"] .pattern-tools .lab-nav,
body[data-ac-route="/pattern-tools"] .pattern-tools .lab-nav,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .lab-nav{
  border-color:var(--ac-ds-line);
  background:rgba(255,254,248,.94);
  box-shadow:0 10px 30px rgba(12,23,20,.09);
}
body[data-ac-route="/tools"] .pattern-tools .lab-nav a:hover,
body[data-ac-route="/tools"] .pattern-tools .lab-nav a:focus-visible,
body[data-ac-route="/pattern-tools"] .pattern-tools .lab-nav a:hover,
body[data-ac-route="/pattern-tools"] .pattern-tools .lab-nav a:focus-visible,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .lab-nav a:hover,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .lab-nav a:focus-visible{
  background:var(--ac-ds-mint);
  color:var(--ac-ds-ink);
}
body[data-ac-route="/tools"] .pattern-tools :is(.table-builder-controls select,.table-builder-controls input,.story-controls input,.story-controls select),
body[data-ac-route="/pattern-tools"] .pattern-tools :is(.table-builder-controls select,.table-builder-controls input,.story-controls input,.story-controls select),
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools :is(.table-builder-controls select,.table-builder-controls input,.story-controls input,.story-controls select){
  border-color:#89978f;
  border-radius:var(--ac-ds-radius-sm);
  background:#fff;
  color:var(--ac-ds-ink);
}
body[data-ac-route="/tools"] .pattern-tools .smart-table th,
body[data-ac-route="/pattern-tools"] .pattern-tools .smart-table th,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .smart-table th{
  background:var(--ac-ds-mint);
  color:var(--ac-ds-ink);
}
body[data-ac-route="/tools"] .pattern-tools .smart-table tr:hover td,
body[data-ac-route="/pattern-tools"] .pattern-tools .smart-table tr:hover td,
body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .smart-table tr:hover td{
  background:#f7fff0;
}

/* Public guide/document surfaces. */
body[data-ac-route="/guide"] :is(.card,.panel,section){
  border-color:var(--ac-ds-line);
}
body[data-ac-route="/guide"] pre{
  border:1px solid var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-sm);
  background:#101c18;
  color:#eef8f2;
}

@media(max-width:760px){
  body[data-ac-route="/pro-audit"] .page > :is(header,.hero,.intro),
  body[data-ac-route="/cookie-audit"] .page > :is(header,.hero,.intro),
  body[data-ac-route="/demo-audit"] .page > :is(header,.hero,.intro),
  body[data-ac-route="/tour"] .page > :is(header,.hero,.intro),
  body[data-ac-route="/demo"] .page > :is(header,.hero,.intro){
    padding:22px!important;
    border-radius:var(--ac-ds-radius-lg)!important;
  }
  body[data-ac-route="/tools"] .pattern-tools .section,
  body[data-ac-route="/pattern-tools"] .pattern-tools .section,
  body[data-ac-route="/pro-tools/data-studio"] .pattern-tools .section{
    padding-block:48px;
  }
}


/* ========================================================================== */
/* Shared controls, tables and states                                         */
/* ========================================================================== */

body.ac-product :is(label,.field-label){
  color:var(--ac-ds-ink-soft);
}
body.ac-product :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea){
  min-height:42px;
  border:1px solid #909d95;
  border-radius:var(--ac-ds-radius-sm);
  background:#fff;
  color:var(--ac-ds-ink);
}
body.ac-product :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea):hover{
  border-color:#66746d;
}
body.ac-product :is(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea):focus{
  border-color:var(--ac-ds-ink);
}
body.ac-product :is(input,select,textarea)::placeholder{
  color:#718078;
  opacity:1;
}
body.ac-product :is(input,select,textarea):disabled{
  background:#eceee9;
  color:#6d756f;
  cursor:not-allowed;
}
body.ac-product :is(.help,.hint,.muted,.small,.field-help){
  color:var(--ac-ds-muted);
}

/* Common table shell: no column/layout changes, only consistent visual treatment. */
body.ac-product :is(.table-wrap,.table-scroll,.responsive-table){
  max-width:100%;
  overflow:auto;
  border-color:var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-md);
  -webkit-overflow-scrolling:touch;
}
body.ac-product table{
  width:100%;
  border-collapse:collapse;
  font-variant-numeric:tabular-nums;
}
body.ac-product table th{
  background:#f0f2eb;
  color:var(--ac-ds-ink-soft);
  font-size:12px;
  font-weight:800;
  letter-spacing:.015em;
}
body.ac-product table :is(th,td){
  border-color:#d7ddd7;
}
body.ac-product table tbody tr{
  transition:background var(--ac-motion-fast) var(--ac-ease-standard);
}
body.ac-product table tbody tr:hover{
  background:#f7fff0;
}
body.ac-product table tbody tr:focus-within{
  background:var(--ac-ds-mint);
}

/* Common status blocks while retaining page-specific class names/semantics. */
body.ac-product :is(.empty,.empty-state){
  padding:18px;
  border:1px dashed var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-md);
  background:var(--ac-ds-paper);
  color:var(--ac-ds-muted);
  line-height:1.5;
}
body.ac-product :is(.notice,.flow-message,.status-message){
  border-radius:var(--ac-ds-radius-sm);
  line-height:1.5;
}
body.ac-product :is(.error,.notice.error,.flow-message.error,[data-state="error"]){
  border-color:#d59b97;
}
body.ac-product :is(.warning,.notice.warning,[data-state="warning"]){
  border-color:#d5b06c;
}
body.ac-product :is(.success,.notice.success,[data-state="success"]){
  border-color:#9fc38f;
}

/* Drawers/dialogs: visual consistency only; positioning/trigger logic is untouched. */
body.ac-product :is(.help-drawer,.modal,.dialog,.drawer){
  border-color:var(--ac-ds-line);
  border-radius:var(--ac-ds-radius-lg);
  box-shadow:0 24px 64px rgba(12,23,20,.18);
}
body.ac-product :is(.help-drawer,.modal,.dialog,.drawer) :is(button[aria-label*="Close"],button[data-help-close]){
  min-width:40px;
  min-height:40px;
}

/* Code and raw-evidence panels. */
body.ac-product pre{
  max-width:100%;
  overflow:auto;
  border-radius:var(--ac-ds-radius-sm);
  -webkit-overflow-scrolling:touch;
}
body.ac-product :is(pre,code,kbd,samp){
  font-family:var(--ac-font-mono);
}
body.ac-product code{
  overflow-wrap:anywhere;
}

/* Details/advanced panels should feel clickable and consistent. */
body.ac-product details > summary{
  border-radius:var(--ac-ds-radius-sm);
}
body.ac-product details > summary:hover{
  color:var(--ac-ds-ink);
}
body.ac-product details > summary:focus-visible{
  outline:3px solid color-mix(in srgb,var(--ac-ds-lime) 74%,#fff);
  outline-offset:2px;
}

/* Mobile: prevent control overflow without changing semantic layout. */
@media(max-width:700px){
  body.ac-product :is(.action-row,.flow-actions,.hero-actions,.pricing-actions){
    max-width:100%;
  }
  body.ac-product :is(.action-row,.flow-actions,.hero-actions,.pricing-actions) > :is(.button,button){
    min-width:0;
  }
  body.ac-product :is(.table-wrap,.table-scroll,.responsive-table){
    border-radius:var(--ac-ds-radius-sm);
  }
  body.ac-product :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
    max-width:100%;
    font-size:16px;
  }
}


/* ========================================================================== */
/* Follow-up: secure contrast contract                                        */
/* ========================================================================== */

body.guided-workspace.ac-product{
  --ac-secure-muted:#45534d;
  --ac-secure-on-dark:#d5e3dc;
  --ac-secure-line:#aeb9b1;
}

/* Light working surfaces must always resolve back to ink, even when nested
   inside page-family heroes or panels with legacy white-text rules. */
body.guided-workspace.ac-product :is(
  .panel,.card,.setup-step,.flow-panel,.install-card,.storage-option,.provider,
  .issue-card,.finding-card,.health-card,.check,.result-panel,.plan-section,
  .catalog-card,.release-card,.investigator-panel,.investigator-pipeline,
  .technical-workbench,.connection-card,.connector-card,.source-card
){
  color:var(--ac-ds-ink);
}
body.guided-workspace.ac-product :is(
  .panel,.card,.setup-step,.flow-panel,.install-card,.storage-option,.provider,
  .issue-card,.finding-card,.health-card,.check,.result-panel,.plan-section,
  .catalog-card,.release-card,.investigator-panel,.investigator-pipeline,
  .technical-workbench,.connection-card,.connector-card,.source-card
) :is(p,small,.muted,.note,.help,.hint,.field-help){
  color:var(--ac-secure-muted);
}
body.guided-workspace.ac-product :is(
  .panel,.card,.setup-step,.flow-panel,.install-card,.storage-option,.provider,
  .issue-card,.finding-card,.health-card,.check,.result-panel,.plan-section,
  .catalog-card,.release-card,.investigator-panel,.investigator-pipeline,
  .technical-workbench,.connection-card,.connector-card,.source-card
) :is(h1,h2,h3,strong,label,summary):not(.button *,button *){
  color:var(--ac-ds-ink);
}

/* Deliberately dark secure surfaces get one explicit foreground contract. */
body.guided-workspace.ac-product :is(
  .home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,
  .pro-summary,.offer,.tour-hero,.tour-result,.tour-cta
){
  color:#fff;
}
body.guided-workspace.ac-product :is(
  .home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,
  .pro-summary,.offer,.tour-hero,.tour-result,.tour-cta
) :is(h1,h2,h3,strong,label):not(.button *,button *){
  color:#fff!important;
}
body.guided-workspace.ac-product :is(
  .home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,
  .pro-summary,.offer,.tour-hero,.tour-result,.tour-cta
) :is(p,small,.muted,.note,.help,.hint):not(.button *,button *){
  color:var(--ac-secure-on-dark)!important;
}
body.guided-workspace.ac-product :is(
  .home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,
  .pro-summary,.offer,.tour-hero,.tour-result,.tour-cta
) .eyebrow{
  color:var(--ac-ds-lime)!important;
}
body.guided-workspace.ac-product :is(
  .home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,
  .pro-summary,.offer,.tour-hero,.tour-result,.tour-cta
) a:not(.button){
  color:var(--ac-ds-lime);
}
body.guided-workspace.ac-product :is(
  .home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,
  .pro-summary,.offer,.tour-hero,.tour-result,.tour-cta
) :is(.button,button):not(.primary):not([data-variant="primary"]):not(.danger):not([aria-pressed="true"]):not([aria-selected="true"]){
  border-color:rgba(255,255,255,.38);
  background:rgba(255,255,255,.075);
  color:#fff!important;
}
body.guided-workspace.ac-product :is(
  .home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,
  .pro-summary,.offer,.tour-hero,.tour-result,.tour-cta
) :is(.button,button):not(.primary):not([data-variant="primary"]):not(.danger):not([aria-pressed="true"]):not([aria-selected="true"]):hover{
  border-color:rgba(255,255,255,.62);
  background:rgba(255,255,255,.13);
}
body.ac-product .ac-surface-dark :is(a,button,.button,input,select,textarea,summary):focus-visible,
body.guided-workspace.ac-product :is(.home-hero,.pro-investigator-hero,.install-command,.setup-decision-action,.pro-summary,.offer,.tour-hero,.tour-result,.tour-cta) :focus-visible{
  outline-color:var(--ac-ds-lime);
}

/* Mint/accent surfaces should never inherit washed-out white foregrounds. */
body.guided-workspace.ac-product :is(
  .shell-page-guide,.workspace-onboarding,.setup-decision-main,
  .readiness-step.done,.readiness-step.current,.setup-route.current
){
  color:var(--ac-ds-ink);
}
body.guided-workspace.ac-product :is(
  .shell-page-guide,.workspace-onboarding,.setup-decision-main,
  .readiness-step.done,.readiness-step.current,.setup-route.current
) :is(p,small,.muted,.note,.help,.hint):not(.button *,button *){
  color:var(--ac-secure-muted)!important;
}
body.guided-workspace.ac-product :is(
  .shell-page-guide,.workspace-onboarding,.setup-decision-main,
  .readiness-step.done,.readiness-step.current,.setup-route.current
) :is(h1,h2,h3,strong,label):not(.button *,button *){
  color:var(--ac-ds-ink)!important;
}

/* Navigation/context text was a little pale against cream after the wider reskin. */
body.guided-workspace .shell-context :is(.shell-project-meta,.shell-context-kicker){
  color:#46534e;
}
body.guided-workspace .shell-page-guide p,
body.guided-workspace .workspace-onboarding p,
body.guided-workspace .readiness-done-bar p,
body.guided-workspace .readiness-optional{
  color:#46534e!important;
}
body.guided-workspace .nav--workspace :is(.nav-settings,.nav-help,.nav-signout){
  color:#26342f!important;
}

/* Status chips: slightly stronger borders/text so state remains readable on cream. */
body.guided-workspace :is(.capture-status,.delivery-status,.publication-status,.state-pill,.flow-badge){
  border-color:var(--ac-secure-line);
  font-weight:750;
}
body.guided-workspace :is(.capture-status,.delivery-status,.publication-status,.state-pill,.flow-badge).waiting{
  color:#5b4700;
  background:#fff4cc;
  border-color:#d8bd68;
}


/* ========================================================================== */
/* Public product pages: Pricing + Tour                                       */
/* ========================================================================== */

/* PRICING — product/entitlement dashboard, not a disconnected brochure. */
body[data-ac-route="/pricing"]{
  background:
    radial-gradient(circle at 12% -8%,rgba(167,255,79,.11),transparent 30rem),
    radial-gradient(circle at 94% 12%,rgba(239,255,227,.10),transparent 28rem),
    var(--ac-ds-cream);
}
body[data-ac-route="/pricing"] .pricing-page{
  width:min(100%,1240px);
  padding-inline:20px;
  font-family:var(--ac-font-sans);
}
body[data-ac-route="/pricing"] .pricing-hero{
  position:relative;
  isolation:isolate;
  max-width:none;
  margin:18px 0 26px;
  padding:clamp(38px,6vw,68px);
  overflow:hidden;
  border:1px solid rgba(167,255,79,.22);
  border-radius:24px;
  background:
    radial-gradient(circle at 84% 14%,rgba(239,255,227,.22),transparent 28%),
    radial-gradient(circle at 12% 90%,rgba(167,255,79,.12),transparent 30%),
    linear-gradient(145deg,var(--ac-ds-ink),var(--ac-ds-ink-soft) 60%,var(--ac-ds-ink));
  color:#fff;
  box-shadow:0 30px 78px rgba(12,23,20,.18);
}
body[data-ac-route="/pricing"] .pricing-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  right:-160px;
  bottom:-230px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--ac-ds-lime),var(--ac-ds-mint) 58%,var(--ac-ds-mint));
  filter:blur(78px);
  opacity:.18;
}
body[data-ac-route="/pricing"] .pricing-hero .eyebrow{
  color:var(--ac-ds-on-dark);
}
body[data-ac-route="/pricing"] .pricing-hero .eyebrow::before{
  border-color:var(--ac-ds-lime);
  background:linear-gradient(135deg,var(--ac-ds-lime),var(--ac-ds-mint));
  box-shadow:0 0 18px rgba(167,255,79,.45);
}
body[data-ac-route="/pricing"] .pricing-hero h1{
  max-width:980px;
  color:#fff;
  letter-spacing:-.06em;
  text-wrap:balance;
}
body[data-ac-route="/pricing"] .pricing-hero .lead{
  max-width:820px;
  color:var(--ac-ds-on-dark)!important;
}
body[data-ac-route="/pricing"] .status{
  border-color:rgba(12,23,20,.16);
  background:rgba(255,254,248,.88);
  box-shadow:0 8px 24px rgba(12,23,20,.045);
}
body[data-ac-route="/pricing"] .beta-offer{
  border-color:var(--ac-ds-ink);
  background:
    radial-gradient(circle at 92% 12%,rgba(167,255,79,.22),transparent 15rem),
    linear-gradient(145deg,var(--ac-ds-mint),var(--ac-ds-paper));
  box-shadow:6px 6px 0 var(--ac-ds-ink);
}
body[data-ac-route="/pricing"] .pricing-grid{
  gap:16px;
  margin-top:26px;
}
body[data-ac-route="/pricing"] .plan-card{
  position:relative;
  overflow:hidden;
  border-color:#9da9a2;
  background:linear-gradient(180deg,#fffef8,#fbfaf3);
  box-shadow:0 14px 34px rgba(12,23,20,.055);
  transition:
    transform var(--ac-motion-fast) var(--ac-ease-standard),
    border-color var(--ac-motion-fast) var(--ac-ease-standard),
    box-shadow var(--ac-motion-fast) var(--ac-ease-standard);
}
body[data-ac-route="/pricing"] .plan-card::after{
  content:"";
  position:absolute;
  right:-45px;
  bottom:-62px;
  width:130px;
  height:130px;
  border-radius:50%;
  background:rgba(167,255,79,.10);
  pointer-events:none;
}
body[data-ac-route="/pricing"] .plan-card:hover{
  transform:translateY(-4px);
  border-color:var(--ac-ds-ink);
  box-shadow:0 20px 46px rgba(12,23,20,.11);
}
body[data-ac-route="/pricing"] .plan-card.featured{
  border-color:var(--ac-ds-lime);
  background:
    radial-gradient(circle at 90% 8%,rgba(167,255,79,.18),transparent 14rem),
    linear-gradient(160deg,#efffe3,#fffef8);
  box-shadow:
    7px 7px 0 var(--ac-ds-ink),
    0 18px 42px rgba(40,91,50,.12);
}
body[data-ac-route="/pricing"] .plan-card.featured::before{
  content:"Most complete";
  position:absolute;
  top:14px;
  right:14px;
  padding:5px 8px;
  border-radius:999px;
  background:var(--ac-ds-ink);
  color:#a7ff4f;
  font:700 10px/1 var(--ac-font-mono);
  letter-spacing:.05em;
  text-transform:uppercase;
}
body[data-ac-route="/pricing"] .plan-card .price{
  color:var(--ac-ds-ink);
  font-variant-numeric:tabular-nums;
}
body[data-ac-route="/pricing"] .lifecycle{
  position:relative;
  overflow:hidden;
  border-color:var(--ac-ds-ink);
  background:linear-gradient(145deg,var(--ac-ds-ink),#12231d 68%,#20312b);
  color:#fff;
  box-shadow:8px 8px 0 var(--ac-ds-lime);
}
body[data-ac-route="/pricing"] .lifecycle h2{color:#fff}
body[data-ac-route="/pricing"] .lifecycle p{color:#c9dad2}
body[data-ac-route="/pricing"] .lifecycle .eyebrow{color:var(--ac-ds-lime)}
body[data-ac-route="/pricing"] .lifecycle-flow{
  position:relative;
  gap:9px;
}
body[data-ac-route="/pricing"] .lifecycle-flow::before{
  content:"";
  position:absolute;
  left:4%;
  right:4%;
  top:50%;
  height:2px;
  background:linear-gradient(90deg,var(--ac-ds-lime),var(--ac-ds-mint),var(--ac-ds-lime));
  transform:translateY(-50%);
  opacity:.35;
}
body[data-ac-route="/pricing"] .lifecycle-flow span{
  position:relative;
  z-index:1;
  border-color:rgba(255,255,255,.18);
  background:#0f201b;
  color:#fff;
  box-shadow:0 0 0 1px rgba(167,255,79,.04);
}
body[data-ac-route="/pricing"] .pricing-table-wrap{
  border-color:#aeb9b1;
  background:var(--ac-ds-paper);
}
body[data-ac-route="/pricing"] .addon{
  border-color:var(--ac-ds-ink);
  background:
    radial-gradient(circle at 92% 8%,rgba(239,255,227,.10),transparent 14rem),
    var(--ac-ds-paper);
  box-shadow:5px 5px 0 var(--ac-ds-line);
}
body[data-ac-route="/pricing"] .fine-print{
  max-width:980px;
  color:#52605b;
}

/* TOUR — animated evidence walkthrough rather than a static marketing stack. */
body[data-ac-route="/tour"]{
  background:
    radial-gradient(circle at 12% -8%,rgba(167,255,79,.10),transparent 30rem),
    radial-gradient(circle at 92% 16%,rgba(239,255,227,.09),transparent 28rem),
    var(--ac-ds-cream);
}
body[data-ac-route="/tour"] .product-tour-page{
  max-width:1240px;
}
body[data-ac-route="/tour"] .tour-hero{
  isolation:isolate;
  border:1px solid rgba(167,255,79,.22)!important;
  background:
    radial-gradient(circle at 84% 16%,rgba(239,255,227,.22),transparent 30%),
    radial-gradient(circle at 12% 86%,rgba(167,255,79,.12),transparent 28%),
    linear-gradient(145deg,var(--ac-ds-ink),var(--ac-ds-ink-soft) 58%,var(--ac-ds-ink))!important;
  box-shadow:0 32px 82px rgba(12,23,20,.2)!important;
}
body[data-ac-route="/tour"] .tour-hero::after{
  right:-130px;
  top:auto;
  bottom:-210px;
  background:linear-gradient(135deg,var(--ac-ds-lime),var(--ac-ds-mint) 58%,var(--ac-ds-lime));
  filter:blur(72px);
  opacity:.18;
}
body[data-ac-route="/tour"] .tour-hero .eyebrow{color:var(--ac-ds-lime)!important}
body[data-ac-route="/tour"] .tour-hero p{color:var(--ac-ds-on-dark)!important}
body[data-ac-route="/tour"] .tour-proof{
  gap:14px;
}
body[data-ac-route="/tour"] .tour-proof article{
  position:relative;
  overflow:hidden;
  border-color:#9da9a2;
  background:linear-gradient(180deg,#fffef8,#fbfaf3);
  box-shadow:0 12px 30px rgba(12,23,20,.05);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
body[data-ac-route="/tour"] .tour-proof article::after{
  content:"";
  position:absolute;
  right:-35px;
  bottom:-45px;
  width:90px;
  height:90px;
  border-radius:50%;
  background:rgba(167,255,79,.12);
}
body[data-ac-route="/tour"] .tour-proof article:hover{
  transform:translateY(-3px);
  border-color:var(--ac-ds-ink);
  box-shadow:0 18px 40px rgba(12,23,20,.09);
}
body[data-ac-route="/tour"] .tour-heading{
  max-width:860px;
}
body[data-ac-route="/tour"] .tour-heading h2{
  font-size:clamp(34px,4.6vw,54px);
  line-height:1.02;
  letter-spacing:-.048em;
  text-wrap:balance;
}
body[data-ac-route="/tour"] .tour-flow{
  position:relative;
  gap:16px;
}
body[data-ac-route="/tour"] .tour-flow::before{
  content:"";
  position:absolute;
  left:24px;
  top:30px;
  bottom:30px;
  width:2px;
  background:linear-gradient(var(--ac-ds-lime),var(--ac-ds-mint),var(--ac-ds-lime));
  opacity:.28;
}
body[data-ac-route="/tour"] .tour-step{
  position:relative;
  z-index:1;
  border-color:#a2aea6;
  background:linear-gradient(180deg,#fffef8,#fbfaf3);
  box-shadow:0 10px 26px rgba(12,23,20,.045);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
body[data-ac-route="/tour"] .tour-step:hover{
  transform:translateY(-3px);
  border-color:var(--ac-ds-ink);
  box-shadow:0 18px 38px rgba(12,23,20,.09);
}
body[data-ac-route="/tour"] .tour-number{
  border:1px solid var(--ac-ds-ink);
  background:linear-gradient(135deg,var(--ac-ds-lime),var(--ac-ds-lime));
  color:var(--ac-ds-ink);
  box-shadow:0 0 0 5px rgba(167,255,79,.08);
}
body[data-ac-route="/tour"] .tour-diff{
  position:relative;
  overflow:hidden;
  border-color:rgba(167,255,79,.28);
  background:
    radial-gradient(circle at 88% 12%,rgba(239,255,227,.16),transparent 16rem),
    linear-gradient(145deg,var(--ac-ds-ink),#12231d 70%,var(--ac-ds-ink-soft));
  color:#fff;
  box-shadow:8px 8px 0 var(--ac-ds-lime),0 24px 60px rgba(12,23,20,.16);
}
body[data-ac-route="/tour"] .tour-diff :is(h2,h3,strong):not(.button *,button *){color:#fff}
body[data-ac-route="/tour"] .tour-stack span{
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.055);
  color:#eaf7f2;
  box-shadow:inset 3px 0 0 var(--ac-ds-lime);
}
body[data-ac-route="/tour"] .tour-stack:last-child span{
  box-shadow:inset 3px 0 0 var(--ac-ds-lime);
}
body[data-ac-route="/tour"] .tour-arrow{
  color:var(--ac-ds-lime);
  text-shadow:0 0 18px rgba(167,255,79,.35);
}
body[data-ac-route="/tour"] .tour-result{
  border:1px solid rgba(167,255,79,.24);
  background:linear-gradient(145deg,#0c1714,#15251f);
  box-shadow:5px 5px 0 rgba(167,255,79,.35);
}
body[data-ac-route="/tour"] .tour-section,
body[data-ac-route="/tour"] .tour-guardrails article{
  border-color:#aeb9b1;
  background:var(--ac-ds-paper);
}
body[data-ac-route="/tour"] .tour-cta{
  border:1px solid rgba(167,255,79,.22);
  background:
    radial-gradient(circle at 50% 0,rgba(239,255,227,.18),transparent 18rem),
    linear-gradient(145deg,var(--ac-ds-ink),#13251f);
  box-shadow:8px 8px 0 var(--ac-ds-lime),0 22px 56px rgba(12,23,20,.15);
}

/* CSS-only motion for these static public pages. No JS/data behaviour changed. */
@media(prefers-reduced-motion:no-preference){
  body[data-ac-route="/pricing"] .pricing-hero,
  body[data-ac-route="/pricing"] .status,
  body[data-ac-route="/pricing"] .beta-offer,
  body[data-ac-route="/pricing"] .plan-card,
  body[data-ac-route="/pricing"] .lifecycle,
  body[data-ac-route="/pricing"] .pricing-table-wrap,
  body[data-ac-route="/pricing"] .addon{
    opacity:0;
    transform:translateY(14px);
    animation:ac-public-rise .42s var(--ac-ease-out) forwards;
  }
  body[data-ac-route="/pricing"] .plan-card:nth-child(1){animation-delay:.08s}
  body[data-ac-route="/pricing"] .plan-card:nth-child(2){animation-delay:.13s}
  body[data-ac-route="/pricing"] .plan-card:nth-child(3){animation-delay:.18s}
  body[data-ac-route="/pricing"] .plan-card:nth-child(4){animation-delay:.23s}
  body[data-ac-route="/pricing"] .lifecycle{animation-delay:.28s}
  body[data-ac-route="/pricing"] .pricing-table-wrap{animation-delay:.33s}
  body[data-ac-route="/pricing"] .addon{animation-delay:.38s}

  body[data-ac-route="/pricing"] .lifecycle-flow span{
    animation:ac-flow-node 2.8s ease-in-out infinite;
  }
  body[data-ac-route="/pricing"] .lifecycle-flow span:nth-child(2){animation-delay:.14s}
  body[data-ac-route="/pricing"] .lifecycle-flow span:nth-child(3){animation-delay:.28s}
  body[data-ac-route="/pricing"] .lifecycle-flow span:nth-child(4){animation-delay:.42s}
  body[data-ac-route="/pricing"] .lifecycle-flow span:nth-child(5){animation-delay:.56s}
  body[data-ac-route="/pricing"] .lifecycle-flow span:nth-child(6){animation-delay:.70s}
  body[data-ac-route="/pricing"] .lifecycle-flow span:nth-child(7){animation-delay:.84s}
  body[data-ac-route="/pricing"] .lifecycle-flow span:nth-child(8){animation-delay:.98s}

  body[data-ac-route="/tour"] .tour-proof article,
  body[data-ac-route="/tour"] .tour-step,
  body[data-ac-route="/tour"] .tour-stack span{
    opacity:0;
    transform:translateY(10px);
    animation:ac-public-rise .38s var(--ac-ease-out) forwards;
  }
  body[data-ac-route="/tour"] .tour-proof article:nth-child(2),
  body[data-ac-route="/tour"] .tour-step:nth-child(2),
  body[data-ac-route="/tour"] .tour-stack span:nth-child(2){animation-delay:.08s}
  body[data-ac-route="/tour"] .tour-proof article:nth-child(3),
  body[data-ac-route="/tour"] .tour-step:nth-child(3),
  body[data-ac-route="/tour"] .tour-stack span:nth-child(3){animation-delay:.16s}
  body[data-ac-route="/tour"] .tour-step:nth-child(4),
  body[data-ac-route="/tour"] .tour-stack span:nth-child(4){animation-delay:.24s}
  body[data-ac-route="/tour"] .tour-arrow{
    animation:ac-tour-arrow 1.9s ease-in-out infinite;
  }
}
@keyframes ac-public-rise{
  to{opacity:1;transform:none}
}
@keyframes ac-flow-node{
  0%,100%{transform:translateY(0);box-shadow:0 0 0 1px rgba(167,255,79,.04)}
  50%{transform:translateY(-3px);box-shadow:0 0 0 1px rgba(167,255,79,.32),0 0 20px rgba(167,255,79,.08)}
}
@keyframes ac-tour-arrow{
  0%,100%{transform:translateX(0);opacity:.7}
  50%{transform:translateX(6px);opacity:1}
}

@media(max-width:760px){
  body[data-ac-route="/pricing"] .pricing-page{padding-inline:12px}
  body[data-ac-route="/pricing"] .pricing-hero,
  body[data-ac-route="/tour"] .tour-hero{
    border-radius:18px!important;
  }
  body[data-ac-route="/pricing"] .lifecycle-flow::before,
  body[data-ac-route="/tour"] .tour-flow::before{
    display:none;
  }
  body[data-ac-route="/tour"] .tour-diff{
    box-shadow:5px 5px 0 var(--ac-ds-lime);
  }
}


/* Dark login panel contract: keep all small text readable on its dark surface. */
body[data-ac-route="/login"] .auth-page .auth-side .eyebrow{color:var(--ac-ds-lime)!important}
body[data-ac-route="/login"] .auth-page .auth-side .auth-flow span{color:var(--ac-ds-on-dark)!important}


/* ========================================================================== */
/* Universal responsive geometry contract                                     */
/* ========================================================================== */
/*
 * This is intentionally the final shared layer. Individual pages keep their
 * visual design, while every public, auth and workspace route obeys the same
 * viewport-safety rules.
 */
body.ac-product{
  width:100%;
  max-width:100%;
}
body.ac-product .page{
  min-width:0;
  max-width:100%;
}
body.ac-product :where(
  main,header,footer,section,article,aside,nav,form,fieldset,details,
  div,ol,ul,li,label
){
  min-width:0;
}
body.ac-product :where(img,picture,svg,canvas,video,iframe){
  max-width:100%;
}
body.ac-product :where(img,video,canvas){
  height:auto;
}
body.ac-product iframe{
  width:100%;
}
body.ac-product :where(
  input[type="text"],input[type="password"],input[type="number"],input[type="email"],
  input[type="url"],input[type="search"],input[type="date"],input[type="datetime-local"],
  input[type="time"],select,textarea
){
  min-width:0;
  max-width:100%;
}
body.ac-product :where(pre,.signature,.mono,[class*="payload"],[class*="code"]){
  max-width:100%;
}
body.ac-product :where(pre){
  overflow:auto;
  -webkit-overflow-scrolling:touch;
}
body.ac-product :where(code,.signature,.mono){
  overflow-wrap:anywhere;
  word-break:break-word;
}
body.ac-product :where(
  .action-row,.actions,.hero-actions,.button-row,.review-actions,.collector-actions,
  .billing-links,.pro-source-actions,.flow-actions,.destination-actions
){
  max-width:100%;
  flex-wrap:wrap;
}
body.ac-product :where(
  .secure-context-nav,.section-navigation,.tabs,.tab-list,.toolbar,.filters,
  .lab-nav,.module-filters
){
  max-width:100%;
}
body.ac-product :where(
  .table-wrap,.table-scroll,.responsive-table,.secure-table
){
  max-width:100%;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}
body.ac-product :where(h1,h2,h3,h4,p,li,td,th,label,summary){
  max-width:100%;
}
body.ac-product :where(h1,h2,h3,h4){
  text-wrap:balance;
}

/* The content region, never BODY, owns the shared page class. Defensive fallback
   prevents a future route from shrinking the document/chrome if markup regresses. */
body.ac-product.page{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}
body.ac-product.page > main{
  width:min(100%,1240px);
  margin-inline:auto;
  padding:var(--space-7) var(--space-5);
}

/* Medium viewports: layout roots become single-flow before their fixed side
   columns can squeeze content or push controls outside the viewport. */
@media(max-width:900px){
  body.ac-product :where(
    .auth-layout,.hero-grid,.content-grid,.main-grid,.split-layout,.two-column,
    .two-col,.page-layout,.panel-layout,.workspace-layout,.overview-layout
  ){
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.ac-product :where(
    .section-head,.panel-head,.card-head,.monitor-head,.pro-value-head,
    .readiness-head,.destination-head,.workspace-head
  ){
    flex-wrap:wrap;
  }
}

/* Small screens: every semantic "*-grid" becomes a safe single-column flow.
   This catches new product modules automatically instead of requiring another
   page-specific mobile patch. Dense tables and purpose-built chart internals
   are excluded because they use their own scroll/visual contracts. */
@media(max-width:700px){
  body.ac-product :where(
    [class$="-grid"],[class*="-grid "]
  ):not(.mobile-quicknav):not(.route-grid):not(.viz-grid):not(.chart-grid):not(.heatmap-grid){
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.ac-product :where(
    .action-row,.actions,.hero-actions,.button-row,.review-actions,.collector-actions,
    .billing-links,.pro-source-actions,.flow-actions,.destination-actions
  ) > :where(button,.button,a.button){
    min-width:0;
    max-width:100%;
  }
  body.ac-product :where(
    .secure-context-nav,.section-navigation,.tabs,.tab-list,.toolbar,.filters,
    .lab-nav,.module-filters
  ){
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
}

/* Narrow phones and split-screen windows: remove fixed side-by-side action
   assumptions while retaining touch targets and page-specific colour states. */
@media(max-width:520px){
  body.ac-product .page{
    padding-left:max(12px,env(safe-area-inset-left));
    padding-right:max(12px,env(safe-area-inset-right));
  }
  body.ac-product :where(
    .action-row,.actions,.hero-actions,.button-row,.review-actions,.collector-actions,
    .billing-links,.pro-source-actions,.flow-actions,.destination-actions
  ){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:stretch!important;
  }
  body.ac-product :where(
    .action-row,.actions,.hero-actions,.button-row,.review-actions,.collector-actions,
    .billing-links,.pro-source-actions,.flow-actions,.destination-actions
  ) > :where(button,.button,a.button){
    width:100%;
    justify-content:center;
  }
  body.ac-product :where(fieldset,.panel,.card,.ac-card){
    max-width:100%;
  }
}
