/* tokens.css */
/* Innovadata design tokens: the one place for colour, type, spacing, control
   and motion values on /new. Every page loads this first: the hand-built pages
   (base.css), the reskinned live site pages (skin-site.css), the portal
   (skin-portal.css) and the monitoring page (monitor.css). Component files use
   these names only; a hex value outside this file is a bug.

   Source: the developer's DESIGN.md / COMPONENTS.md (2026-10-05) with the
   owner's decisions: Onest 700 for display and page headings (no Data Corner),
   IBM Plex Sans 400/500 for everything else. */

:root{
  /* Palette (DESIGN.md). Verdite is decorative only: never a primary action,
     selection or status colour. */
  --carbon:#1C262C; --carbon-hover:#10191E;
  --lime:#D5F05B; --lime-hover:#DDF37C;
  --paper:#F5F7F4; --surface:#FCFDF9; --selection:#F1F4EC;
  --muted:#58615E; --border:#CBD2C8; --control-rule:#778276;
  --dark-muted:#B8C3BA; --dark-surface:#2B373C;
  --verdite:#9E98D6; --support-surface:#F0EEF8;
  /* Status: the colour never carries the meaning alone; the text does. */
  --error:#8D3928; --error-surface:#F6ECE9;
  --warning:#80591D; --warning-surface:#F5EEDF;
  --success:#047857;
  --scrim:rgb(28 38 44 / 55%);
  /* The only shadow: transient overlays (menus, dialogs). */
  --shadow-overlay:0 8px 32px rgb(28 38 44 / 16%);

  /* Families */
  --font-body:Plex,system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-display:Onest,Plex,system-ui,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;

  /* Type roles. display = the home H1; page = the H1 of every other page and
     portal screen; section = H2; sub = H3 and leads; body; label = short
     metadata and field labels; control = buttons and inputs. */
  --text-display:56px; --lh-display:1.12;
  --text-page:40px;    --lh-page:1.12;
  --text-section:28px; --lh-section:1.25;
  --text-lead:20px;    --lh-sub:1.25; --lh-lead:1.5;
  --text-body:16px;    --lh-body:1.5;
  --text-sm:14px;      --text-label:14px; --lh-label:1.5;
  --text-control:16px; --lh-control:1.25;
  --text-mono:13px;
  --text-number:40px;
  --tracking-display:-.025em;
  --weight-regular:400; --weight-medium:500; --weight-display:700;

  /* Spacing (4 / 8 / 12 / 16 / 24 / 32 / 48 / 64, plus the 96 chapter gap). */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s6:24px; --s8:32px; --s12:48px; --s16:64px; --s24:96px;

  /* Shape and controls. Touch targets at least 44 px; standard controls 48 px. */
  --radius-control:4px; --radius-panel:8px; --rule:1px;
  --touch-min:44px; --control-size:48px; --control-size-sm:44px;
  --icon:20px; --icon-large:24px; --corner-size:24px;
  --support-corner:20px; --brand-cut:24px; --panel-corner:12px;
  --focus-ring:3px solid var(--carbon); --focus-offset:2px;

  /* Motion (COMPONENTS.md: corner grows 240 ms, pulses in a 600 ms cycle,
     returns in 160 ms). */
  --time-hover:140ms; --time-select:170ms; --time-press:70ms;
  --time-enter:240ms; --time-exit:160ms; --time-pulse:300ms;
  --ease:cubic-bezier(.2,.8,.2,1);
  --corner-rest:.38; --corner-hover:2.3005; --corner-pulse:2.3861;

  /* Layout */
  --max-width:1280px; --gutter:64px; --section-space:96px; --hero-space:64px; --header-space:24px;
  --logo-width:184px; --app-main:1120px;

  /* Light surface (default). Components read these instead of fixed colours,
     so a dark surface only has to swap them (see .nd-dark below). */
  --fg:var(--carbon); --fg-muted:var(--muted); --rule-color:var(--border); --link-mark:var(--verdite);
  --focus-color:var(--carbon); --panel-bg:var(--surface); --panel-border:var(--border);

  /* The tree checkbox (components.css): a 20 px box drawn inside a 44 px target,
     Lime tick on Carbon when checked. */
  --check-off:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='.5' y='.5' width='19' height='19' rx='2' fill='%23FCFDF9' stroke='%23778276'/%3E%3C/svg%3E");
  --check-hover:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='.5' y='.5' width='19' height='19' rx='2' fill='%23F1F4EC' stroke='%231C262C'/%3E%3C/svg%3E");
  --check-on:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='.5' y='.5' width='19' height='19' rx='2' fill='%231C262C' stroke='%231C262C'/%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23D5F05B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --mark-fail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect width='20' height='20' rx='2' fill='%238D3928'/%3E%3Cpath d='M6.5 6.5l7 7M13.5 6.5l-7 7' stroke='%23FCFDF9' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  --check-mixed:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Crect x='.5' y='.5' width='19' height='19' rx='2' fill='%231C262C' stroke='%231C262C'/%3E%3Cpath d='M5 10h10' stroke='%23D5F05B' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");

  /* Button roles (components.css). */
  --btn-primary-bg:var(--carbon); --btn-primary-fg:var(--surface); --btn-primary-border:var(--carbon);
  --btn-primary-cell:var(--lime); --btn-primary-arrow-hover:var(--carbon); --btn-primary-hover-bg:var(--carbon);
  --btn-accent-bg:var(--lime); --btn-accent-fg:var(--carbon); --btn-accent-border:var(--carbon);
  --btn-accent-cell:var(--carbon); --btn-accent-arrow-hover:var(--lime); --btn-accent-hover-bg:var(--lime-hover);
  --btn-secondary-bg:transparent; --btn-secondary-fg:var(--carbon); --btn-secondary-border:var(--control-rule);
  --btn-secondary-hover-bg:var(--selection); --btn-secondary-hover-border:var(--carbon);
  --btn-destructive-fg:var(--error); --btn-destructive-border:var(--error); --btn-destructive-hover-bg:var(--error-surface);
  --btn-disabled-bg:var(--selection); --btn-disabled-fg:var(--carbon); --btn-disabled-border:var(--border); --btn-disabled-cell:var(--border);

  color-scheme:light;
}

@media(max-width:1023px){:root{--gutter:32px;--section-space:64px;--hero-space:48px}}
@media(max-width:767px){:root{--gutter:24px;--section-space:56px;--hero-space:32px;--header-space:16px;--logo-width:168px;
  --text-display:40px;--text-page:32px;--text-section:24px;--text-number:32px}}
@media(max-width:374px){:root{--gutter:16px;--text-display:36px}}

/* Dark surface: Carbon ground, Surface text, Dark-muted secondary text
   (9.4:1 on Carbon), Lime focus. A primary action on Carbon would vanish, so
   inside a dark surface the primary role takes the Lime accent look. */
.nd-dark,.on-dark{
  --fg:var(--surface); --fg-muted:var(--dark-muted); --rule-color:var(--control-rule); --link-mark:var(--lime);
  --focus-color:var(--lime); --panel-bg:var(--carbon); --panel-border:var(--carbon);
  --btn-primary-bg:var(--lime); --btn-primary-fg:var(--carbon); --btn-primary-border:var(--lime);
  --btn-primary-cell:var(--carbon); --btn-primary-arrow-hover:var(--lime); --btn-primary-hover-bg:var(--lime-hover);
  --btn-secondary-fg:var(--surface); --btn-secondary-border:var(--dark-muted);
  --btn-secondary-hover-bg:var(--dark-surface); --btn-secondary-hover-border:var(--surface);
  --btn-disabled-bg:var(--dark-surface); --btn-disabled-fg:var(--surface); --btn-disabled-border:var(--control-rule);
  background:var(--panel-bg); color:var(--fg);
}
/* fonts.css */
/* Font faces only (same as base.css), for reskinned live pages that must not
   take base.css element rules. */
