/* ===== typography/Heading ===== */
.cds-h{margin:0;color:var(--sys-color-text-primary);font-family:var(--sys-font-family);}
.cds-h--display{font-size:var(--sys-type-display-size);font-weight:var(--sys-type-display-weight);line-height:var(--sys-type-display-line);letter-spacing:var(--sys-type-display-tracking);}
.cds-h--h1{font-size:var(--sys-type-h1-size);font-weight:var(--sys-type-h1-weight);line-height:var(--sys-type-h1-line);letter-spacing:var(--sys-type-h1-tracking);}
.cds-h--h2{font-size:var(--sys-type-h2-size);font-weight:var(--sys-type-h2-weight);line-height:var(--sys-type-h2-line);letter-spacing:var(--sys-type-h2-tracking);}
.cds-h--h3{font-size:var(--sys-type-h3-size);font-weight:var(--sys-type-h3-weight);line-height:var(--sys-type-h3-line);letter-spacing:var(--sys-type-h3-tracking);}
.cds-h--oswald-poster,.cds-h--oswald-xl,.cds-h--oswald-l,.cds-h--oswald-m,.cds-h--oswald-s{text-transform:uppercase;}
.cds-h--oswald-poster{font-family:var(--sys-type-oswald-poster-family);font-size:var(--sys-type-oswald-poster-size);font-weight:var(--sys-type-oswald-poster-weight);line-height:var(--sys-type-oswald-poster-line);letter-spacing:var(--sys-type-oswald-poster-tracking);}
.cds-h--oswald-xl{font-family:var(--sys-type-oswald-xl-family);font-size:var(--sys-type-oswald-xl-size);font-weight:var(--sys-type-oswald-xl-weight);line-height:var(--sys-type-oswald-xl-line);letter-spacing:var(--sys-type-oswald-xl-tracking);}
.cds-h--oswald-l{font-family:var(--sys-type-oswald-l-family);font-size:var(--sys-type-oswald-l-size);font-weight:var(--sys-type-oswald-l-weight);line-height:var(--sys-type-oswald-l-line);letter-spacing:var(--sys-type-oswald-l-tracking);}
.cds-h--oswald-m{font-family:var(--sys-type-oswald-m-family);font-size:var(--sys-type-oswald-m-size);font-weight:var(--sys-type-oswald-m-weight);line-height:var(--sys-type-oswald-m-line);letter-spacing:var(--sys-type-oswald-m-tracking);}
.cds-h--oswald-s{font-family:var(--sys-type-oswald-s-family);font-size:var(--sys-type-oswald-s-size);font-weight:var(--sys-type-oswald-s-weight);line-height:var(--sys-type-oswald-s-line);letter-spacing:var(--sys-type-oswald-s-tracking);}
/* ===== typography/Text ===== */
.cds-txt{margin:0;font-family:var(--sys-font-family);color:var(--sys-color-text-primary);}
.cds-txt--secondary{color:var(--sys-color-text-secondary);}
.cds-txt--on-fill{color:var(--sys-color-text-on-fill);}
.cds-txt--body-l{font-size:var(--sys-type-body-l-size);font-weight:var(--sys-type-body-l-weight);line-height:var(--sys-type-body-l-line);}
.cds-txt--body{font-size:var(--sys-type-body-size);font-weight:var(--sys-type-body-weight);line-height:var(--sys-type-body-line);}
.cds-txt--body-s{font-size:var(--sys-type-body-s-size);font-weight:var(--sys-type-body-s-weight);line-height:var(--sys-type-body-s-line);}
.cds-txt--caption{font-size:var(--sys-type-caption-size);font-weight:var(--sys-type-caption-weight);line-height:var(--sys-type-caption-line);letter-spacing:var(--sys-type-caption-tracking);}
.cds-txt--overline{font-size:var(--sys-type-overline-size);font-weight:var(--sys-type-overline-weight);line-height:var(--sys-type-overline-line);letter-spacing:var(--sys-type-overline-tracking);text-transform:uppercase;}
.cds-txt--data{font-size:var(--sys-type-data-size);font-weight:var(--sys-type-data-weight);line-height:var(--sys-type-data-line);letter-spacing:var(--sys-type-data-tracking);font-feature-settings:var(--sys-type-data-feature);}
.cds-txt--tabular{font-feature-settings:var(--sys-type-data-feature);}
/* ===== layout/AspectRatio ===== */
.cds-aspect{position:relative;width:100%;overflow:hidden;background:var(--sys-color-surface-raised);display:block;}
.cds-aspect--rounded{border-radius:var(--sys-radius-card);}
.cds-aspect > img,.cds-aspect > video{width:100%;height:100%;object-fit:cover;display:block;}
.cds-aspect__ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  color:var(--sys-color-text-secondary);font-family:var(--sys-font-family);font-size:var(--sys-type-caption-size);}
/* ===== layout/Container ===== */
.cds-container{width:100%;margin-left:auto;margin-right:auto;
  max-width:var(--sys-container-max);
  padding-left:var(--sys-gutter-mobile);padding-right:var(--sys-gutter-mobile);box-sizing:border-box;}
@media (min-width:640px){
  .cds-container{padding-left:var(--sys-gutter-tablet);padding-right:var(--sys-gutter-tablet);}
}
@media (min-width:1024px){
  .cds-container{padding-left:var(--sys-space-64);padding-right:var(--sys-space-64);}
}
.cds-container--narrow{max-width:var(--sys-container-narrow);}
.cds-container--wide{max-width:var(--sys-container-wide);}
/* ===== layout/Grid ===== */
.cds-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sys-grid-gap);}
@media (min-width:640px){.cds-grid{grid-template-columns:repeat(12,minmax(0,1fr));}}
.cds-grid__item{grid-column:span var(--cds-col-mobile,4);}
@media (min-width:640px){.cds-grid__item{grid-column:span var(--cds-col-tablet,6);}}
@media (min-width:1024px){.cds-grid__item{grid-column:span var(--cds-col-desktop,4);}}
/* ===== layout/Section ===== */
.cds-section{padding-top:var(--sys-section-pad-mobile);padding-bottom:var(--sys-section-pad-mobile);}
@media (min-width:640px){.cds-section{padding-top:var(--sys-section-pad-tablet);padding-bottom:var(--sys-section-pad-tablet);}}
@media (min-width:1024px){.cds-section{padding-top:var(--sys-section-pad-desktop);padding-bottom:var(--sys-section-pad-desktop);}}
.cds-section--divide-top{border-top:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);}
.cds-section--divide-bottom{border-bottom:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);}
.cds-section--raised{background:var(--sys-color-surface-raised);}
/* ===== inputs/Button ===== */
.cds-btn{font-family:var(--sys-font-family);font-weight:var(--sys-weight-emphasis);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sys-space-8);
  line-height:1;white-space:nowrap;text-decoration:none;
  border:var(--sys-border-width-hairline) solid transparent;border-radius:var(--sys-radius-button);cursor:pointer;
  transition:background var(--sys-motion-ui) var(--sys-ease-standard),box-shadow var(--sys-motion-press) var(--sys-ease-standard),border-color var(--sys-motion-ui) var(--sys-ease-standard);
  -webkit-font-smoothing:antialiased;}
