/*
  CSS Variables
*/
:root {
  color-scheme: light;
  --ff_body: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --ff_heading: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --ff_mono: Consolas, monaco, monospace;
  --fs_base: 16px;
  --fs_small: calc(0.6 * var(--fs_base));
  --fs_large: calc(1.5 * var(--fs_base));
  --fs_h6: var(--fs_base);
  --fs_h5: calc(1.25 * var(--fs_base));
  --fs_h4: calc(1.5 * var(--fs_base));
  --fs_h3: calc(1.75 * var(--fs_base));
  --fs_h2: calc(2 * var(--fs_base));
  --fs_h1: calc(2.5 * var(--fs_base));
  --fw_base: 400;
  --fw_bold: 700;
  --spacer: 1rem;
  --spacer_h: calc(0.5 * var(--spacer));
  --spacer_q: calc(0.25 * var(--spacer));
  --line-height: 1.35em;
  --container_width: 90rem;
  --animation_ms: 256ms;
  --radius: 0.25rem;
  --link_decoration: underline;
  --input_padding: var(--spacer_h) var(--spacer);
  --input_border_width: 1px;
  --btn_padding: var(--spacer_h) var(--spacer);
  
  /* Base colors — override these to theme the framework */
  --c_bg: light-dark(rgb(249, 249, 249), rgb(51, 51, 51));
  --c_overscroll: light-dark(rgb(255, 255, 255), rgb(0, 0, 0));
  --c_border: light-dark(rgb(204, 204, 204), rgb(119, 119, 119));
  --c_primary: rgb(51, 102, 255);
  --c_secondary: rgb(153, 51, 255);
  --c_success: rgb(0, 136, 0);
  --c_warning: rgb(255, 102, 0);
  --c_danger: rgb(255, 0, 51);
  --btn_bg: light-dark(rgb(221, 221, 221), rgb(170, 170, 170));
  --tc: light-dark(rgba(0, 0, 0, 0.93), rgba(255, 255, 255, 0.93));
  --tc_dark: rgba(0, 0, 0, 0.93);
  --tc_light: rgba(255, 255, 255, 0.93);
  --tc_muted: light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.5));
  --c_overlay: rgba(0, 0, 0, 0.5);
  /* Derived colors — computed from base colors above via relative oklch syntax */
  --c_bg__alt: oklch(from var(--c_bg) calc(l - 0.04) c h);
  --c_bg__inv: light-dark(oklch(from var(--c_bg) calc(l - 0.73) c h), oklch(from var(--c_bg) calc(l + 0.73) c h));
  --c_border__inv: light-dark(oklch(from var(--c_border) calc(l - 0.34) c h), oklch(from var(--c_border) calc(l + 0.34) c h));
  --c_primary__hover: oklch(from var(--c_primary) calc(l - 0.12) c h);
  --c_secondary__hover: oklch(from var(--c_secondary) calc(l - 0.12) c h);
  --c_success__hover: oklch(from var(--c_success) calc(l - 0.12) c h);
  --c_warning__hover: oklch(from var(--c_warning) calc(l - 0.12) c h);
  --c_danger__hover: oklch(from var(--c_danger) calc(l - 0.12) c h);
  --c_input_accent: var(--c_primary);
  --c_input_border: var(--c_border);
  --c_highlight: oklch(from var(--c_primary) l c h / 0.25);
  --tc_inv: light-dark(rgba(255, 255, 255, 0.93), rgba(0, 0, 0, 0.93));
  --tc_on_primary: rgba(255, 255, 255, 0.93);
  --tc_on_secondary: rgba(255, 255, 255, 0.93);
  --tc_on_success: rgba(255, 255, 255, 0.93);
  --tc_on_warning: rgba(255, 255, 255, 0.93);
  --tc_on_danger: rgba(255, 255, 255, 0.93);
  /* Brand text colors: use base in light mode, lighter+desaturated in dark for readability */
  --tc_primary: light-dark(var(--c_primary), oklch(from var(--c_primary) calc(l + 0.18) calc(c * 0.65) h));
  --tc_secondary: light-dark(var(--c_secondary), oklch(from var(--c_secondary) calc(l + 0.18) calc(c * 0.65) h));
  --tc_success: light-dark(var(--c_success), oklch(from var(--c_success) calc(l + 0.18) calc(c * 0.65) h));
  --tc_warning: light-dark(var(--c_warning), oklch(from var(--c_warning) calc(l + 0.18) calc(c * 0.65) h));
  --tc_danger: light-dark(var(--c_danger), oklch(from var(--c_danger) calc(l + 0.18) calc(c * 0.65) h));
  /* Inverse brand text colors: always the light/readable shade (for use on dark/inverted backgrounds) */
  --tc__inv: var(--tc_inv);
  --tc_primary__inv: oklch(from var(--c_primary) calc(l + 0.18) calc(c * 0.65) h);
  --tc_secondary__inv: oklch(from var(--c_secondary) calc(l + 0.18) calc(c * 0.65) h);
  --tc_success__inv: oklch(from var(--c_success) calc(l + 0.18) calc(c * 0.65) h);
  --tc_warning__inv: oklch(from var(--c_warning) calc(l + 0.18) calc(c * 0.65) h);
  --tc_danger__inv: oklch(from var(--c_danger) calc(l + 0.18) calc(c * 0.65) h);
  --btn_box_shadow: 0 0 0 transparent;
  --btn_box_shadow__hover: 0 0 0 transparent;
  --btn_border: transparent;
  --btn_bg__hover: oklch(from var(--btn_bg) calc(l - 0.08) c h);
  --btn_tc: rgba(0, 0, 0, 0.93);
  --btn_transparent__hover: light-dark(rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0.05));
  --tc_link: var(--tc_primary);
  --tc_link__hover: var(--tc_secondary);
  --tc_link__inv: var(--tc_primary__inv);
  --tc_link__inv__hover: var(--tc_secondary__inv);
  --focus_shadow: 0 0 2px 2px var(--c_primary);
  --focus_shadow_on_primary: 0 0 2px 2px var(--tc_on_primary);
  --input_bg: light-dark(white, var(--c_bg__alt));
  --input_tc: light-dark(rgba(0, 0, 0, 0.93), var(--tc));
  --date_picker_icon_filter: light-dark(invert(0), invert(1));
  /* Elevation System - Level 2 = page level (z-index 20); 0-1 = sunk; 3-10 = raised */
  --c_bg_elevation_0: oklch(from var(--c_bg) calc(l - 0.13) c h);
  --c_bg_elevation_1: light-dark(oklch(from var(--c_bg) calc(l - 0.065) c h), oklch(from var(--c_bg) calc(l - 0.10) c h));
  --c_bg_elevation_2: var(--c_bg);
  --c_bg_elevation_3: light-dark(oklch(from var(--c_bg) calc(l + 0.01) c h), oklch(from var(--c_bg) calc(l + 0.03) c h));
  --c_bg_elevation_4: light-dark(oklch(from var(--c_bg) calc(l + 0.02) c h), oklch(from var(--c_bg) calc(l + 0.06) c h));
  --c_bg_elevation_5: light-dark(oklch(from var(--c_bg) calc(l + 0.03) c h), oklch(from var(--c_bg) calc(l + 0.09) c h));
  --c_bg_elevation_6: light-dark(oklch(from var(--c_bg) calc(l + 0.04) c h), oklch(from var(--c_bg) calc(l + 0.13) c h));
  --c_bg_elevation_7: light-dark(oklch(from var(--c_bg) calc(l + 0.05) c h), oklch(from var(--c_bg) calc(l + 0.17) c h));
  --c_bg_elevation_8: light-dark(oklch(from var(--c_bg) calc(l + 0.06) c h), oklch(from var(--c_bg) calc(l + 0.21) c h));
  --c_bg_elevation_9: light-dark(oklch(from var(--c_bg) calc(l + 0.07) c h), oklch(from var(--c_bg) calc(l + 0.25) c h));
  --c_bg_elevation_10: light-dark(oklch(from var(--c_bg) calc(l + 0.08) c h), oklch(from var(--c_bg) calc(l + 0.31) c h));
  /* Shadow config — override these to customize elevation shadows */
  --shadow_color: black;
  --shadow_size: 1px;
  --shadow_base_opacity: 0.12;
  --shadow_opacity_step: 0.04;
  /* Computed shadows — derived from shadow config vars above */
  --shadow_0: inset 0 calc(var(--shadow_size) * 2) calc(var(--shadow_size) * 6) oklch(from var(--shadow_color) l c h / calc(var(--shadow_base_opacity) * 2)), inset 0 calc(var(--shadow_size)) calc(var(--shadow_size) * 3) oklch(from var(--shadow_color) l c h / calc(var(--shadow_base_opacity) * 1.5));
  --shadow_1: inset 0 calc(var(--shadow_size)) calc(var(--shadow_size) * 3) oklch(from var(--shadow_color) l c h / calc(var(--shadow_base_opacity) * 1.25)), inset 0 calc(var(--shadow_size)) calc(var(--shadow_size) * 2) oklch(from var(--shadow_color) l c h / calc(var(--shadow_base_opacity) * 0.75));
  --shadow_3: 0 calc(var(--shadow_size)) calc(var(--shadow_size) * 2) oklch(from var(--shadow_color) l c h / var(--shadow_base_opacity));
  --shadow_4: 0 calc(var(--shadow_size) * 2) calc(var(--shadow_size) * 4) oklch(from var(--shadow_color) l c h / calc(var(--shadow_base_opacity) + var(--shadow_opacity_step)));
  --shadow_5: 0 calc(var(--shadow_size) * 3) calc(var(--shadow_size) * 6) oklch(from var(--shadow_color) l c h / calc(var(--shadow_base_opacity) + var(--shadow_opacity_step) * 2));
  --shadow_6: var(--shadow_5);
  --shadow_7: var(--shadow_5);
  --shadow_8: var(--shadow_5);
  --shadow_9: var(--shadow_5);
  --shadow_10: var(--shadow_5);
}
[theme="light"] {
  color-scheme: light;
}