@font-face{font-family:Onest;src:url('../fonts/onest-700-latin.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:Onest;src:url('../fonts/onest-700-latin-ext.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:Plex;src:url('../fonts/plex-sans-400-latin1.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02}
@font-face{font-family:Plex;src:url('../fonts/plex-sans-400-latin2.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0100-0130, U+0132-0151, U+0154-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+1E80-1E85, U+1E9E}
@font-face{font-family:Plex;src:url('../fonts/plex-sans-500-latin1.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02}
@font-face{font-family:Plex;src:url('../fonts/plex-sans-500-latin2.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;unicode-range:U+0100-0130, U+0132-0151, U+0154-017F, U+018F, U+0192, U+01A0-01A1, U+01AF-01B0, U+01FA-01FF, U+0218-021B, U+0237, U+0259, U+1E80-1E85, U+1E9E}
/* layout.css */

/* OD-LAYOUT-PRIMITIVES v1 — structure only: display, flex/grid, overflow, wrapping, ratio.
   Put this @layer first; product CSS outside the layer always wins. The live
   stylesheets of the reskinned pages sit in the earlier layer `legacy`
   (tools/live.py), so these primitives also win over them. */
@layer legacy, od-layout;
@layer od-layout {
  :where(.od-stack,.od-row,.od-row-top,.od-cluster,.od-grid,.od-field,.od-stat,.od-cell,.od-tile) > :where(*) { min-width: 0; }
  .od-stack { display:flex; flex-direction:column; gap:var(--od-gap,8px); }
  .od-row { display:flex; align-items:center; gap:var(--od-gap,8px); }
  .od-row-top { display:flex; align-items:flex-start; gap:var(--od-gap,8px); }
  .od-cluster { display:flex; flex-wrap:wrap; align-items:center; gap:var(--od-gap,8px); }
  .od-fill { flex:1 1 0; min-width:0; }
  .od-fixed { flex:none; }
  .od-grid { display:grid; gap:var(--od-gap,12px); grid-template-columns:repeat(var(--od-cols,3),minmax(0,1fr)); }
  .od-stat,.od-field,.od-cell { display:grid; gap:var(--od-gap,2px); }
  :where(.od-stat,.od-field,.od-cell) > :where(*) { display:block; }
  .od-tile { display:grid; grid-template-rows:auto 1fr; }
  :where(.od-tile) > :where(*) { display:block; }
  .od-media { display:block; width:100%; height:auto; aspect-ratio:var(--od-ratio,auto); }
  .od-media-cover { object-fit:cover; }
  .od-truncate { display:block; max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
  .od-clamp-2,.od-clamp-3 { display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
  .od-clamp-2 { -webkit-line-clamp:2; }
  .od-clamp-3 { -webkit-line-clamp:3; }
  .od-lines-2 { min-height:calc(2 * 1.4em); }
  .od-nowrap { white-space:nowrap; }
  .od-keep { word-break:keep-all; overflow-wrap:anywhere; }
  .od-screen { display:grid; grid-template-rows:auto minmax(0,1fr) auto; height:100%; }
  .od-scroll { overflow-y:auto; overscroll-behavior:contain; min-height:0; }
  .od-rail { display:flex; gap:var(--od-gap,8px); overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:none; padding-inline:var(--od-rail-pad,16px); scroll-padding-inline:var(--od-rail-pad,16px); }
  .od-rail::-webkit-scrollbar { display:none; }
  :where(.od-rail) > :where(*) { flex:none; scroll-snap-align:start; }
  :where(.od-rail) > :where(:last-child) { margin-inline-end:var(--od-rail-pad,16px); }
  .od-spacer { flex:none; visibility:hidden; pointer-events:none; }
  .od-touch { min-width:44px; min-height:44px; }
}
/* /OD-LAYOUT-PRIMITIVES v1 */
/* base.css */
/* Hand-built pages only (home, kit, font test, 404, demo pay): element resets
   and the home sections. Tokens are in tokens.css, faces in fonts.css, layout
   primitives in layout.css, header/footer/preview banner in chrome.css and the
   button roles in components.css. The reskinned live pages do not load this
   file: its element rules (svg, h2, p, details, summary) would restyle the live
   components. */
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;background:var(--paper);color:var(--carbon);font-family:var(--font-body);font-size:var(--text-body);line-height:1.5;font-synthesis:none;-webkit-font-smoothing:antialiased}
::selection{background:var(--lime);color:var(--carbon)}
button,input,select{font:inherit}button,select,a{touch-action:manipulation}button,a,select{ -webkit-tap-highlight-color:transparent}button,summary,select{cursor:pointer}a{color:inherit;text-underline-offset:var(--s1)}button{color:inherit}svg{display:block;flex:none;width:var(--icon);height:var(--icon)}img{max-width:100%}h1,h2,h3,p,figure{margin:0}h1,h2,h3{text-wrap:balance}h2{font-size:var(--text-section);line-height:1.25;font-weight:500}h3{font-size:var(--text-lead);line-height:1.25;font-weight:500}p{max-width:70ch}small{font-size:var(--text-sm)}[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--carbon);outline-offset:var(--s1)}.on-dark :focus-visible{outline-color:var(--lime)}
.hero-instant-underline{color:inherit;text-decoration-line:underline;text-decoration-color:var(--verdite);text-decoration-thickness:3px;text-underline-offset:var(--s2);text-decoration-skip-ink:none}
.section{padding-block:var(--section-space)}.section-intro{--od-gap:var(--s4)}.section-intro p{color:var(--muted)}
.hero{padding-block:var(--hero-space)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:var(--s16);align-items:center}.hero-copy{--od-gap:var(--s6)}h1{font-family:var(--font-display);font-size:var(--text-page);line-height:var(--lh-page);letter-spacing:var(--tracking-display);font-weight:700}.hero h1{font-size:var(--text-display);line-height:var(--lh-display)}.hero-lead{font-size:var(--text-lead);max-width:48ch}.buy-controls{--od-gap:var(--s3);margin-top:var(--s2)}.buy-controls label{font-weight:500}.purchase-row{display:flex;align-items:center;gap:var(--s3)}.select-wrap{position:relative;flex:1;min-width:0}.select-wrap select{appearance:none;display:block;width:100%;height:var(--control-size);border:var(--rule) solid var(--control-rule);border-radius:var(--radius-control);background:var(--surface);padding:var(--s3) var(--s12) var(--s3) var(--s4);color:var(--carbon)}.select-wrap svg{position:absolute;right:var(--s4);top:var(--s4);pointer-events:none;width:var(--s4);height:var(--s4)}
.purchase-hint{font-size:var(--text-sm);color:var(--muted)}.hero-support{--od-gap:var(--s2);font-size:var(--text-body)}.hero-support a{font-weight:500;min-height:44px;display:inline-flex;align-items:center;gap:var(--s2);color:var(--carbon);text-decoration:none}.hero-support svg{width:var(--s4);height:var(--s4)}
.purchase-panel{position:relative;min-width:0;background:var(--surface);border:var(--rule) solid var(--border);border-radius:var(--radius-control);padding:var(--s8);--od-gap:var(--s6)}.purchase-panel::after{content:"";position:absolute;bottom:0;left:0;width:var(--s3);height:var(--s3);background:var(--lime);clip-path:polygon(0 0,100% 100%,0 100%)}.purchase-panel h2{font-size:var(--text-section);line-height:1.25}.purchase-panel .buy-controls{margin-top:0;--od-gap:var(--s4)}.purchase-panel .purchase-row{flex-direction:column;align-items:stretch;gap:var(--s4)}.purchase-panel .select-wrap{flex:auto}.purchase-panel .select-wrap select{background:var(--paper)}.purchase-panel .purchase-button{width:100%}.purchase-panel .purchase-hint{font-size:var(--text-body);line-height:1.5}.purchase-assurance{list-style:none;margin:0;padding:0;--od-gap:var(--s2);font-size:var(--text-body);color:var(--muted)}.purchase-assurance strong{font-weight:500;color:var(--carbon)}.purchase-sample{border-top:var(--rule) solid var(--border);padding-top:var(--s4);--od-gap:var(--s1)}.purchase-sample p{font-size:var(--text-body);color:var(--muted)}.file-preview{--section-space:var(--s16);padding-top:var(--s8)}.file-preview .section-intro{max-width:75ch}#support{--section-space:var(--s24)}#questions{--section-space:var(--s16)}

.trust-strip{border-block:var(--rule) solid var(--border);padding-block:var(--s6);--od-gap:var(--s8);display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.trust-item{--od-gap:var(--s1)}.trust-item strong{font-weight:500}.trust-item span{font-size:var(--text-sm);color:var(--muted)}
.file-content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s8);align-items:start}.table-block{min-width:0;--od-gap:var(--s4)}.table-caption{justify-content:space-between;--od-gap:var(--s3);font-size:var(--text-sm)}.table-caption strong{font-weight:500}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-body);table-layout:fixed}.data-table caption{text-align:left;color:var(--muted);font-size:var(--text-sm);padding-bottom:var(--s4)}.data-table th{text-align:left;font-weight:500;background:var(--selection);font-size:var(--text-sm)}.data-table th,.data-table td{padding:var(--s4);border-bottom:var(--rule) solid var(--border);vertical-align:top;overflow-wrap:anywhere}.data-table th:first-child{width:24%}.data-table th:nth-child(2){width:34%}.data-table th:nth-child(3){width:22%}.data-table th:nth-child(4){width:20%}.data-table tbody td:first-child{font-weight:500}.data-table tbody td:nth-child(n+3){font-variant-numeric:tabular-nums}.report-year{font-size:var(--text-sm);color:var(--muted)}.missing-value{color:var(--muted)}.field-groups{--od-gap:var(--s6);border-top:var(--rule) solid var(--border);padding-top:var(--s6)}.field-group{--od-gap:var(--s2)}.field-group strong{font-weight:500}.field-group p{font-size:var(--text-sm);color:var(--muted)}.sample-note{color:var(--muted);font-size:var(--text-sm)}.data-origin{--od-gap:var(--s2);border-top:var(--rule) solid var(--border);padding-top:var(--s4)}.data-origin p{color:var(--muted)}
.purchase-section{--section-space:var(--s16);background:var(--carbon);color:var(--surface)}.purchase-section .section-intro{margin-bottom:var(--s12)}.purchase-section .section-intro p{color:var(--dark-muted)}.steps{--od-gap:var(--s12)}.step{--od-gap:var(--s4);border-top:var(--rule) solid var(--control-rule);padding-top:var(--s6)}.step-number{display:block;font-family:var(--font-display);font-size:var(--text-number);line-height:1.12;color:var(--lime)}.step p{color:var(--dark-muted)}.payment-line{--od-gap:var(--s4);margin-top:var(--s12);padding-top:var(--s6);border-top:var(--rule) solid var(--control-rule);justify-content:space-between}.payment-line p{color:var(--dark-muted);font-size:var(--text-sm)}.payment-line strong{color:var(--surface);font-weight:500}.purchase-section .text-link{color:var(--surface)}
.support-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s16);align-items:center}.support-note{position:relative;background:var(--support-surface);padding:var(--s8);--od-gap:var(--s6)}.support-note::after{content:"";position:absolute;bottom:0;left:0;width:var(--support-corner);height:var(--support-corner);background:var(--verdite);clip-path:polygon(0 0,100% 100%,0 100%)}.support-note h3{font-size:var(--text-section);line-height:1.25}.support-email{font-size:var(--text-lead);font-weight:500;overflow-wrap:anywhere;display:block;min-height:44px;max-width:100%;padding-block:var(--s2);width:fit-content}.support-signature{--od-gap:var(--s1);border-top:var(--rule) solid var(--border);padding-top:var(--s4)}.support-signature strong{font-weight:500}.support-signature span{font-size:var(--text-sm);color:var(--muted)}
.integrations{background:var(--surface);border-block:var(--rule) solid var(--border)}.integration-head{display:grid;grid-template-columns:1fr 1fr;gap:var(--s16);margin-bottom:var(--s12);align-items:end}.integration-head p{color:var(--muted)}.integration-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;gap:var(--s8);align-items:center;padding-block:var(--s8);border-top:var(--rule) solid var(--border)}.integration-row p{color:var(--muted)}.integration-title{--od-gap:var(--s2)}.integration-title span{font-size:var(--text-sm);color:var(--muted)}.integration-row .text-link{white-space:nowrap}.chat-example{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:var(--s8);padding:var(--s6) 0;border-top:var(--rule) solid var(--border);color:var(--muted)}.chat-example blockquote{margin:0;color:var(--carbon);font-size:var(--text-lead);line-height:1.5;max-width:48ch}.chat-example small{display:block;margin-top:var(--s3);color:var(--muted)}
.faq-grid{display:grid;grid-template-columns:1fr 1.8fr;gap:var(--s16)}.faq-list{border-top:var(--rule) solid var(--border)}details{border-bottom:var(--rule) solid var(--border)}summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-block:var(--s6);font-weight:500}summary::-webkit-details-marker{display:none}summary::after{content:"+";flex:none;font-size:var(--text-lead);font-weight:400;width:var(--s6);text-align:center}details[open] summary::after{content:"−"}details p{padding:0 var(--s8) var(--s6) 0;color:var(--muted)}details p a{color:var(--carbon)}
@media(hover:hover){.select-wrap select:hover{border-color:var(--carbon)}summary:hover{background:var(--selection)}}
@media(min-width:1440px){:root{--hero-space:96px}.hero-grid{gap:var(--s16)}}
@media(max-width:1023px){#support{--section-space:var(--s16)}.hero-grid{gap:var(--s8);grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.hero h1{font-size:clamp(40px,5.2vw,56px)}.purchase-panel{padding:var(--s6)}.purchase-row{flex-direction:column;align-items:stretch}.select-wrap{flex:auto}.file-content-grid,.support-grid,.faq-grid{gap:var(--s8)}.steps{--od-gap:var(--s8)}.integration-row{grid-template-columns:1fr 1.5fr}.integration-row>.text-link{grid-column:2}.integration-head{gap:var(--s8)}}
@media(max-width:767px){html{scroll-padding-top:104px}.hero-grid{grid-template-columns:1fr;gap:var(--s8)}.hero h1{font-size:var(--text-display)}.hero-copy{--od-gap:var(--s6)}.hero-lead{font-size:var(--text-body)}.purchase-row{flex-direction:row}.purchase-row .button{padding-inline:var(--s4)}.hero-support{flex-wrap:wrap}.purchase-panel{padding:var(--s6);width:100%}.trust-strip{grid-template-columns:1fr;gap:var(--s4)}.trust-item{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s4)}.file-content-grid,.support-grid,.faq-grid,.integration-head{grid-template-columns:1fr;gap:var(--s8)}.data-table thead{display:none}.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{padding-block:var(--s4);border-top:var(--rule) solid var(--border)}.data-table td{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:var(--s4);padding:var(--s2) 0;border:0}.data-table td::before{content:attr(data-label);color:var(--muted);font-family:var(--font-body);font-size:var(--text-sm);font-weight:400}.field-groups{--od-cols:1;--od-gap:var(--s6)}.steps{--od-cols:1;--od-gap:var(--s8)}.step{display:grid;grid-template-columns:var(--s12) minmax(0,1fr);gap:var(--s4) var(--s6)}.step-number{grid-row:span 2}.payment-line{align-items:flex-start;flex-direction:column;--od-gap:var(--s2)}.support-note{padding:var(--s6)}.integration-row{grid-template-columns:1fr;gap:var(--s4)}.integration-row>.text-link{grid-column:auto}.chat-example{grid-template-columns:1fr;gap:var(--s4)}}
@media(max-width:479px){.purchase-row{flex-direction:column}.purchase-row .button{width:100%}.trust-item{grid-template-columns:1fr;gap:var(--s1)}.table-caption{align-items:flex-start;flex-direction:column}.support-email{font-size:var(--text-body)}}
@media(max-width:374px){.purchase-panel{padding:var(--s4)}.step{grid-template-columns:var(--s8) minmax(0,1fr);gap:var(--s4)}.step-number{font-size:var(--text-section)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* chrome.css */
/* Site chrome shared by every /new page, hand-built or reskinned: skip link,
   header and menus, the preview banner and the footer, plus the small
   utilities they use (.wrap, .muted, .mono, .text-link). Class selectors only:
   the reskinned live pages load this without base.css, so the few element
   rules the chrome needs are scoped to the chrome itself. Tokens: tokens.css. */

:where(.site-header,.site-footer,.preview-notice,.skip){font-family:var(--font-body);font-size:var(--text-body);line-height:var(--lh-body);
  font-synthesis:none;-webkit-font-smoothing:antialiased}
:where(.site-header,.site-footer,.preview-notice) :where(*,*::before,*::after){box-sizing:border-box}
:where(.site-header,.site-footer,.preview-notice) :where(svg){display:block;flex:none;width:var(--icon);height:var(--icon)}
:where(.site-header,.site-footer) :where(ul){list-style:none;margin:0;padding:0}
:where(.site-header,.site-footer) :where(p,address,h2,h3,figure){margin:0}
:where(.site-header,.site-footer,.preview-notice) :where(a){color:inherit;text-underline-offset:var(--s1)}
:where(.site-header,.site-footer,.preview-notice) :where(button){font:inherit;color:inherit;cursor:pointer}
:where(.site-header,.site-footer,.preview-notice) :focus-visible{outline:3px solid var(--focus-color);outline-offset:var(--focus-offset)}

.wrap{width:min(100% - var(--gutter) * 2,var(--max-width));margin-inline:auto}
.muted{color:var(--fg-muted)}
.mono{font-family:var(--font-mono);font-size:var(--text-mono)}
.text-link{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--touch-min);max-width:100%;font-weight:500;text-decoration:none;width:fit-content}
.text-link svg{flex:none;width:var(--s4);height:var(--s4)}
.skip{position:fixed;top:var(--s2);left:var(--s4);z-index:30;background:var(--lime);color:var(--carbon);padding:var(--s3) var(--s4);transform:translateY(-200%)}
.skip:focus{transform:translateY(0)}

/* Header (innovadata-home.html layout). */
.brand{display:block;flex:none;width:var(--logo-width);line-height:0}
.brand img{width:100%;height:auto;display:block}
.site-header{--nav-height:72px;--nav-logo:164px;--nav-gutter:48px;--nav-max:1312px;--nav-inset:10px;--nav-underline-offset:7px;--nav-menu-width:200px;
  position:sticky;top:0;z-index:20;background:var(--paper);color:var(--carbon);border-bottom:var(--rule) solid var(--border)}
.site-header>.wrap{width:100%;max-width:var(--nav-max);padding-inline:var(--nav-gutter)}
.header-bar{display:flex;align-items:center;gap:var(--s6);min-height:var(--nav-height)}
.site-header .brand{width:var(--nav-logo);padding-block:var(--s3);border-radius:var(--radius-control)}
.primary-nav{flex:1;min-width:0}
.primary-nav ul{display:flex;gap:var(--s1)}
.nav-link{display:inline-flex;align-items:center;min-height:var(--touch-min);padding-inline:var(--nav-inset);font-weight:500;text-decoration:none;border-radius:var(--radius-control);white-space:nowrap}
.header-tools{display:flex;align-items:center;gap:var(--s3);margin-left:auto}
.lang{position:relative}
.lang-button svg{width:var(--s4);height:var(--s4);fill:none;stroke:currentColor;stroke-width:1.6;transition:transform var(--time-hover) var(--ease)}
.lang-button[aria-expanded=true] svg{transform:rotate(180deg)}
.lang-menu{position:absolute;right:0;top:calc(100% + var(--s2));z-index:40;min-width:var(--nav-menu-width);padding:var(--s2);background:var(--surface);
  border:var(--rule) solid var(--control-rule);border-radius:var(--radius-panel);box-shadow:var(--shadow-overlay)}
.lang-menu a{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);min-height:var(--touch-min);padding-inline:var(--s3);text-decoration:none;border-radius:var(--radius-control)}
.lang-menu a:focus-visible{background:var(--selection);outline-offset:0}
.lang-menu a[aria-current=true]{font-weight:500}
.lang-menu a[aria-current=true]::after{content:"Current";font-size:var(--text-label);color:var(--muted)}
.lang-menu a[aria-current=true][lang=et]::after{content:"Valitud"}
.menu-toggle{display:none}
.mobile-nav{border-top:var(--rule) solid var(--border);padding-block:var(--s2) var(--s6)}
.mobile-nav li{border-bottom:var(--rule) solid var(--border)}
.mobile-nav .nav-link{display:flex;width:100%;min-height:var(--control-size);padding-inline:0;font-size:var(--text-body)}
.mobile-nav .portal{margin-top:var(--s6)}

/* The Verdite underline that grows under navigation and text links. */
:is(.primary-nav .nav-link,.hero-support a,.text-link,.support-email,.footer-links a){position:relative;text-decoration:none}
:is(.primary-nav .nav-link,.hero-support a,.text-link,.support-email,.footer-links a)::after{content:"";position:absolute;left:var(--nav-inset,0px);right:var(--nav-inset,0px);
  bottom:var(--nav-underline-offset,7px);height:3px;background:var(--link-mark);clip-path:polygon(0 0,calc(100% - 3px) 0,100% 100%,0 100%);
  transform:scaleX(0);transform-origin:left center;transition:transform var(--time-enter) var(--ease)}
:is(.primary-nav .nav-link,.hero-support a,.text-link,.support-email,.footer-links a):focus-visible::after{transform:scaleX(1)}
@media(hover:hover){
  :is(.primary-nav .nav-link,.hero-support a,.text-link,.support-email,.footer-links a):hover::after{transform:scaleX(1)}
  .mobile-nav .nav-link:hover{text-decoration:underline}
  .lang-button:hover,.menu-toggle:hover,.lang-menu a:hover{background:var(--selection)}
}
@media(max-width:1023px){.primary-nav{display:none}.menu-toggle{display:inline-flex}.site-header{--nav-gutter:32px}}
@media(max-width:767px){.site-header{--nav-gutter:16px;--nav-logo:148px;--nav-height:64px}.header-portal{display:none}.header-bar{gap:var(--s3)}}

/* Preview banner: one line. Phones get the short wording (same meaning: live
   counts and prices, demo payments, a link to the live site). */
.preview-notice{background:var(--carbon);color:var(--surface);font-size:var(--text-sm);line-height:1.4}
.preview-notice .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s4);min-height:var(--touch-min)}
.preview-notice strong{font-weight:500}
.preview-notice a{display:inline-flex;align-items:center;min-height:var(--touch-min);color:var(--surface);text-decoration:underline;
  text-decoration-color:var(--lime);text-decoration-thickness:2px}