.cds-btn:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-btn:disabled,.cds-btn[aria-disabled="true"]{cursor:not-allowed;opacity:var(--sys-opacity-disabled);box-shadow:none;text-decoration:none;}
.cds-btn--full{width:100%;}
/* sizes — control-height driven; horizontal padding from the space scale; vertical centering via flex */
.cds-btn--sm{height:var(--sys-control-h-sm);font-size:var(--sys-type-caption-size);padding:0 var(--sys-space-12);}
.cds-btn--default{height:var(--sys-control-h-md);font-size:var(--sys-type-body-s-size);padding:0 var(--sys-space-20);}
.cds-btn--lg{height:var(--sys-control-h-lg);font-size:var(--sys-type-body-size);padding:0 var(--sys-space-28);}
.cds-btn--icon{padding:0;width:var(--sys-control-h-md);height:var(--sys-control-h-md);}
.cds-btn--icon.cds-btn--sm{width:var(--sys-control-h-sm);height:var(--sys-control-h-sm);}
.cds-btn--icon.cds-btn--lg{width:var(--sys-control-h-lg);height:var(--sys-control-h-lg);}
/* default — filled ink (the one sanctioned high-emphasis treatment) */
.cds-btn--default-v{background:var(--sys-color-surface-fill);color:var(--sys-color-text-on-fill);border-color:var(--sys-color-surface-fill);}
.cds-btn--default-v:hover:not(:disabled){box-shadow:inset 0 0 0 999px var(--sys-overlay-hover);}
.cds-btn--default-v:active:not(:disabled){box-shadow:inset 0 0 0 999px var(--sys-overlay-press);}
.cds-btn--default-v:disabled{background:var(--sys-color-border-hairline);border-color:var(--sys-color-border-hairline);color:var(--sys-color-text-secondary);opacity:1;}
/* secondary — muted raised fill */
.cds-btn--secondary-v{background:var(--sys-color-surface-raised);color:var(--sys-color-text-primary);border-color:var(--sys-color-border-hairline);}
.cds-btn--secondary-v:hover:not(:disabled){border-color:var(--sys-color-border-strong);}
.cds-btn--secondary-v:active:not(:disabled){box-shadow:inset 0 0 0 999px var(--sys-overlay-press);}
/* outline — hairline/strong border */
.cds-btn--outline-v{background:transparent;color:var(--sys-color-text-primary);border-color:var(--sys-color-border-strong);}
.cds-btn--outline-v:hover:not(:disabled){background:var(--sys-color-surface-raised);border-color:var(--sys-color-text-primary);}
.cds-btn--outline-v:active:not(:disabled){box-shadow:inset 0 0 0 999px var(--sys-overlay-press);}
/* ghost — transparent */
.cds-btn--ghost-v{background:transparent;color:var(--sys-color-text-primary);border-color:transparent;}
.cds-btn--ghost-v:hover:not(:disabled){background:var(--sys-color-surface-raised);}
.cds-btn--ghost-v:active:not(:disabled){box-shadow:inset 0 0 0 999px var(--sys-overlay-press);}
/* link — weight + underline, no chrome */
.cds-btn--link-v{background:transparent;border-color:transparent;color:var(--sys-color-text-primary);
  height:auto;padding-left:0;padding-right:0;text-underline-offset:var(--sys-space-4);}
.cds-btn--link-v:hover:not(:disabled){text-decoration:underline;}
/* destructive — muted clay fill */
.cds-btn--destructive-v{background:var(--sys-color-action-danger);color:var(--sys-color-surface-base);border-color:var(--sys-color-action-danger);}
.cds-btn--destructive-v:hover:not(:disabled){box-shadow:inset 0 0 0 999px var(--sys-overlay-hover);}
.cds-btn--destructive-v:active:not(:disabled){box-shadow:inset 0 0 0 999px var(--sys-overlay-press);}
/* ===== inputs/Checkbox ===== */
.cds-check{display:inline-flex;align-items:flex-start;gap:var(--sys-space-12);font-family:var(--sys-font-family);cursor:pointer;}
.cds-check--disabled{cursor:not-allowed;opacity:var(--sys-opacity-disabled);}
.cds-check__input{position:absolute;opacity:0;width:0;height:0;}
.cds-check__box{flex:none;width:var(--sys-control-box);height:var(--sys-control-box);margin-top:var(--sys-border-width-hairline);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-strong);border-radius:var(--sys-radius-chip);
  background:var(--sys-color-surface-input);display:flex;align-items:center;justify-content:center;
  transition:background var(--sys-motion-ui) var(--sys-ease-standard),border-color var(--sys-motion-ui) var(--sys-ease-standard),box-shadow var(--sys-motion-ui) var(--sys-ease-standard);color:var(--sys-color-text-on-fill);}
