/* conversationware — generated by tools/generate-tokens.mjs from
   clients/conversationware/contract.tokens.json. DO NOT EDIT: change the contract
   and regenerate. `node tools/generate-tokens.mjs conversationware --check` fails
   when this file and the contract disagree. */

:root {
  /* Brand palette: private. Only the roles below may use these. */
  --_green:                 #51D09B;
  --_green-hover:           #28CA86;
  --_blue:                  #34AFE1;
  --_blue-deep:             #11799F;
  --_ink:                   #343434;
  --_slate:                 #464646;
  --_grey:                  #666666;
  --_grey-line:             #8A8A8A;
  --_rule:                  #E0E0E0;
  --_hairline:              #EEEEEE;
  --_mist:                  #F6F9FB;
  --_ice:                   #EAF7FF;
  --_sky-pale:              #E3EFF8;
  --_white:                 #FFFFFF;

  /* fg */
  --fg-strong:              var(--_ink);
  --fg-medium:              var(--_slate);
  --fg-secondary:           var(--_slate);
  --fg-muted:               var(--_grey);
  --fg-on-dark:             var(--_white);
  --fg-on-dark-soft:        var(--_ice);
  --fg-eyebrow:             var(--_ink);
  --fg-link:                var(--_blue-deep);
  --fg-link-on-dark:        var(--_white);
  --fg-on-badge:            var(--_ink);
  --fg-link-hover:          var(--_ink);
  --fg-caption:             var(--_grey);
  --fg-cite:                var(--_grey);
  --fg-quote:               var(--_slate);
  --fg-nav-current:         var(--_blue-deep);
  --fg-nav-ancestor:        var(--_blue-deep);
  --fg-label:               var(--_ink);
  --fg-placeholder:         var(--_grey);

  /* field */
  --field-bg:               var(--_white);
  --field-fg:               var(--_slate);
  --field-border:           var(--_grey-line);
  --field-border-focus:     var(--_blue-deep);
  --field-radius:           3px;

  /* link */
  --link-rule:              var(--_blue);
  --link-rule-offset:       1.8px;

  /* surface */
  --surface-page:           var(--_white);
  --surface-raised:         var(--_white);
  --surface-sunken:         var(--_mist);
  --surface-inverse:        var(--_blue-deep);
  --surface-marker:         var(--_blue);
  --surface-badge:          var(--_sky-pale);
  --surface-table-header:   var(--_mist);
  --surface-selected:       var(--_sky-pale);
  --surface-code:           var(--_mist);
  --surface-tint:           var(--_ice);

  /* ground */
  --ground-text:            var(--_slate);

  /* action */
  --action-primary-bg:      var(--_green);
  --action-primary-fg:      var(--_ink);
  --action-on-dark-bg:      var(--_green);
  --action-on-dark-fg:      var(--_ink);
  --action-ghost-border:    var(--_white);
  --action-ghost-fg:        var(--_white);
  --action-primary-bg-hover: var(--_blue-deep);
  --action-primary-fg-hover: var(--_white);
  --action-on-dark-bg-hover: var(--_white);
  --action-disabled-bg:     var(--_rule);
  --action-disabled-fg:     var(--_slate);
  --action-radius:          2px;
  --action-border-width:    1px;

  /* border */
  --border-faint:           var(--_hairline);
  --border-card:            var(--_rule);
  --border-soft:            var(--_rule);
  --border-on-dark:         var(--_ice);
  --border-accent:          var(--_blue);
  --border-quote:           var(--_blue);
  --border-table:           var(--_grey-line);
  --border-selected:        var(--_blue);

  /* focus */
  --focus-ring:             var(--_blue-deep);
  --focus-ring-width:       2px;
  --focus-ring-offset:      2px;

  /* motion */
  --motion-base:            300ms;

  /* ease */
  --ease-standard:          cubic-bezier(0.25, 0.1, 0.25, 1);

  /* font */
  --font-body:              Poppins, sans-serif;
  --font-heading:           Poppins, sans-serif;

  /* hairline */
  --hairline:               1px;

  /* radius */
  --radius-sm:              3px;
  --radius-md:              6px;
  --radius-lg:              10px;
  --radius-pill:            9999px;
  --radius-xs:              2px;

  /* shadow */
  --shadow-card-tinted:     0 6px 12px 0 rgba(234, 238, 239, 0.85);
  --shadow-card-sm:         0 5px 15px -7px rgba(0, 0, 0, 0.1);
  --shadow-card-md:         0 20px 30px 0 rgba(125, 151, 162, 0.23);
  --shadow-card-lg:         0 9px 22px 0 rgba(0, 0, 0, 0.05);

  /* t */
  --t-hero:                 clamp(2.25rem, 1.8rem + 1.9vw, 3rem);
  --t-section:              clamp(1.75rem, 1.3rem + 1.9vw, 2.375rem);
  --t-h3:                   1.375rem;
  --t-title:                1.75rem;
  --t-card-title:           1.375rem;
  --t-lead:                 1.125rem;
  --t-body:                 1.125rem;
  --t-small:                0.8125rem;
  --t-eyebrow:              0.8125rem;

  /* lh */
  --lh-tight:               1.08;
  --lh-snug:                1.21;
  --lh-normal:              1.36;
  --lh-relaxed:             1.7;
  --lh-flush:               1;

  /* fw */
  --fw-regular:             400;
  --fw-semi:                600;
  --fw-bold:                700;
  --fw-medium:              500;

  /* space */
  --space-0:                0;
  --space-1:                0.25rem;
  --space-2:                0.5rem;
  --space-3:                0.75rem;
  --space-4:                1rem;
  --space-5:                1.25rem;
  --space-6:                1.5rem;
  --space-7:                2rem;
  --space-8:                2.5rem;
  --space-9:                3rem;
  --space-10:               3.5rem;
  --space-11:               5rem;
  --space-12:               6rem;

  /* measure */
  --measure-site:           103.12rem;
  --measure-banner:         103.12rem;
  --measure-content:        calc(var(--measure-banner) - var(--gutter) - var(--sidebar-width) - var(--sidebar-gap));
  --measure-prose:          52.625rem;

  /* gutter */
  --gutter:                 1.5rem;
  --gutter-page-edge:       1.5rem;

  /* breakpoint */
  --breakpoint-mobile:      48em;
  --breakpoint-sidebar:     64em;

  /* sidebar */
  --sidebar-width:          20rem;
  --sidebar-gap:            2.5rem;

  /* image */
  --image-radius:           9px;

  /* header */
  --header-height:          7rem;

  /* layer */
  --layer-header:           11;
}