.preview-notice a:focus-visible{outline-color:var(--lime)}
.preview-notice .pn-short{display:none}
/* The portal page carries both languages; html[lang] picks one. */
.preview-notice :is(.pn-en,.pn-et){display:contents}
html[lang=et] .preview-notice .pn-en,html:not([lang=et]) .preview-notice .pn-et{display:none}
@media(max-width:767px){
  .preview-notice .wrap{flex-wrap:nowrap;gap:var(--s3);width:100%;padding-inline:16px}
  .preview-notice .pn-long{display:none}
  .preview-notice .pn-short{display:inline;min-width:0}
  .preview-notice a{margin-left:auto;white-space:nowrap}
}

/* Footer: a dark surface (tokens.css .nd-dark on the element). */
.site-footer{padding-block:var(--s12)}
.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s8)}
.footer-brand{--od-gap:var(--s4)}
.footer-brand .brand{width:var(--logo-width);min-height:var(--touch-min);display:flex;align-items:center}
.footer-brand p{font-size:var(--text-sm);color:var(--fg-muted)}
.footer-links{--od-gap:var(--s6)}
.footer-links a{min-height:var(--touch-min);min-width:var(--touch-min);display:flex;align-items:center;font-size:var(--text-sm);text-decoration:none}
.seller-details{--od-gap:var(--s1);font-size:var(--text-body);max-width:70ch}
.seller-details strong{font-weight:500;color:var(--fg)}
.seller-details address{font-style:normal;overflow-wrap:anywhere}
.footer-bottom{--od-gap:var(--s6);justify-content:space-between;margin-top:var(--s8);padding-top:var(--s6);border-top:var(--rule) solid var(--rule-color);
  font-size:var(--text-sm);color:var(--fg-muted)}
@media(max-width:767px){.footer-top{flex-direction:column}.footer-links{--od-gap:var(--s4)}.footer-bottom{align-items:flex-start;flex-direction:column;--od-gap:var(--s2)}}
@media(prefers-reduced-motion:reduce){:is(.primary-nav .nav-link,.hero-support a,.text-link,.support-email,.footer-links a)::after,.lang-button svg{transition:none}}

/* Keep the language and menu controls inside a 320 px viewport. */
@media(max-width:374px){
 .site-header{--nav-logo:128px;--nav-gutter:12px}
 .header-bar,.header-tools{gap:var(--s2)}
 .header-tools .header-button{padding-inline:var(--s3)}
}
/* components.css */
/* Buttons: five roles, one rule set (COMPONENTS.md).

     primary      Carbon, light label, Lime interior corner. Advances the task.
     accent       Lime, Carbon label, Carbon corner. A deliberate focal decision;
                  at most one per view.
     secondary    Neutral outline. A supporting decision. No corner.
     quiet        Text action with a full 44 px target. No corner.
     destructive  Error outline and label, followed by a confirmation.

   Every role list below names its members explicitly: the new components
   (.nd-btn--*, .button, .app-button, .header-button) and the live site's and
   portal's classes on the reskinned pages, so a live button takes a role
   without its markup changing. The portal's .btn means "primary" there but is
   only the base class on the site, hence [data-surface=portal].
   action-corner.js adds the corner to the primary and accent members only and
   uses the same lists (keep them in step).

   Colours come from tokens.css (--btn-*), which a dark surface (.nd-dark)
   swaps, so a primary action on Carbon turns Lime instead of disappearing. */

/* ---- membership ------------------------------------------------------ */
:is(.nd-btn--primary,.button,.header-portal,.mobile-nav .portal,.app-button.primary,.app-button.dark,
    .btn--order:not(.signup-gate__btn),.btn--primary,.btn--accent,.howto-hero__btn--primary,.btn-trust--primary,.terms-hero__cta-btn,.howto-help__btn,
    .howto-cta__btn:not(.howto-cta__btn--ghost):not(.howto-cta__btn--quick),
    [data-surface=portal] .btn:not(.secondary):not(.danger),.topbar .cta){
  --b-bg:var(--btn-primary-bg); --b-fg:var(--btn-primary-fg); --b-border:var(--btn-primary-border);
  --b-hover-bg:var(--btn-primary-hover-bg); --b-hover-border:var(--btn-primary-border);
  --b-cell:var(--btn-primary-cell); --b-arrow-hover:var(--btn-primary-arrow-hover);
}
:is(.nd-btn--accent,.purchase-button,.app-button.accent){
  --b-bg:var(--btn-accent-bg); --b-fg:var(--btn-accent-fg); --b-border:var(--btn-accent-border);
  --b-hover-bg:var(--btn-accent-hover-bg); --b-hover-border:var(--btn-accent-border);
  --b-cell:var(--btn-accent-cell); --b-arrow-hover:var(--btn-accent-arrow-hover);
}
:is(.nd-btn--secondary,.app-button:not(.primary):not(.dark):not(.accent):not(.mon-danger),
    .header-button:not(.header-portal):not(.portal):not(.purchase-button),
    .btn--ghost,.btn--outline,.btn--secondary,.btn--preview,.howto-hero__btn--ghost,.howto-cta__btn--ghost,.howto-cta__btn--quick,
    .btn-trust:not(.btn-trust--primary),.support-still__btn,.signup-gate__btn,
    [data-surface=portal] .btn.secondary,.btn-social,.copy-btn){
  --b-bg:var(--btn-secondary-bg); --b-fg:var(--btn-secondary-fg); --b-border:var(--btn-secondary-border);
  --b-hover-bg:var(--btn-secondary-hover-bg); --b-hover-border:var(--btn-secondary-hover-border);
}
:is(.nd-btn--quiet,.link-btn){
  --b-bg:transparent; --b-fg:var(--fg); --b-border:transparent; --b-hover-bg:transparent; --b-hover-border:transparent;
}
:is(.nd-btn--destructive,[data-surface=portal] .btn.danger,.app-button.mon-danger){
  --b-bg:transparent; --b-fg:var(--btn-destructive-fg); --b-border:var(--btn-destructive-border);
  --b-hover-bg:var(--btn-destructive-hover-bg); --b-hover-border:var(--btn-destructive-border);
}

/* ---- shape (all roles) ----------------------------------------------- */
/* Box and flow at zero specificity, so a component can still hide a button
   or make it full width (.header-portal on phones, page-mode Order). */
:where(.nd-btn,.button,.app-button,.header-button,.btn,.btn-social,.copy-btn,.link-btn,
    .howto-hero__btn,.howto-cta__btn,.howto-help__btn,.btn-trust,.terms-hero__cta-btn,.support-still__btn,.topbar .cta){
  position:relative; display:inline-flex; flex-direction:row; align-items:center; justify-content:center; gap:var(--s3);
}
:is(.nd-btn,.button,.app-button,.header-button,.btn,.btn-social,.copy-btn,.link-btn,
    .howto-hero__btn,.howto-cta__btn,.howto-help__btn,.btn-trust,.terms-hero__cta-btn,.support-still__btn,.topbar .cta){
  /* padding-block keeps a button with the 24 px corner at the same 48 px */
  min-height:var(--control-size); padding:calc((var(--control-size) - 2 * var(--rule) - var(--corner-size)) / 2) var(--s6); box-sizing:border-box;
  background:var(--b-bg,transparent); color:var(--b-fg,var(--fg)); border:var(--rule) solid var(--b-border,var(--control-rule));
  border-radius:var(--radius-control); box-shadow:none; transform:none;
  font-family:var(--font-body); font-size:var(--text-control); font-weight:500; line-height:var(--lh-control);
  letter-spacing:0; text-transform:none; text-decoration:none; text-align:center; cursor:pointer;
  transition:background var(--time-hover) var(--ease),border-color var(--time-hover) var(--ease);
}
/* Navigation, table rows, chips of actions: 44 px and the label size. */
:is(.header-button:not(.purchase-button),.btn--sm,[data-surface=portal] .btn.sm,.copy-btn,.portal-row-actions .app-button){
  min-height:var(--control-size-sm); padding:calc((var(--control-size-sm) - 2 * var(--rule) - var(--corner-size)) / 2) var(--s4); font-size:var(--text-label); white-space:nowrap;
}
:is(.nd-btn--quiet,.link-btn){padding-inline:var(--s2); text-decoration:underline; text-decoration-color:var(--link-mark);
  text-decoration-thickness:2px; text-underline-offset:var(--s1); min-height:var(--touch-min)}
/* A link button inside a sentence ("Finish your billing profile to ...", "Tell us",
   "Send the activation email again") reads as a link in that sentence: no box,
   the sentence's own size. Inline links are exempt from the target size. */
:is(p:not(.center-row),.msg) > .link-btn{display:inline;min-height:0;padding:0;border:0;font:inherit;font-weight:500;vertical-align:baseline;
  color:var(--carbon);text-decoration:underline;text-decoration-color:var(--link-mark);text-decoration-thickness:2px;text-underline-offset:3px}

@media(hover:hover){
  :is(.nd-btn,.button,.app-button,.header-button,.btn,.btn-social,.copy-btn,.link-btn,
      .howto-hero__btn,.howto-cta__btn,.howto-help__btn,.btn-trust,.terms-hero__cta-btn,.support-still__btn,.topbar .cta):hover:not(:disabled):not([aria-disabled=true]){
    background:var(--b-hover-bg,transparent); border-color:var(--b-hover-border,var(--carbon)); color:var(--b-fg,var(--fg)); transform:none;
  }
  :is(.nd-btn--quiet,.link-btn):hover{text-decoration-thickness:3px}
}
:is(.nd-btn,.button,.app-button,.header-button,.btn,.btn-social,.copy-btn,.link-btn,
    .howto-hero__btn,.howto-cta__btn,.howto-help__btn,.btn-trust,.terms-hero__cta-btn,.support-still__btn,.topbar .cta):focus-visible{
  outline:3px solid var(--focus-color); outline-offset:var(--focus-offset);
}
/* Disabled: readable Carbon label on Selection, no animation (DESIGN.md).
   The order button's Lime price pill goes quiet too. */