.cds-check:hover .cds-check__box{border-color:var(--sys-color-text-primary);}
.cds-check__input:checked + .cds-check__box{background:var(--sys-color-surface-fill);border-color:var(--sys-color-surface-fill);}
.cds-check__input:focus-visible + .cds-check__box{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-check__glyph{opacity:0;transition:opacity var(--sys-motion-press) var(--sys-ease-standard);}
.cds-check__input:checked + .cds-check__box .cds-check__glyph{opacity:1;}
.cds-check__body{display:flex;flex-direction:column;gap:var(--sys-space-4);}
.cds-check__label{font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-primary);line-height:1.4;}
.cds-check__desc{font-size:var(--sys-type-caption-size);color:var(--sys-color-text-secondary);line-height:1.45;}
/* ===== inputs/IconButton ===== */
.cds-iconbtn{
  font-family:var(--sys-font-family);
  display:inline-flex;align-items:center;justify-content:center;
  border:var(--sys-border-width-hairline) solid transparent;border-radius:var(--sys-radius-button);
  background:transparent;color:var(--sys-color-text-primary);cursor:pointer;
  padding:0;transition:background var(--sys-motion-ui) var(--sys-ease-standard),border-color var(--sys-motion-ui) var(--sys-ease-standard),box-shadow var(--sys-motion-press) var(--sys-ease-standard);
}
.cds-iconbtn:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-iconbtn:disabled{cursor:not-allowed;opacity:var(--sys-opacity-disabled);}
.cds-iconbtn--sm{width:var(--sys-control-h-sm);height:var(--sys-control-h-sm);}
.cds-iconbtn--md{width:var(--sys-control-h-md);height:var(--sys-control-h-md);}
.cds-iconbtn--lg{width:var(--sys-control-h-lg);height:var(--sys-control-h-lg);}
.cds-iconbtn--ghost:hover:not(:disabled){background:var(--sys-color-surface-raised);}
.cds-iconbtn--outline{border-color:var(--sys-color-border-strong);}
.cds-iconbtn--outline:hover:not(:disabled){background:var(--sys-color-surface-raised);border-color:var(--sys-color-text-primary);}
.cds-iconbtn__glyph{display:inline-flex;align-items:center;justify-content:center;}
.cds-iconbtn--sm .cds-iconbtn__glyph{width:var(--sys-control-icon-sm);height:var(--sys-control-icon-sm);}
.cds-iconbtn--md .cds-iconbtn__glyph{width:var(--sys-control-icon-md);height:var(--sys-control-icon-md);}
.cds-iconbtn--lg .cds-iconbtn__glyph{width:var(--sys-control-icon-lg);height:var(--sys-control-icon-lg);}
/* ===== inputs/Input ===== */
.cds-field{display:flex;flex-direction:column;gap:var(--sys-space-8);font-family:var(--sys-font-family);}
.cds-field__label{font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-label);color:var(--sys-color-text-secondary);line-height:1.3;}
.cds-field__label--error{color:var(--sys-color-action-danger);}
.cds-field__req{color:var(--sys-color-action-danger);margin-left:var(--sys-space-4);}
.cds-input-wrap{display:flex;align-items:center;gap:var(--sys-space-8);
  background:var(--sys-color-surface-input);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-strong);border-radius:var(--sys-radius-input);
  transition:border-color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-input-wrap:hover{border-color:var(--sys-color-text-primary);}
/* focus = border brightens to ink; the caret + this border are the focus signal
   (no ring — a text field's blinking caret already marks focus). */
.cds-input-wrap:focus-within{border-color:var(--sys-focus-ring-color);}
.cds-input-wrap--error{border-color:var(--sys-color-action-danger);background:var(--sys-color-danger-subtle);}
.cds-input-wrap--error:focus-within{--sys-focus-ring-color:var(--sys-color-action-danger);}
.cds-input-wrap--disabled{background:var(--sys-color-surface-raised);border-color:var(--sys-color-border-hairline);cursor:not-allowed;opacity:var(--sys-opacity-disabled);}
.cds-input{flex:1;min-width:0;border:none;outline:none;background:transparent;
  font-family:inherit;color:var(--sys-color-text-primary);padding:0;}
.cds-input::placeholder{color:var(--sys-color-text-placeholder);}
.cds-input:disabled{cursor:not-allowed;color:var(--sys-color-text-secondary);}
/* sizes — control-height driven; horizontal padding from the space scale */
.cds-input-wrap--sm{height:var(--sys-control-h-sm);padding:0 var(--sys-space-12);}
.cds-input-wrap--sm .cds-input{font-size:var(--sys-type-caption-size);}
.cds-input-wrap--md{height:var(--sys-control-h-md);padding:0 var(--sys-space-12);}
.cds-input-wrap--md .cds-input{font-size:var(--sys-type-body-s-size);}
.cds-input-wrap--lg{height:var(--sys-control-h-lg);padding:0 var(--sys-space-16);}
.cds-input-wrap--lg .cds-input{font-size:var(--sys-type-body-size);}
.cds-field__affix{display:inline-flex;align-items:center;color:var(--sys-color-text-secondary);font-size:var(--sys-type-body-s-size);flex:none;}
.cds-field__help{font-size:var(--sys-type-caption-size);color:var(--sys-color-text-secondary);line-height:var(--sys-type-caption-line);}
.cds-field__help--error{color:var(--sys-color-action-danger);}
/* ===== inputs/Label ===== */
.cds-label{display:inline-flex;align-items:center;gap:var(--sys-space-4);font-family:var(--sys-font-family);
  font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-label);line-height:1.3;
  color:var(--sys-color-text-secondary);}
.cds-label--error{color:var(--sys-color-action-danger);}
.cds-label--disabled{opacity:var(--sys-opacity-disabled);cursor:not-allowed;}
.cds-label__req{color:var(--sys-color-action-danger);}
/* ===== inputs/Radio ===== */
.cds-radio-group{display:flex;flex-direction:column;gap:var(--sys-space-12);}
.cds-radio-group__legend{font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-label);color:var(--sys-color-text-secondary);line-height:1.3;margin-bottom:var(--sys-space-4);}
.cds-radio{display:inline-flex;align-items:flex-start;gap:var(--sys-space-12);font-family:var(--sys-font-family);cursor:pointer;}
.cds-radio--disabled{cursor:not-allowed;opacity:var(--sys-opacity-disabled);}
.cds-radio__input{position:absolute;opacity:0;width:0;height:0;}
.cds-radio__dot{flex:none;width:var(--sys-control-box);height:var(--sys-control-box);margin-top:var(--sys-border-width-hairline);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-strong);border-radius:var(--sys-radius-indicator);
  background:var(--sys-color-surface-input);display:flex;align-items:center;justify-content:center;
  transition:border-color var(--sys-motion-ui) var(--sys-ease-standard),box-shadow var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-radio:hover .cds-radio__dot{border-color:var(--sys-color-text-primary);}
.cds-radio__dot::after{content:"";width:var(--sys-control-radio-dot);height:var(--sys-control-radio-dot);border-radius:var(--sys-radius-indicator);
  background:var(--sys-color-surface-fill);transform:scale(0);transition:transform var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-radio__input:checked + .cds-radio__dot{border-color:var(--sys-color-surface-fill);}
.cds-radio__input:checked + .cds-radio__dot::after{transform:scale(1);}
.cds-radio__input:focus-visible + .cds-radio__dot{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-radio__body{display:flex;flex-direction:column;gap:var(--sys-space-4);}
.cds-radio__label{font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-primary);line-height:1.4;}
.cds-radio__desc{font-size:var(--sys-type-caption-size);color:var(--sys-color-text-secondary);line-height:1.45;}
/* ===== inputs/Select ===== */
.cds-select-field{display:flex;flex-direction:column;gap:var(--sys-space-8);font-family:var(--sys-font-family);}
.cds-select-field__label{font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-label);color:var(--sys-color-text-secondary);line-height:1.3;}
.cds-select-field__label--error{color:var(--sys-color-action-danger);}
.cds-select-wrap{position:relative;display:flex;align-items:center;
  background:var(--sys-color-surface-input);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-strong);border-radius:var(--sys-radius-input);
  transition:border-color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-select-wrap:hover{border-color:var(--sys-color-text-primary);}