[theme="dark"] {
  color-scheme: dark;
  --shadow_base_opacity: 0.30;
  --shadow_opacity_step: 0.025;
}

[theme="auto"] {
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  [theme="auto"] {
    --shadow_base_opacity: 0.30;
    --shadow_opacity_step: 0.025;
  }
}

/*
  Base / Reset
*/
:root {
  interpolate-size: allow-keywords;
}
*, *::before, *::after {
  font-family: inherit;
  box-sizing: border-box;
  line-height: var(--line-height);
}
body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dd, dt, blockquote, pre, code {
  margin: 0;
  padding: 0.1px;
}
html {
  font-family: var(--ff_body);
  font-size: var(--fs_base);
  font-weight: var(--fw_base);
  color: var(--tc);
  scrollbar-gutter: stable;
}
::selection {
  background: var(--c_highlight);
}
body {
  min-height: 100vh;
  background-color: var(--c_bg);
  color: var(--tc);
  overflow-y: scroll;
  font-family: var(--ff_body);
  position: relative;
}
body.no-scroll {
 overflow: hidden !important; 
}
main, .container {
  max-width: var(--container_width);
  margin-left: auto;
  margin-right: auto;
  padding-top: var(--spacer);
  padding-left: var(--spacer);
  padding-right: var(--spacer);
}
nav > a,
nav > .link {
  display: inline-block;
  padding: var(--spacer) !important;
  text-decoration: none;
}
menu {
  margin: 0;
  padding: 0;
}
menu a {
  display: block;
  padding: var(--spacer_q);
  text-decoration: none;
  color: inherit;
}
summary {
  cursor: pointer;
  margin-bottom: var(--sapcer);
  outline: none;
  box-shadow: 0 0 0 transparent;
  transition: box-shadow var(--animation_ms);
  border-radius: var(--radius);
}
summary:focus {
  box-shadow: var(--focus_shadow);
}