:is(.nd-btn,.button,.app-button,.header-button,.btn,.btn-social,.copy-btn,.link-btn,
    .howto-hero__btn,.howto-cta__btn,.howto-help__btn,.btn-trust,.terms-hero__cta-btn,.support-still__btn,.topbar .cta):is(:disabled,[aria-disabled=true]){
  --b-cell:var(--btn-disabled-cell);
  background:var(--btn-disabled-bg); color:var(--btn-disabled-fg); border-color:var(--btn-disabled-border); opacity:1; cursor:not-allowed;
}
:is(.app-button,.btn)[aria-busy=true]{cursor:progress}
:is(.btn,.nd-btn):is(:disabled,[aria-disabled=true]) .btn__price-pill{background:transparent;box-shadow:inset 0 0 0 var(--rule) var(--border)}

/* One icon set: a primary or accent action shows the corner and nothing else
   (the live pages carried their own arrows). */
:is(.nd-btn--primary,.nd-btn--accent,.btn--order:not(.signup-gate__btn),.btn--primary,.btn--accent,.howto-hero__btn--primary,.btn-trust--primary,
    .terms-hero__cta-btn,.howto-help__btn,.howto-cta__btn:not(.howto-cta__btn--ghost):not(.howto-cta__btn--quick),
    [data-surface=portal] .btn:not(.secondary):not(.danger),.purchase-button,.app-button.primary,.app-button.dark,.app-button.accent) > svg:not(.action-corner){display:none}
:is(.btn--order,.btn--primary,.btn--accent,.btn--ghost,.btn--outline,.btn--preview)::after{content:none}
/* Secondary, quiet and destructive actions never carry the corner. */
:is(.nd-btn--secondary,.nd-btn--quiet,.nd-btn--destructive,.app-button:not(.primary):not(.dark):not(.accent),
    .header-button:not(.header-portal):not(.portal):not(.purchase-button),.btn--ghost,.btn--outline,.btn--secondary,.btn--preview,
    .signup-gate__btn,[data-surface=portal] .btn.secondary,[data-surface=portal] .btn.danger,.link-btn) > .action-corner{display:none}

/* ---- the arrow corner -------------------------------------------------- */
.action-corner{width:var(--corner-size); height:var(--corner-size); overflow:visible; flex:none}
.action-corner .cell{fill:var(--b-cell,var(--lime)); transform:scale(var(--corner-rest)); transform-box:view-box; transform-origin:0% 100%;
  transition:transform var(--time-exit) var(--ease)}
.action-corner .arrow{fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;
  transition:stroke var(--time-exit) var(--ease)}
@keyframes nd-corner-pulse{from{transform:scale(var(--corner-hover))}to{transform:scale(var(--corner-pulse))}}
@media(hover:hover){
  :hover:not(:disabled):not([aria-disabled=true]) > .action-corner .cell{transform:scale(var(--corner-hover)); transition-duration:var(--time-enter);
    animation:nd-corner-pulse var(--time-pulse) ease-in-out var(--time-enter) infinite alternate}
  :hover:not(:disabled):not([aria-disabled=true]) > .action-corner .arrow{stroke:var(--b-arrow-hover,var(--carbon)); transition-duration:var(--time-enter)}
}
/* Reduced motion: the enlarged corner without transition or pulse. */
@media(prefers-reduced-motion:reduce){
  .action-corner .cell,.action-corner .arrow,
  :hover:not(:disabled):not([aria-disabled=true]) > .action-corner .cell,
  :hover:not(:disabled):not([aria-disabled=true]) > .action-corner .arrow{transition:none; animation:none}
}

/* ---- controls shared by the live site and portal ----------------------- */
/* Compact shared tree. Full labels wrap; controls do not consume the text column. */
.industry-tree-wrap{max-height:240px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:var(--s1) 0;mask-image:none;-webkit-mask-image:none}
.industry-tree{font-size:13px;line-height:1.4}
.industry-tree ul{padding-left:var(--s3)}
.industry-tree>ul{padding-left:var(--s1)}
.industry-tree .node-row{display:flex;align-items:flex-start;min-height:28px;padding:2px var(--s1);gap:2px;border-radius:var(--radius-control)}
.industry-tree .toggle{width:24px;height:24px;margin:0;flex:none;display:flex;align-items:center;justify-content:center;
  font-size:9px;color:var(--muted);cursor:pointer;border-radius:var(--radius-control)}
.industry-tree .toggle.leaf{visibility:hidden}
.industry-tree input[type=checkbox]{appearance:none;-webkit-appearance:none;width:24px;height:24px;min-height:0;margin:0;padding:0;flex:none;
  border:0;border-radius:var(--radius-control);background:var(--check-off) center/16px 16px no-repeat;cursor:pointer}
.industry-tree input[type=checkbox]:checked{background-image:var(--check-on)}
.industry-tree input[type=checkbox]:indeterminate{background-image:var(--check-mixed)}
@media(hover:hover){.industry-tree input[type=checkbox]:not(:checked):not(:indeterminate):hover{background-image:var(--check-hover)}
  .industry-tree .node-row:hover{background:var(--selection)}}
.industry-tree input[type=checkbox]:focus-visible,.industry-tree .toggle:focus-visible{outline:2px solid var(--focus-color);outline-offset:-2px}
.industry-tree .node-label{display:block;flex:1;min-width:0;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;line-height:1.4;padding:3px 0;cursor:pointer}
.industry-tree .node-kood{font-size:12px;font-variant-numeric:tabular-nums}
.industry-tree .node-text{font-size:inherit}
/* Touch: the arrow stays narrow because tapping the name also opens a branch
   (app.js); the checkbox keeps a 32 px target. The name starts 56 px in, so
   most section names fit on one line of a phone-width tree. */
@media(pointer:coarse){
  .industry-tree .node-row{min-height:36px;gap:0}
  .industry-tree .toggle{width:20px;height:32px}
  .industry-tree input[type=checkbox]{width:32px;height:32px;background-size:18px 18px}
  .industry-tree .node-label{padding-block:6px;font-size:14px;line-height:1.45}
}
/* Other checkboxes and radios stay native, Carbon, 20 px, inside their label. */
:is(.checkbox-grid__item,.chk-list__item,.toggle-switch,label) > input:is([type=checkbox],[type=radio]){accent-color:var(--carbon)}

/* ---- the live cookie-consent banner and settings dialog -------------------
   (live css/cookie-consent.css + js/cookie-consent.js, site and portal). Its
   colours came from the old theme's variables, which the pages built anew do
   not define (the Accept button was white on nothing). Hierarchy as live:
   Accept is the primary action, Reject an equal-size outlined button, Manage a
   text action. */
.cc-banner.cc-banner{background:var(--surface);color:var(--carbon);border-top:var(--rule) solid var(--border);box-shadow:var(--shadow-overlay);font-family:var(--font-body)}
/* cookie-consent.css spaces the bar with --space-* from the old style.css, which
   the homepages do not load: there the bar had no padding and no button gaps. */
@media(min-width:768px){.cc-banner.cc-banner{padding:var(--s6) var(--s8)}.cc-banner .cc-banner__inner{gap:var(--s6)}.cc-banner .cc-banner__title{margin-bottom:var(--s1)}.cc-banner .cc-banner__actions{gap:var(--s2)}}
.cc-banner .cc-banner__title,.cc-modal .cc-modal__title{font:500 var(--text-body)/1.4 var(--font-body);color:var(--carbon);text-transform:none;letter-spacing:0}
.cc-banner .cc-banner__desc,.cc-modal .cc-modal__desc,.cc-modal .cc-category__desc{color:var(--muted);font-size:var(--text-label);line-height:var(--lh-label)}
.cc-modal .cc-category__name{color:var(--carbon);font-weight:500}
:is(.cc-banner,.cc-modal) :is(a,a:link,a:visited){color:var(--carbon);text-decoration:underline;text-decoration-color:var(--verdite);text-decoration-thickness:2px;text-underline-offset:3px}
:is(.cc-banner,.cc-modal) .cc-btn{min-height:var(--touch-min);padding:var(--s2) var(--s4);border-radius:var(--radius-control);font:500 var(--text-label)/1.25 var(--font-body);
  text-transform:none;letter-spacing:0;box-shadow:none;transform:none}
:is(.cc-banner,.cc-modal) .cc-btn--accept{background:var(--carbon);color:var(--surface);border:var(--rule) solid var(--carbon)}
:is(.cc-banner,.cc-modal) .cc-btn--reject{background:transparent;color:var(--carbon);border:var(--rule) solid var(--control-rule)}
:is(.cc-banner,.cc-modal) .cc-btn--settings{background:transparent;color:var(--carbon);border:var(--rule) solid transparent;text-decoration:underline;
  text-decoration-color:var(--verdite);text-decoration-thickness:2px;text-underline-offset:3px}
@media(hover:hover){
  :is(.cc-banner,.cc-modal) .cc-btn--accept:hover{background:var(--carbon-hover);color:var(--surface)}
  :is(.cc-banner,.cc-modal) .cc-btn--reject:hover{background:var(--selection);border-color:var(--carbon);color:var(--carbon)}
  :is(.cc-banner,.cc-modal) .cc-btn--settings:hover{background:transparent;color:var(--carbon);text-decoration-thickness:3px}
}
:is(.cc-banner,.cc-modal) .cc-btn:focus-visible,.cc-modal .cc-modal__close:focus-visible{outline:3px solid var(--carbon);outline-offset:var(--focus-offset)}
.cc-overlay.cc-overlay{background:var(--scrim)}
.cc-modal.cc-modal{background:var(--surface);color:var(--carbon);border:var(--rule) solid var(--control-rule);border-radius:var(--radius-panel);box-shadow:var(--shadow-overlay);font-family:var(--font-body)}
.cc-modal .cc-modal__header,.cc-modal .cc-modal__footer{border-color:var(--border)}
.cc-modal .cc-modal__close{min-width:var(--touch-min);min-height:var(--touch-min);display:inline-flex;align-items:center;justify-content:center;color:var(--carbon);border-radius:var(--radius-control)}
.cc-modal .cc-category{border-color:var(--border);border-radius:var(--radius-control)}
.cc-modal .cc-category__badge{background:var(--selection);color:var(--carbon);border-radius:var(--radius-control);font-size:var(--text-label);font-weight:500;text-transform:none;letter-spacing:0}
.cc-toggle .cc-toggle__slider{background:var(--surface);border-color:var(--control-rule)}
.cc-toggle input:checked + .cc-toggle__slider{background:var(--carbon);border-color:var(--carbon)}
.cc-toggle input:checked + .cc-toggle__slider::before{background:var(--lime)}
.cc-toggle input:focus-visible + .cc-toggle__slider{outline:3px solid var(--carbon);outline-offset:2px}
.cc-float.cc-float{background:var(--surface);color:var(--carbon);border:var(--rule) solid var(--control-rule);box-shadow:none;min-width:var(--touch-min);min-height:var(--touch-min)}
/* app.css */
/* Innovadata application surfaces: continued Carbon/Lime/Verdite brand.
   .app-button colours and states: components.css (button roles). */