.cds-select-wrap:focus-within{border-color:var(--sys-focus-ring-color);}
.cds-select-wrap--error{border-color:var(--sys-color-action-danger);background:var(--sys-color-danger-subtle);}
.cds-select-wrap--error:focus-within{--sys-focus-ring-color:var(--sys-color-action-danger);}
.cds-select-wrap--disabled{background:var(--sys-color-surface-raised);border-color:var(--sys-color-border-hairline);opacity:var(--sys-opacity-disabled);cursor:not-allowed;}
.cds-select{appearance:none;-webkit-appearance:none;border:none;outline:none;background:transparent;
  font-family:inherit;color:var(--sys-color-text-primary);width:100%;cursor:pointer;
  padding:0 var(--sys-space-40) 0 var(--sys-space-12);}
.cds-select:disabled{cursor:not-allowed;color:var(--sys-color-text-secondary);}
.cds-select:invalid{color:var(--sys-color-text-placeholder);}
.cds-select-wrap--sm{height:var(--sys-control-h-sm);}
.cds-select-wrap--sm .cds-select{font-size:var(--sys-type-caption-size);}
.cds-select-wrap--md{height:var(--sys-control-h-md);}
.cds-select-wrap--md .cds-select{font-size:var(--sys-type-body-s-size);}
.cds-select-wrap--lg{height:var(--sys-control-h-lg);}
.cds-select-wrap--lg .cds-select{font-size:var(--sys-type-body-size);padding-left:var(--sys-space-16);}
.cds-select-chevron{position:absolute;right:var(--sys-space-12);pointer-events:none;color:var(--sys-color-text-secondary);display:flex;}
/* ===== inputs/Switch ===== */
.cds-switch{display:inline-flex;align-items:center;gap:var(--sys-space-12);font-family:var(--sys-font-family);cursor:pointer;}
.cds-switch--disabled{cursor:not-allowed;opacity:var(--sys-opacity-disabled);}
.cds-switch__input{position:absolute;opacity:0;width:0;height:0;}
.cds-switch__track{box-sizing:border-box;flex:none;width:var(--sys-control-switch-w);height:var(--sys-control-switch-h);border-radius:var(--sys-radius-indicator);
  background:var(--sys-color-surface-raised);border:var(--sys-border-width-hairline) solid var(--sys-color-border-strong);
  position:relative;transition:background var(--sys-motion-ui) var(--sys-ease-standard),border-color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-switch__knob{position:absolute;top:50%;left:calc((var(--sys-control-switch-h) - var(--sys-control-icon-sm)) / 2);
  width:var(--sys-control-icon-sm);height:var(--sys-control-icon-sm);border-radius:var(--sys-radius-indicator);
  background:var(--sys-color-text-secondary);transform:translateY(-50%);transition:transform var(--sys-motion-ui) var(--sys-ease-standard),background var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-switch__input:checked + .cds-switch__track{background:var(--sys-color-surface-fill);border-color:var(--sys-color-surface-fill);}
.cds-switch__input:checked + .cds-switch__track .cds-switch__knob{transform:translate(calc(var(--sys-control-switch-w) - var(--sys-control-switch-h)), -50%);background:var(--sys-color-text-on-fill);}
.cds-switch__input:focus-visible + .cds-switch__track{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-switch__label{font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-primary);line-height:1.4;}
/* ===== inputs/Textarea ===== */
.cds-ta-field{display:flex;flex-direction:column;gap:var(--sys-space-8);font-family:var(--sys-font-family);}
.cds-ta-field__label{font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-label);color:var(--sys-color-text-secondary);line-height:1.3;}
.cds-ta-field__label--error{color:var(--sys-color-action-danger);}
.cds-ta-field__req{color:var(--sys-color-action-danger);margin-left:var(--sys-space-4);}
.cds-ta-wrap{background:var(--sys-color-surface-input);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-strong);border-radius:var(--sys-radius-input);
  padding:var(--sys-space-8) var(--sys-space-12);
  transition:border-color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-ta-wrap:hover{border-color:var(--sys-color-text-primary);}
.cds-ta-wrap:focus-within{border-color:var(--sys-focus-ring-color);}
.cds-ta-wrap--error{border-color:var(--sys-color-action-danger);background:var(--sys-color-danger-subtle);}
.cds-ta-wrap--error:focus-within{--sys-focus-ring-color:var(--sys-color-action-danger);}
.cds-ta-wrap--disabled{background:var(--sys-color-surface-raised);border-color:var(--sys-color-border-hairline);cursor:not-allowed;opacity:var(--sys-opacity-disabled);}
.cds-ta{display:block;width:100%;box-sizing:border-box;border:none;outline:none;background:transparent;resize:vertical;
  font-family:inherit;font-size:var(--sys-type-body-s-size);line-height:var(--sys-type-body-s-line);
  color:var(--sys-color-text-primary);min-height:calc(var(--sys-control-h-lg) * 2);}
.cds-ta::placeholder{color:var(--sys-color-text-placeholder);}
.cds-ta:disabled{cursor:not-allowed;color:var(--sys-color-text-secondary);}
.cds-ta-field__help{font-size:var(--sys-type-caption-size);color:var(--sys-color-text-secondary);line-height:var(--sys-type-caption-line);}
.cds-ta-field__help--error{color:var(--sys-color-action-danger);}
/* ===== data-display/Avatar ===== */
.cds-avatar{font-family:var(--sys-font-family);display:inline-flex;align-items:center;justify-content:center;
  background:var(--sys-color-surface-raised);color:var(--sys-color-text-primary);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);font-weight:var(--sys-weight-emphasis);
  overflow:hidden;flex:none;user-select:none;border-radius:var(--sys-radius-chip);}
.cds-avatar--round{border-radius:var(--sys-radius-indicator);}
.cds-avatar--solid{background:var(--sys-color-surface-fill);color:var(--sys-color-text-on-fill);border-color:var(--sys-color-surface-fill);}
.cds-avatar--sm{width:var(--sys-control-h-sm);height:var(--sys-control-h-sm);font-size:var(--sys-type-caption-size);}
.cds-avatar--md{width:var(--sys-control-h-md);height:var(--sys-control-h-md);font-size:var(--sys-type-body-s-size);}
.cds-avatar--lg{width:var(--sys-control-h-lg);height:var(--sys-control-h-lg);font-size:var(--sys-type-body-size);}
.cds-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.cds-avatar-group{display:inline-flex;}
.cds-avatar-group .cds-avatar{box-shadow:0 0 0 var(--sys-border-width-strong) var(--sys-color-surface-base);}
/* ===== data-display/Badge ===== */
.cds-badge{font-family:var(--sys-font-family);display:inline-flex;align-items:center;gap:var(--sys-space-4);
  font-size:var(--sys-type-overline-size);font-weight:var(--sys-weight-label);line-height:1;
  padding:var(--sys-space-4) var(--sys-space-8);border-radius:var(--sys-radius-chip);border:var(--sys-border-width-hairline) solid transparent;white-space:nowrap;}