/*
  Display / Flex
*/
.d-b { display: block !important }
.d-ib { display: inline-block !important }
.d-g { display: grid !important }
.d-i { display: inline !important }
.d-n { display: none !important }
.d-f {
  display: flex !important;
  flex-wrap: wrap;
}
.d-if {
  display: inline-flex !important;
  flex-wrap: wrap;
}
@media (min-width: 1024px){
  .d-d-b { display: block !important }
  .d-d-ib { display: inline-block !important }
  .d-d-g { display: grid !important }
  .d-d-i { display: inline !important }
  .d-d-n { display: none !important }
  .d-d-f {
    display: flex !important;
    flex-wrap: wrap;
  }
  .d-d-if {
    display: inline-flex !important;
    flex-wrap: wrap;
  }
}
@media (min-width: 769px) and (max-width: 1023px) {
  .t-d-b { display: block !important }
  .t-d-ib { display: inline-block !important }
  .t-d-g { display: grid !important }
  .t-d-i { display: inline !important }
  .t-d-n { display: none !important }
  .t-d-f {
    display: flex !important;
    flex-wrap: wrap;
  }
  .t-d-if {
    display: inline-flex !important;
    flex-wrap: wrap;
  }
}
@media (max-width: 768px) {
  .m-d-b { display: block !important }
  .m-d-ib { display: inline-block !important }
  .m-d-g { display: grid !important }
  .m-d-i { display: inline !important }
  .m-d-n { display: none !important }
  .m-d-f {
    display: flex !important;
    flex-wrap: wrap;
  }
  .m-d-if {
    display: inline-flex !important;
    flex-wrap: wrap;
  }
}
.flex, .flex-1 { flex: 1 1 auto }
.flex-0 { flex: 0 0 }
.flex-2 { flex: 2 2 auto }
.flex-3 { flex: 3 3 auto }
.flex-4 { flex: 4 4 auto }
.flex-5 { flex: 5 5 auto }
.flex-6 { flex: 6 6 auto }
.flex-7 { flex: 7 7 auto }
.flex-8 { flex: 8 8 auto }
.flex-9 { flex: 9 9 auto }
.flex-10 { flex: 10 10 auto }
@media (min-width: 1024px){
  .d-d-b { display: block !important }
  .d-d-ib { display: inline-block !important }
  .d-d-g { display: grid !important }
  .d-d-i { display: inline !important }
  .d-d-n { display: none !important }
  .d-d-if {
    display: inline-flex !important;
    flex-wrap: wrap;
  }
  .d-d-f {
    display: flex !important;
    flex-wrap: wrap;
  }
  .d-flex, .d-flex-1 { flex: 1 1 auto }
  .d-flex-0 { flex: 0 0 }
  .d-flex-2 { flex: 2 2 auto }
  .d-flex-3 { flex: 3 3 auto }
  .d-flex-4 { flex: 4 4 auto }
  .d-flex-5 { flex: 5 5 auto }
  .d-flex-6 { flex: 6 6 auto }
  .d-flex-7 { flex: 7 7 auto }
  .d-flex-8 { flex: 8 8 auto }
  .d-flex-9 { flex: 9 9 auto }
  .d-flex-10 { flex: 10 10 auto }
}
@media (min-width: 769px) and (max-width: 1023px) {
  .t-d-b { display: block !important }
  .t-d-ib { display: inline-block !important }
  .t-d-g { display: grid !important }
  .t-d-i { display: inline !important }
  .t-d-n { display: none !important }
  .t-d-if {
    display: inline-flex !important;
    flex-wrap: wrap;
  }
  .t-d-f {
    display: flex !important;
    flex-wrap: wrap;
  }
  .t-flex, .t-flex-1 { flex: 1 1 auto }
  .t-flex-0 { flex: 0 0 }
  .t-flex-2 { flex: 2 2 auto }
  .t-flex-3 { flex: 3 3 auto }
  .t-flex-4 { flex: 4 4 auto }
  .t-flex-5 { flex: 5 5 auto }
  .t-flex-6 { flex: 6 6 auto }
  .t-flex-7 { flex: 7 7 auto }
  .t-flex-8 { flex: 8 8 auto }
  .t-flex-9 { flex: 9 9 auto }
  .t-flex-10 { flex: 10 10 auto }
}
@media (max-width: 768px) {
  .m-d-b { display: block !important }
  .m-d-ib { display: inline-block !important }
  .m-d-g { display: grid !important }
  .m-d-i { display: inline !important }
  .m-d-n { display: none !important }
  .m-d-if {
    display: inline-flex !important;
    flex-wrap: wrap;
  }
  .m-d-f {
    display: flex !important;
    flex-wrap: wrap;
  }
  .m-flex, .m-flex-1 { flex: 1 1 auto }
  .m-flex-0 { flex: 0 0 }
  .m-flex-2 { flex: 2 2 auto }
  .m-flex-3 { flex: 3 3 auto }
  .m-flex-4 { flex: 4 4 auto }
  .m-flex-5 { flex: 5 5 auto }
  .m-flex-6 { flex: 6 6 auto }
  .m-flex-7 { flex: 7 7 auto }
  .m-flex-8 { flex: 8 8 auto }
  .m-flex-9 { flex: 9 9 auto }
  .m-flex-10 { flex: 10 10 auto }
}

.fixed {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 99;
  box-shadow: none;
  transition: box-shadow var(--animation_ms);
}
.fixed.scrolled {
  box-shadow: var(--elevation_2_shadow);
}
k-nav[fixed] {
  box-shadow: none;
  transition: box-shadow var(--animation_ms);
}
k-nav[fixed].scrolled {
  box-shadow: var(--elevation_2_shadow);
}