body:not(.has-sidebar) { --measure-content: 52.625rem; }

.c-ground--sunken { background: var(--surface-sunken); }

.c-ground--raised {
  background: var(--surface-raised);
  --ground-text:        var(--_slate);
  color: var(--ground-text);
}

.c-ground--inverse {
  background: var(--surface-inverse);
  --ground-text:        var(--_white);
  --fg-strong:          var(--_white);
  --fg-medium:          var(--_white);
  --fg-secondary:       var(--_ice);
  --fg-muted:           var(--_ice);
  --fg-eyebrow:         var(--_white);
  --fg-link:            var(--_white);
  --border-faint:       var(--_ice);
  --border-card:        var(--_ice);
  --focus-ring:         var(--_white);
  color: var(--ground-text);
}

.c-ground--tint {
  background: var(--surface-tint);
  --ground-text:        var(--_slate);
  --fg-link:            var(--_blue-deep);
  color: var(--ground-text);
}

.c-ground--page {
  background: var(--surface-page);
  --ground-text:        var(--_slate);
  --fg-strong:          var(--_ink);
  --fg-medium:          var(--_slate);
  --fg-secondary:       var(--_slate);
  --fg-muted:           var(--_grey);
  --fg-eyebrow:         var(--_ink);
  --fg-link:            var(--_blue-deep);
  --border-faint:       var(--_hairline);
  --border-card:        var(--_rule);
  --focus-ring:         var(--_blue-deep);
  --shadow-card-tinted: 0 6px 12px 0 rgba(234, 238, 239, 0.85);
  color: var(--ground-text);
}