.cds-badge--default{background:var(--sys-color-surface-fill);color:var(--sys-color-text-on-fill);}
.cds-badge--secondary{background:var(--sys-color-surface-raised);color:var(--sys-color-text-primary);border-color:var(--sys-color-border-hairline);}
.cds-badge--outline{background:transparent;color:var(--sys-color-text-secondary);border-color:var(--sys-color-border-strong);}
.cds-badge--destructive{background:transparent;color:var(--sys-color-action-danger);border-color:var(--sys-color-action-danger);}
.cds-badge--success{background:transparent;color:var(--sys-color-action-success);border-color:var(--sys-color-action-success);}
.cds-badge__dot{width:var(--sys-control-dot);height:var(--sys-control-dot);border-radius:var(--sys-radius-indicator);background:currentColor;flex:none;}
/* ===== data-display/Divider ===== */
.cds-divider{border:none;background:var(--sys-color-border-hairline);}
.cds-divider--h{width:100%;height:var(--sys-border-width-hairline);margin:var(--sys-space-24) 0;}
.cds-divider--v{width:var(--sys-border-width-hairline);align-self:stretch;min-height:1em;margin:0 var(--sys-space-16);}
.cds-divider-labeled{display:flex;align-items:center;gap:var(--sys-space-16);
  font-family:var(--sys-font-family);margin:var(--sys-space-24) 0;}
.cds-divider-labeled::before,.cds-divider-labeled::after{content:"";flex:1;height:var(--sys-border-width-hairline);background:var(--sys-color-border-hairline);}
.cds-divider-labeled__text{font-size:var(--sys-type-overline-size);font-weight:var(--sys-weight-label);letter-spacing:var(--sys-type-overline-tracking);
  text-transform:uppercase;color:var(--sys-color-text-secondary);white-space:nowrap;}
/* ===== data-display/Stat ===== */
.cds-stat{font-family:var(--sys-font-family);display:flex;flex-direction:column;gap:var(--sys-space-4);}
.cds-stat__label{font-size:var(--sys-type-overline-size);font-weight:var(--sys-type-overline-weight);letter-spacing:var(--sys-type-overline-tracking);
  line-height:var(--sys-type-overline-line);text-transform:uppercase;color:var(--sys-color-text-secondary);}
.cds-stat__value{font-size:var(--sys-type-data-size);font-weight:var(--sys-type-data-weight);letter-spacing:var(--sys-type-data-tracking);
  line-height:var(--sys-type-data-line);color:var(--sys-color-text-primary);font-feature-settings:var(--sys-type-data-feature);}
.cds-stat__foot{display:flex;align-items:center;gap:var(--sys-space-8);margin-top:var(--sys-space-4);}
.cds-stat__delta{display:inline-flex;align-items:center;gap:var(--sys-space-4);font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-label);font-feature-settings:var(--sys-type-data-feature);color:var(--sys-color-text-secondary);}
.cds-stat__delta--up{color:var(--sys-color-action-success);}
.cds-stat__delta--down{color:var(--sys-color-action-danger);}
.cds-stat__cap{font-size:var(--sys-type-caption-size);color:var(--sys-color-text-secondary);}
/* ===== data-display/Tooltip ===== */
.cds-tooltip{position:relative;display:inline-flex;}
.cds-tooltip__bubble{position:absolute;z-index:var(--sys-z-overlay);pointer-events:none;
  background:var(--sys-color-surface-fill);color:var(--sys-color-text-on-fill);
  font-family:var(--sys-font-family);font-size:var(--sys-type-overline-size);font-weight:var(--sys-weight-body);line-height:1.4;
  padding:var(--sys-space-4) var(--sys-space-8);border-radius:var(--sys-radius-button);white-space:nowrap;
  opacity:0;transform:translateY(var(--sys-space-4));transition:opacity var(--sys-motion-ui) var(--sys-ease-standard),transform var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-tooltip:hover .cds-tooltip__bubble,.cds-tooltip:focus-within .cds-tooltip__bubble{opacity:1;transform:translateY(0);}
.cds-tooltip__bubble--top{bottom:calc(100% + var(--sys-space-8));left:50%;transform:translate(-50%,var(--sys-space-4));}
.cds-tooltip:hover .cds-tooltip__bubble--top,.cds-tooltip:focus-within .cds-tooltip__bubble--top{transform:translate(-50%,0);}
.cds-tooltip__bubble--bottom{top:calc(100% + var(--sys-space-8));left:50%;transform:translate(-50%,calc(-1 * var(--sys-space-4)));}
.cds-tooltip:hover .cds-tooltip__bubble--bottom,.cds-tooltip:focus-within .cds-tooltip__bubble--bottom{transform:translate(-50%,0);}
/* ===== navigation/Breadcrumbs ===== */
.cds-crumbs{font-family:var(--sys-font-family);font-size:var(--sys-type-body-s-size);display:flex;align-items:center;
  flex-wrap:wrap;gap:var(--sys-space-8);color:var(--sys-color-text-secondary);}
.cds-crumbs__link{color:var(--sys-color-text-secondary);text-decoration:none;transition:color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-crumbs__link:hover{color:var(--sys-color-text-primary);text-decoration:underline;text-underline-offset:var(--sys-space-4);}
.cds-crumbs__link:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);border-radius:var(--sys-radius-chip);}
.cds-crumbs__sep{color:var(--sys-color-border-strong);user-select:none;}
.cds-crumbs__current{color:var(--sys-color-text-primary);font-weight:var(--sys-weight-label);}
/* ===== navigation/Link ===== */
.cds-link{font-family:var(--sys-font-family);color:var(--sys-color-text-primary);cursor:pointer;
  text-underline-offset:var(--sys-space-4);text-decoration-thickness:var(--sys-border-width-hairline);transition:color var(--sys-motion-ui) var(--sys-ease-standard);}
/* standalone — weight does the work, underline appears on hover */
.cds-link--standalone{font-weight:var(--sys-weight-emphasis);text-decoration:none;}
.cds-link--standalone:hover{text-decoration:underline;text-decoration-color:var(--sys-color-text-primary);}
.cds-link--standalone:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);border-radius:var(--sys-radius-chip);}
/* inline — always underlined, inherits weight/size from surrounding text */
.cds-link--inline{font-weight:inherit;color:inherit;text-decoration:underline;text-decoration-color:var(--sys-color-border-strong);}
.cds-link--inline:hover{text-decoration-color:var(--sys-color-text-primary);}
.cds-link--disabled{color:var(--sys-color-text-secondary);font-weight:var(--sys-weight-body);text-decoration:none;pointer-events:none;cursor:not-allowed;}
.cds-link__arrow{display:inline-block;margin-left:var(--sys-space-4);}
/* ===== navigation/Menu ===== */
.cds-menu{position:relative;display:inline-block;font-family:var(--sys-font-family);}
.cds-menu__panel{position:absolute;z-index:var(--sys-z-dropdown);min-width:200px;margin-top:var(--sys-space-8);
  background:var(--sys-color-surface-input);border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);
  border-radius:var(--sys-radius-card);padding:var(--sys-space-4);display:flex;flex-direction:column;}