/*
  Typography
*/
.small,
small {
  font-size: var(--fs_small) !important;
}
.large {
  font-size: var(--fs_large) !important;
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
b, strong {
  font-weight: var(--fw_bold);
}
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--ff_heading);
}
.h1, h1 { font-size: var(--fs_h1) }
.h2, h2 { font-size: var(--fs_h2) }
.h3, h3 { font-size: var(--fs_h3) }
.h4, h4 { font-size: var(--fs_h4) }
.h5, h5 { font-size: var(--fs_h5) }
.h6, h6 { font-size: var(--fs_h6) }
p, h1, h2, h3, h4, h5, h6, blockquote, ul, ol, dl, pre, hr, dd {
  margin-bottom: var(--spacer);
}
ul, ol, dl {
  padding-left: calc(1.5 * var(--spacer));
}
blockquote {
  border-left: 2px solid var(--c_border);
  padding: var(--spacer);
}
mark {
  background-color: var(--c_highlight);
  color: inherit;
}
.ff-mono, pre, code {
  font-family: var(--ff_mono);
}
code {
  background-color: var(--c_bg__alt);
  border-radius: var(--radius);
  word-break: break-word;
  padding: calc(0.125 * var(--spacer)) var(--spacer_q);
}
pre code {
  display: block;
  padding: var(--spacer);
  word-break: normal;
  overflow: auto;
  white-space: pre-wrap;
}
output {
  display: block;
  border: 1px solid var(--c_border);
  border-radius: var(--radius);
  padding: var(--spacer) var(--spacer) 0 var(--spacer);
}
.ta-left { text-align: left }
.ta-center { text-align: center }
.ta-right { text-align: right }
a,
.link {
  color: var(--tc_link);
  box-shadow: 0 0 0 transparent;
  transition: color var(--animation_ms), box-shadow var(--animation_ms);
  outline: none;
  border-radius: var(--radius);
  text-decoration: var(--link_decoration);
}
a:hover,
.link:hover {
  color: var(--tc_link__hover);
}
a:focus,
.link:focus-visible {
  box-shadow: var(--focus_shadow);
}
.no-link,
.no-link:hover {
  text-decoration: none;
  color: inherit;
}
hr {
  border: none;
  border-top: 1px solid var(--c_border);
}
small {
  font-size: 0.75em;
}
dl {
  padding: 0;
  margin: 0;
}
dt, dd {
  padding-left: var(--spacer);
  border-left: 2px solid var(--c_border);
}
dt {
  padding-top: var(--spacer_h);
}
dd {
  padding-bottom: var(--spacer_h);
}
dd + dd {
  margin-top: calc(-1 * var(--spacer));
  padding-top: 0;
}
li ul {
  margin-bottom: 0;
}
.td-n {
  text-decoration: none;
}
.td-u {
  text-decoration: underline;
}
.td-lt {
  text-decoration: line-through;
}

/*
  Spacing, Borders and Radius
*/
.p { padding: var(--spacer) !important }
.ph { padding: var(--spacer_h) !important }
.pq { padding: var(--spacer_q) !important }
.p0 { padding: 0.1px  !important }
.pt, .py { padding-top: var(--spacer) !important }
.pr, .px { padding-right: var(--spacer) !important }
.pb, .py { padding-bottom: var(--spacer) !important }
.pl, .px { padding-left: var(--spacer) !important }
.pth, .pyh { padding-top: var(--spacer_h) !important }
.prh, .pxh { padding-right: var(--spacer_h) !important }
.pbh, .pyh { padding-bottom: var(--spacer_h) !important }
.plh, .pxh { padding-left: var(--spacer_h) !important }
.ptq, .pyq { padding-top: var(--spacer_q) !important }
.prq, .pxq { padding-right: var(--spacer_q) !important }
.pbq, .pyq { padding-bottom: var(--spacer_q) !important }
.plq, .pxq { padding-left: var(--spacer_q) !important }
.pt0, .py0 { padding-top: 0.1px !important }
.pr0, .px0 { padding-right: 0.1px !important }
.pb0, .py0 { padding-bottom: 0.1px !important }
.pl0, .px0 { padding-left: 0.1px !important }

.m { margin: var(--spacer) !important }
.mh { margin: var(--spacer_h) !important }
.mq { margin: var(--spacer_q) !important }
.m0 { margin: 0 !important }
.-m { margin: calc(-1 * var(--spacer)) !important }
.mt, .my { margin-top: var(--spacer) !important }
.mr, .mx { margin-right: var(--spacer) !important }
.mb, .my { margin-bottom: var(--spacer) !important }
.ml, .mx { margin-left: var(--spacer) !important }
.mth, .myh { margin-top: var(--spacer_h) !important }
.mrh, .mxh { margin-right: var(--spacer_h) !important }
.mbh, .myh { margin-bottom: var(--spacer_h) !important }
.mlh, .mxh { margin-left: var(--spacer_h) !important }
.mtq, .myq { margin-top: var(--spacer_q) !important }
.mrq, .mxq { margin-right: var(--spacer_q) !important }
.mbq, .myq { margin-bottom: var(--spacer_q) !important }
.mlq, .mxq { margin-left: var(--spacer_q) !important }
.mt0, .my0 { margin-top: 0 !important }
.mr0, .mx0 { margin-right: 0 !important }
.mb0, .my0 { margin-bottom: 0 !important }
.ml0, .mx0 { margin-left: 0 !important }
.-mt, .-my { margin-top: calc(-1 * var(--spacer)) !important }
.-mr, .-mx { margin-right: calc(-1 * var(--spacer)) !important }
.-mb, .-my { margin-bottom: calc(-1 * var(--spacer)) !important }
.-ml, .-mx { margin-left: calc(-1 * var(--spacer)) !important }
.b { border: 1px solid var(--c_border) !important }
.b0 { border: none !important }
.bt, .by { border-top: 1px solid var(--c_border) !important }
.br, .bx { border-right: 1px solid var(--c_border) !important }
.bb, .by { border-bottom: 1px solid var(--c_border) !important }
.bl, .bx { border-left: 1px solid var(--c_border) !important }
.bt0, .by0 { border-top: none !important }
.br0, .bx0 { border-right: none !important }
.bb0, .by0 { border-bottom: none !important }
.bl0, .bx0 { border-left: none !important }
.r { border-radius: var(--radius) !important }
.r0 { border-radius: 0 !important }
.round { border-radius: 9999rem !important }
.rtl, .rt, .rl { border-top-left-radius: var(--radius) !important }
.rtr, .rt, .rr { border-top-right-radius: var(--radius) !important }
.rbr, .rb, .rr { border-bottom-right-radius: var(--radius) !important }
.rbl, .rb, .rl { border-bottom-left-radius: var(--radius) !important }
.rtl0, .rt0, .rl0 { border-top-left-radius: 0 !important }
.rtr0, .rt0, .rr0 { border-top-right-radius: 0 !important }
.rbr0, .rb0, .rr0 { border-bottom-right-radius: 0 !important }
.rbl0, .rb0, .rl0 { border-bottom-left-radius: 0 !important }