:root{--app-heading:40px;--app-section:24px;--app-gap:24px;--rail-width:320px;--reading-width:76ch;--app-block:32px;--bottom-safe:env(safe-area-inset-bottom,0px);--app-enter:200ms;--app-exit:130ms;--app-touch:48px;--code-size:14px;--code-line:1.7}
.app-page{padding-block:var(--s12) var(--s16)}.app-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s6);margin-bottom:var(--s8)}.app-head h1{font-family:var(--font-display);font-size:clamp(32px,3vw,48px);line-height:1.2}.app-head p{color:var(--muted);margin-top:var(--s3);max-width:64ch}.eyebrow{font-size:var(--text-sm);font-weight:500;margin-bottom:var(--s3)}.mode-line{background:var(--carbon);color:var(--surface);padding:var(--s2) var(--s4);font-size:var(--text-sm);line-height:1.5}.mode-line a{color:var(--lime)}
.app-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);min-height:var(--app-touch);padding:var(--s3) var(--s4);border-radius:var(--radius-control);font-weight:500;line-height:1.25;text-decoration:none;cursor:pointer}.app-button .action-corner{width:24px;height:24px;overflow:visible}.app-button[aria-busy=true]{cursor:progress}.app-button .action-corner .arrow{stroke:currentColor}
@media(hover:hover){}
.field{display:grid;gap:var(--s2);min-width:0}.field>label,.field>legend{display:block;font-weight:500}.field input,.field select,.field textarea,.search-input{display:block;width:100%;min-width:0;min-height:var(--app-touch);padding:var(--s3);border:var(--rule) solid var(--control-rule);border-radius:var(--radius-control);background:var(--surface);color:var(--carbon);font-size:var(--text-body)}.field small,.help{display:block;color:var(--muted);font-size:var(--text-sm);line-height:1.5}.field fieldset{border:0;margin:0;padding:0;min-width:0}.range-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s3)}.range-row label{display:block;font-size:var(--text-sm);margin-bottom:var(--s1)}.choice{display:flex;gap:var(--s3);align-items:flex-start;min-height:var(--app-touch);padding:var(--s2);cursor:pointer}.choice input{flex:none;width:20px;height:20px;min-height:0;margin-top:var(--s1);accent-color:var(--carbon)}.choice span{display:block;min-width:0;overflow-wrap:anywhere}.choices{display:grid;gap:var(--s2)}
.search-layout{display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);gap:var(--s12);align-items:start}.filter-panel{min-width:0;display:grid;gap:var(--s6);padding:var(--s6);background:var(--surface);border:var(--rule) solid var(--border);border-radius:var(--radius-panel)}.filter-panel h2{font-size:var(--app-section)}.filter-group{border-top:var(--rule) solid var(--border);padding-top:var(--s4)}.filter-group>summary{min-height:var(--app-touch);display:flex;align-items:center;font-weight:500;gap:var(--s3);list-style:none}.filter-group>summary:after{content:'+';margin-left:auto;font-size:var(--text-lead)}.filter-group[open]>summary:after{content:'−'}.filter-fields{display:grid;gap:var(--s6);padding-top:var(--s3)}.filter-actions{display:grid;gap:var(--s2);position:sticky;bottom:var(--s4);background:var(--surface);padding-block:var(--s3)}.result-pane{min-width:0;display:grid;gap:var(--s8)}.selection-summary{display:grid;gap:var(--s4);border-bottom:var(--rule) solid var(--border);padding-bottom:var(--s8)}.count-value{font-family:var(--font-display);font-size:clamp(36px,5vw,64px);line-height:1.15;display:block;overflow-wrap:anywhere}.count-label{display:block;color:var(--muted)}.selection-list{list-style:none;padding:0;margin:0;display:grid;gap:var(--s2)}.selection-list li{display:flex;gap:var(--s3);justify-content:space-between;border-bottom:var(--rule) solid var(--border);padding-block:var(--s2)}.selection-list strong{display:block;min-width:0;flex:1;font-weight:500;overflow-wrap:anywhere}.selection-list span{display:block;min-width:0;flex:1;overflow-wrap:anywhere;text-align:right}.inline-status{display:block;font-size:var(--text-body);line-height:1.5}.inline-status.error{padding:var(--s4);border:var(--rule) solid var(--carbon);background:var(--support-surface)}.inline-status:empty{display:none}.loading-indicator{height:var(--s2);width:min(100%,160px);border-radius:var(--s1);background:var(--border);position:relative}.loading-indicator:after{content:'';display:block;width:40%;height:100%;background:var(--carbon);animation:loading-pulse 1s ease-out infinite alternate}@keyframes loading-pulse{from{transform:translateX(0);opacity:.45}to{transform:translateX(150%);opacity:1}}
.sample-area{display:grid;gap:var(--s4)}.sample-list{display:grid;gap:0}.sample-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.7fr);gap:var(--s4);border-bottom:var(--rule) solid var(--border);padding-block:var(--s4)}.sample-row>div{min-width:0;display:grid;gap:var(--s1);align-content:start;overflow-wrap:anywhere}.sample-row small{color:var(--muted)}.sample-row button{background:none;border:0;padding:0;text-align:left;color:var(--carbon);font-weight:500;font-size:var(--text-body);min-height:44px;text-decoration:underline;text-decoration-color:var(--verdite);text-underline-offset:var(--s1);cursor:pointer;overflow-wrap:anywhere}.sample-label{display:block;margin-bottom:var(--s1);font-size:var(--text-sm);color:var(--muted)}.sample-details{margin:0;display:grid;gap:var(--s4)}.sample-details>div{border-bottom:var(--rule) solid var(--border);padding-bottom:var(--s3)}.sample-details dt{font-weight:500}.sample-details dd{margin:var(--s1) 0 0;overflow-wrap:anywhere}.sample-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.tree-box{display:grid;gap:var(--s3)}.tree-scroll{max-height:320px;overflow:auto;border:var(--rule) solid var(--border);padding:var(--s2);overscroll-behavior:contain}.tree-node{border:0;padding:0;margin:0}.tree-node>summary{display:flex;align-items:center;min-height:44px;gap:var(--s2);cursor:pointer;list-style:none}.tree-node>summary:before{content:'+';display:block;flex:none;width:var(--s4)}.tree-node[open]>summary:before{content:'−'}.tree-children{padding-left:var(--s4);border-left:var(--rule) solid var(--border);margin-left:var(--s2)}.tree-value{font-size:var(--text-sm);color:var(--muted)}.selection-chip{display:flex;align-items:center;gap:var(--s2);padding:var(--s2) 0;min-width:0}.selection-chip span{flex:1;display:block;overflow-wrap:anywhere}.selection-chip button{flex:none;border:var(--rule) solid var(--border);background:var(--surface);min-width:44px;min-height:44px;cursor:pointer}.mobile-filter-top,.mobile-filter-open{display:none}
.dialog{border:var(--rule) solid var(--control-rule);border-radius:var(--radius-panel);padding:0;max-width:min(calc(100vw - 32px),640px);width:100%;max-height:calc(100dvh - 32px);color:var(--carbon);background:var(--surface)}.dialog::backdrop{background:rgb(28 38 44 / 64%)}.dialog-content{padding:var(--s8);display:grid;gap:var(--s6)}.dialog-head{display:flex;align-items:start;justify-content:space-between;gap:var(--s4)}.dialog-head h2{font-size:var(--app-section)}.close-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;background:var(--surface);border:var(--rule) solid var(--border);border-radius:var(--radius-control);font:inherit;cursor:pointer}.dialog-footer{display:flex;flex-wrap:wrap;gap:var(--s3)}.review-warning{background:var(--selection);padding:var(--s4);display:grid;gap:var(--s2)}.receipt-code{font-family:var(--font-mono);overflow-wrap:anywhere}.app-footer{padding-block:var(--s8);border-top:var(--rule) solid var(--border)}.app-footer .od-cluster{--od-gap:var(--s6)}.app-footer span{font-size:var(--text-sm)}
.portal-tabs{display:flex;flex-wrap:wrap;gap:var(--s2);border-bottom:var(--rule) solid var(--border);margin-bottom:var(--s8);padding-bottom:var(--s3)}.portal-tabs a{display:flex;align-items:center;min-height:48px;padding:var(--s2) var(--s4);text-decoration:none}.portal-tabs a[aria-current=page]{background:var(--carbon);color:var(--surface);border-radius:var(--radius-control)}.portal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s12)}.portal-section{display:grid;gap:var(--s6)}.record-list{display:grid;gap:0}.record-row{display:flex;justify-content:space-between;gap:var(--s6);align-items:center;padding-block:var(--s6);border-bottom:var(--rule) solid var(--border)}.record-row>div{min-width:0;display:grid;gap:var(--s2)}.record-row h3{overflow-wrap:anywhere}.record-actions{display:flex;flex-wrap:wrap;gap:var(--s2)}.empty{padding-block:var(--s12);display:grid;gap:var(--s4);border-bottom:var(--rule) solid var(--border)}.profile-form{max-width:520px;display:grid;gap:var(--s6)}
.docs-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--s12);align-items:start}.docs-sidebar{position:sticky;top:var(--s24);display:grid;gap:var(--s4);max-height:calc(100dvh - 128px);overflow-y:auto;padding-right:var(--s2)}.docs-sidebar nav{display:grid;gap:var(--s1)}.docs-sidebar a{display:flex;align-items:center;min-height:44px;padding:var(--s2);text-decoration:none;line-height:1.5}.docs-sidebar a[aria-current=true]{background:var(--selection);font-weight:500}.docs-content{max-width:var(--reading-width);min-width:0;display:grid;gap:var(--s12)}.docs-section{display:grid;gap:var(--s6);scroll-margin-top:var(--s24);padding-bottom:var(--s8);border-bottom:var(--rule) solid var(--border)}.docs-section h2{font-size:var(--app-section);font-weight:500}.docs-section h3{font-size:var(--text-lead)}.docs-section li{margin-bottom:var(--s2)}.docs-section a{color:var(--carbon);text-decoration-color:var(--verdite);text-decoration-thickness:2px}.docs-section code{overflow-wrap:anywhere;font-family:var(--font-mono);font-size:var(--code-size)}.code-block{display:grid;gap:0;border-radius:var(--radius-control);background:var(--carbon);color:var(--surface);min-width:0}.code-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);border-bottom:var(--rule) solid var(--dark-surface)}.code-tabs{display:flex;flex-wrap:wrap;gap:var(--s2)}.code-tabs button,.copy-button{min-height:44px;padding:var(--s2) var(--s3);background:transparent;color:var(--surface);border:var(--rule) solid transparent;cursor:pointer;font:inherit;font-size:var(--text-sm)}.code-tabs button[aria-selected=true]{border-bottom-color:var(--lime)}.copy-button{border-color:var(--dark-muted);border-radius:var(--radius-control)}.code-block pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:0;padding:var(--s4);font:var(--code-size)/var(--code-line) var(--font-mono)}.code-block :focus-visible{outline-color:var(--lime)}.copy-feedback{padding:0 var(--s4) var(--s3);font-size:var(--text-sm);color:var(--lime)}.copy-feedback:empty{display:none}.docs-table{border-collapse:collapse;width:100%;font-size:var(--text-body)}.docs-table th,.docs-table td{text-align:left;vertical-align:top;padding:var(--s3);border-bottom:var(--rule) solid var(--border);overflow-wrap:anywhere}.docs-table th{font-weight:500}.endpoint-line{display:flex;align-items:flex-start;gap:var(--s3);min-width:0}.method{display:block;flex:none;color:var(--carbon);background:var(--lime);padding:var(--s1) var(--s2);font:500 var(--text-sm)/1.5 var(--font-body);border-radius:var(--radius-control)}.endpoint-line code{display:block;min-width:0;overflow-wrap:anywhere}.endpoint-note{display:block;font-size:var(--text-sm);color:var(--muted)}.api-endpoint{display:grid;gap:var(--s4);padding-bottom:var(--s8);border-bottom:var(--rule) solid var(--border);scroll-margin-top:var(--s24)}.api-endpoint:last-child{border-bottom:0}.parameter-index{display:grid;gap:var(--s3)}.parameter-index details{border-bottom:var(--rule) solid var(--border);padding-bottom:var(--s2)}.parameter-index summary{min-height:44px;cursor:pointer;overflow-wrap:anywhere}.parameter-body{display:grid;gap:var(--s2);padding:var(--s3);color:var(--muted)}.doc-search-results{display:grid;gap:var(--s2)}.doc-search-results a{display:block;min-height:44px;overflow-wrap:anywhere}.docs-mobile-contents{display:none}.docs-search{display:grid;gap:var(--s2)}
@media(max-width:1023px){.search-layout{--rail-width:280px;gap:var(--s6)}.docs-layout{grid-template-columns:200px minmax(0,1fr);gap:var(--s6)}.portal-grid{gap:var(--s6)}}
@media(max-width:767px){.app-head{display:grid;gap:var(--s4);margin-bottom:var(--s6)}.app-page{padding-block:var(--s8) var(--s12)}.search-layout{display:block}.filter-panel{display:none;border:0;padding:0;background:transparent}.result-pane{gap:var(--s6)}.mobile-filter-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.mobile-filter-open{display:inline-flex}.filter-mode .filter-panel{display:grid}.filter-mode .result-pane,.filter-mode .app-head{display:none}.filter-mode .filter-actions{position:sticky;bottom:0;padding:var(--s4) 0 calc(var(--s4) + var(--bottom-safe));border-top:var(--rule) solid var(--border);background:var(--paper);grid-template-columns:minmax(0,1fr) auto}.sample-row{grid-template-columns:minmax(0,1fr);gap:var(--s3);padding-block:var(--s6)}.sample-row>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s2)}.sample-row .sample-company{grid-template-columns:minmax(0,1fr)}.sample-row .sample-company .sample-label{display:none}.sample-label{margin:0}.sample-pagination{flex-wrap:wrap}.dialog-content{padding:var(--s6)}.dialog-footer{display:grid}.dialog-footer .app-button{width:100%}.record-row{align-items:start;flex-direction:column;gap:var(--s4)}.portal-grid{grid-template-columns:minmax(0,1fr)}.portal-tabs{gap:0}.portal-tabs a{padding-inline:var(--s3)}.docs-layout{display:block}.docs-sidebar{position:static;max-height:none;overflow:visible;padding:0;margin-bottom:var(--s8)}.docs-sidebar>nav{display:none}.docs-mobile-contents{display:block;border-block:var(--rule) solid var(--border);padding-block:var(--s3)}.docs-mobile-contents summary{min-height:44px;display:flex;align-items:center}.docs-mobile-contents nav{display:grid;gap:var(--s1)}.docs-content{gap:var(--s8)}.docs-section{scroll-margin-top:var(--s24)}.docs-table,.docs-table tbody,.docs-table tr,.docs-table td{display:block}.docs-table thead{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.docs-table tr{border-bottom:var(--rule) solid var(--border);padding-block:var(--s3)}.docs-table td{border:0;padding:var(--s2) 0}.docs-table td:before{content:attr(data-label);display:block;font-weight:500;margin-bottom:var(--s1)}.code-toolbar{padding-inline:var(--s2)}.code-block pre{padding:var(--s3)}.app-footer .od-cluster{--od-gap:var(--s4)}.app-head .app-button{width:fit-content}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.loading-indicator:after{width:100%;opacity:.7}}
/* new.css */
/* Innovadata additions on top of the developer's design files (base/app/selection/
   checkout/portal.css stay as delivered, so they can be diffed against later
   deliveries). Tokens only from tokens.css; no new colours here. */