.cds-menu__panel--right{right:0;}
.cds-menu__item{appearance:none;background:none;border:none;font-family:inherit;font-size:var(--sys-type-body-s-size);
  color:var(--sys-color-text-primary);text-align:left;cursor:pointer;width:100%;
  padding:var(--sys-space-8) var(--sys-space-12);border-radius:var(--sys-radius-button);display:flex;align-items:center;gap:var(--sys-space-12);
  transition:background var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-menu__item:hover{background:var(--sys-color-surface-raised);}
.cds-menu__item:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-menu__item--danger{color:var(--sys-color-action-danger);}
.cds-menu__item:disabled{color:var(--sys-color-text-secondary);opacity:var(--sys-opacity-disabled);cursor:not-allowed;}
.cds-menu__icon{display:inline-flex;width:var(--sys-control-icon-sm);height:var(--sys-control-icon-sm);flex:none;}
.cds-menu__divider{height:var(--sys-border-width-hairline);background:var(--sys-color-border-hairline);margin:var(--sys-space-4) 0;}
.cds-menu__label{flex:1;}
.cds-menu__shortcut{font-size:var(--sys-type-overline-size);color:var(--sys-color-text-secondary);}
/* ===== navigation/NavItem ===== */
.cds-navitem{font-family:var(--sys-font-family);font-size:var(--sys-type-body-s-size);font-weight:var(--sys-weight-label);
  color:var(--sys-color-text-secondary);text-decoration:none;cursor:pointer;
  padding-bottom:var(--sys-space-8);border-bottom:var(--sys-border-width-strong) solid transparent;transition:color var(--sys-motion-ui) var(--sys-ease-standard),border-color var(--sys-motion-ui) var(--sys-ease-standard),background var(--sys-motion-ui) var(--sys-ease-standard);
  display:inline-flex;align-items:center;gap:var(--sys-space-8);}
.cds-navitem:hover{color:var(--sys-color-text-primary);}
.cds-navitem--active{color:var(--sys-color-text-primary);font-weight:var(--sys-weight-emphasis);border-bottom-color:var(--sys-color-text-primary);}
.cds-navitem--disabled{color:var(--sys-color-border-strong);pointer-events:none;cursor:not-allowed;}
.cds-navitem:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);border-radius:var(--sys-radius-chip);}
.cds-navitem__icon{display:inline-flex;width:var(--sys-control-icon-md);height:var(--sys-control-icon-md);flex:none;}
.cds-navitem__label{flex:1;}
.cds-navitem__trailing{color:var(--sys-color-text-secondary);font-weight:var(--sys-weight-body);font-size:var(--sys-type-overline-size);}

/* vertical (sidebar) variant — surface-raised active fill, no underline */
.cds-navitem--vertical{padding:var(--sys-space-8) var(--sys-space-12);border-bottom:none;border-radius:var(--sys-radius-button);
  font-weight:var(--sys-weight-body);width:100%;justify-content:flex-start;}
.cds-navitem--vertical:hover{background:var(--sys-color-surface-raised);}
.cds-navitem--vertical.cds-navitem--active{background:var(--sys-color-surface-raised);font-weight:var(--sys-weight-emphasis);}
/* ===== navigation/Tabs ===== */
.cds-tabs{font-family:var(--sys-font-family);}
.cds-tabs__list{display:flex;gap:var(--sys-space-28);border-bottom:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);}
.cds-tabs__tab{appearance:none;background:none;border:none;font-family:inherit;font-size:var(--sys-type-body-s-size);
  font-weight:var(--sys-weight-label);color:var(--sys-color-text-secondary);cursor:pointer;
  padding:0 0 var(--sys-space-12);margin-bottom:calc(-1 * var(--sys-border-width-hairline));border-bottom:var(--sys-border-width-strong) solid transparent;
  transition:color var(--sys-motion-ui) var(--sys-ease-standard),border-color var(--sys-motion-ui) var(--sys-ease-standard);display:inline-flex;align-items:center;gap:var(--sys-space-8);}
.cds-tabs__tab:hover{color:var(--sys-color-text-primary);}
.cds-tabs__tab--active{color:var(--sys-color-text-primary);font-weight:var(--sys-weight-emphasis);border-bottom-color:var(--sys-color-text-primary);}
.cds-tabs__tab:disabled{color:var(--sys-color-border-strong);cursor:not-allowed;}
.cds-tabs__tab:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);border-radius:var(--sys-radius-chip);}
.cds-tabs__count{font-size:var(--sys-type-overline-size);font-weight:var(--sys-weight-body);color:var(--sys-color-text-secondary);}
/* ===== feedback/Alert ===== */
.cds-alert{font-family:var(--sys-font-family);display:flex;gap:var(--sys-space-12);
  background:var(--sys-color-surface-raised);border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);
  border-radius:var(--sys-radius-card);padding:var(--sys-space-12) var(--sys-space-16);}
.cds-alert__icon{flex:none;display:flex;color:var(--sys-color-text-primary);margin-top:var(--sys-border-width-hairline);}
.cds-alert--success .cds-alert__icon{color:var(--sys-color-action-success);}
.cds-alert--error .cds-alert__icon{color:var(--sys-color-action-danger);}
.cds-alert__body{flex:1;min-width:0;}
.cds-alert__title{font-size:var(--sys-type-body-s-size);font-weight:var(--sys-weight-emphasis);color:var(--sys-color-text-primary);margin-bottom:var(--sys-space-4);}
.cds-alert__msg{font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-secondary);line-height:var(--sys-type-body-s-line);}
.cds-alert__close{appearance:none;background:none;border:none;cursor:pointer;flex:none;
  color:var(--sys-color-text-secondary);padding:0;width:var(--sys-control-icon-md);height:var(--sys-control-icon-md);display:flex;align-items:center;justify-content:center;border-radius:var(--sys-radius-button);
  transition:color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-alert__close:hover{color:var(--sys-color-text-primary);}
.cds-alert__close:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
/* ===== feedback/Dialog ===== */
.cds-dialog__overlay{position:fixed;inset:0;z-index:var(--sys-z-modal);background:var(--sys-color-scrim);
  display:flex;align-items:center;justify-content:center;padding:var(--sys-space-24);
  animation:cds-dialog-fade var(--sys-motion-overlay) var(--sys-ease-standard);}
@keyframes cds-dialog-fade{from{opacity:0}to{opacity:1}}
.cds-dialog{font-family:var(--sys-font-family);background:var(--sys-color-surface-base);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);border-radius:var(--sys-radius-modal);
  width:100%;max-width:460px;max-height:90vh;overflow:auto;outline:none;
  animation:cds-dialog-rise var(--sys-motion-overlay) var(--sys-ease-standard);}