/*
  Rows and Columns
*/
.row {
  display: flex;
  flex-wrap: wrap;
}
.col{ flex: 1 1 }
.span-1{min-width:8.333%;flex-basis:8.333%}
.span-2{min-width:16.666%;flex-basis:16.666%}
.span-3{min-width:25%;flex-basis:25%}
.span-4{min-width:33.333%;flex-basis:33.333%}
.span-5{min-width:41.666%;flex-basis:41.666%}
.span-6{min-width:50%;flex-basis:50%}
.span-7{min-width:58.333%;flex-basis:58.333%}
.span-8{min-width:66.666%;flex-basis:66.666%}
.span-9{min-width:75%;flex-basis:75%}
.span-10{min-width:83.333%;flex-basis:83.333%}
.span-11{min-width:91.333%;flex-basis:91.333%}
.span-12{min-width:100%;flex-basis:100%}
@media (min-width: 1024px){
  .d-span-1{min-width:8.333%;flex-basis:8.333%}
  .d-span-2{min-width:16.666%;flex-basis:16.666%}
  .d-span-3{min-width:25%;flex-basis:25%}
  .d-span-4{min-width:33.333%;flex-basis:33.333%}
  .d-span-5{min-width:41.666%;flex-basis:41.666%}
  .d-span-6{min-width:50%;flex-basis:50%}
  .d-span-7{min-width:58.333%;flex-basis:58.333%}
  .d-span-8{min-width:66.666%;flex-basis:66.666%}
  .d-span-9{min-width:75%;flex-basis:75%}
  .d-span-10{min-width:83.333%;flex-basis:83.333%}
  .d-span-11{min-width:91.333%;flex-basis:91.333%}
  .d-span-12{min-width:100%;flex-basis:100%}
}
@media (min-width: 769px) and (max-width: 1023px) {
  .t-span-1{min-width:8.333%;flex-basis:8.333%}
  .t-span-2{min-width:16.666%;flex-basis:16.666%}
  .t-span-3{min-width:25%;flex-basis:25%}
  .t-span-4{min-width:33.333%;flex-basis:33.333%}
  .t-span-5{min-width:41.666%;flex-basis:41.666%}
  .t-span-6{min-width:50%;flex-basis:50%}
  .t-span-7{min-width:58.333%;flex-basis:58.333%}
  .t-span-8{min-width:66.666%;flex-basis:66.666%}
  .t-span-9{min-width:75%;flex-basis:75%}
  .t-span-10{min-width:83.333%;flex-basis:83.333%}
  .t-span-11{min-width:91.333%;flex-basis:91.333%}
  .t-span-12{min-width:100%;flex-basis:100%}
}
@media (max-width: 768px) {
  .m-span-1{min-width:8.333%;flex-basis:8.333%}
  .m-span-2{min-width:16.666%;flex-basis:16.666%}
  .m-span-3{min-width:25%;flex-basis:25%}
  .m-span-4{min-width:33.333%;flex-basis:33.333%}
  .m-span-5{min-width:41.666%;flex-basis:41.666%}
  .m-span-6{min-width:50%;flex-basis:50%}
  .m-span-7{min-width:58.333%;flex-basis:58.333%}
  .m-span-8{min-width:66.666%;flex-basis:66.666%}
  .m-span-9{min-width:75%;flex-basis:75%}
  .m-span-10{min-width:83.333%;flex-basis:83.333%}
  .m-span-11{min-width:91.333%;flex-basis:91.333%}
  .m-span-12{min-width:100%;flex-basis:100%}
}

.cols-2 { grid-template-columns: repeat(2, 1fr); }
.cols-3 { grid-template-columns: repeat(3, 1fr); }
.cols-4 { grid-template-columns: repeat(4, 1fr); }
.cols-5 { grid-template-columns: repeat(5, 1fr); }
.cols-6 { grid-template-columns: repeat(6, 1fr); }
.cols-7 { grid-template-columns: repeat(7, 1fr); }
.cols-8 { grid-template-columns: repeat(8, 1fr); }
.cols-9 { grid-template-columns: repeat(9, 1fr); }
.cols-10 { grid-template-columns: repeat(10, 1fr); }
@media (min-width: 1024px){
  .d-cols-2 { grid-template-columns: repeat(2, 1fr); }
  .d-cols-3 { grid-template-columns: repeat(3, 1fr); }
  .d-cols-4 { grid-template-columns: repeat(4, 1fr); }
  .d-cols-5 { grid-template-columns: repeat(5, 1fr); }
  .d-cols-6 { grid-template-columns: repeat(6, 1fr); }
  .d-cols-7 { grid-template-columns: repeat(7, 1fr); }
  .d-cols-8 { grid-template-columns: repeat(8, 1fr); }
  .d-cols-9 { grid-template-columns: repeat(9, 1fr); }
  .d-cols-10 { grid-template-columns: repeat(10, 1fr); }
}
@media (min-width: 769px) and (max-width: 1023px) {
  .t-cols-2 { grid-template-columns: repeat(2, 1fr); }
  .t-cols-3 { grid-template-columns: repeat(3, 1fr); }
  .t-cols-4 { grid-template-columns: repeat(4, 1fr); }
  .t-cols-5 { grid-template-columns: repeat(5, 1fr); }
  .t-cols-6 { grid-template-columns: repeat(6, 1fr); }
  .t-cols-7 { grid-template-columns: repeat(7, 1fr); }
  .t-cols-8 { grid-template-columns: repeat(8, 1fr); }
  .t-cols-9 { grid-template-columns: repeat(9, 1fr); }
  .t-cols-10 { grid-template-columns: repeat(10, 1fr); }
}
@media (max-width: 768px) {
  .m-cols-2 { grid-template-columns: repeat(2, 1fr); }
  .m-cols-3 { grid-template-columns: repeat(3, 1fr); }
  .m-cols-4 { grid-template-columns: repeat(4, 1fr); }
  .m-cols-5 { grid-template-columns: repeat(5, 1fr); }
  .m-cols-6 { grid-template-columns: repeat(6, 1fr); }
  .m-cols-7 { grid-template-columns: repeat(7, 1fr); }
  .m-cols-8 { grid-template-columns: repeat(8, 1fr); }
  .m-cols-9 { grid-template-columns: repeat(9, 1fr); }
  .m-cols-10 { grid-template-columns: repeat(10, 1fr); }
}