/* Design-system sample page (/kit). */
.kit-section{padding-block:var(--s12);border-top:var(--rule) solid var(--border)}
.kit-section:first-of-type{border-top:0}
.kit-section>h2{margin-bottom:var(--s6)}
.kit-grid{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.kit-swatch{display:grid;gap:var(--s2)}
.kit-swatch span:first-child{display:block;height:72px;border-radius:var(--radius-panel);border:var(--rule) solid var(--border)}
.kit-swatch code{font-family:var(--font-mono);font-size:13px;color:var(--muted)}
.kit-row{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:center}
.kit-type>*+*{margin-top:var(--s4)}
.kit-type .display{font-family:var(--font-display);font-size:var(--text-display);line-height:1.12;letter-spacing:-.025em;font-weight:700}
.kit-type .page{font-family:var(--font-display);font-size:var(--text-number);line-height:1.12;letter-spacing:-.025em;font-weight:700}
.kit-type .lead{font-size:var(--text-lead);font-weight:500}
.kit-type .small{font-size:var(--text-sm);color:var(--muted)}
.kit-type .mono{font-family:var(--font-mono);font-size:13px}
.kit-logo{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.kit-logo div{padding:var(--s8);border-radius:var(--radius-panel);border:var(--rule) solid var(--border)}
.kit-logo div.on-dark{background:var(--carbon);border-color:var(--carbon)}
.kit-logo img{width:184px;height:auto;display:block}
.kit-form{display:grid;gap:var(--s6);max-width:560px}
.kit-loader{display:flex;gap:var(--s4);align-items:center}
@media(max-width:767px){.kit-type .display{font-size:40px}}

/* The delivered .data-table fixes four column widths (24/34/22/20 %), which
   squeezes any fifth column to one letter. Tables with another shape opt in. */
.data-table--auto{table-layout:auto}
.data-table--auto th:nth-child(n){width:auto}

/* .field>legend is bold in app.css; a legend inside .field>fieldset matches it. */
.field fieldset>legend{font-weight:500;padding:0;margin-bottom:var(--s2)}

/* ---------- Home (step 3) ---------- */
.hero-points{list-style:none;margin:0;padding:0;--od-gap:var(--s2) var(--s6)}
.hero-points li{display:inline-flex;align-items:center;gap:var(--s2);font-weight:500}
.hero-points svg{width:var(--s4);height:var(--s4);flex:none}
.panel-summary{--od-gap:var(--s1)}
.panel-summary strong{font-family:var(--font-display);font-size:var(--text-section);line-height:1.15;font-weight:700}
.panel-summary span{color:var(--muted);font-size:var(--text-sm)}
.panel-alt{border-top:var(--rule) solid var(--border);padding-top:var(--s4);color:var(--muted)}
.panel-alt a{color:var(--carbon);font-weight:500}

.country-grid{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:var(--s12)}
.country-card{position:relative;display:flex;flex-direction:column;gap:var(--s4);min-width:0;padding:var(--s6);background:var(--surface);border:var(--rule) solid var(--border);border-radius:var(--radius-panel)}
.country-card::after{content:"";position:absolute;bottom:0;left:0;width:var(--s3);height:var(--s3);background:var(--lime);clip-path:polygon(0 0,100% 100%,0 100%);border-bottom-left-radius:var(--radius-panel)}
.country-head{display:grid;gap:var(--s1)}
.country-head h3{font-size:var(--text-lead)}
.country-source{font-size:var(--text-sm);color:var(--muted)}
.country-count{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap}
.country-count [data-count]{font-family:var(--font-display);font-size:var(--text-number);line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums}
.country-count span:last-child{color:var(--muted)}
.country-cov{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin:0;padding-block:var(--s3);border-block:var(--rule) solid var(--border)}
.country-cov div{display:grid;gap:2px}
.country-cov dt{font-size:var(--text-sm);color:var(--muted)}
.country-cov dd{margin:0;font-weight:500;font-variant-numeric:tabular-nums}
.country-price{font-weight:500}
.country-card .app-button{width:100%}
.country-links{display:flex;flex-wrap:wrap;gap:0 var(--s6)}
.country-links .text-link{font-size:var(--text-sm)}
.country-fields{margin-top:auto}
.country-fields summary{font-size:var(--text-sm);font-weight:500;min-height:44px;display:flex;align-items:center}
.country-fields p{font-size:var(--text-sm);color:var(--muted)}
.countries-note{margin-top:var(--s6)}

.price-grid{display:grid;gap:var(--s6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:var(--s12)}
.price-group{display:grid;gap:var(--s2);padding-top:var(--s6);border-top:var(--rule) solid var(--control-rule)}
.price-group strong{font-family:var(--font-display);font-size:var(--text-number);line-height:1.1;font-weight:700}
.price-group span{color:var(--muted)}
.price-terms{display:grid;gap:var(--s6);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--s12)}
.price-terms div{display:grid;gap:var(--s2)}
.price-terms strong{font-weight:500}
.price-terms p{color:var(--muted)}
.section-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s4) var(--s6);margin-top:var(--s12)}

.monitor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s16);align-items:start}
.monitor-prices{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.monitor-prices li{display:flex;justify-content:space-between;gap:var(--s4);padding-block:var(--s2);border-bottom:var(--rule) solid var(--border)}
.monitor-prices li span:last-child{font-weight:500;font-variant-numeric:tabular-nums}
.monitor-example{position:relative;background:var(--surface);border:var(--rule) solid var(--border);border-radius:var(--radius-panel);padding:var(--s6);display:grid;gap:var(--s4)}
.monitor-example header{display:grid;gap:var(--s1)}
.monitor-example header span{font-size:var(--text-sm);color:var(--muted)}
.monitor-example ul{list-style:none;margin:0;padding:0;display:grid}
.monitor-example li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s3);align-items:baseline;padding-block:var(--s3);border-top:var(--rule) solid var(--border)}
.monitor-tag{font-size:13px;font-weight:500;padding:2px var(--s2);background:var(--lime);border-radius:var(--radius-control)}
.monitor-example footer{font-size:var(--text-sm);color:var(--muted)}

.example-request{margin-top:var(--s8);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) auto;gap:var(--s8);padding-top:var(--s8);border-top:var(--rule) solid var(--border)}
.example-request blockquote{margin:0;font-size:var(--text-lead);font-weight:500}
.example-request small{display:block;margin-top:var(--s2);color:var(--muted)}

@media(max-width:1023px){
  .price-terms{grid-template-columns:1fr}
  .monitor-grid{grid-template-columns:1fr;gap:var(--s8)}
  .example-request{grid-template-columns:1fr;gap:var(--s4)}
}
@media(max-width:479px){.country-card{padding:var(--s4)}.country-count [data-count]{font-size:var(--text-section)}}

/* Hero: the most readable version of the developer's hero. Lead in Carbon, a
   short measure, the panel hint as plain body text. */
.hero .hero-lead{color:var(--carbon);max-width:44ch;line-height:1.5}
.hero .purchase-hint{color:var(--carbon);min-height:1.5em}
.hero .purchase-assurance{color:var(--muted)}

/* Font trial (2026-10-05). Default headings stay Onest (owner). For comparison:
   ?font=dc   the supplied Data Corner A (special O, D and digits 0 6 8 9)
   ?font=dcd  Markus's variant: Data Corner with Onest's D and d, O and digits kept.
   See /font-test. */
@font-face{font-family:DataCorner;src:url('../fonts/datacorner-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:DataCornerD;src:url('../fonts/datacorner-d-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
html[data-font="dc"]{--font-display:DataCorner,Plex,system-ui,sans-serif}
html[data-font="dcd"]{--font-display:DataCornerD,Plex,system-ui,sans-serif}
.font-test{display:grid;gap:var(--s12)}
.font-test section{display:grid;gap:var(--s4);padding-top:var(--s8);border-top:var(--rule) solid var(--border)}
.font-test .ft-label{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s6);align-items:baseline}
.font-test .ft-label strong{font-size:var(--text-lead);font-weight:500}
.font-test .ft-h1{font-size:var(--text-display);line-height:1.12;letter-spacing:-.025em;font-weight:700}
.font-test .ft-sub{font-size:var(--text-number);line-height:1.15;letter-spacing:-.02em;font-weight:700}
@media(max-width:767px){.font-test .ft-h1{font-size:40px}.font-test .ft-sub{font-size:28px}}

/* Phone: the country panel (the primary action) right after the lead, the help
   line after it; on a phone the panel used to start below the first screen. */
@media(max-width:767px){
  .hero .hero-copy{display:contents}
  .hero #hero-title{order:1}
  .hero .hero-lead{order:2}
  .hero .purchase-panel{order:3}
  .hero .hero-support{order:4}
}
.hero .panel-sample{font-size:var(--text-sm)}
/* marketing.css */
/* Marketing pages use the existing brand tokens and type scale. */
.hero-emphasis{text-decoration:underline;text-decoration-color:var(--verdite);text-decoration-thickness:3px;text-underline-offset:.12em;text-decoration-skip-ink:none}
.purchase-minimum{font-size:var(--text-sm);margin:0}
.sample-sheet{margin:var(--s8) 0 0;border:var(--rule) solid var(--border);border-radius:var(--radius-panel);background:var(--surface);overflow:hidden}
.table-scroll{overflow-x:auto}
.sample-sheet table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--text-sm)}
.sample-sheet th{background:var(--selection);font-weight:500;white-space:nowrap}
.sample-sheet th,.sample-sheet td{padding:var(--s4);border-bottom:var(--rule) solid var(--border)}
.sample-sheet td:first-child{font-weight:500;min-width:180px}
.sample-sheet td:nth-child(2){font-family:var(--font-mono)}
.sample-sheet figcaption{padding:var(--s4);color:var(--muted);font-size:var(--text-sm);max-width:90ch}
.market-selector{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s8)}
.market-button{border:var(--rule) solid var(--border);background:var(--surface);color:var(--carbon);border-radius:var(--radius-control);padding:var(--s2) var(--s4);min-height:48px;font:inherit;cursor:pointer}
.market-button[aria-pressed=true]{background:var(--lime);border-color:var(--carbon);font-weight:500}
.market-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s12);margin-top:var(--s6);align-items:start}
.market-layout .country-grid{margin:0;grid-template-columns:1fr}
.country-card[hidden]{display:none}
.market-explanation{padding-top:var(--s6);--od-gap:var(--s6)}
.coverage-markets{padding-bottom:var(--s12)}
.coverage-markets .country-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:var(--s6)}
.profile-note{margin-top:var(--s6);font-size:var(--text-sm)}
.guide-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s6);margin-block:var(--s8)}
.guide-card{display:grid;align-content:start;gap:var(--s4);padding:var(--s6);border-top:var(--rule) solid var(--control-rule)}
.guide-card h3{font-size:var(--text-lead);line-height:1.3}
.guide-card p{color:var(--muted)}
.editorial{max-width:760px;margin-inline:auto;padding-block:var(--s12) var(--s16)}
.editorial h1{font-family:var(--font-display);font-size:var(--text-page);line-height:1.16;letter-spacing:-.025em;margin-block:var(--s6)}
.editorial h2{font-family:var(--font-display);font-size:var(--text-section);line-height:1.25;margin-block:var(--s8) var(--s4)}
.editorial p{line-height:1.65;margin-block:var(--s4)}
.editorial ul,.editorial ol{padding-left:var(--s6);line-height:1.65}
.editorial li+li{margin-top:var(--s2)}
.editorial a{text-decoration:underline;text-underline-offset:3px}
.editorial .app-button{text-decoration:none;margin-top:var(--s4)}
.editorial-meta{color:var(--muted);font-size:var(--text-sm)}
.article-sources{border-top:var(--rule) solid var(--border);margin-top:var(--s8);padding-top:var(--s4)}
.article-toc{padding:var(--s4) var(--s6);background:var(--selection);border-radius:var(--radius-panel);margin-block:var(--s8)}
.article-toc ol{margin:var(--s2) 0 0}
.legal-document .article-toc{display:grid;gap:var(--s2)}
.legal-document h2{scroll-margin-top:110px}
.editorial pre{overflow-x:auto;padding:var(--s4);background:var(--selection);border-radius:var(--radius-control);font-size:var(--text-sm)}
.article-cta{margin-top:var(--s8);padding:var(--s6);border:var(--rule) solid var(--border);border-radius:var(--radius-panel)}
.demo-checkout{max-width:720px}
.demo-checkout .purchase-panel{margin-top:var(--s8)}
.demo-checkout .price-terms{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
@media(max-width:767px){
 .market-layout{grid-template-columns:1fr;gap:var(--s6)}
 .market-explanation{padding-top:0}
 .editorial{padding-block:var(--s8) var(--s12)}
 .sample-sheet th,.sample-sheet td{padding:var(--s3)}
 .hero .purchase-button{white-space:normal}
}

/* Editorial archive: a publication has its own page width and hierarchy. */
.blog-index{padding-block:var(--s12) var(--s16)}
.blog-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s6);padding-bottom:var(--s8);border-bottom:var(--rule) solid var(--carbon);margin-bottom:var(--s8)}
.blog-heading h1{font:700 var(--text-display)/1.1 var(--font-display);letter-spacing:var(--tracking-display);margin:0}
.blog-heading p{color:var(--muted);max-width:42ch;margin:0}
.guide-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s8);margin-block:var(--s6) 0}
.guide-card{display:flex;flex-direction:column;gap:var(--s4);padding:var(--s6) 0;border-top:var(--rule) solid var(--border);min-width:0}
.guide-card h3,.guide-card h2{font-family:var(--font-display);font-weight:700;line-height:1.3;letter-spacing:-.015em;margin:0;overflow-wrap:anywhere}
.guide-card h3{font-size:var(--text-lead)}
.guide-card h3 a,.guide-card h2 a{text-decoration:none;color:var(--carbon)}
.guide-card p{margin:0;line-height:1.6;font-size:var(--text-body)}
.post-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:var(--text-sm);color:var(--muted)}
.post-meta>span{font-weight:500;color:var(--carbon)}
.post-card-footer{margin-top:auto;padding-top:var(--s4);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:var(--text-sm)}
.post-card-footer>span{color:var(--muted)}
.post-card-footer .text-link{font-size:var(--text-sm);min-height:32px;text-decoration:none}
.blog-archive{margin-top:var(--s12)}
.blog-archive>h2{font-size:var(--text-lead);font-weight:500;margin:0}
.blog-section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s6)}
.blog-section-head>.text-link{flex:none}
.editorial-post{max-width:1120px}
.editorial-post>h1{max-width:26ch;font-size:clamp(30px,3.2vw,46px);text-wrap:balance}
.article-layout{display:grid;grid-template-columns:minmax(0,720px) minmax(0,260px);gap:var(--s16);align-items:start;margin-top:var(--s8)}
.article-body{min-width:0}
.article-body blockquote{margin:var(--s6) 0;padding:var(--s4) var(--s6);border-left:3px solid var(--verdite);background:var(--selection);line-height:1.65;overflow-wrap:anywhere}
.article-body code{overflow-wrap:anywhere;font-size:.9em}
.article-body>.article-lead{font-size:var(--text-lead);margin-top:0;color:var(--carbon)}
.article-body h2{font-size:var(--text-section);scroll-margin-top:110px}
.article-sidebar{position:sticky;top:110px}
.article-sidebar .article-toc{background:none;border-left:var(--rule) solid var(--border);border-radius:0;padding:0 0 0 var(--s6);margin:0;font-size:var(--text-sm)}
.article-sidebar .article-toc ol{padding-left:var(--s4);margin:0}
.article-sidebar .article-toc a{text-decoration:none;color:var(--muted)}
.article-sidebar .article-toc li+li{margin-top:var(--s4)}
.author-profile{max-width:1120px}
.editorial .guide-card h3{margin:0}
.editorial .guide-card p{margin:0}
@media(hover:hover){.guide-card h3 a:hover,.guide-card h2 a:hover,.article-toc a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}}
@media(max-width:1023px){
 .guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .article-layout{grid-template-columns:minmax(0,1fr);gap:var(--s8)}
 .article-sidebar{position:static;grid-row:1}
 .article-sidebar .article-toc{padding:var(--s4) var(--s6);border:var(--rule) solid var(--border)}
}
@media(max-width:767px){
 .blog-index{padding-block:var(--s8) var(--s12)}
 .blog-heading{display:block;padding-bottom:var(--s6);margin-bottom:var(--s6)}
 .blog-heading p{margin-top:var(--s3)}
 .guide-grid{grid-template-columns:1fr;gap:var(--s2)}
 .blog-section-head{align-items:start;flex-direction:column;gap:var(--s2)}
 .article-layout{margin-top:var(--s6)}
 .editorial-post>h1{max-width:none}
}