@keyframes cds-dialog-rise{from{opacity:0;transform:translateY(var(--sys-space-8))}to{opacity:1;transform:translateY(0)}}
.cds-dialog__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sys-space-16);
  padding:var(--sys-space-24) var(--sys-space-24) 0;}
.cds-dialog__title{font-size:var(--sys-type-h3-size);font-weight:var(--sys-weight-emphasis);letter-spacing:var(--sys-type-h3-tracking);color:var(--sys-color-text-primary);}
.cds-dialog__close{appearance:none;background:none;border:none;cursor:pointer;color:var(--sys-color-text-secondary);
  width:var(--sys-control-icon-lg);height:var(--sys-control-icon-lg);display:flex;align-items:center;justify-content:center;flex:none;border-radius:var(--sys-radius-button);
  transition:background var(--sys-motion-ui) var(--sys-ease-standard),color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-dialog__close:hover{background:var(--sys-color-surface-raised);color:var(--sys-color-text-primary);}
.cds-dialog__close:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-dialog__body{padding:var(--sys-space-12) var(--sys-space-24) var(--sys-space-24);
  font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-secondary);line-height:var(--sys-type-body-s-line);}
.cds-dialog__foot{display:flex;justify-content:flex-end;gap:var(--sys-space-12);
  padding:var(--sys-space-20) var(--sys-space-24);border-top:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);}
/* ===== feedback/Progress ===== */
.cds-progress{font-family:var(--sys-font-family);width:100%;}
.cds-progress__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--sys-space-8);}
.cds-progress__label{font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-label);color:var(--sys-color-text-primary);}
.cds-progress__value{font-size:var(--sys-type-overline-size);color:var(--sys-color-text-secondary);font-feature-settings:var(--sys-type-data-feature);}
.cds-progress__track{width:100%;height:var(--sys-control-bar);background:var(--sys-color-surface-raised);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);border-radius:var(--sys-radius-indicator);overflow:hidden;}
.cds-progress__fill{height:100%;background:var(--sys-color-surface-fill);border-radius:var(--sys-radius-indicator);
  transition:width var(--sys-motion-overlay) var(--sys-ease-standard);}
.cds-progress__fill--indeterminate{width:35% !important;animation:cds-progress-slide 1.1s ease-in-out infinite;}
@keyframes cds-progress-slide{0%{margin-left:-35%}100%{margin-left:100%}}
/* ===== surfaces/Accordion ===== */
.cds-accordion{font-family:var(--sys-font-family);border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);
  border-radius:var(--sys-radius-card);overflow:hidden;background:var(--sys-color-surface-input);}
.cds-accordion__item + .cds-accordion__item{border-top:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);}
.cds-accordion__btn{appearance:none;background:none;border:none;font-family:inherit;width:100%;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:var(--sys-space-16);text-align:left;
  padding:var(--sys-space-20) var(--sys-space-24);color:var(--sys-color-text-primary);
  transition:background var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-accordion__btn:hover{background:var(--sys-color-surface-raised);}
.cds-accordion__btn:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--sys-focus-ring-width) var(--sys-focus-ring-color);}
.cds-accordion__title{font-size:var(--sys-type-body-size);font-weight:var(--sys-weight-label);}
.cds-accordion__chevron{flex:none;color:var(--sys-color-text-secondary);transition:transform var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-accordion__chevron--open{transform:rotate(180deg);}
.cds-accordion__panel{padding:0 var(--sys-space-24) var(--sys-space-24);
  font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-secondary);line-height:var(--sys-type-body-s-line);}
/* ===== surfaces/Card ===== */
.cds-card{font-family:var(--sys-font-family);background:var(--sys-color-surface-input);
  border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);border-radius:var(--sys-radius-card);
  color:var(--sys-color-text-primary);transition:border-color var(--sys-motion-ui) var(--sys-ease-standard);display:block;text-decoration:none;}
.cds-card--raised{background:var(--sys-color-surface-raised);}
.cds-card--pad-sm{padding:var(--sys-space-16);}
.cds-card--pad-md{padding:var(--sys-space-24);}
.cds-card--pad-lg{padding:var(--sys-space-32);}
.cds-card--pad-none{padding:0;}
.cds-card--interactive{cursor:pointer;}
.cds-card--interactive:hover{border-color:var(--sys-color-border-strong);}
.cds-card--interactive:active{border-color:var(--sys-color-text-primary);}
.cds-card--interactive:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-card__eyebrow{font-size:var(--sys-type-overline-size);font-weight:var(--sys-weight-label);letter-spacing:var(--sys-type-overline-tracking);
  text-transform:uppercase;color:var(--sys-color-text-secondary);margin-bottom:var(--sys-space-12);}
.cds-card__header{display:flex;flex-direction:column;gap:var(--sys-space-8);}
.cds-card__title{font-size:var(--sys-type-h3-size);font-weight:var(--sys-weight-emphasis);letter-spacing:var(--sys-type-h3-tracking);line-height:var(--sys-type-h3-line);}
.cds-card__desc{font-size:var(--sys-type-body-s-size);line-height:var(--sys-type-body-s-line);color:var(--sys-color-text-secondary);}
.cds-card__content{}
.cds-card__footer{display:flex;align-items:center;gap:var(--sys-space-12);}
/* ===== surfaces/WorkCard ===== */
.cds-workcard{font-family:var(--sys-font-family);display:block;text-decoration:none;color:var(--sys-color-text-primary);
  background:var(--sys-color-surface-input);border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);
  border-radius:var(--sys-radius-card);overflow:hidden;transition:border-color var(--sys-motion-ui) var(--sys-ease-standard);}
.cds-workcard:hover{border-color:var(--sys-color-border-strong);}
.cds-workcard:focus-visible{outline:none;box-shadow:0 0 0 var(--sys-focus-ring-offset) var(--sys-focus-ring-gap-color),0 0 0 calc(var(--sys-focus-ring-offset) + var(--sys-focus-ring-width)) var(--sys-focus-ring-color);}
.cds-workcard__body{padding:var(--sys-space-20) var(--sys-space-24) var(--sys-space-24);}
.cds-workcard__eyebrow{font-size:var(--sys-type-overline-size);font-weight:var(--sys-type-overline-weight);letter-spacing:var(--sys-type-overline-tracking);
  text-transform:uppercase;color:var(--sys-color-text-secondary);margin-bottom:var(--sys-space-8);}