/*
  Buttons
*/
button:not(.no-btn):not(.no-style),
.btn,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  display: inline-block;
  padding: var(--btn_padding);
  background-color: var(--btn_bg);
  border: 1px solid var(--btn_border);
  cursor: pointer;
  outline: none;
  border-radius: var(--radius);
  color: var(--btn_tc);
  transition: background-color var(--animation_ms), box-shadow var(--animation_ms);
  text-decoration: none;
  box-shadow: var(--btn_box_shadow);
  font-size: inherit;
  vertical-align: middle;
}
button:not(.no-btn):not(.no-style):not(:disabled):not(.link):hover,
.btn:not(:disabled):not(.link):hover,
input[type="button"]:not(:disabled):hover,
input[type="submit"]:not(:disabled):hover,
input[type="reset"]:not(:disabled):hover {
  background-color: var(--btn_bg__hover);
  color: var(--btn_tc);
  box-shadow: var(--btn_box_shadow__hover);
}
button:not(.no-btn):not(.no-style):not(:disabled):not(.link):focus,
.btn:not(:disabled):not(.link):focus,
input[type="button"]:not(:disabled):focus,
input[type="submit"]:not(:disabled):focus,
input[type="reset"]:not(:disabled):focus {
  box-shadow: var(--btn_box_shadow__hover), var(--focus_shadow);
  z-index: 1;
}
button:not(.no-btn):not(.no-style):disabled,
.btn[disabled],
input[type="button"]:disabled,
input[type="submit"]:disabled,
input[type="reset"]:disabled {
  opacity: 0.6;
}
button:not(.no-btn).primary,
.btn.primary,
input[type="button"].primary,
input[type="submit"].primary,
input[type="reset"].primary {
  background-color: var(--c_primary) !important;
  --btn_tc: var(--tc_on_primary);
}
button:not(.no-btn).primary:not(:disabled):hover,
.btn.primary:not(:disabled):hover,
input[type="button"].primary:not(:disabled):hover,
input[type="submit"].primary:not(:disabled):hover,
input[type="reset"].primary:not(:disabled):hover {
  background-color: var(--c_primary__hover) !important;
}
button:not(.no-btn).secondary,
.btn.secondary,
input[type="button"].secondary,
input[type="submit"].secondary,
input[type="reset"].secondary {
  background-color: var(--c_secondary) !important;
  --btn_tc: var(--tc_on_secondary);
}
button:not(.no-btn).secondary:not(:disabled):hover,
.btn.secondary:not(:disabled):hover,
input[type="button"].secondary:not(:disabled):hover,
input[type="submit"].secondary:not(:disabled):hover,
input[type="reset"].secondary:not(:disabled):hover {
  background-color: var(--c_secondary__hover) !important;
}
button:not(.no-btn).success,
.btn.success,
input[type="button"].success,
input[type="submit"].success,
input[type="reset"].success {
  background-color: var(--c_success) !important;
  --btn_tc: var(--tc_on_success);
}
button:not(.no-btn).success:not(:disabled):hover,
.btn.success:not(:disabled):hover,
input[type="button"].success:not(:disabled):hover,
input[type="submit"].success:not(:disabled):hover,
input[type="reset"].success:not(:disabled):hover {
  background-color: var(--c_success__hover) !important;
}
button:not(.no-btn).warning,
.btn.warning,
input[type="button"].warning,
input[type="submit"].warning,
input[type="reset"].warning {
  background-color: var(--c_warning) !important;
  --btn_tc: var(--tc_on_warning);
}
button:not(.no-btn).warning:not(:disabled):hover,
.btn.warning:not(:disabled):hover,
input[type="button"].warning:not(:disabled):hover,
input[type="submit"].warning:not(:disabled):hover,
input[type="reset"].warning:not(:disabled):hover {
  background-color: var(--c_warning__hover) !important;
}
button:not(.no-btn).danger,
.btn.danger,
input[type="button"].danger,
input[type="submit"].danger,
input[type="reset"].danger {
  background-color: var(--c_danger) !important;
  --btn_tc: var(--tc_on_danger);
}
button:not(.no-btn).danger:not(:disabled):hover,
.btn.danger:not(:disabled):hover,
input[type="button"].danger:not(:disabled):hover,
input[type="submit"].danger:not(:disabled):hover,
input[type="reset"].danger:not(:disabled):hover {
  background-color: var(--c_danger__hover) !important;
}
button:not(.no-btn):not(.no-style).link,
.btn.link,
input[type="button"].link,
input[type="submit"].link,
input[type="reset"].link {
  background-color: transparent;
  color: inherit;
  box-shadow: 0 0 0 transparent;
  border: none;
  padding: 0.1px;
  font-size: inherit;
}
.btn-grp {
  display: inline-flex;
}
.btn-grp button:not(.no-btn):not(:first-child),
.btn-grp .btn:not(:first-child),
.btn-grp input[type="button"]:not(:first-child),
.btn-grp input[type="submit"]:not(:first-child),
.btn-grp input[type="reset"]:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  border-left: 1px solid rgba(0, 0, 0, 0.25);
}
.btn-grp button:not(.no-btn):not(:last-child),
.btn-grp .btn:not(:last-child),
.btn-grp input[type="button"]:not(:last-child),
.btn-grp input[type="submit"]:not(:last-child),
.btn-grp input[type="reset"]:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.no-btn {
  display: inline;
  border: none;
  background-color: transparent;
  padding: 0;
  font-size: inherit;
  font-family: inherit;
  cursor: pointer;
  outline: none;
  box-shadow: 0 0 0 transparent;
  transition: box-shadow var(--animation_ms);
  border-radius: 0;
  text-align: left;
  color: inherit;
}
.no-btn:not(:disabled):focus {
  box-shadow: var(--focus_shadow);
}
.full {
  display: block;
  width: 100%;
}