/* Live headline and introduction, followed by the two ways to start. */
.hero-live{padding-block:var(--s12)}
.hero-live .hero-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s8)}
.hero-live .hero-copy{grid-column:1/-1;max-width:1080px;--od-gap:var(--s4)}
.hero-live h1{font-size:clamp(32px,3.4vw,48px);max-width:30ch;text-wrap:balance}
.hero-live .hero-lead{max-width:88ch;font-size:var(--text-body);line-height:1.6}
.hero-live .purchase-panel{padding:var(--s6);--od-gap:var(--s4)}
.hero-live .purchase-row{flex-direction:row;align-items:stretch;gap:var(--s3)}
.hero-live .select-wrap{flex:1}
.hero-live .purchase-button{width:auto;flex:1;white-space:normal}
.hero-live .purchase-hint{font-size:var(--text-sm)}
.hero-live .buy-controls{--od-gap:var(--s2)}
.hero-portal{display:flex;flex-direction:column;align-items:start;gap:var(--s4);padding:var(--s6);border:var(--rule) solid var(--border);border-radius:var(--radius-control);background:var(--selection)}
.hero-portal h2{font-size:var(--text-section);line-height:1.25}
.hero-portal p{max-width:54ch}
.hero-portal>.text-link{font-size:var(--text-sm);margin-top:auto}
.portal-section{background:var(--surface);border-block:var(--rule) solid var(--border)}
.portal-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s16);align-items:start}
.portal-pitch-copy{--od-gap:var(--s6)}
.portal-pitch-copy h2{font-size:var(--text-page);line-height:1.15;max-width:22ch}
.portal-pitch-copy>.app-button{align-self:start}
.portal-pitch-copy .portal-terms,.portal-pitch-copy .portal-language{font-size:var(--text-sm);color:var(--muted)}
.portal-pitch-copy .portal-language{margin-top:calc(-1 * var(--s3))}
.portal-capabilities{margin:0;display:grid;gap:var(--s6)}
.portal-capabilities>div{border-top:var(--rule) solid var(--border);padding-top:var(--s4)}
.portal-capabilities dt{font-size:var(--text-lead);font-weight:500;margin-bottom:var(--s2)}
.portal-capabilities dd{margin:0;color:var(--muted);line-height:1.6}
/* Remove doubled chapter gaps; use the same 64/48 px rhythm throughout. */
#main>.section{--section-space:var(--s16)}

.market-explanation{padding-top:0;--od-gap:var(--s4)}
.coverage-markets>.market-explanation{margin-top:var(--s8);max-width:70ch}
@media(max-width:767px){
 .hero-live{padding-block:var(--s8)}
 .hero-live .hero-grid{grid-template-columns:1fr;gap:var(--s6)}
 .hero-live .hero-copy{display:flex;grid-column:auto}
 .hero-live .purchase-panel{order:1}
 .hero-live .hero-portal{order:2}
 .hero-live .hero-lead{font-size:var(--text-body)}
 .hero-live .purchase-row{flex-direction:column}
 .portal-overview{grid-template-columns:1fr;gap:var(--s8)}
 .portal-pitch-copy h2{font-size:var(--text-section);max-width:none}
 #main>.section{--section-space:var(--s12)}
}

/* The sample is the product: a real workbook with a small field browser. */
.data-section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--s8);margin-bottom:var(--s6)}
.data-section-heading h2{font-size:var(--text-page);line-height:1.15;max-width:26ch}
.data-section-heading p{max-width:60ch;margin-top:var(--s4);color:var(--muted)}
.data-section-heading>.app-button{flex:none}
.data-preview{border:var(--rule) solid var(--border);border-radius:var(--radius-panel);background:var(--surface);overflow:hidden}
.data-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding:var(--s4) var(--s6);border-bottom:var(--rule) solid var(--border)}
.data-country{display:flex;align-items:center;gap:var(--s3)}
.data-country label{font-size:14px;font-weight:500}
.data-country select{font:inherit;min-height:44px;padding:var(--s2) var(--s8) var(--s2) var(--s3);border:var(--rule) solid var(--control-rule);border-radius:var(--radius-control);background:var(--surface);color:var(--carbon)}
#sample-filename{font:13px var(--font-mono);color:var(--muted);overflow-wrap:anywhere}
.data-tabs{display:flex;gap:var(--s6);padding-inline:var(--s6);border-bottom:var(--rule) solid var(--border);overflow-x:auto}
.data-tabs button{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;min-height:48px;padding:var(--s2) 0;font:500 14px var(--font-body);color:var(--muted);white-space:nowrap;cursor:pointer}
.data-tabs button[aria-selected=true]{color:var(--carbon);border-bottom-color:var(--carbon)}
.data-tabs button:disabled{opacity:.4;cursor:default}
.data-notes{padding:var(--s4) var(--s6);font-size:14px;line-height:1.5;color:var(--muted);min-height:74px;background:var(--selection)}
.data-notes p{max-width:90ch;margin:0}
.data-scroll{overflow-x:auto;max-width:100%}
.data-scroll table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45;table-layout:fixed;min-width:880px}
.data-scroll th,.data-scroll td{padding:var(--s4);border-bottom:var(--rule) solid var(--border);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.data-scroll thead th{font-weight:500;background:var(--selection)}
.data-scroll thead small{display:block;font:11px/1.5 var(--font-mono);color:var(--muted);margin-top:var(--s1)}
.data-scroll th.row-number{width:44px;padding-inline:var(--s2);font-size:12px;text-align:center;font-weight:400;color:var(--muted);background:var(--selection)}
.data-scroll td:nth-child(2){font-weight:500}
.data-scroll tbody tr:last-child>*{border-bottom:0}
.sample-empty{color:var(--muted)}
.sample-file-footer{display:flex;justify-content:space-between;gap:var(--s4);padding:var(--s3) var(--s6);border-top:var(--rule) solid var(--border);font-size:12px;color:var(--muted)}
.sample-schema{border-top:var(--rule) solid var(--border);padding:var(--s3) var(--s6);font-size:14px}
.sample-schema summary{cursor:pointer;min-height:24px}
.sample-schema>div{display:flex;gap:var(--s2);flex-wrap:wrap;padding-top:var(--s4)}
.sample-schema code{font-size:12px;overflow-wrap:anywhere;background:var(--selection);padding:var(--s1) var(--s2)}
.sample-disclosure{font-size:13px;line-height:1.6;color:var(--muted);max-width:100ch;margin-top:var(--s4)}
.portal-heading{display:grid;grid-template-columns:1fr 1fr;gap:var(--s12);align-items:end;margin-bottom:var(--s8)}
.portal-heading h2{font-size:var(--text-page);line-height:1.15;max-width:22ch}
.portal-heading p{color:var(--muted);line-height:1.6;max-width:60ch}
.portal-product{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:var(--s8);align-items:start}
.portal-screen{margin:0;min-width:0}
.portal-screen img{display:block;width:100%;height:auto;border:var(--rule) solid var(--border);border-radius:var(--radius-control)}
.portal-screen figcaption{font-size:12px;color:var(--muted);line-height:1.5;margin-top:var(--s3)}
.portal-product .portal-capabilities{gap:var(--s4)}
.portal-product .portal-capabilities>div{padding-top:var(--s3)}
.portal-product .portal-capabilities dt{font-size:16px}
.portal-product .portal-capabilities dd{font-size:14px;line-height:1.5}
.portal-register{display:flex;justify-content:space-between;align-items:center;gap:var(--s8);margin-top:var(--s8);padding:var(--s6);background:var(--selection);border-left:4px solid var(--lime)}
.portal-register h3{font-size:var(--text-lead);line-height:1.3}
.portal-register p{margin-top:var(--s2);max-width:70ch;font-size:14px;color:var(--muted)}
.portal-register .app-button{flex:none}
.integration-explain{display:grid;grid-template-columns:1fr 1fr;gap:var(--s12)}
.integration-explain article{min-width:0;display:flex;flex-direction:column;align-items:start;gap:var(--s4)}
.integration-path{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);width:100%;padding:var(--s8) var(--s4);border-block:var(--rule) solid var(--border);font-size:14px}
.integration-path strong{background:var(--selection);padding:var(--s3);font-weight:500;white-space:nowrap}
.integration-explain h3{font-size:var(--text-lead)}
.integration-explain p{color:var(--muted);line-height:1.65;max-width:58ch}
.integration-explain .text-link{margin-top:auto}
.integration-terms{margin-top:var(--s8);font-size:13px;line-height:1.6;color:var(--muted);max-width:100ch}
@media(max-width:900px){
 .data-section-heading,.portal-register{align-items:start;flex-direction:column;gap:var(--s4)}
 .portal-heading,.portal-product{grid-template-columns:1fr;gap:var(--s6)}
 .portal-product .portal-capabilities{grid-template-columns:1fr 1fr;gap:var(--s6)}
 .data-section-heading h2,.portal-heading h2{font-size:var(--text-section)}
}
@media(max-width:600px){
 .data-toolbar{align-items:start;flex-direction:column;padding:var(--s4)}
 .data-tabs{padding-inline:var(--s4);gap:var(--s4)}
 .data-notes,.sample-file-footer,.sample-schema{padding-inline:var(--s4)}
 .data-scroll table{min-width:760px}
 .integration-explain,.portal-product .portal-capabilities{grid-template-columns:1fr;gap:var(--s6)}
 .integration-path{gap:var(--s2);font-size:12px;padding-inline:0}
 .portal-register{padding:var(--s4)}
}

/* Publication layout: one lead story, then a chronological reading list. */
.post-summary{display:flex;flex-direction:column;gap:var(--s4);height:100%;min-width:0}
.post-summary h2,.post-summary h3{margin:0}
.post-summary>p{margin:0}
.post-summary .post-card-footer{margin-top:auto;padding-top:var(--s4)}
.blog-heading{padding-bottom:var(--s6);margin-bottom:var(--s8)}
.blog-heading h1{font-size:clamp(48px,6vw,80px);letter-spacing:-.04em}
/* The lead is an article, with its title and synopsis carrying the hierarchy. */
.blog-featured { display:block; padding:0 0 var(--s8); border:0; border-bottom:var(--rule) solid var(--carbon); }
.blog-featured .post-summary { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:var(--s4) var(--s12); height:auto; align-items:start; }
.blog-featured .post-meta { grid-column:1/-1; }
.blog-featured h2 { grid-column:1; grid-row:2/4; font-size:clamp(30px,3.5vw,48px); line-height:1.12; max-width:27ch; text-wrap:balance; }
.blog-featured .post-summary>p { grid-column:2; grid-row:2; font-size:18px; line-height:1.65; max-width:50ch; }
.blog-featured .post-card-footer { grid-column:2; grid-row:3; padding-top:var(--s3); justify-content:flex-start; gap:var(--s6); }
@media(max-width:767px) {
 .blog-featured { padding-bottom:var(--s8); }
 .blog-featured .post-summary { display:flex; gap:var(--s4); }
 .blog-featured h2 { max-width:none; font-size:30px; }
 .blog-featured .post-summary>p { font-size:16px; }
}
.blog-archive>.guide-grid{display:block;margin-top:0}
.blog-archive .guide-card{padding-block:var(--s6);border-top:0;border-bottom:var(--rule) solid var(--border)}
.blog-archive .post-summary{display:grid;grid-template-columns:180px minmax(0,1fr) 190px;gap:var(--s3) var(--s8);align-items:start}
.blog-archive .post-meta{grid-column:1;grid-row:1/3;display:flex;flex-direction:column;align-items:start;gap:var(--s2)}
.blog-archive h3{grid-column:2;grid-row:1;font-size:24px;line-height:1.25;max-width:40ch}
.blog-archive .post-summary>p{grid-column:2;grid-row:2;max-width:70ch;font-size:14px}
.blog-archive .post-card-footer{grid-column:3;grid-row:1/3;display:flex;flex-direction:column;align-items:start;gap:var(--s4);margin:0;padding:0}
@media(max-width:900px){
 .blog-archive .post-summary{grid-template-columns:120px minmax(0,1fr);gap:var(--s3) var(--s6)}
 .blog-archive .post-card-footer{grid-column:2;grid-row:3;flex-direction:row;justify-content:space-between}
}
@media(max-width:600px){
 .blog-archive .post-summary{display:flex;gap:var(--s3)}
 .blog-archive .post-meta{flex-direction:row;justify-content:space-between;width:100%}
 .blog-archive h3{font-size:22px}
 .blog-archive .post-card-footer{padding-top:var(--s2)}
}