.cds-workcard__title{font-size:var(--sys-type-h3-size);font-weight:var(--sys-weight-emphasis);letter-spacing:var(--sys-type-h3-tracking);line-height:var(--sys-type-h3-line);}
.cds-workcard__meta{font-size:var(--sys-type-caption-size);color:var(--sys-color-text-secondary);line-height:var(--sys-type-caption-line);margin-top:var(--sys-space-8);}
/* ===== organisms/CTABlock ===== */
.cds-cta{font-family:var(--sys-font-family);container-type:inline-size;
  background:var(--sys-color-surface-fill);color:var(--sys-color-text-on-fill);
  border-radius:var(--sys-radius-card);padding:var(--sys-space-40) var(--sys-space-48);}
.cds-cta__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sys-space-32);}
.cds-cta__title{font-size:var(--sys-type-h2-size);font-weight:var(--sys-weight-display);letter-spacing:var(--sys-type-h2-tracking);line-height:var(--sys-type-h2-line);color:var(--sys-color-text-on-fill);}
.cds-cta__copy{font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-on-fill);opacity:var(--sys-opacity-muted);margin-top:var(--sys-space-8);max-width:440px;}
.cds-cta__action{flex:none;}
/* on the ink surface the default filled button inverts to a paper fill */
.cds-cta .cds-btn--default-v{background:var(--sys-color-surface-base);color:var(--sys-color-text-primary);border-color:var(--sys-color-surface-base);}
.cds-cta--stack .cds-cta__row{flex-direction:column;align-items:stretch;gap:var(--sys-space-24);}
.cds-cta--stack .cds-cta__action,.cds-cta--stack .cds-btn{width:100%;}
@container (max-width:639px){
  .cds-cta__row{flex-direction:column;align-items:stretch;gap:var(--sys-space-24);}
  .cds-cta__action,.cds-cta .cds-btn{width:100%;}
}
/* ===== organisms/DomainDemo ===== */
.cds-domain{font-family:var(--sys-font-family);container-type:inline-size;}
.cds-domain__note{font-size:var(--sys-type-overline-size);color:var(--sys-color-text-secondary);margin-bottom:var(--sys-space-16);
  display:flex;align-items:center;gap:var(--sys-space-8);}
.cds-domain__note b{color:var(--sys-color-text-primary);font-weight:var(--sys-weight-emphasis);}
.cds-domain__row{display:flex;gap:var(--sys-space-16);}
.cds-domain__item{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sys-space-12);flex:1;}
.cds-domain__sw{width:100%;aspect-ratio:1;border-radius:var(--sys-radius-card);
  display:flex;align-items:center;justify-content:center;}
.cds-domain__label{font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-emphasis);}
.cds-domain__cap{font-size:var(--sys-type-overline-size);color:var(--sys-color-text-secondary);}
.cds-domain--stack .cds-domain__row{flex-direction:column;gap:var(--sys-space-12);}
.cds-domain--stack .cds-domain__item{flex-direction:row;align-items:center;gap:var(--sys-space-16);flex:none;}
.cds-domain--stack .cds-domain__sw{width:var(--sys-space-56);aspect-ratio:1;flex:none;}
@container (max-width:639px){
  .cds-domain__row{flex-direction:column;gap:var(--sys-space-12);}
  .cds-domain__item{flex-direction:row;align-items:center;gap:var(--sys-space-16);flex:none;}
  .cds-domain__sw{width:var(--sys-space-56);aspect-ratio:1;flex:none;}
}
/* ===== organisms/SectionHeader ===== */
.cds-sh{font-family:var(--sys-font-family);container-type:inline-size;}
.cds-sh__top{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sys-space-24);}
.cds-sh__lead{display:flex;align-items:baseline;gap:var(--sys-space-16);}
.cds-sh__num{font-size:var(--sys-type-caption-size);font-weight:var(--sys-weight-emphasis);letter-spacing:var(--sys-type-overline-tracking);color:var(--sys-color-text-secondary);font-feature-settings:var(--sys-type-data-feature);flex:none;}
.cds-sh__title{font-size:var(--sys-type-h2-size);font-weight:var(--sys-type-h2-weight);letter-spacing:var(--sys-type-h2-tracking);line-height:var(--sys-type-h2-line);}
.cds-sh__copy{font-size:var(--sys-type-body-size);font-weight:var(--sys-type-body-weight);line-height:var(--sys-type-body-line);color:var(--sys-color-text-secondary);max-width:420px;}
.cds-sh--stack .cds-sh__top{flex-direction:column;align-items:flex-start;gap:var(--sys-space-12);}
@container (max-width:639px){
  .cds-sh__top{flex-direction:column;align-items:flex-start;gap:var(--sys-space-12);}
  .cds-sh__lead{flex-direction:column;gap:var(--sys-space-8);}
}
.cds-sh__copy-wrap{margin-top:var(--sys-space-16);}
.cds-sh__copy-wrap .cds-sh__copy{max-width:620px;}
/* ===== organisms/SignatureBlock ===== */
.cds-sig{font-family:var(--sys-font-family);width:fit-content;max-width:100%;box-sizing:border-box;
  background:var(--sys-color-surface-input);border:var(--sys-border-width-hairline) solid var(--sys-color-border-hairline);
  border-radius:var(--sys-radius-card);padding:var(--sys-space-24);}
.cds-sig--bare{background:transparent;border:none;border-radius:0;padding:0;}
.cds-sig__row{display:flex;align-items:center;gap:var(--sys-space-20);flex-wrap:wrap;}
.cds-sig__id{display:flex;align-items:center;gap:var(--sys-space-12);}
.cds-sig__name{font-size:var(--sys-type-body-s-size);font-weight:var(--sys-weight-emphasis);}
.cds-sig__role{font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-secondary);}
.cds-sig__sep{color:var(--sys-color-border-strong);}
.cds-sig__mail{font-size:var(--sys-type-body-s-size);color:var(--sys-color-text-primary);text-decoration:underline;text-underline-offset:var(--sys-space-4);text-decoration-color:var(--sys-color-border-strong);}
.cds-sig__mail:hover{text-decoration-color:var(--sys-color-text-primary);}
.cds-sig--stack{width:100%;}
.cds-sig--stack .cds-sig__row{flex-direction:column;align-items:flex-start;gap:var(--sys-space-8);}
.cds-sig--stack .cds-sig__sep{display:none;}
@media (max-width:639px){
  .cds-sig{width:100%;}
  .cds-sig__row{flex-direction:column;align-items:flex-start;gap:var(--sys-space-8);}
  .cds-sig__sep{display:none;}
}