/*
  Forms
*/
input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="radio"]):not([type="checkbox"]),
select,
textarea {
  display: block;
  width: 100%;
  background-color: var(--input_bg);
  color: var(--input_tc);
  border: var(--input_border_width) solid var(--c_input_border);
  padding: var(--input_padding);
  border-radius: var(--radius);
  outline: none;
  transition: box-shadow var(--animation_ms);
}
input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="radio"]):not([type="checkbox"]):not(:disabled):focus,
select:not(:disabled):focus,
textarea:not(:disabled):focus,
input[type="checkbox"]:not(:disabled):focus,
input[type="radio"]:not(:disabled):focus {
  box-shadow: var(--focus_shadow);
}
input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="radio"]):not([type="checkbox"]):disabled,
select:disabled,
textarea:disabled,
input[type="checkbox"]:disabled,
input[type="radio"]:disabled {
  opacity: 0.6;
}
textarea,
select[multiple] {
  resize: vertical;
  max-height: 75vh;
  height: 6rem;
  min-height: 4rem;
}
select[multiple] {
  height: 8rem;
}
select {
  cursor: pointer;
}
label {
  display: block;
  cursor: pointer;
  padding-bottom: var(--spacer_h);
}
label.checkbox,
label.radio {
  display: inline-block;
  vertical-align: middle;
  width: calc(100% - 2em - (2 * var(--spacer_h)) - 6px);
}
input[type="checkbox"],
input[type="radio"] {
  display: inline-block;
  width: 1em;
  height: 1em;
  cursor: pointer;
  vertical-align: middle;
  accent-color: var(--c_input_accent);
  margin: var(--spacer_q) var(--spacer_h);
  transition: background-color var(--animation_ms), color var(--animation_ms), box-shadow var(--animation_ms);
}
input[type="checkbox"] {
  width: 1.75em;
  height: 1.75em;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  border: 2px solid var(--c_border);
  border-radius: var(--radius);
  vertical-align: -0.5em;
  position: relative;
}
input[type="checkbox"]::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: calc(var(--radius) - 2px);
  background-color: transparent;
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="200 -760 560 560"><path d="m424-312 282-282-56-56-226 226-114-114-56 56 170 170Z"/></svg>');
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="200 -760 560 560"><path d="m424-312 282-282-56-56-226 226-114-114-56 56 170 170Z"/></svg>');
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-position: center;
  -webkit-mask-position: center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  transition: background-color var(--animation_ms);
}
input[type="checkbox"]:focus {
  box-shadow: var(--focus_shadow);
  outline: none;
}
input[type="checkbox"]:checked {
  background-color: var(--c_primary);
  border-color: var(--c_primary);
}
input[type="checkbox"]:checked::before {
  background-color: var(--tc_on_primary);
}
input[type="radio"] {
  width: 1.75em;
  height: 1.75em;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  border: 2px solid var(--c_border);
  border-radius: 50%;
  vertical-align: -0.5em;
}
input[type="radio"]:focus {
  box-shadow: var(--focus_shadow);
  outline: none;
}
input[type="radio"]:checked {
  border-color: var(--c_primary);
  background: radial-gradient(circle, var(--c_primary) 40%, transparent 45%);
}
select option {
  padding: var(--spacer_h) var(--spacer);
  background-color: var(--input_bg);
  color: var(--input_tc);
}
select[multiple] {
  padding: 0.1px;
}
select[multiple] option {
  padding: var(--spacer_h) var(--spacer);
}
input[type="color"] {
  padding: 0 !important;
  height: 2.35em;
}
input[type="color"]::-webkit-color-swatch-wrapper {
  padding: 0;
}
input[type="color"]::-webkit-color-swatch {
  border-radius: var(--radius, 0.25rem);
  cursor: pointer;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator,
input[type="search"]::-webkit-search-cancel-button {
  filter: var(--date_picker_icon_filter);
}

/*
  Tables
*/
.table-wrapper {
  overflow-x: auto;
}
table {
  width: 100%;
  border-spacing: 0;
}
th {
  font-weight: var(--fw_bold);
  text-align: left;
  background-color: var(--c_bg__alt);
  border-top: 1px solid var(--c_border);
}
th, td {
  padding: var(--spacer_h) var(--spacer);
  border-bottom: 1px solid var(--c_border);
  border-left: 1px solid var(--c_border);
}
th:last-child,
td:last-child {
  border-right: 1px solid var(--c_border);
}
th:first-child {
  border-top-left-radius: var(--radius);
}
th:last-child {
  border-top-right-radius: var(--radius);
}
tr:last-child td:first-child {
  border-bottom-left-radius: var(--radius);
}
tr:last-child td:last-child {
  border-bottom-right-radius: var(--radius);
}

/*
  Colors
*/
.bg-default {
  background-color: var(--c_bg) !important;
  color: var(--tc) !important;
}
.bg-alt {
  background-color: var(--c_bg__alt) !important;
  color: var(--tc) !important;
}
.bg-inv {
  --c_primary: var(--c_primary__inv);
  --c_primary__hover: var(--c_primary__inv__hover);
  --c_secondary: var(--c_secondary__inv);
  --c_secondary__hover: var(--c_secondary__inv__hover);
  --c_success: var(--c_success__inv);
  --c_success__hover: var(--c_success__inv__hover);
  --c_warning: var(--c_warning__inv);
  --c_warning__hover: var(--c_warning__inv__hover);
  --c_danger: var(--c_danger__inv);
  --c_danger__hover: var(--c_danger__inv__hover);
  --tc_link: var(--tc_link__inv);
  --tc_link__hover: var(--tc_link__inv__hover);
  background-color: var(--c_bg__inv) !important;
  color: var(--tc_inv) !important;
}
.bg-primary {
  --tc_link: var(--tc_on_primary);
  --tc_link__hover: var(--tc_on_primary);
  --c_border: var(--tc_on_primary);

  background-color: var(--c_primary) !important;
  color: var(--tc_on_primary) !important;
  --focus_shadow: var(--focus_shadow_on_primary);
}
.bg-secondary {
  --tc_link: var(--tc_on_secondary);
  --tc_link__hover: var(--tc_on_secondary);
  
  background-color: var(--c_secondary) !important;
  color: var(--tc_on_secondary) !important;
}
.bg-success {
  --tc_link: var(--tc_on_success);
  --tc_link__hover: var(--tc_on_success);
  
  background-color: var(--c_success) !important;
  color: var(--tc_on_success) !important;
}
.bg-warning {
  --tc_link: var(--tc_on_warning);
  --tc_link__hover: var(--tc_on_warning);
  
  background-color: var(--c_warning) !important;
  color: var(--tc_on_warning) !important;
}
.bg-danger {
  --tc_link: var(--tc_on_danger);
  --tc_link__hover: var(--tc_on_danger);
  
  background-color: var(--c_danger) !important;
  color: var(--tc_on_danger) !important;
}
.tc-default {
  color: var(--tc) !important;
}
.tc-inv {
  color: var(--tc__inv) !important;
}
.tc-primary {
  color: var(--tc_primary) !important;
}
.is-inv .tc-primary,
.bg-inv .tc-primary {
  color: var(--tc_primary__inv) !important;
}
.tc-secondary {
  color: var(--tc_secondary) !important;
}
.is-inv .tc-secondary,
.bg-inv .tc-secondary {
  color: var(--tc_secondary__inv) !important;
}
.tc-success {
  color: var(--tc_success) !important;
}
.is-inv .tc-success,
.bg-inv .tc-success {
  color: var(--tc_success__inv) !important;
}
.tc-warning {
  color: var(--tc_warning) !important;
}
.is-inv .tc-warning,
.bg-inv .tc-warning {
  color: var(--tc_warning__inv) !important;
}
.tc-danger {
  color: var(--tc_danger) !important;
}
.is-inv .tc-danger,
.bg-inv .tc-danger {
  color: var(--tc_danger__inv) !important;
}
.tc-muted {
  color: var(--tc_muted) !important;
}

/*
  Components
*/
.card {
  border: 1px solid var(--c_border);
  border-radius: var(--radius);
  padding-top: var(--spacer);
  padding-left: var(--spacer);
  padding-right: var(--spacer);
  margin-bottom: var(--spacer);
}
/* elevation - z-index only, increments of 10; level 2 = page default */
.elevation-0 { z-index: 0; }
.elevation-1 { z-index: 10; }
.elevation-2 { z-index: 20; }
.elevation-3 { z-index: 30; }
.elevation-4 { z-index: 40; }
.elevation-5 { z-index: 50; }
.elevation-6 { z-index: 60; }
.elevation-7 { z-index: 70; }
.elevation-8 { z-index: 80; }
.elevation-9 { z-index: 90; }
.elevation-10 { z-index: 100; }
/* shadow - box-shadow tied to elevation; use with elevation-* class */
.shadow { box-shadow: none; }
.shadow.elevation-0 { box-shadow: var(--shadow_0); }
.shadow.elevation-1 { box-shadow: var(--shadow_1); }
.shadow.elevation-3 { box-shadow: var(--shadow_3); }
.shadow.elevation-4 { box-shadow: var(--shadow_4); }
.shadow.elevation-5 { box-shadow: var(--shadow_5); }
.shadow.elevation-6 { box-shadow: var(--shadow_6); }
.shadow.elevation-7 { box-shadow: var(--shadow_7); }
.shadow.elevation-8 { box-shadow: var(--shadow_8); }
.shadow.elevation-9 { box-shadow: var(--shadow_9); }
.shadow.elevation-10 { box-shadow: var(--shadow_10); }
/* bg-elevation - background color tied to elevation; use with elevation-* class */
.bg-elevation.elevation-0 { background-color: var(--c_bg_elevation_0); }
.bg-elevation.elevation-1 { background-color: var(--c_bg_elevation_1); }
.bg-elevation.elevation-2 { background-color: var(--c_bg_elevation_2); }
.bg-elevation.elevation-3 { background-color: var(--c_bg_elevation_3); }
.bg-elevation.elevation-4 { background-color: var(--c_bg_elevation_4); }
.bg-elevation.elevation-5 { background-color: var(--c_bg_elevation_5); }
.bg-elevation.elevation-6 { background-color: var(--c_bg_elevation_6); }
.bg-elevation.elevation-7 { background-color: var(--c_bg_elevation_7); }
.bg-elevation.elevation-8 { background-color: var(--c_bg_elevation_8); }
.bg-elevation.elevation-9 { background-color: var(--c_bg_elevation_9); }
.bg-elevation.elevation-10 { background-color: var(--c_bg_elevation_10); }
.icon {
  display: inline-block;
  width: 1.35em;
  vertical-align: top;
  margin-left: auto;
  margin-right: auto;
}
iframe {
  border: none;
  width: 100%;
}