/* Contact: one reading column for inputs, with help and direct email alongside. */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,96px); align-items:start; }
.contact-intro h1 { margin:0; font-size:clamp(32px,4vw,54px); line-height:1.1; }
.contact-intro > p { max-width:42ch; }
.contact-company { margin-top:32px; font-size:14px; }
.contact-company h2 { font-size:18px; }
.contact-company address { font-style:normal; }
.contact-form { min-width:0; display:grid; gap:20px; }
.contact-demo { font-size:13px; line-height:1.6; background:var(--surface,#f4f5f1); padding:16px; margin:0; border-left:2px solid var(--ink,#181c18); }
.contact-field { display:grid; gap:7px; }
.contact-field label { font-size:14px; font-weight:600; }
.contact-field input,.contact-field textarea { width:100%; box-sizing:border-box; border:1px solid #aeb3ac; border-radius:5px; background:#fff; color:#151915; padding:12px; font:inherit; }
.contact-field textarea { resize:vertical; min-height:140px; }
.contact-field input:focus,.contact-field textarea:focus { outline:2px solid #232b24; outline-offset:2px; }
.contact-field small,.contact-privacy { font-size:13px; color:#586057; }
.contact-privacy { margin:0; }
.contact-form > button { justify-self:start; }
.contact-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-form altcha-widget { max-width:100%; --altcha-max-width:100%; }
@media(max-width:760px) { .contact-layout { grid-template-columns:1fr; } .contact-company { margin-top:8px; } }

/* API examples connect a job to an inspectable request and its cost. */
.integration-page { padding-top:64px; padding-bottom:80px; }
.api-page-head { max-width:850px; margin-bottom:72px; }
.api-page-head h1 { font-size:clamp(36px,4.4vw,62px); line-height:1.08; margin:0 0 24px; letter-spacing:-.035em; }
.api-page-head > p { max-width:65ch; font-size:18px; line-height:1.65; }
.integration-page h2 { font-size:clamp(26px,3vw,36px); line-height:1.2; }
.api-example { display:grid; grid-template-columns: .9fr 1.1fr; gap:40px; border-top:1px solid #d8ddd5; padding:32px 0; align-items:center; }
.api-example-copy h3 { font-size:24px; line-height:1.2; margin:10px 0 12px; }
.api-example-copy p { color:#515a51; line-height:1.7; margin:0; max-width:48ch; }
.api-cost { font-size:12px; font-weight:600; }
.api-code { min-width:0; background:#19251d; color:#eef4ed; border-radius:6px; overflow:hidden; }
.api-code-head { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid #3c493e; font-size:12px; gap:12px; }
.api-code-head button { border:1px solid #778777; border-radius:4px; padding:6px 10px; background:transparent; color:inherit; cursor:pointer; font:inherit; }
.api-code pre { margin:0; padding:22px 16px; overflow:auto; font-size:12px; line-height:1.9; }
.api-code code { font-family:ui-monospace,monospace; }
.api-example-note { max-width:85ch; color:#586057; font-size:14px; line-height:1.7; }
.api-assistant,.api-start { display:grid; grid-template-columns:1fr 1fr; gap:48px; border-top:1px solid #d8ddd5; padding-top:40px; margin-top:56px; }
.api-assistant p,.api-start p { line-height:1.7; }
.api-prompt { background:#eef2e9; padding:28px; align-self:center; border-radius:6px; min-width:0; }
.api-prompt blockquote { margin:0; font-size:19px; line-height:1.6; }
.api-prompt code { font-size:12px; overflow-wrap:anywhere; }
.api-start-links { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:20px; }
@media(max-width:760px) { .integration-page { padding-top:36px; } .api-page-head { margin-bottom:40px; } .api-example,.api-assistant,.api-start { grid-template-columns:1fr; gap:24px; } .api-example-copy h3 { font-size:22px; } }

/* Keep the buying decision alongside the headline, with a quieter account entry. */
.hero-live .hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(340px,.85fr);grid-template-areas:"copy purchase" "copy account";gap:var(--s6) var(--s16);align-items:start}
.hero-live .hero-copy{grid-area:copy;display:flex;max-width:none;padding-top:var(--s2);--od-gap:var(--s6)}
.hero-live h1{font-size:clamp(34px,3.6vw,52px);max-width:24ch;text-wrap:pretty;line-height:1.12}
.hero-live .hero-lead{max-width:56ch;line-height:1.65;color:var(--muted)}
.hero-live .purchase-panel{grid-area:purchase;margin:0}
.hero-live .purchase-panel h2{font-size:24px}
.hero-live .purchase-row{flex-direction:column}
.hero-live .purchase-button{flex:auto}
.hero-markets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);margin-bottom:var(--s2)}
.hero-markets button{min-width:0;min-height:44px;padding:var(--s2);border:var(--rule) solid var(--control-rule);border-radius:var(--radius-control);background:var(--surface);color:var(--carbon);font:500 14px/1.35 var(--font-body);cursor:pointer;overflow-wrap:anywhere}
.hero-markets button[aria-pressed=true]{background:var(--lime);border-color:var(--carbon)}
.hero-markets button:hover{border-color:var(--carbon)}
.hero-markets button:focus-visible{outline:3px solid var(--verdite);outline-offset:2px}
.hero-markets button:disabled{opacity:.5;cursor:default}
@media(max-width:359px){.hero-markets{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hero-live .hero-portal{grid-area:account;border:0;border-radius:0;background:none;padding:0 var(--s6);gap:var(--s3)}
.hero-portal h2{font-size:18px;line-height:1.4}
.hero-portal p{font-size:14px;color:var(--muted)}
/* Real sample records, with readable fields instead of a shrunken spreadsheet. */
.data-section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:var(--s12);padding-top:var(--s8);border-top:var(--rule) solid var(--carbon)}
.data-section-heading h2{font-size:clamp(28px,3vw,42px);max-width:20ch;letter-spacing:-.025em}
.data-section-heading p{margin:0;max-width:55ch}
.data-preview{border-radius:var(--radius-panel);overflow:clip}
.data-toolbar{padding:var(--s4) var(--s6)}
.sample-download{display:flex;align-items:center;gap:var(--s6);min-width:0}
.sample-download .app-button{font-size:14px;min-height:44px;padding:var(--s2) var(--s4)}
.data-tabs{gap:var(--s6);overflow:visible;flex-wrap:wrap}
.data-notes{min-height:0;background:none;padding-block:var(--s3);border-bottom:var(--rule) solid var(--border)}
.sample-browser{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.7fr);min-height:340px}
.sample-roster{padding:var(--s4);border-right:var(--rule) solid var(--border);background:var(--paper);min-width:0}
.sample-roster>p{font-size:12px;color:var(--muted);padding:var(--s2);margin-bottom:var(--s3)}
.sample-roster button{display:grid;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:var(--s2);width:100%;min-height:56px;padding:var(--s3);border:1px solid transparent;border-radius:var(--radius-control);background:none;color:var(--carbon);text-align:left;font:500 14px/1.45 var(--font-body);cursor:pointer;overflow-wrap:anywhere}
.sample-roster button+button{margin-top:var(--s1)}
.sample-roster button[aria-pressed=true]{background:var(--surface);border-color:var(--border);box-shadow:inset 3px 0 var(--lime)}
.record-number{font:12px var(--font-mono);color:var(--muted)}
.record-arrow{visibility:hidden}
[aria-pressed=true]>.record-arrow{visibility:visible}
.sample-records{min-width:0;padding:var(--s8)}
.sample-record h3{font:600 24px/1.3 var(--font-display);overflow-wrap:anywhere;margin:0 0 var(--s6)}
.sample-record dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6) var(--s8)}
.sample-record dl>div{min-width:0}
.sample-record dt{font-size:13px;color:var(--muted);margin-bottom:var(--s2)}
.sample-record dt small{display:block;font:10px/1.5 var(--font-mono);overflow-wrap:anywhere}
.sample-record dd{font-size:16px;line-height:1.5;margin:0;overflow-wrap:anywhere}
.portal-capabilities .text-link{font-size:14px;margin-top:var(--s2)}
@media(max-width:1100px){.hero-live .hero-grid{gap:var(--s6) var(--s8)}.sample-download #sample-filename{display:none}}
@media(max-width:850px){
 .hero-live .hero-grid{grid-template-columns:1fr;grid-template-areas:"copy" "purchase" "account"}
 .hero-live h1{max-width:30ch;font-size:clamp(32px,5.2vw,44px)}
 .hero-live .hero-lead{max-width:70ch}
 .hero-live .purchase-row{flex-direction:row}
 .hero-live .hero-portal{padding:var(--s4) 0 0;border-top:var(--rule) solid var(--border)}
 .data-section-heading{grid-template-columns:1fr;gap:var(--s4)}
 .sample-browser{grid-template-columns:minmax(180px,.8fr) minmax(0,1.4fr)}
 .sample-records{padding:var(--s6)}
 .sample-record dl{grid-template-columns:1fr;gap:var(--s4)}
}
@media(max-width:600px){
 .hero-live .purchase-row{flex-direction:column}
 .hero-live .hero-copy{padding:0}
 .hero-live .purchase-panel{padding:var(--s4)}
 .data-toolbar{gap:var(--s3);padding:var(--s4);flex-direction:row;flex-wrap:wrap;align-items:center}
 .data-country{flex:1;flex-wrap:wrap;gap:var(--s2)}
 .data-country select{min-width:0;max-width:100%}
 .data-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s4)}
 .data-tabs button{white-space:normal;text-align:left}
 .sample-browser{grid-template-columns:1fr;min-height:0}
 .sample-roster{border-right:0;border-bottom:var(--rule) solid var(--border);padding:var(--s3);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}
 .sample-roster>p{grid-column:1/-1;margin:0;padding:0 var(--s2)}
 .sample-roster button{grid-template-columns:1fr;font-size:12px;padding:var(--s2);align-content:center}
 .sample-roster button+button{margin:0}
 .sample-roster .record-number,.sample-roster .record-arrow{display:none}
 .sample-records{padding:var(--s6) var(--s4)}
 .sample-record h3{font-size:20px;margin-bottom:var(--s4)}
 .sample-file-footer{line-height:1.5}
}
/* One portal offer: benefit and terms together, with actions in the same frame. */
.hero-live .hero-grid{grid-template-areas:"copy purchase" "account account"}
.hero-live .hero-portal{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s8);align-items:center;padding:var(--s6);margin-top:var(--s2);border:var(--rule) solid var(--border);border-radius:var(--radius-panel);background:var(--selection)}
.hero-portal-copy{display:grid;gap:var(--s2);min-width:0}
.hero-portal-copy h2{font-size:20px;line-height:1.35}
.hero-portal-copy p{margin:0;max-width:92ch;font-size:14px;line-height:1.6}
.hero-portal-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--s2);min-width:200px}
.hero-portal-actions .app-button{white-space:normal}
.hero-portal-actions .text-link{align-self:center;font-size:14px;min-height:44px;margin:0}
@media(max-width:850px){.hero-live .hero-grid{grid-template-areas:"copy" "purchase" "account"}}
@media(max-width:600px){
 .hero-live .hero-portal{grid-template-columns:minmax(0,1fr);gap:var(--s4);padding:var(--s4)}
 .hero-portal-copy h2{font-size:18px}
 .hero-portal-actions{min-width:0;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4)}
 .hero-portal-actions .text-link{align-self:auto}
}
@media(max-width:374px){.hero-portal-actions{align-items:stretch;flex-direction:column}.hero-portal-actions .text-link{align-self:center}}
.hero-live .hero-copy{min-width:0}
.hero-live h1{overflow-wrap:anywhere;hyphens:auto}
/* English and Estonian hero lines fit at 320 px without breaking words ("compa-nies"). */
.hero-live h1:is(:lang(en),:lang(et)){hyphens:manual;overflow-wrap:normal}
@media(max-width:850px){.hero-live .hero-grid{grid-template-columns:minmax(0,1fr)}}
/* /coverage: the country database pages, as a plain list outside the cards. */
.country-pages h2{font-size:var(--text-section);margin-bottom:var(--s4)}
.country-pages__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s2) var(--s6)}
.country-pages__list a{display:inline-flex;align-items:center;min-height:44px;color:var(--carbon)}
