@khipu/design-system 0.1.0-alpha.26 → 0.1.0-alpha.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,141 +4,303 @@
4
4
  :root{--size: 1rem;--font: Inter, Roboto, "Helvetica Neue", "Arial Nova", "Nimbus Sans", "Noto Sans", Arial, sans-serif;--font-icon: "Material Symbols Outlined";--speed1: .1s;--speed2: .2s;--speed3: .3s;--speed4: .4s;--active: rgb(128 128 128 / .192);--overlay: rgb(0 0 0 / .5);--elevate1: 0 .125rem .125rem 0 rgb(0 0 0 / .32);--elevate2: 0 .25rem .5rem 0 rgb(0 0 0 / .4);--elevate3: 0 .375rem .75rem 0 rgb(0 0 0 / .48);--top: env(safe-area-inset-top);--bottom: env(safe-area-inset-bottom);--left: env(safe-area-inset-left);--right: env(safe-area-inset-right);--image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4AWJiYGAQBgAAAP//ZyYa+wAAAAZJREFUAwAAIgAWeX9MsQAAAABJRU5ErkJggg==)}body.dark{--image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4AWL6//+/FAAAAP//qSv5QwAAAAZJREFUAwAJIAMaJWjIvQAAAABJRU5ErkJggg==)}html{font-size:var(--size)}body{color:var(--on-surface);background-color:var(--surface);overflow-x:hidden;font-family:var(--font);font-size:.875rem;line-height:1.5rem;letter-spacing:.0313rem}@media(pointer:fine){body ::-webkit-scrollbar,body ::-webkit-scrollbar-thumb,body ::-webkit-scrollbar-button{background:none;inline-size:.4rem;block-size:.4rem}body :is(:focus,:hover)::-webkit-scrollbar-thumb,body :has(:focus,:hover)::-webkit-scrollbar-thumb{background:var(--outline);border-radius:1rem}}@media(pointer:coarse){body:has(dialog[open],dialog.active),body:has(input[type=range]:focus){overflow:hidden}}@keyframes to-page{0%{opacity:0;transform:var(--_transform)}to{opacity:1;transform:translate(0)}}@keyframes to-linear-progress{0%{margin:0 0 0 -100%}50%{margin:0}to{margin:0 0 0 100%}}@keyframes to-indeterminate-progress{0%{padding:0 100% 0 0}50%{padding:0}to{padding:0 0 0 100%}}@keyframes to-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes to-ripple{to{transform:scale(4);opacity:0}}:root,body.light{--primary: #6750a4;--on-primary: #ffffff;--primary-container: #e9ddff;--on-primary-container: #22005d;--secondary: #625b71;--on-secondary: #ffffff;--secondary-container: #e8def8;--on-secondary-container: #1e192b;--tertiary: #7e5260;--on-tertiary: #ffffff;--tertiary-container: #ffd9e3;--on-tertiary-container: #31101d;--error: #ba1a1a;--on-error: #ffffff;--error-container: #ffdad6;--on-error-container: #410002;--background: #fffbff;--on-background: #1c1b1e;--surface: #fdf8fd;--on-surface: #1c1b1e;--surface-variant: #e7e0eb;--on-surface-variant: #49454e;--outline: #7a757f;--outline-variant: #cac4cf;--shadow: #000000;--scrim: #000000;--inverse-surface: #313033;--inverse-on-surface: #f4eff4;--inverse-primary: #cfbcff;--surface-dim: #ddd8dd;--surface-bright: #fdf8fd;--surface-container-lowest: #ffffff;--surface-container-low: #f7f2f7;--surface-container: #f2ecf1;--surface-container-high: #ece7eb;--surface-container-highest: #e6e1e6}body.dark{--primary: #cfbcff;--on-primary: #381e72;--primary-container: #4f378a;--on-primary-container: #e9ddff;--secondary: #cbc2db;--on-secondary: #332d41;--secondary-container: #4a4458;--on-secondary-container: #e8def8;--tertiary: #efb8c8;--on-tertiary: #4a2532;--tertiary-container: #633b48;--on-tertiary-container: #ffd9e3;--error: #ffb4ab;--on-error: #690005;--error-container: #93000a;--on-error-container: #ffb4ab;--background: #1c1b1e;--on-background: #e6e1e6;--surface: #141316;--on-surface: #e6e1e6;--surface-variant: #49454e;--on-surface-variant: #cac4cf;--outline: #948f99;--outline-variant: #49454e;--shadow: #000000;--scrim: #000000;--inverse-surface: #e6e1e6;--inverse-on-surface: #313033;--inverse-primary: #6750a4;--surface-dim: #141316;--surface-bright: #3a383c;--surface-container-lowest: #0f0e11;--surface-container-low: #1c1b1e;--surface-container: #201f22;--surface-container-high: #2b292d;--surface-container-highest: #363438}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:400;font-display:swap;src:url(material-symbols-outlined.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/beercss@4.0.19/dist/cdn/material-symbols-outlined.woff2) format("woff2")}@font-face{font-family:Material Symbols Rounded;font-style:normal;font-weight:400;font-display:swap;src:url(material-symbols-rounded.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/beercss@4.0.19/dist/cdn/material-symbols-rounded.woff2) format("woff2")}@font-face{font-family:Material Symbols Sharp;font-style:normal;font-weight:400;font-display:swap;src:url(material-symbols-sharp.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/beercss@4.0.19/dist/cdn/material-symbols-sharp.woff2) format("woff2")}@font-face{font-family:Material Symbols Subset;font-style:normal;font-weight:400;font-display:swap;src:url(material-symbols-subset.woff2) format("woff2"),url(https://cdn.jsdelivr.net/npm/beercss@4.0.19/dist/cdn/material-symbols-subset.woff2) format("woff2")}*{-webkit-tap-highlight-color:transparent;position:relative;vertical-align:middle;color:inherit;margin:0;padding:0;border-radius:inherit;box-sizing:border-box}*:after,*:before{all:unset}label{font-size:.75rem;vertical-align:baseline}a,b,i,span,strong,em,code{vertical-align:baseline}a,button,.button{cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;border:none;font-family:inherit;outline:inherit;justify-content:center}:is(nav,.tabs,.field)>a,button,.button,.chip,i,label{-webkit-user-select:none;user-select:none}:not(.grid,nav,.row)>:not(progress.max)+:is(address,article,blockquote,code,.field,fieldset,form,.grid,h1,h2,h3,h4,h5,h6,nav,ol,p,pre,.row,section,aside,table,.tabs,ul):not([class*=margin],.right,.left,.top,.bottom){margin-block-start:1rem}:has(>[class*=margin]){padding:.1px}:is(a,button,.button,.chip,summary):focus-visible{outline:.125rem solid var(--primary);outline-offset:.25rem}:is(nav,.row,li).group>:focus-visible{z-index:1}:is(button,.button,.chip)>:is(span,i,img,svg){pointer-events:none}div:is(:not([class]),[class=active]):has(>:not(.responsive)~:is(menu,.tooltip,input)){display:inline-flex}.middle-align{display:flex;align-items:center!important}.bottom-align{display:flex;align-items:flex-end!important}.top-align{display:flex;align-items:flex-start!important}.left-align{text-align:start;justify-content:flex-start!important}.right-align{text-align:end;justify-content:flex-end!important}.center-align{text-align:center;justify-content:center!important}[class*=blur],[class*=blur].light{--_blur: 1rem;-webkit-backdrop-filter:blur(var(--_blur));backdrop-filter:blur(var(--_blur));color:var(--on-surface);background-color:#ffffff80!important}.dark [class*=blur],[class*=blur].dark{background-color:#00000080!important}.small-blur{--_blur: .5rem}.large-blur{--_blur: 1.5rem}.horizontal{display:inline-flex;flex-direction:row!important;gap:1rem;inline-size:auto!important;max-inline-size:none!important}.horizontal>*{margin-block:0!important}.vertical{display:flex;flex-direction:column!important}:is(a,button,.button,.chip).vertical{display:inline-flex;gap:.25rem;block-size:auto!important;max-block-size:none!important;padding-block:.5rem}.vertical>*{margin-inline:0!important}.no-elevate{box-shadow:none!important}.small-elevate,.elevate{box-shadow:var(--elevate1)!important}.medium-elevate{box-shadow:var(--elevate2)!important}.large-elevate{box-shadow:var(--elevate3)!important}.round,[class*=-round]{--_round: 2rem;border-radius:var(--_round)!important}.small-round{--_round: .5rem}.large-round{--_round: 3.5rem}.no-round,.square,.top-round,.bottom-round,.left-round,.right-round{border-radius:.5rem!important}.top-round{border-start-start-radius:var(--_round)!important;border-start-end-radius:var(--_round)!important}.bottom-round{border-end-end-radius:var(--_round)!important;border-end-start-radius:var(--_round)!important}.left-round{border-start-start-radius:var(--_round)!important;border-end-start-radius:var(--_round)!important}.right-round{border-start-end-radius:var(--_round)!important;border-end-end-radius:var(--_round)!important}.circle:not(.extend){border-radius:50%}:is(.circle,.square):is(button,.button,.chip){padding:0;block-size:var(--_size);inline-size:var(--_size)}:is(.circle,.square)>span:not([class]){display:none}:is(.circle,.square).round{border-radius:1rem!important}.border:not(table,.field,.list,menu,article){box-sizing:border-box;border:.0625rem solid var(--outline);background-color:transparent;box-shadow:none}.no-border{border-color:transparent!important}.margin,[class*=-margin]:not(.left-margin,.right-margin,.top-margin,.bottom-margin,.horizontal-margin,.vertical-margin){margin:var(--_margin)!important}.margin,[class*=-margin]{--_margin: 1rem}.no-margin{--_margin: 0}.auto-margin{--_margin: auto}.tiny-margin{--_margin: .25rem}.small-margin{--_margin: .5rem}.large-margin{--_margin: 1.5rem}.left-margin,.horizontal-margin{margin-inline-start:var(--_margin)!important}.right-margin,.horizontal-margin{margin-inline-end:var(--_margin)!important}.top-margin,.vertical-margin{margin-block-start:var(--_margin)!important}.bottom-margin,.vertical-margin{margin-block-end:var(--_margin)!important}.no-opacity{opacity:0!important}.small-opacity{opacity:.25!important}.medium-opacity{opacity:.5!important}.large-opacity{opacity:.75!important}.opacity{opacity:1!important}.padding,[class*=-padding]:not(.left-padding,.right-padding,.top-padding,.bottom-padding,.horizontal-padding,.vertical-padding){padding:var(--_padding)!important}.padding,[class*=-padding]{--_padding: 1rem}.no-padding{--_padding: 0 !important}.tiny-padding{--_padding: .25rem !important}.small-padding{--_padding: .5rem !important}.large-padding{--_padding: 1.5rem !important}.left-padding,.horizontal-padding{padding-inline-start:var(--_padding)!important}.right-padding,.horizontal-padding{padding-inline-end:var(--_padding)!important}.top-padding,.vertical-padding{padding-block-start:var(--_padding)!important}.bottom-padding,.vertical-padding{padding-block-end:var(--_padding)!important}.front{z-index:10!important}.back{z-index:-10!important}.left{inset-inline-start:0}.right{inset-inline-end:0}.top{inset-block-start:0}.bottom{inset-block-end:0}.center{inset-inline-start:50%;transform:translate(-50%)}[dir=rtl] .center{transform:translate(50%)}.middle{inset-block-start:50%;transform:translateY(-50%)}.middle.center{transform:translate(-50%,-50%)}[dir=rtl] .middle.center{transform:translate(50%,-50%)}[class*=ripple]:is(:hover,:focus-visible):after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:currentColor;opacity:.1;border-radius:inherit}.ripple{--_duration: .6s}.fast-ripple{--_duration: .2s}.slow-ripple{--_duration: 1.8s}.ripple-js{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.ripple-js>div{position:absolute;border-radius:50%;background:currentColor;opacity:.3;transform:scale(0);animation:to-ripple var(--_duration) linear}.scroll{overflow:auto}.no-scroll{overflow:hidden}.shadow{background-color:#00000050}:is(.left-shadow,.right-shadow,.top-shadow,.bottom-shadow){background-color:transparent!important}.left-shadow{background-image:linear-gradient(to right,black,transparent)!important}.right-shadow{background-image:linear-gradient(to left,black,transparent)!important}.bottom-shadow{background-image:linear-gradient(to top,black,transparent)!important}.top-shadow{background-image:linear-gradient(to bottom,black,transparent)!important}[class*=-width]{max-inline-size:100%}.auto-width{inline-size:auto}.small-width{inline-size:12rem!important}.medium-width{inline-size:24rem!important}.large-width{inline-size:36rem!important}.auto-height{block-size:auto}.small-height{block-size:12rem!important}.medium-height{block-size:24rem!important}.large-height{block-size:36rem!important}.wrap{display:block;white-space:normal}.no-wrap:not(menu){display:flex;white-space:nowrap}.tiny-space:not(nav,.row,.grid,table,.tooltip,.list,menu,.shape){block-size:.5rem}:is(.space,.small-space):not(nav,.row,.grid,table,.tooltip,.list,menu,.shape){block-size:1rem}.medium-space:not(nav,.row,.grid,table,.tooltip,.list,menu,.shape){block-size:2rem}.large-space:not(nav,.row,.grid,table,.tooltip,.list,menu,.shape){block-size:3rem}.extra-space:not(nav,.row,.grid,table,.tooltip,.list,menu,.shape){block-size:4rem}.responsive{inline-size:-webkit-fill-available;inline-size:-moz-available}@media only screen and (max-width:600px){:is(.m,.l):not(.s){display:none!important}}@media only screen and (min-width:601px)and (max-width:992px){:is(.s,.l):not(.m){display:none!important}}@media only screen and (min-width:993px){:is(.m,.s):not(.l){display:none!important}}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-weight:400;display:block;align-items:center;line-height:normal}h1,.h1{font-size:3.5625rem}h2,.h2{font-size:2.8125rem}h3,.h3{font-size:2.25rem}h4,.h4{font-size:2rem}h5,.h5{font-size:1.75rem}h6,.h6{font-size:1.5rem}:is(h1,.h1).small{font-size:3.0625rem}:is(h2,.h2).small{font-size:2.3125rem}:is(h3,.h3).small{font-size:1.75rem}:is(h4,.h4).small{font-size:1.5rem}:is(h5,.h5).small{font-size:1.25rem}:is(h6,.h6).small{font-size:1rem}:is(h1,.h1).large{font-size:4.0625rem}:is(h2,.h2).large{font-size:3.3125rem}:is(h3,.h3).large{font-size:2.75rem}:is(h4,.h4).large{font-size:2.5rem}:is(h5,.h5).large{font-size:2.25rem}:is(h6,.h6).large{font-size:2rem}.link{color:var(--primary)!important}.inverse-link{color:var(--inverse-primary)!important}.truncate{overflow:hidden;white-space:nowrap!important;text-overflow:ellipsis;flex:inherit}.truncate>*{white-space:nowrap!important}.small-text{font-size:.75rem}.medium-text{font-size:.875rem}.large-text{font-size:1rem}.upper{text-transform:uppercase}.lower{text-transform:lowercase}.capitalize{text-transform:capitalize}.bold{font-weight:700}.overline{text-decoration:line-through}.underline{text-decoration:underline}.italic{font-style:italic}p{margin:.5rem 0}.no-line{line-height:normal}.tiny-line{line-height:1.25rem}.small-line{line-height:1.5rem}.medium-line{line-height:1.75rem}.large-line{line-height:2rem}.extra-line{line-height:2.25rem}pre{border-radius:0;background-color:var(--surface-container);white-space:pre-wrap;padding:1rem;border-inline-start:.25rem solid var(--primary);font-family:inherit}blockquote{border-radius:0;padding:1rem;border-inline-start:.25rem solid var(--primary);font-family:inherit}code{border-radius:0;background-color:var(--surface-container);white-space:pre-wrap;padding:.25rem}pre>code,blockquote>code{padding:0}.scroll>code{white-space:pre}pre:has(>code){direction:ltr;text-align:start}sub{vertical-align:sub}sup{vertical-align:super}:is(.wave,.chip,.button,button,nav.tabbed>a,.tabs>a,nav.toolbar>a):not([class*=ripple]):after,nav:is(.left,.right,.bottom,.top).max>a:after,nav:is(.left,.right,.bottom,.top).max>:is(ol,ul)>li>a:after,nav:is(.left,.right,.bottom,.top):not(.max)>a>i:after,nav:is(.left,.right,.bottom,.top):not(.max)>:is(ol,ul)>li>a>i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;border-radius:inherit;inline-size:100%;block-size:100%;background-position:center;background-image:radial-gradient(circle,currentColor 1%,transparent 1%);opacity:0;transition:none;pointer-events:none}:is(.wave,.chip,.button,button,nav.tabbed>a,.tabs>a,nav.toolbar>a):not([class*=ripple]):is(:focus-visible,:hover):after,nav:is(.left,.right,.bottom,.top).max>a:not(.button,.chip):is(:focus-visible,:hover):after,nav:is(.left,.right,.bottom,.top).max>:is(ol,ul)>li>a:not(.button,.chip):is(:focus-visible,:hover):after,nav:is(.left,.right,.bottom,.top):not(.max)>a:not(.button,.chip):is(:focus-visible,:hover)>i:after,nav:is(.left,.right,.bottom,.top):not(.max)>:is(ol,ul)>li>a:not(.button,.chip):is(:focus-visible,:hover)>i:after{background-size:22500%;opacity:.1;transition:background-size var(--speed2) linear}:is(.wave,.chip,.button,button,nav.tabbed>a,.tabs>a,nav.toolbar>a,nav.max>a):not([class*=ripple]):active:after,nav:is(.left,.right,.bottom,.top).max>a:active:after,nav:is(.left,.right,.bottom,.top).max>:is(ol,ul)>li>a:active:after,nav:is(.left,.right,.bottom,.top):not(.max)>a:active>i:after,nav:is(.left,.right,.bottom,.top):not(.max)>:is(ol,ul)>li>a:active>i:after{background-size:0%;opacity:0;transition:none}.no-wave:after,.no-wave:is(:hover,:active):after{display:none}.zoom,.tiny-zoom{zoom:2}.small-zoom{zoom:3}.medium-zoom{zoom:4}.large-zoom{zoom:5}.extra-zoom{zoom:6}.badge{--_x: 0;--_y: -100%;display:inline-flex;align-items:center;justify-content:center;position:absolute;font-size:.6875rem;z-index:2;padding:0 .25rem;min-block-size:1rem;min-inline-size:1rem;background-color:var(--error);color:var(--on-error);line-height:normal;border-radius:1rem;inset:50% auto auto 50%;transform:translate(var(--_x, 50%),var(--_y, -50%));font-family:var(--font)}.badge.top{--_y: -100%}.badge.bottom{--_y: 0}.badge.left{--_x: -100%}.badge.right{--_x: 0}.badge.border{border-color:var(--error);color:var(--error);background-color:var(--surface)}.badge:is(.circle,.square){text-align:center;inline-size:auto;block-size:auto;padding:0 .25rem;border-radius:1rem}.badge.square{border-radius:0}.badge.min>*{display:none}.badge.min{clip-path:circle(18.75% at 50% 50%)}nav:is(.left,.right,.top,.bottom)>a>.badge,nav:is(.left,.right,.top,.bottom)>:is(ol,ul)>li>a>.badge{inset:1rem auto auto 50%}.badge.none{inset:auto!important;transform:none;position:relative;margin:0 .125rem}header,footer{display:grid;align-content:center;border-radius:0;padding:0 1rem}:is(dialog,article)>:is(header,footer){padding-inline:0;top:0;right:0;bottom:0;left:0}header{min-block-size:4rem}footer{min-block-size:5rem}:is(header,footer,menu>*).fixed{position:sticky;top:0;right:0;bottom:0;left:0;z-index:11;background-color:inherit}header.fixed{inset:calc(-1 * var(--_padding, 0)) 0 0 0;margin-block-start:calc(-1 * var(--_padding, 0))}footer.fixed{inset:0 0 calc(-1 * var(--_padding, 0)) 0;margin-block-end:calc(-1 * var(--_padding, 0))}:is(header,footer).fixed.min{margin-inline:auto}dialog>:is(header,footer){background:none}dialog>:is(header,footer).fixed{background-color:inherit}:is(main,header,footer,section).responsive{max-inline-size:min(100vw,75rem);margin:0 auto}:is(main,header,footer,section).responsive.max{max-inline-size:none}:has(>main)>:is(header,footer).fixed{transform:none;box-sizing:content-box;position:sticky;top:0;right:0;bottom:0;left:0;z-index:12}:has(>main)>header{padding-block-start:var(--top, 0)}:has(>main)>footer{padding-block-end:var(--bottom, 0)}nav.top~header,nav.bottom~footer{padding-block:0}nav.top~header.fixed{inset-block:calc(var(--top, 0) + 4.5rem) 0}nav.bottom~footer.fixed{inset-block:0 calc(var(--bottom, 0) + 4.5rem)}:is(nav,.row)>header{background-color:inherit}.button,button{--_padding: 1rem;--_size: 2.5rem;--_round: calc(var(--_size) / 2) !important;box-sizing:content-box;display:inline-flex;align-items:center;justify-content:center;block-size:var(--_size);font-size:.875rem;font-weight:500;color:var(--on-primary);padding:0 var(--_padding);background-color:var(--primary);border-radius:1.25rem;transition:transform var(--speed3),border-radius var(--speed2),padding var(--speed3);-webkit-user-select:none;user-select:none;gap:.5rem;line-height:normal}:is(button,.button).small{--_size: 2rem;--_padding: .75rem}:is(button,.button).large{--_size: 3rem;--_padding: 1.25rem}:is(.button,button):is(.extra,.extend){--_size: 3.5rem;font-size:1rem;--_padding: 1.5rem}:is(button,.button):is(.square,.circle){--_padding: 0}:is(button,.button).border{border-color:var(--outline-variant);color:var(--primary)}.extend>span:not([class]){display:none}.extend:is(:hover,.active){inline-size:auto;--_padding: 1.5rem;padding:0 var(--_padding)}.extend:is(:hover,.active)>i+span{display:inherit;margin-inline-start:var(--_padding)}.extend:is(:hover,.active)>:is(img,svg)+span{display:inherit;margin-inline-start:calc(1rem + var(--_padding, 0))}:is(.button,button)[disabled]{opacity:.5;cursor:not-allowed}.button[disabled]{pointer-events:none}:is(.button,button)[disabled]:before,:is(.button,button)[disabled]:after{display:none}:is(.button,button):not(.chip,.extend).fill{background-color:var(--secondary-container)!important;color:var(--on-secondary-container)!important}:is(.button,button):not(.chip,.extend).active{background-color:var(--primary-container);color:var(--on-primary-container)}:is(.button,button):not(.chip,.extend).fill.active{background-color:var(--secondary)!important;color:var(--on-secondary)!important}:is(.button,button):not(.chip,.extend).border.active{background-color:var(--inverse-surface)!important;color:var(--inverse-on-surface)!important;border-color:var(--inverse-surface)!important}:is(.button,button):not(.chip):active,:is(.button,button):not(.chip).active{border-radius:.5rem!important}article{--_padding: 1rem;box-shadow:var(--elevate1);background-color:var(--surface-container-low);color:var(--on-surface);padding:var(--_padding);border-radius:.75rem;display:block;transition:transform var(--speed3),border-radius var(--speed3),padding var(--speed3)}article.small{block-size:12rem}article.medium{block-size:20rem}article.large{block-size:32rem}article.border{box-shadow:none;border:.0625rem solid var(--outline-variant)}.chip{--_padding: .75rem;--_size: 2rem;--_round: calc(var(--_size) / 2) !important;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;block-size:var(--_size);min-inline-size:var(--_size);font-size:.875rem;font-weight:500;background-color:transparent;border:.0625rem solid var(--outline-variant);color:var(--on-surface-variant);padding:0 var(--_padding);border-radius:.5rem;transition:transform var(--speed3),border-radius var(--speed3),padding var(--speed3);-webkit-user-select:none;user-select:none;gap:.5rem;line-height:normal;letter-spacing:normal}.chip.medium{--_size: 2.5rem;--_padding: 1rem}.chip.large{--_padding: 1.25rem;--_size: 3rem}.chip.fill{border:none}dialog{--_padding: 1.5rem;--_top: calc(var(--_padding, 0) + var(--top, 0));--_bottom: calc(var(--_padding, 0) + var(--bottom, 0));display:block;visibility:hidden;border:none;opacity:0;position:fixed;box-shadow:var(--elevate2);color:var(--on-surface);background-color:var(--surface-container-high);padding:var(--_padding);z-index:100;inset:10% auto auto 50%;min-inline-size:20rem;max-inline-size:100%;max-block-size:80%;overflow-x:hidden;overflow-y:auto;transition:all var(--speed3),0s background-color;border-radius:1.75rem;transform:translate(-50%,-4rem);outline:none}dialog.small{inline-size:25%;block-size:25%}dialog.medium{inline-size:50%;block-size:50%}dialog.large{inline-size:75%;block-size:75%}dialog:is(.active,[open]){visibility:visible;opacity:1;transform:translate(-50%)}dialog:popover-open{visibility:visible;opacity:1;transform:translate(-50%)}dialog:is(.top,.right,.bottom,.left,.max){--_padding: 1rem}dialog:is(.top,.bottom){opacity:1;block-size:auto;inline-size:100%;min-inline-size:auto;max-block-size:100%}dialog.top{inset:0 auto auto 0;transform:translateY(-100%);border-radius:0 0 1rem 1rem;padding-block-start:var(--_top)}dialog.bottom{inset:auto auto 0 0;transform:translateY(100%);border-radius:1rem 1rem 0 0;padding-block-end:var(--_bottom)}dialog:is(.left,.right){opacity:1;inset:0 auto auto 0;inline-size:auto;block-size:100%;max-block-size:100%;background-color:var(--surface);padding-block:var(--_top) var(--_bottom)}[dir=rtl] dialog.right,dialog.left{inset:0 auto auto 0;border-radius:0 1rem 1rem 0;transform:translate(-100%)}[dir=rtl] dialog.left,dialog.right{inset:0 0 auto auto;border-radius:1rem 0 0 1rem;transform:translate(100%)}dialog.max{inset:0 auto auto 0;inline-size:100%;block-size:100%;max-inline-size:100%;max-block-size:100%;transform:translateY(4rem);background-color:var(--surface);border-radius:0;padding-block:var(--_top) var(--_bottom)}dialog:is(.active,[open]):is(.left,.right,.top,.bottom,.max){transform:translate(0)}dialog:popover-open:is(.left,.right,.top,.bottom,.max){transform:translate(0)}dialog.small:is(.left,.right){inline-size:20rem}dialog.medium:is(.left,.right){inline-size:32rem}dialog.large:is(.left,.right){inline-size:44rem}dialog.small:is(.top,.bottom){block-size:16rem}dialog.medium:is(.top,.bottom){block-size:24rem}dialog.large:is(.top,.bottom){block-size:32rem}hr,[class*=divider]{all:unset;inline-size:-webkit-fill-available;min-block-size:auto;block-size:.0625rem;background-color:var(--outline-variant);display:block}hr+*,[class*=divider]+*{margin:0!important}hr.medium,.medium-divider{margin:1rem 0!important}hr.large,.large-divider{margin:1.5rem 0!important}hr.small,.small-divider{margin:.5rem 0!important}li:has(>:is(hr,.divider)){padding:0!important;align-self:normal!important;min-inline-size:auto!important;min-block-size:auto!important;inline-size:-webkit-fill-available;background:none!important}:is(hr,.divider).vertical,li:has(>:is(hr,.divider).vertical){padding:0!important;align-self:center!important;min-inline-size:auto;min-block-size:1.5rem;inline-size:.0625rem}summary{list-style-type:none;cursor:pointer}summary::-webkit-details-marker{display:none}summary>*{pointer-events:none;margin:0}li>details>summary+.list{margin:0!important}.field{--_input: 3rem;--_start: 1.2rem;--_middle: calc(var(--_input, 0) / 2);border-radius:.25rem .25rem 0 0;min-block-size:var(--_input);display:flex;flex-direction:column}.field.fill{--_background: var(--surface-variant);background-color:unset!important;color:unset!important}.field.fill>:is(input,select,textarea){background-color:var(--_background);z-index:0}.field.small{--_input: 2.5rem;--_start: 1rem}.field.large{--_input: 3.5rem;--_start: 1.4rem}.field.extra{--_input: 4rem;--_start: 1.6rem}.field.border{border-radius:.25rem}.field[class*=round].small{border-radius:1.25rem}.field[class*=round]{border-radius:1.5rem}.field[class*=round].large{border-radius:1.75rem}.field[class*=round].extra{border-radius:2rem}.field>:is(i,img,svg,progress.circle,a){position:absolute;inset:calc((var(--_input, 0) / 2) - .75rem) auto auto auto;cursor:pointer;z-index:10;inline-size:1.5rem;block-size:1.5rem;margin:auto 0;pointer-events:none}.field>:is(a,.front){pointer-events:all!important}.field>a>:is(i,img,svg,progress.circle,a){inline-size:1.5rem;block-size:1.5rem}.field>:is(i,img,svg,progress.circle,a),[dir=rtl] .field>:is(i,img,svg,progress.circle,a):first-child{inset:calc(var(--_middle, 0) - .75rem) 1rem auto auto}.field>:is(i,img,svg,progress.circle,a):first-child,[dir=rtl] .field>:is(i,img,svg,progress.circle,a){inset:calc(var(--_middle, 0) - .75rem) auto auto 1rem}.field.invalid>i{color:var(--error)}.field>progress.circle{border-width:.1875rem}.field>:is(input,textarea,select){all:unset;position:relative;display:flex;align-items:center;box-sizing:border-box;border-radius:inherit;border:.0625rem solid transparent;padding:0 .9375rem;font-family:inherit;font-size:1rem;min-block-size:var(--_input);outline:none;z-index:1;background:none;resize:none;text-align:start;cursor:text}input::-webkit-date-and-time-value{text-align:start}:is(input,select,textarea):is(:-webkit-autofill,:autofill){-webkit-background-clip:text;-webkit-text-fill-color:var(--on-surface)}.field>:is(input,textarea,select):focus{border:.125rem solid transparent;padding-inline:.875rem}.field>textarea:not([rows]){field-sizing:content;max-block-size:12rem}input[type=file],input[type=color],:not(.field)>input:is([type^=date],[type^=time],[type=month],[type=week]),input::-webkit-calendar-picker-indicator{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;inline-size:100%;block-size:100%;margin:0;padding:0;border:0;outline:0;z-index:2!important}@media(pointer:fine){.field>input::-webkit-calendar-picker-indicator{z-index:-1!important}}input::-webkit-search-decoration,input::-webkit-search-cancel-button,input::-webkit-search-results-button,input::-webkit-search-results-decoration,input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{display:none}input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.field.border>:is(input,textarea,select){border-color:var(--outline)}.field.border>:is(input,textarea,select):focus{border-color:var(--primary)}.field[class*=round]>:is(input,textarea,select){padding-inline:1.4376rem}.field[class*=round]>:is(input,textarea,select):focus{padding-inline:1.375rem}.field.prefix>:is(input,textarea,select){padding-inline-start:2.9375rem}.field.prefix>.slider{margin-inline-start:3.5rem}.field.prefix>:is(input,textarea,select):focus{padding-inline-start:2.875rem}.field.suffix>:is(input,textarea,select){padding-inline-end:2.9375rem}.field.suffix>.slider{margin-inline-end:3.5rem}.field.suffix>:is(input,textarea,select):focus{padding-inline-end:2.875rem}.field:not(.border,[class*=round])>:is(input,textarea,select){border-block-end-color:var(--outline)}.field:not(.border,[class*=round])>:is(input,textarea,select):focus{border-block-end-color:var(--primary)}.field[class*=round]:not(.border,.fill)>:is(input,textarea,select),.field[class*=round]:not(.border)>:is(input,textarea,select):focus{box-shadow:var(--elevate1)}.field[class*=round]:not(.border,.fill)>:is(input,textarea,select):focus{box-shadow:var(--elevate2)}.field.invalid:not(.border,[class*=round])>:is(input,textarea,select),.field.invalid:not(.border,[class*=round])>:is(input,textarea,select):focus{border-block-end-color:var(--error)}.field.invalid.border>:is(input,textarea,select),.field.invalid.border>:is(input,textarea,select):focus{border-color:var(--error)}.field:has(>:disabled){opacity:.5;cursor:not-allowed}.field>:disabled{cursor:not-allowed}.field>select{-webkit-user-select:none;user-select:none}@-moz-document url-prefix(){.field>select:focus{background-color:var(--surface)}.field.fill>select:focus{background-color:var(--surface-variant)}.field>select:focus+label{z-index:1}}.field>select>option{background-color:var(--surface)}.field>:is(input,select){padding-block-start:1rem}.field:not(.label)>:is(input,select),.field.border:not(.fill)>:is(input,select){padding-block-start:0}.field>textarea{padding-block-start:var(--_start)!important}.field>textarea:focus{padding-block-start:calc(var(--_start, 0) - .01rem)!important}.field:not(.label)>textarea,.field.border:not(.fill)>textarea{padding-block-start:calc(var(--_start, 0) - .5rem)!important}.field:not(.label)>textarea:focus,.field.border:not(.fill)>textarea:focus{padding-block-start:calc(var(--_start, 0) - .51rem)!important}.field.label>label{--_start: 1rem;position:absolute;inset:-.5rem .9375rem 0 var(--_start);display:flex;block-size:calc(var(--_input, 0) + 1rem);line-height:calc(var(--_input, 0) + 1rem);font-size:1rem;transition:all .2s;gap:.25rem;white-space:nowrap;pointer-events:none}[dir=rtl] .field.label>label{inset:-.5rem calc(var(--_start) - .0625rem) 0 .9375rem}.field.label[class*=round]>label{inset:-.5rem 1.9375rem 0 var(--_start)}[dir=rtl] .field.label[class*=round]>label{inset:-.5rem var(--_start) 0 1.9375rem}.field.label.border.prefix:not(.fill)>:is(label.active,:focus+label,[placeholder]:not(:placeholder-shown)+label,select+label){--_start: 1rem}.field.label[class*=round]>label,.field.label.border.prefix[class*=round]:not(.fill)>:is(label.active,:focus+label,[placeholder]:not(:placeholder-shown)+label,select+label){--_start: 1.5rem}.field.label.prefix>label{--_start: 3rem}.field.label>:is(label.active,:focus+label,[placeholder]:not(:placeholder-shown)+label,select+label){block-size:2.5rem;line-height:2.5rem;font-size:.75rem}.field.label.border:not(.fill)>:is(label.active,:focus+label,[placeholder]:not(:placeholder-shown)+label,select+label){block-size:1rem;line-height:1rem}.field.label.border:not(.fill)>label:after{content:"";display:block;margin:.5rem 0 0;border-block-start:.0625rem solid var(--outline);block-size:1rem;transition:none;flex:auto}.field.label.border:not(.fill)>:focus+label:after{border-block-start:.125rem solid var(--primary)}.field.label.border:not(.fill)>:is(input,textarea):is(:focus,[placeholder]:not(:placeholder-shown),.active),.field.label.border:not(.fill)>select{clip-path:polygon(-2% -2%,.75rem -2%,.75rem .5rem,calc(100% - 1rem) .5rem,calc(100% - 1rem) -2%,102% -2%,102% 102%,-2% 102%)}[dir=rtl] .field.label.border:not(.fill)>:is(input,textarea):is(:focus,[placeholder]:not(:placeholder-shown),.active),[dir=rtl] .field.label.border:not(.fill)>select{clip-path:polygon(-2% -2%,1rem -2%,1rem .5rem,calc(100% - .75rem) .5rem,calc(100% - .75rem) -2%,102% -2%,102% 102%,-2% 102%)}.field.label.border[class*=round]:not(.fill)>:is(input,textarea):is(:focus,[placeholder]:not(:placeholder-shown),.active),.field.label.border[class*=round]:not(.fill)>select{clip-path:polygon(-2% -2%,1.25rem -2%,1.25rem .5rem,calc(100% - 2rem) .5rem,calc(100% - 2rem) -2%,102% -2%,102% 102%,-2% 102%)}[dir=rtl] .field.label.border[class*=round]:not(.fill)>:is(input,textarea):is(:focus,[placeholder]:not(:placeholder-shown),.active),[dir=rtl] .field.label.border[class*=round]:not(.fill)>select{clip-path:polygon(-2% -2%,2rem -2%,2rem .5rem,calc(100% - 1.25rem) .5rem,calc(100% - 1.25rem) -2%,102% -2%,102% 102%,-2% 102%)}.field.label>:focus+label{color:var(--primary)}.field.label.invalid>label,.field.label.invalid>label:after{color:var(--error)!important;border-color:var(--error)!important}.field.label>label>a{block-size:inherit;line-height:inherit;inline-size:1rem}.field.label>label>a>:is(i,img,svg){block-size:1rem;line-height:1rem;inline-size:1rem;font-size:1rem}.field>output{display:inline-block;font-size:.75rem;background:none!important;padding:.25rem 1rem;line-height:1.25rem;align-self:start}.field>output.invalid{color:var(--error)!important}.field[class*=round]>output{padding:.25rem 1.5rem}.field.invalid>output:not(.invalid),.field:not(.invalid)>output.invalid{display:none}.field.invalid>output.invalid~menu,.field:not(.invalid)>output:not(.invalid)~menu{inset:auto auto 1.75rem 0}table td>.field{margin:0}fieldset{border-radius:.25rem;padding:1rem;border:.0625rem solid var(--outline-variant)}fieldset>legend{margin:0 -.25rem;padding:0 .25rem}fieldset>legend+*{margin-block-start:0!important}.grid{--_gap: 1rem;display:grid;grid-template-columns:repeat(12,1fr);gap:var(--_gap);block-size:auto}.grid.no-space{--_gap: 0rem}.grid.medium-space{--_gap: 1.5rem}.grid.large-space{--_gap: 2rem}.grid>*{margin:0}.s1{grid-area:auto/span 1}.s2{grid-area:auto/span 2}.s3{grid-area:auto/span 3}.s4{grid-area:auto/span 4}.s5{grid-area:auto/span 5}.s6{grid-area:auto/span 6}.s7{grid-area:auto/span 7}.s8{grid-area:auto/span 8}.s9{grid-area:auto/span 9}.s10{grid-area:auto/span 10}.s11{grid-area:auto/span 11}.s12{grid-area:auto/span 12}@media only screen and (min-width:601px){.m1{grid-area:auto/span 1}.m2{grid-area:auto/span 2}.m3{grid-area:auto/span 3}.m4{grid-area:auto/span 4}.m5{grid-area:auto/span 5}.m6{grid-area:auto/span 6}.m7{grid-area:auto/span 7}.m8{grid-area:auto/span 8}.m9{grid-area:auto/span 9}.m10{grid-area:auto/span 10}.m11{grid-area:auto/span 11}.m12{grid-area:auto/span 12}}@media only screen and (min-width:993px){.l1{grid-area:auto/span 1}.l2{grid-area:auto/span 2}.l3{grid-area:auto/span 3}.l4{grid-area:auto/span 4}.l5{grid-area:auto/span 5}.l6{grid-area:auto/span 6}.l7{grid-area:auto/span 7}.l8{grid-area:auto/span 8}.l9{grid-area:auto/span 9}.l10{grid-area:auto/span 10}.l11{grid-area:auto/span 11}.l12{grid-area:auto/span 12}}i,:is(.checkbox,.radio,.switch)>span:before,:is(.checkbox,.radio,.switch)>span>i{--_size: 1.5rem;font-family:var(--font-icon);font-weight:400;font-style:normal;font-size:var(--_size);letter-spacing:normal;text-transform:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;vertical-align:middle;text-align:center;overflow:hidden;inline-size:var(--_size);min-inline-size:var(--_size);block-size:var(--_size);min-block-size:var(--_size);box-sizing:content-box;line-height:normal;border-radius:0}i:has(.badge){overflow:unset}i.tiny{--_size: 1rem}.chip>i,i.small{--_size: 1.25rem}i.medium{--_size: 1.5rem}i.large{--_size: 1.75rem}i.extra{--_size: 2rem}i.fill,a.active>i,button.active>i{font-variation-settings:"FILL" 1}i>:is(img,svg){inline-size:100%;block-size:100%;background-size:100%;border-radius:inherit;position:absolute;inset:0 auto auto 0;padding:inherit}i[class*=fa-]{font-size:calc(var(--_size, 0) * .85);line-height:normal;block-size:auto;min-block-size:auto}.absolute{position:absolute}.fixed{position:fixed}:is(.absolute,.fixed).left.right{inline-size:auto}:is(.absolute,.fixed).left.right.small{block-size:20rem}:is(.absolute,.fixed).left.right.medium{block-size:28rem}:is(.absolute,.fixed).left.right.large{block-size:44rem}:is(.absolute,.fixed).top.bottom.small{inline-size:20rem}:is(.absolute,.fixed).top.bottom.medium{inline-size:28rem}:is(.absolute,.fixed).top.bottom.large{inline-size:44rem}.list{display:flex;flex-direction:column;padding:0;margin:0;flex:1}.list>li,.list>li>details>summary,.list>li>a:only-child{all:unset;box-sizing:border-box;position:relative;display:flex;align-items:center;align-self:normal;text-align:start;justify-content:flex-start;white-space:nowrap;gap:1rem;min-block-size:3.5rem;padding:.5rem 1rem;cursor:pointer;flex:1}.list>li:has(ul,ol,details[open],a:only-child){padding:0}.list>li>.list{padding:0 0 0 1rem}.list>li>*,.list>li>a:only-child>*{margin:0}.list>li>:is(details,.max),.list>li>a:only-child>.max,.list>li>details>summary>.max{flex:1}.list.border>li:not(:last-child):before,.list.border>li>details[open]>summary:before{content:"";position:absolute;background-color:var(--outline-variant);inset:auto 0 0 0;block-size:.0625rem;inline-size:auto}.list.no-space>li,.list.no-space>li>details>summary{min-block-size:2.5rem}.list.medium-space>li,.list.medium-space>li>details>summary{min-block-size:4.5rem}.list.large-space>li,.list.large-space>li>details>summary{min-block-size:5.5rem}.list>li:focus-visible,.list>li>a:only-child:focus-visible{outline:.125rem solid var(--primary);outline-offset:-.25rem}:has(>main){display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-areas:"left top right" "left header right" "left main right" "left footer right" "left bottom right";min-block-size:100dvh;box-sizing:border-box;background-color:var(--surface)}nav.left{grid-area:left}nav.right{grid-area:right}nav.top{grid-area:top}nav.bottom{grid-area:bottom}header{grid-area:header}footer{grid-area:footer}main{--_padding: .5rem;grid-area:main;padding:var(--_padding);overflow:clip}aside{z-index:1}aside:not(.fixed,.absolute).right{float:right}aside:not(.fixed,.absolute).left{float:left}svg{fill:currentcolor}:is(img,svg,video):is(.small,.medium,.large,.tiny,.extra,.round,.circle,.square,.responsive){--_size: 3rem;object-fit:cover;object-position:center;transition:transform var(--speed3),border-radius var(--speed3),padding var(--speed3);block-size:var(--_size);inline-size:var(--_size)}:is(img,svg,video).round{--_round: .5rem}:is(img,svg,video).tiny{--_size: 2rem}:is(img,svg,video).small{--_size: 2.5rem}:is(img,svg,video).large{--_size: 3.5rem}:is(img,svg,video).extra{--_size: 4rem}:is(img,svg,video).responsive{--_size: 100%;margin:0 auto}:is(img,svg,video).responsive.tiny{inline-size:100%;block-size:4rem}:is(img,svg,video).responsive.small{inline-size:100%;block-size:8rem}:is(img,svg,video).responsive.medium{inline-size:100%;block-size:12rem}:is(img,svg,video).responsive.large{inline-size:100%;block-size:16rem}:is(img,svg,video).responsive.extra{inline-size:100%;block-size:20rem}:is(img,svg,video).responsive.round{--_round: 2rem}:is(img,svg,video).empty-state{max-inline-size:100%;inline-size:24rem}:is(button,.button,.chip):not(.transparent)>.responsive{border:.25rem solid transparent}:is(button,.button,.chip,.field)>:is(img,svg):not(.responsive),.tabs :is(img,svg):not(.responsive){min-inline-size:1.5rem;max-inline-size:1.5rem;min-block-size:1.5rem;max-block-size:1.5rem}:is(button,.button,.chip):not(.extend)>.responsive:first-child{margin-inline-start:calc(-1 * var(--_padding, 0))}:is(button,.button,.chip):not(.extend)>.responsive:not(:first-child){margin-inline-end:calc(-1 * var(--_padding, 0))}:is(button,.button,.chip,.circle,.square,.extend)>.responsive{--_size: inherit;margin:0 auto}.extend>:is(.responsive,i){margin:0;position:absolute;inset-inline:1rem;z-index:1}.extend>.responsive{inset-inline:0;inline-size:3.5rem}.extend.border>.responsive{inline-size:3.375rem}menu{opacity:0;visibility:hidden;position:absolute;box-shadow:var(--elevate2);background-color:var(--surface-container);z-index:13;inset:auto auto 0 0;inline-size:100%;max-block-size:50vh;max-inline-size:none!important;overflow-x:hidden;overflow-y:auto;font-size:.875rem;font-weight:400;text-transform:none;color:var(--on-surface);line-height:normal;text-align:start;border-radius:1rem;transform:scale(.8) translateY(120%);transition:all var(--speed2) var(--speed2);justify-content:flex-start;padding:.25rem;display:flex;flex-direction:column;gap:.125rem}menu.no-space{gap:0}menu.small-space{gap:.25rem}menu.medium-space{gap:.375rem}menu.large-space{gap:.5rem}menu.extra-space{gap:.625rem}[dir=rtl] menu{inset:auto 0 0 auto}menu.no-wrap{inline-size:max-content!important;white-space:nowrap!important}menu.active,:not([data-ui]):focus-within>menu,menu>li:hover>menu,menu>li>menu:hover{opacity:1;visibility:visible;transform:scale(1) translateY(100%);transition:all var(--speed2),background-color 0s}menu.top.active,:not([data-ui]):focus-within>menu.top,menu>li:hover>menu.top,menu>li>menu.top:hover{transform:scale(1) translateY(-100%)}menu:is(.min,.max).active,:not([data-ui]):focus-within>menu:is(.min,.max){transform:scale(1)}menu *{white-space:inherit!important}menu>li,menu>li>a:only-child{all:unset;box-sizing:border-box;position:relative;display:flex;align-items:center;align-self:normal;text-align:start;justify-content:inherit;white-space:nowrap;gap:1rem;padding:.5rem 1rem;min-block-size:2.75rem;flex:1;margin:0!important;cursor:pointer;border-radius:.25rem;transition:border-radius var(--speed2)}menu>li:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}menu>li:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}menu>li:hover{background-color:color-mix(in srgb,currentColor 10%,transparent)}menu>li.active{background-color:var(--tertiary-container);color:var(--on-tertiary-container)}menu>li:is(.active,:active){border-radius:.75rem}menu>li>:is(.max,.field),menu>li>a:only-child>.max,menu>li:has(.field,a:only-child){flex:1;padding:0;margin:0}menu.min{inset:0 0 auto 0;transform:scale(.8)}[dir=rtl] menu.min.right,menu.min.left,menu.top.left{inset:0 0 auto auto}[dir=rtl] menu.min.left,menu.min.right,menu.top,menu.top.right{inset:0 auto auto 0}menu.max{position:fixed;top:0;right:0;bottom:0;left:0;block-size:100%;max-block-size:none;min-block-size:auto;z-index:100;transform:scale(.8);border-radius:0}menu.max>li{flex:none!important}menu.no-wrap:is(.min,.max){min-inline-size:16rem}[dir=rtl] menu.right,[dir=rtl] menu.top.min.right,menu.left,menu.top.min.left{inset:auto 0 0 auto}[dir=rtl] menu.left,[dir=rtl] menu.top.min.left,menu.right,menu.top.min{inset:auto auto 0 0}menu.top{transform:scale(.8) translateY(-120%)}menu:has(menu){--_child: 1;--_type: 0;overflow:unset;white-space:nowrap;inline-size:auto;min-inline-size:12rem;max-block-size:none}menu>li>:is(menu,menu.right),[dir=rtl] menu>li>menu.left{inset:auto auto calc(3rem * (var(--_child, 0) - var(--_type, 0))) 100%}[dir=rtl] menu>li>:is(menu,menu.right),menu>li>menu.left{inset:auto 100% calc(3rem * (var(--_child, 0) - var(--_type, 0))) auto}menu>li>:is(menu.top,menu.top.right),[dir=rtl] menu>li>menu.top.left{inset:calc(3rem * (var(--_child, 0) - var(--_type, 0))) auto auto 100%}[dir=rtl] menu>li>:is(menu.top,menu.top.right),menu>li>menu.top.left{inset:calc(3rem * (var(--_child, 0) - var(--_type, 0))) 100% auto auto}menu.group{padding:.5rem 0;inline-size:100%;min-inline-size:auto;max-block-size:none;overflow:unset;background:none;box-shadow:none}menu.group>li{box-shadow:none;padding:0;min-block-size:auto}menu.group>li:hover{background:none}menu.group>li>menu,menu.group>li>menu:hover{opacity:1;visibility:visible;position:relative;top:0;right:0;bottom:0;left:0;max-block-size:none;transform:none;transition:none;border-radius:1rem 1rem .5rem .5rem;z-index:auto;flex:1}menu.group>li:last-child>menu{border-radius:.5rem .5rem 1rem 1rem}menu>li:nth-last-child(2){--_child: 2}menu>li:nth-last-child(3){--_child: 3}menu>li:nth-last-child(4){--_child: 4}menu>li:nth-last-child(5){--_child: 5}menu>li:nth-last-child(6){--_child: 6}menu>li:nth-last-child(7){--_child: 7}menu>li:nth-last-child(8){--_child: 8}menu>li:nth-last-child(9){--_child: 9}menu>li:nth-last-child(10){--_child: 10}menu>li:nth-last-child(11){--_child: 11}menu>li:nth-last-of-type(2){--_type: 1}menu>li:nth-last-of-type(3){--_type: 2}menu>li:nth-last-of-type(4){--_type: 3}menu>li:nth-last-of-type(5){--_type: 4}menu>li:nth-last-of-type(6){--_type: 5}menu>li:nth-last-of-type(7){--_type: 6}menu>li:nth-last-of-type(8){--_type: 7}menu>li:nth-last-of-type(9){--_type: 8}menu>li:nth-last-of-type(10){--_type: 9}menu>li:nth-last-of-type(11){--_type: 10}@media(pointer:coarse){:not(menu,[data-ui]):hover>menu{opacity:1;visibility:visible;transform:scale(1) translateY(100%)}:not(menu,[data-ui]):hover>menu.top{transform:scale(1) translateY(-100%)}}nav>:is(ol,ul),nav>:is(ol,ul)>li{all:unset}nav,.row,a.row{display:flex;align-items:center;align-self:normal;text-align:start;justify-content:flex-start;white-space:nowrap;gap:1rem;border-radius:0}a.row,nav.row{min-block-size:3rem;margin:0}:is(nav,.row,.max)>:only-child,:is(nav,.row,.max)>span>*,nav>:is(ol,ul)>li>:only-child,nav>:is(ol,ul)>li>span>*{margin:0}:is(nav,.row)>:not(ul,ol,header,footer){margin:0;white-space:normal;flex:none}:is(nav,.row).min{display:inline-flex}:is(nav,.row,li).no-space{gap:0}:is(nav,.row,li).tiny-space{gap:.5rem}:is(nav,.row,li).medium-space{gap:1.5rem}:is(nav,.row,li).large-space{gap:2rem}:is(nav,.row)>.max,:is(nav,.row)>:is(ol,ul)>.max{flex:1}:is(nav,.row).wrap{display:flex;flex-wrap:wrap}:is(header,footer)>:is(nav,.row){min-block-size:inherit}nav:is(.left,.right,.top,.bottom){--_padding: .5rem;--_top: calc(var(--_padding, 0) + var(--top, 0));--_bottom: calc(var(--_padding, 0) + var(--bottom, 0));position:sticky;top:0;right:0;bottom:0;left:0;border:0;color:var(--on-surface);transform:none;z-index:100;text-align:center;padding:var(--_padding);margin:0}nav:is(.left,.right){justify-content:flex-start;flex-direction:column;background-color:var(--surface);block-size:100dvh;min-inline-size:6rem;padding-block:var(--_top) var(--_bottom)}nav:is(.top,.bottom){position:sticky;top:0;right:0;bottom:0;left:0;padding:.5rem;justify-content:center;flex-direction:row;background-color:var(--surface-container);block-size:auto;min-block-size:4.5rem}nav.top{block-size:calc(var(--top, 0) + 4.5rem);padding-block-start:var(--_top)}nav.bottom{block-size:calc(var(--bottom, 0) + 4.5rem);padding-block-end:var(--_bottom)}nav>header{min-block-size:auto;padding:0;margin:0 0 1rem;align-items:flex-start;gap:1rem;background:none!important}nav:is(.top,.bottom)>header{flex-direction:row;align-items:center;margin:0 1rem 0 0}nav>header>*{margin:0;transition:none}nav.max>header>*{transition:all var(--speed1)}nav>header>.extend:hover{--_padding: 0;inline-size:var(--_size)}nav>header>.extend:hover>span:not([class]){display:none}nav>:is(ol,ul){all:inherit;min-inline-size:auto;margin:0;padding:0;flex:auto}nav.max:is(.left,.right,.top,.bottom){gap:0;inline-size:auto;align-items:flex-start;min-inline-size:12.75rem;padding:var(--_top) 1.25rem var(--_bottom) 1.25rem}nav.max>:is(ol,ul){padding:0}nav.max>header{margin:0 0 1.25rem}nav.max:is(.top,.bottom)>header{margin:0 1.25rem 0 0}nav.max>header>.extend{--_padding: 1.5rem;inline-size:auto;padding:0 var(--_padding)}nav.max>header>.extend>span:not([class]){display:block;margin-inline-start:var(--_padding)}nav.max>header>.extend>:is(img,svg)+span{margin-inline-start:calc(1rem + var(--_padding, 0))}nav.max:is(.top,.bottom){padding:0 .5rem;align-items:center;min-inline-size:auto;max-inline-size:none}nav:is(.left,.right,.top,.bottom)>a:not(.button,.chip),nav:is(.left,.right,.top,.bottom)>:is(ol,ul)>li>a:not(.button,.chip){display:flex;flex-direction:column;gap:.25rem;line-height:normal;inline-size:3.5rem;font-size:.8rem}nav:not(.max):is(.left,.right,.top,.bottom)>a:not(.button,.chip)>i,nav:not(.max):is(.left,.right,.top,.bottom)>:is(ol,ul)>li>a:not(.button,.chip)>i{padding:.25rem 1rem;border-radius:2rem;margin:0 auto}nav.max:is(.left,.right,.top,.bottom)>a:not(.button,.chip),nav.max:is(.left,.right,.top,.bottom)>:is(ol,ul)>li>a:not(.button,.chip){flex-direction:row;gap:.5rem;inline-size:auto;block-size:3.5rem;padding:0 1rem;border-radius:2rem;font-size:inherit}nav:is(.left,.right,.top,.bottom)>a.active:not(.button,.chip),nav:is(.left,.right,.top,.bottom)>:is(ol,ul)>li>a.active:not(.button,.chip){transition:padding var(--speed1) linear}nav.max:is(.top,.bottom)>a:not(.button,.chip),nav.max:is(.top,.bottom)>:is(ol,ul)>li>a:not(.button,.chip){gap:.25rem;block-size:2.5rem;font-size:.8rem}nav.max:is(.left,.right,.top,.bottom)>a.active:not(.button,.chip),nav.max:is(.left,.right,.top,.bottom)>:is(ol,ul)>li>a.active:not(.button,.chip),nav:is(.left,.right,.top,.bottom):not(.max)>a.active:not(.button,.chip)>i,nav:is(.left,.right,.top,.bottom):not(.max)>:is(ol,ul)>li>a.active:not(.button,.chip)>i{background-color:var(--secondary-container);color:var(--on-secondary-container)}nav.vertical>:is(ol,ul){align-items:normal}:is(nav,.row):is(.left-align,.top-align,.vertical){justify-content:flex-start}:is(nav,.row):is(.right-align,.bottom-align){justify-content:flex-end}:is(nav,.row):is(.center-align,.middle-align){justify-content:center}:is(nav,.row):is(.left-align,.top-align,.vertical).vertical{align-items:flex-start}:is(nav,.row):is(.right-align,.bottom-align).vertical{align-items:flex-end}:is(nav,.row):is(.center-align,.middle-align).vertical{align-items:center}nav:not(.left,.right)>.space{inline-size:.5rem}nav:not(.left,.right)>.medium-space{inline-size:1rem}nav:not(.left,.right)>.large-space{inline-size:1.5rem}nav.tabbed{background-color:var(--surface-container);border-radius:4rem!important;gap:0rem;block-size:4rem}nav.tabbed.small{block-size:3rem}nav.tabbed.large{block-size:5rem}nav.tabbed>a{border-radius:inherit;block-size:inherit;display:inline-flex;align-items:center;padding-inline:1rem;gap:.5rem;font-size:1rem;flex:1}nav.tabbed>a.active{background-color:var(--primary-container)}nav.toolbar{display:inline-flex;justify-content:space-around;border-radius:2rem;background-color:var(--surface-container);color:var(--on-surface);padding:0 1rem;gap:.5rem;min-block-size:4rem;min-inline-size:4rem}nav.toolbar>a{display:inline-flex;gap:.5rem;min-inline-size:2.5rem;min-block-size:2.5rem;border-radius:1.75rem}nav.toolbar>a:has(>:not(i)){padding:0 1rem}nav.toolbar>a.active{background-color:var(--secondary-container);color:var(--on-secondary-container)}nav.toolbar.fill{background-color:var(--primary-container)!important;color:var(--on-primary-container)!important}nav.toolbar.fill>a.active{background-color:var(--surface-container)!important;color:var(--on-surface)!important}nav.toolbar.vertical{flex-direction:column!important;min-inline-size:4rem;padding:1rem 0;align-self:center;align-items:center!important}nav.toolbar.vertical>a{inline-size:2.5rem;block-size:2.5rem}nav.toolbar.vertical>a>:is(div,span):not(.badge,.tooltip){display:none}nav.toolbar.max{border-radius:0;display:flex}nav.group{background:none!important}nav.group:is(.connected,.split){gap:.125rem}nav.group:not(.split)>:is(.button,button):not(.border){background-color:var(--surface-container);color:var(--on-surface-container)}nav.group:not(.split)>:is(.button,button).active{background-color:var(--primary);color:var(--on-primary)}nav.group.connected>:is(.button,button):not(.border){background-color:var(--surface-container);color:var(--on-surface-container)}nav.group.connected>:is(.button,button).active{background-color:var(--secondary-container);color:var(--on-secondary-container)}nav.group:is(.connected,.split)>:is(.button,button).active,nav.split>:is(.button,button):active{border-radius:2rem!important}:not(nav)>:is(ul,ol){all:revert}:is(.scroll,.no-scroll,.no-space,.tabs,.tabbed)>:focus-visible{outline:.125rem solid var(--primary);outline-offset:-.125rem}nav.split>:is(.button,button):not(.chip,.fill,.border){background-color:var(--primary);color:var(--on-primary)}@media only screen and (max-width:600px){nav.top,nav.bottom{justify-content:space-around}}.overlay,dialog::backdrop{display:block!important;opacity:0;visibility:hidden;position:fixed;top:0;right:0;bottom:0;left:0;color:var(--on-surface);background-color:var(--overlay);z-index:100;transition:all var(--speed3),0s background-color;border-radius:0}.overlay.active{opacity:1;visibility:visible}dialog:popover-open::backdrop{opacity:1;visibility:visible}.overlay+dialog::backdrop,.snackbar::backdrop{display:none}[popover]{border:0}.page{--_transform: translate(0, 0);opacity:0;position:absolute;display:none}.page.active{opacity:1;position:relative;display:block;animation:var(--speed4) to-page ease}.page.active.top{--_transform: translate(0, -4rem)}.page.active.bottom{--_transform: translate(0, 4rem)}.page.active.left{--_transform: translate(-4rem, 0)}.page.active.right{--_transform: translate(4rem, 0)}progress{--_size: .25rem;position:relative;inline-size:100%;block-size:var(--_size);color:var(--primary);background:var(--image);border-radius:1rem;flex:none;border:none;overflow:hidden;writing-mode:horizontal-tb;direction:ltr;-webkit-appearance:none;-moz-appearance:none;appearance:none}progress.small{--_size: .25rem}progress.medium{--_size: .35rem}progress.large{--_size: .45rem}progress.indeterminate{--_value: 100;animation:3.2s to-indeterminate-progress ease infinite}progress:not(.circle,[value]):after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inline-size:100%;block-size:100%;clip-path:none;background:currentcolor;animation:3.2s to-linear-progress ease infinite}progress:not(.circle,[value])::-moz-progress-bar{animation:3.2s to-linear-progress ease infinite}progress:not(.circle,[value])::-webkit-progress-value{animation:3.2s to-linear-progress ease infinite}progress::-webkit-progress-bar{background:none}progress::-webkit-progress-value{background:currentColor}progress::-moz-progress-bar{background:currentColor}progress.wavy{block-size:calc(var(--_size, 0) * 2);background:none;background-image:var(--image);background-repeat:repeat-x;background-position:0 50%;background-size:auto calc(var(--_size, 0) / 2)}progress.wavy::-webkit-progress-value,progress.wavy:not(.circle,[value]):after{-webkit-mask-image:url(wavy.svg);mask-image:url(wavy.svg);-webkit-mask-position:0 50%;mask-position:0 50%;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:auto 100%;mask-size:auto 100%}progress.wavy::-moz-progress-bar{-webkit-mask-image:url(wavy.svg);mask-image:url(wavy.svg);-webkit-mask-position:0 50%;mask-position:0 50%;-webkit-mask-repeat:repeat-x;mask-repeat:repeat-x;-webkit-mask-size:auto 100%;mask-size:auto 100%}progress.circle{--_value: attr(value type(<number>), 50);inline-size:2.5rem;block-size:2.5rem;background:conic-gradient(currentColor calc(var(--_value, 0) * 1%),var(--active) 0%);border-radius:50%;-webkit-mask-image:radial-gradient(circle at center,transparent 57%,currentColor 60%);mask-image:radial-gradient(circle at center,transparent 57%,currentColor 60%)}progress.circle::-webkit-progress-value{background:none}progress.circle::-moz-progress-bar{background:none}progress.circle.wavy{background:conic-gradient(currentColor calc(var(--_value, 0) * 1%),var(--active) 0);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-image:url(wavy-circle.svg);mask-image:url(wavy-circle.svg)}progress.circle.small{inline-size:1.5rem;block-size:1.5rem}progress.circle.large{inline-size:3.5rem;block-size:3.5rem}progress.circle:not([value]),progress.circle.indeterminate{--_value: 50;animation:to-rotate 1s infinite linear}:is(nav,.row,.field)>progress:not(.circle,.small,.medium,.large){flex:auto}progress.max{display:unset;position:absolute;inline-size:100%!important;block-size:100%!important;color:currentColor;background:none;top:0;right:0;bottom:0;left:0;border-radius:inherit;animation:none;writing-mode:horizontal-tb;opacity:.33}progress.max[class*=-text]{opacity:1}progress.max+*{margin-block-start:0}:is(.button,button,.chip)>progress.circle{color:inherit}.shape{display:flex;align-items:center;justify-content:center;color:var(--on-primary);background-color:var(--primary);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;border-radius:0;block-size:3.5rem;inline-size:3.5rem;margin:0!important;padding:0!important;border:0!important}.transparent>.shape>i{filter:invert(1)}.shape.tiny-space{-webkit-mask-size:90%;mask-size:90%}.shape.space,.shape.small-space{-webkit-mask-size:80%;mask-size:80%}.shape.medium-space{-webkit-mask-size:70%;mask-size:70%}.shape.large-space{-webkit-mask-size:60%;mask-size:60%}.shape.extra-space{-webkit-mask-size:50%;mask-size:50%}.shape.tiny{block-size:2.5rem;inline-size:2.5rem}.shape.medium{block-size:4.5rem;inline-size:4.5rem}.shape.large{block-size:5.5rem;inline-size:5.5rem}.shape.extra{block-size:6.5rem;inline-size:6.5rem}.shape.max,.shape>.responsive,.shape>.responsive>.responsive{position:absolute;top:0;right:0;bottom:0;left:0;block-size:100%;inline-size:100%;margin:0!important;padding:0!important;border:0!important}.shape>.responsive{background:inherit;color:inherit}.shape.rotate{animation:linear to-rotate infinite 12s}.shape.rotate>*{animation:linear to-rotate infinite 12s reverse}.shape.fast-rotate{animation:linear to-rotate infinite 6s}.shape.fast-rotate>*{animation:linear to-rotate infinite 6s reverse}.shape.slow-rotate{animation:linear to-rotate infinite 24s}.shape.slow-rotate>*{animation:linear to-rotate infinite 24s reverse}:is(button,.button,.chip):has(>.shape)>.responsive{border:none}.shape.arch{-webkit-mask-image:url(arch.svg);mask-image:url(arch.svg)}.shape.arrow{-webkit-mask-image:url(arrow.svg);mask-image:url(arrow.svg)}.shape.boom{-webkit-mask-image:url(boom.svg);mask-image:url(boom.svg)}.shape.bun{-webkit-mask-image:url(bun.svg);mask-image:url(bun.svg)}.shape.burst{-webkit-mask-image:url(burst.svg);mask-image:url(burst.svg)}.shape.circle{-webkit-mask-image:url(circle.svg);mask-image:url(circle.svg)}.shape.clamshell{-webkit-mask-image:url(clamshell.svg);mask-image:url(clamshell.svg)}.shape.diamond{-webkit-mask-image:url(diamond.svg);mask-image:url(diamond.svg)}.shape.fan{-webkit-mask-image:url(fan.svg);mask-image:url(fan.svg)}.shape.flower{-webkit-mask-image:url(flower.svg);mask-image:url(flower.svg)}.shape.gem{-webkit-mask-image:url(gem.svg);mask-image:url(gem.svg)}.shape.ghost-ish{-webkit-mask-image:url(ghost-ish.svg);mask-image:url(ghost-ish.svg)}.shape.heart{-webkit-mask-image:url(heart.svg);mask-image:url(heart.svg)}.shape.leaf-clover4{-webkit-mask-image:url(leaf-clover4.svg);mask-image:url(leaf-clover4.svg)}.shape.leaft-clover8{-webkit-mask-image:url(leaf-clover8.svg);mask-image:url(leaf-clover8.svg)}.shape.loading-indicator{-webkit-mask-image:url(loading-indicator.svg);mask-image:url(loading-indicator.svg)}.shape.oval{-webkit-mask-image:url(oval.svg);mask-image:url(oval.svg)}.shape.pentagon{-webkit-mask-image:url(pentagon.svg);mask-image:url(pentagon.svg)}.shape.pill{-webkit-mask-image:url(pill.svg);mask-image:url(pill.svg)}.shape.pixel-circle{-webkit-mask-image:url(pixel-circle.svg);mask-image:url(pixel-circle.svg)}.shape.pixel-triangle{-webkit-mask-image:url(pixel-triangle.svg);mask-image:url(pixel-triangle.svg)}.shape.puffy{-webkit-mask-image:url(puffy.svg);mask-image:url(puffy.svg)}.shape.puffy-diamond{-webkit-mask-image:url(puffy-diamond.svg);mask-image:url(puffy-diamond.svg)}.shape.semicircle{-webkit-mask-image:url(semicircle.svg);mask-image:url(semicircle.svg)}.shape.sided-cookie4{-webkit-mask-image:url(sided-cookie4.svg);mask-image:url(sided-cookie4.svg)}.shape.sided-cookie6{-webkit-mask-image:url(sided-cookie6.svg);mask-image:url(sided-cookie6.svg)}.shape.sided-cookie7{-webkit-mask-image:url(sided-cookie7.svg);mask-image:url(sided-cookie7.svg)}.shape.sided-cookie9{-webkit-mask-image:url(sided-cookie9.svg);mask-image:url(sided-cookie9.svg)}.shape.sided-cookie12{-webkit-mask-image:url(sided-cookie12.svg);mask-image:url(sided-cookie12.svg)}.shape.slanted{-webkit-mask-image:url(slanted.svg);mask-image:url(slanted.svg)}.shape.soft-boom{-webkit-mask-image:url(soft-boom.svg);mask-image:url(soft-boom.svg)}.shape.soft-burst{-webkit-mask-image:url(soft-burst.svg);mask-image:url(soft-burst.svg)}.shape.square{-webkit-mask-image:url(square.svg);mask-image:url(square.svg)}.shape.sunny{-webkit-mask-image:url(sunny.svg);mask-image:url(sunny.svg)}.shape.triangle{-webkit-mask-image:url(triangle.svg);mask-image:url(triangle.svg)}.shape.very-sunny{-webkit-mask-image:url(very-sunny.svg);mask-image:url(very-sunny.svg)}.checkbox,.radio,.switch{--_size: 1.5rem;inline-size:auto;block-size:auto;line-height:normal;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center}.switch{direction:ltr}:is(.checkbox,.radio,.switch).small{--_size: 1rem}:is(.checkbox,.radio,.switch).large{--_size: 2rem}:is(.checkbox,.radio,.switch).extra{--_size: 2.5rem}:is(.checkbox,.radio)>input{inline-size:var(--_size);block-size:var(--_size);opacity:0}.switch>input{inline-size:3.25rem;block-size:2rem;opacity:0}:is(.checkbox,.radio,.switch)>span{display:inline-flex;align-items:center;color:var(--on-surface);font-size:.875rem}:is(.checkbox,.radio)>span:not(:empty){padding-inline-start:.25rem}:is(.checkbox,.radio,.switch)>span:before,:is(.checkbox,.radio,.switch)>span>i,:is(.checkbox,.radio)>span:after{--_size: inherit;content:"";inline-size:var(--_size);block-size:var(--_size);box-sizing:border-box;margin:0 auto;outline:none;color:var(--primary);position:absolute;inset:auto auto auto calc(var(--_size, 0) * -1);border-radius:50%;-webkit-user-select:none;user-select:none;z-index:1}[dir=rtl] :is(.checkbox,.radio)>span:before,[dir=rtl] :is(.checkbox,.radio)>span>i,[dir=rtl] :is(.checkbox,.radio)>span:after{--_size: inherit;inset:auto calc(var(--_size, 0) * -1) auto auto}.switch>span:before,.switch.icon>span>i{position:absolute;inset:50% auto auto 0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:all var(--speed2);font-size:calc(var(--_size, 0) - .5rem);-webkit-user-select:none;user-select:none;min-inline-size:var(--_size);min-block-size:var(--_size);content:"";color:var(--surface-variant);background-color:var(--outline)}.switch>span:before,.switch.icon>span>i{transform:translate(-3rem,-50%) scale(.6)}.switch.icon>span>i{transform:translate(-3rem,-50%) scale(1)}.checkbox>span:before{content:"check_box_outline_blank"}.checkbox>input:checked+span:before{content:"check_box";font-variation-settings:"FILL" 1}.checkbox>input:indeterminate+span:before{content:"indeterminate_check_box"}.radio>span:before{content:"radio_button_unchecked"}.radio>input:checked+span:before{content:"radio_button_checked"}:is(.radio,.checkbox,.switch).icon>span:before{content:""!important;font-variation-settings:unset!important}:is(.checkbox,.radio)>span:after{transition:all var(--speed1);background-color:currentColor;box-shadow:0 0 0 0 currentColor;opacity:0}:is(.checkbox,.radio):is(:hover)>input:not(:disabled)+span:after,:is(.checkbox,.radio)>input:not(:disabled):is(:focus)+span:after{box-shadow:0 0 0 .5rem currentColor;opacity:.1}.switch>input:not(:disabled):is(:focus,:hover)+span:before,.switch.icon>input:not(:disabled):is(:focus,:hover)+span>i{box-shadow:0 0 0 .5rem var(--active)}:is(.checkbox,.radio)>input:checked+span:before,:is(.checkbox,.radio).icon>input:checked+span>i{color:var(--primary)}.icon>input:checked+span>i:first-child,.icon>span>i:last-child{opacity:0}.icon>input:checked+span>i:last-child,.icon>span>i:first-child{opacity:1}.switch>input:checked+span:after{border:none;background-color:var(--primary)}.switch>input:checked+span:before,.switch.icon>input:checked+span>i{content:"check";color:var(--primary);background-color:var(--on-primary);transform:translate(-1.75rem,-50%) scale(1)}.switch>input:active:not(:disabled)+span:before,.switch.icon>input:active:not(:disabled)+span>i{transform:translate(-3rem,-50%) scale(1.2)}[dir=rtl] .switch>input:active:not(:disabled)+span:before,[dir=rtl] .switch.icon>input:active:not(:disabled)+span>i{transform:translate(-3rem,-50%) scale(-1.2)}.switch>input:active:checked:not(:disabled)+span:before,.switch.icon>input:active:checked:not(:disabled)+span>i{transform:translate(-1.75rem,-50%) scale(1.2)}[dir=rtl] .switch>input:active:checked:not(:disabled)+span:before,[dir=rtl] .switch.icon>input:active:checked:not(:disabled)+span>i{transform:translate(-1.75rem,-50%) scale(-1.2)}:is(.checkbox,.radio,.switch)>input:disabled+span{opacity:.5;cursor:not-allowed}.switch>span:after{content:"";position:absolute;inset:50% auto auto 0;background-color:var(--active);border:.125rem solid var(--outline);box-sizing:border-box;inline-size:3.25rem;block-size:2rem;border-radius:2rem;transform:translate(-3.25rem,-50%)}.field>:is(nav,.row){flex-grow:1;padding:0 1rem}.field.round>:is(nav,.row){flex-grow:1;padding:0 1.5rem}[dir=rtl] .switch{transform:scale(-1)}[dir=rtl] .switch>span:before,[dir=rtl] .switch.icon>span>i{transform:translate(-3rem,-50%) scale(-.6)}[dir=rtl] .switch.icon>span>i{transform:translate(-3rem,-50%) scale(-1)}[dir=rtl] .switch>input:checked+span:before,[dir=rtl] .switch.icon>input:checked+span>i{transform:translate(-1.75rem,-50%) scale(-1)}.switch>:focus-visible+span:after{outline:.125rem solid var(--primary);outline-offset:.25rem}:is(.checkbox,.radio)>:focus-visible+span:before{outline:.125rem solid var(--primary);outline-offset:.375rem}.slider{--_start: 0%;--_end: 0%;--_value1: "";--_value2: "";--_track: 1rem;--_thumb: max(2.5rem, calc(var(--_track, 0) + .5rem));display:flex;align-items:center!important;inline-size:auto;block-size:var(--_thumb);flex:none;direction:ltr;margin:0 1.25rem;color:var(--primary)}[dir=rtl] .slider{transform:scaleX(-1)}.slider.vertical{flex-direction:row!important;margin:.5rem auto!important;padding:50% 0;transform:rotate(-90deg);inline-size:100%}.slider.tiny{--_track: 1rem}.slider.small{--_track: 1.5rem}.slider.medium{--_track: 2.5rem}.slider.large{--_track: 3.5rem}.slider.extra{--_track: 6rem}.slider>input{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border:none;outline:none;pointer-events:none;inline-size:100%;block-size:var(--_track);background:none;z-index:1;padding:0;margin:0;transform:rotate(0);touch-action:none}.slider>input:only-of-type{pointer-events:all}.slider>input~input{position:absolute}.slider>input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border:none;outline:none;pointer-events:all;block-size:var(--_thumb);inline-size:.25rem;border-radius:.25rem;background:currentColor;cursor:grab;margin:0;z-index:1}.slider>input::-webkit-slider-thumb:active{cursor:grabbing}.slider>input::-moz-range-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:none;border:none;outline:none;pointer-events:all;block-size:2.75rem;inline-size:.25rem;border-radius:.25rem;background:var(--primary);cursor:grab;margin:0}.slider>input::-moz-range-thumb:active{cursor:grabbing}.slider>input:not(:disabled):is(:focus)::-webkit-slider-thumb{transform:scaleX(.6)}.slider>input:not(:disabled):is(:focus)::-moz-range-thumb{transform:scaleX(.6)}.slider>input:disabled{cursor:not-allowed;opacity:1}.slider>input:disabled::-webkit-slider-thumb{background:var(--outline);cursor:not-allowed}.slider>input:disabled::-moz-range-thumb{background:var(--outline);cursor:not-allowed}.slider>input:disabled~span:not([class]){background:var(--outline)}.slider>span:not([class]){position:absolute;block-size:var(--_track);border-radius:1rem 0 0 1rem;background:currentColor;color:currentColor;z-index:0;inset:calc(50% - (var(--_track, 0) / 2)) calc(var(--_end) + .5rem) auto var(--_start)}.slider>input[type=range]+input[type=range]~span:not([class]){border-radius:0;inset:calc(50% - (var(--_track, 0) / 2)) calc(var(--_end) + .5rem) auto calc(var(--_start) + .5rem)}.field>.slider{inline-size:100%}.slider:before{content:"";position:absolute;inline-size:100%;block-size:var(--_track);border-radius:1rem;background:var(--active);clip-path:polygon(calc(var(--_start, 0) - .5rem) 0,0 0,0 100%,calc(var(--_start, 0) - .5rem) 100%,calc(var(--_start, 0) - .5rem) 0,calc(100% - var(--_end, 0) + .5rem) 0,100% 0,100% 100%,calc(100% - var(--_end, 0) + .5rem) 100%,calc(100% - var(--_end, 0) + .5rem) 0)}.slider:has(>[disabled]):before{background:var(--active)}.slider:has([disabled]){opacity:.62}.slider>span>i{position:absolute;block-size:auto;inset:0 auto 0 .5rem;color:var(--inverse-primary);z-index:1}.slider:not(.medium,.large,.extra)>span>i{display:none}.slider.vertical>i{transform:rotate(90deg)}.slider>.tooltip{visibility:hidden!important;opacity:0!important;inset:0 auto auto calc(100% - var(--_end, 0));border-radius:2rem;transition:top var(--speed2) ease,opacity var(--speed2) ease;transform:translate(-50%,-25%)!important;padding:.75rem 1rem}.slider>.tooltip.bottom{inset:auto auto 0 calc(100% - var(--_end, 0));transition:bottom var(--speed2) ease,opacity var(--speed2) ease;transform:translate(-50%,25%)!important}[dir=rtl] .slider>.tooltip{transform:translate(-50%,-25%) scaleX(-1)!important}[dir=rtl] .slider>.tooltip.bottom{transform:translate(-50%,25%) scaleX(-1)!important}.slider>.tooltip+.tooltip{inset:.25rem calc(100% - var(--_start, 0)) auto auto;transform:translate(50%,-25%)!important}.slider>.tooltip+.tooltip.bottom{inset:auto calc(100% - var(--_start, 0)) -.25rem auto;transform:translate(50%,25%)!important}[dir=rtl] .slider>.tooltip+.tooltip{transform:translate(50%,-25%) scaleX(-1)!important}[dir=rtl] .slider>.tooltip+.tooltip.bottom{transform:translate(50%,25%) scaleX(-1)!important}.slider>.tooltip:before{content:var(--_value1)}.slider>.tooltip+.tooltip:before{content:var(--_value2)}.slider>:focus~.tooltip{inset-block:-1rem auto;opacity:1!important;visibility:visible!important}.slider>:focus~.tooltip.bottom{inset-block:auto -1rem}.slider.vertical>.tooltip{inset-block:auto;block-size:2.5rem;inline-size:2.5rem;margin-block:calc(-1 * var(--_thumb, 0)) 0!important;transform:rotate(90deg) translate(-75%,50%)!important}.slider.vertical>.tooltip.bottom{inset-block:auto;margin-block:0 calc(-1 * var(--_thumb, 0))!important;transform:rotate(90deg) translate(75%,50%)!important}.slider.vertical>.tooltip+.tooltip{transform:rotate(90deg) translate(-75%,-50%)!important}.slider.vertical>.tooltip+.tooltip.bottom{transform:rotate(90deg) translate(75%,-50%)!important}:is(nav,.row,.field)>.slider:not(.circle,.small,.medium,.large){flex:auto}.slider.max,.slider.max.vertical,.slider.max>input,.slider.max.vertical>input{all:unset;margin:0!important;position:absolute;color:var(--primary);top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden;z-index:2;cursor:grab;inline-size:100%;block-size:100%}.slider.max:before{display:none}.slider.max.vertical>input{writing-mode:vertical-lr;transform:rotate(-180deg)}.slider.max>input::-webkit-slider-thumb{opacity:0;inline-size:1rem;block-size:100vh;transform:none!important}.slider.max>input::-moz-range-thumb{opacity:0;inline-size:1rem;block-size:100vh;transform:none!important}.slider.max>span:not([class]){block-size:auto!important;inset:0 var(--_end) 0 var(--_start);background:currentcolor;color:inherit;border-radius:0}.slider.max.vertical>span:not([class]){inset:var(--_end) 0 var(--_start) 0}.slider>input:focus-visible::-webkit-slider-thumb{outline:.1875rem solid var(--primary);outline-offset:.25rem}.slider>input:focus-visible::-moz-range-thumb{outline:.1875rem solid var(--primary);outline-offset:.25rem}.slider.max>input:focus-visible{outline:.1875rem solid var(--primary);outline-offset:-.125rem}@media(pointer:coarse){.slider>:hover~.tooltip{inset-block:-1rem auto!important;opacity:1!important;visibility:visible!important}.slider>:hover~.tooltip.bottom{inset-block:auto -1rem!important}}.snackbar{position:fixed;inset:auto auto 6rem 50%;inline-size:80%;block-size:auto;z-index:200;visibility:hidden;display:flex;box-shadow:var(--elevate2);color:var(--inverse-on-surface);background-color:var(--inverse-surface);padding:1rem;cursor:pointer;text-align:start;align-items:center;border-radius:.25rem;gap:.5rem;transition:all var(--speed2);transform:translate(-50%,1rem);opacity:0}.snackbar.top{inset:6rem auto auto 50%}.snackbar:is(.active){visibility:visible;transform:translate(-50%);opacity:1}.snackbar:popover-open{visibility:visible;transform:translate(-50%);opacity:1}.snackbar>.max{flex:auto}@media only screen and (min-width:993px){.snackbar{inline-size:40%}}table{inline-size:100%;border-spacing:0;font-size:.875rem;text-align:start}.scroll>table,table :is(thead,tbody,tfoot,tr,th,td){background-color:inherit;color:inherit}:is(th,td){inline-size:auto;text-align:inherit;padding:.5rem;border-radius:0}:is(th,td)>*{vertical-align:middle}table.border>tbody>tr:not(:last-child)>td,thead>tr>th{border-block-end:.0625rem solid var(--outline)}tfoot>tr>th{border-block-start:.0625rem solid var(--outline)}table.stripes>tbody>tr:nth-child(odd){background-color:var(--active)}table.no-space :is(th,td){padding:0}table.medium-space :is(th,td){padding:.75rem}table.large-space :is(th,td){padding:1rem}table>.fixed,th.fixed{position:sticky;z-index:1;inset-block-start:0}tfoot.fixed,tfoot th.fixed{inset-block-end:0}:is(td,th).min{inline-size:.1%;white-space:nowrap}.tabs{display:flex;white-space:nowrap;border-block-end:.0625rem solid var(--surface-variant);border-radius:0}.tabs:not(.left-align,.right-align,.center-align){justify-content:space-around}.tabs>a{display:flex;font-size:.875rem;font-weight:500;color:var(--on-surface-variant);padding:.5rem 1rem;text-align:center;min-block-size:3rem;inline-size:100%;gap:.25rem}.tabs.small>a{min-block-size:2rem}.tabs.large>a{min-block-size:4rem}.tabs>a.active,.tabs>a.active>i{color:var(--primary)}.tabs>a.active:before{content:"";position:absolute;inset:auto 0 0 0;block-size:.125rem;background-color:var(--primary)}.tabs.min>a.active:before{margin:0 auto;max-inline-size:min(100%,4rem)}.tabs:is(.left-align,.center-align,.right-align)>a{inline-size:auto}.tooltip{--_space: -.5rem;visibility:hidden;display:flex;align-items:center;justify-content:center;gap:.5rem;background-color:var(--inverse-surface);color:var(--inverse-on-surface);font-size:.75rem;text-align:center;border-radius:.25rem;padding:.5rem;position:absolute;z-index:200;inset:0 auto auto 50%;inline-size:auto;white-space:nowrap;font-weight:500;opacity:0;transition:all var(--speed2);line-height:normal;transform:translate(-50%,-100%) scale(.9)}.tooltip:not(.max):hover{visibility:hidden;opacity:0}.tooltip.left{inset:50% auto auto 0;transform:translate(-100%,-50%) scale(.9)}.tooltip.right{inset:50% 0 auto auto;transform:translate(100%,-50%) scale(.9)}.tooltip.bottom{inset:auto auto 0 50%;transform:translate(-50%,100%) scale(.9)}.tooltip.small{inline-size:8rem;white-space:normal}.tooltip.medium{inline-size:12rem;white-space:normal}.tooltip.large{inline-size:16rem;white-space:normal}:hover>.tooltip{visibility:visible;opacity:1;transform:translate(-50%,-100%) scale(1)}:hover>.tooltip.left{transform:translate(-100%,-50%) scale(1)}:hover>.tooltip.right{transform:translate(100%,-50%) scale(1)}:hover>.tooltip.bottom{transform:translate(-50%,100%) scale(1)}.tooltip.no-space{--_space: 0}.tooltip.medium-space{--_space: -1rem}.tooltip.large-space{--_space: -1.5rem}.tooltip:not(.left,.right,.bottom){margin-block-start:var(--_space)!important}.tooltip.left,.tooltip.right{margin-inline:var(--_space)!important}.tooltip.bottom{margin-block-end:var(--_space)!important}menu:active~.tooltip,:is(button,.button):focus>menu~.tooltip,.field>:focus~menu~.tooltip{visibility:hidden}.slider>.tooltip{--_space: -1.25rem}.slider.vertical>.tooltip{--_space: -.75rem}.slider.vertical>.tooltip:is(.left,.right){--_space: -.5rem}.tooltip.max{display:block;font-size:inherit;white-space:normal;text-align:start;inline-size:20rem;border-radius:.5rem;padding:1rem;box-shadow:var(--elevate2)}.transparent{background-color:transparent!important;box-shadow:none!important;color:inherit!important}.primary{background-color:var(--primary)!important;color:var(--on-primary)!important}.primary-text{color:var(--primary)!important}.primary-border{border-color:var(--primary)!important}.primary-container{background-color:var(--primary-container)!important;color:var(--on-primary-container)!important}.secondary{background-color:var(--secondary)!important;color:var(--on-secondary)!important}.secondary-text{color:var(--secondary)!important}.secondary-border{border-color:var(--secondary)!important}.secondary-container{background-color:var(--secondary-container)!important;color:var(--on-secondary-container)!important}.tertiary{background-color:var(--tertiary)!important;color:var(--on-tertiary)!important}.tertiary-text{color:var(--tertiary)!important}.tertiary-border{border-color:var(--tertiary)!important}.tertiary-container{background-color:var(--tertiary-container)!important;color:var(--on-tertiary-container)!important}.error{background-color:var(--error)!important;color:var(--on-error)!important}.error-text{color:var(--error)!important}.error-border{border-color:var(--error)!important}.error-container{background-color:var(--error-container)!important;color:var(--on-error-container)!important}.background{background-color:var(--background)!important;color:var(--on-background)!important}.surface,.surface-dim,.surface-bright,.surface-container-lowest,.surface-container-low,.surface-container,.surface-container-high,.surface-container-highest{background-color:var(--surface)!important;color:var(--on-surface)!important}.surface-variant{background-color:var(--surface-variant)!important;color:var(--on-surface-variant)!important}.inverse-surface{background-color:var(--inverse-surface);color:var(--inverse-on-surface)}.inverse-primary{background-color:var(--inverse-primary);color:var(--primary)}.inverse-primary-text{color:var(--inverse-primary)!important}.inverse-primary-border{border-color:var(--inverse-primary)!important}.surface-dim{background-color:var(--surface-dim)!important}.surface-bright{background-color:var(--surface-bright)!important}.surface-container-lowest{background-color:var(--surface-container-lowest)!important}.surface-container{background-color:var(--surface-container)!important}.surface-container-high{background-color:var(--surface-container-high)!important}.surface-container-highest{background-color:var(--surface-container-highest)!important}.surface-container-low{background-color:var(--surface-container-low)!important}.black{background-color:#000!important}.black-border{border-color:#000!important}.black-text{color:#000!important}.white{background-color:#fff!important}.white-border{border-color:#fff!important}.white-text{color:#fff!important}.transparent-border{border-color:transparent!important}.transparent-text{color:transparent!important}.fill:not(i){background-color:var(--surface-variant)!important;color:var(--on-surface-variant)!important}nav.primary-container>button,:is(nav,menu).primary>:is(button,a,li).active{background-color:var(--primary-container)!important;color:var(--on-primary-container)!important}nav.primary>button,:is(nav,menu).primary-container>:is(button,a,li).active{background-color:var(--primary)!important;color:var(--on-primary)!important}nav.secondary-container>button,:is(nav,menu).secondary>:is(button,a,li).active{background-color:var(--secondary-container)!important;color:var(--on-secondary-container)!important}nav.secondary>button,:is(nav,menu).secondary-container>:is(button,a,li).active{background-color:var(--secondary)!important;color:var(--on-secondary)!important}nav.tertiary-container>button,:is(nav,menu).tertiary>:is(button,a,li).active{background-color:var(--tertiary-container)!important;color:var(--on-tertiary-container)!important}nav.tertiary>button,:is(nav,menu).tertiary-container>:is(button,a,li).active{background-color:var(--tertiary)!important;color:var(--on-tertiary)!important}.red,.red6{background-color:#f44336!important}.red-border{border-color:#f44336!important}.red-text{color:#f44336!important}.red1{background-color:#ffebee!important}.red2{background-color:#ffcdd2!important}.red3{background-color:#ef9a9a!important}.red4{background-color:#e57373!important}.red5{background-color:#ef5350!important}.red7{background-color:#e53935!important}.red8{background-color:#d32f2f!important}.red9{background-color:#c62828!important}.red10{background-color:#b71c1c!important}.pink,.pink6{background-color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-text{color:#e91e63!important}.pink1{background-color:#fce4ec!important}.pink2{background-color:#f8bbd0!important}.pink3{background-color:#f48fb1!important}.pink4{background-color:#f06292!important}.pink5{background-color:#ec407a!important}.pink7{background-color:#d81b60!important}.pink8{background-color:#c2185b!important}.pink9{background-color:#ad1457!important}.pink10{background-color:#880e4f!important}.purple,.purple6{background-color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-text{color:#9c27b0!important}.purple1{background-color:#f3e5f5!important}.purple2{background-color:#e1bee7!important}.purple3{background-color:#ce93d8!important}.purple4{background-color:#ba68c8!important}.purple5{background-color:#ab47bc!important}.purple7{background-color:#8e24aa!important}.purple8{background-color:#7b1fa2!important}.purple9{background-color:#6a1b9a!important}.purple10{background-color:#4a148c!important}.deep-purple,.deep-purple6{background-color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-text{color:#673ab7!important}.deep-purple1{background-color:#ede7f6!important}.deep-purple2{background-color:#d1c4e9!important}.deep-purple3{background-color:#b39ddb!important}.deep-purple4{background-color:#9575cd!important}.deep-purple5{background-color:#7e57c2!important}.deep-purple7{background-color:#5e35b1!important}.deep-purple8{background-color:#512da8!important}.deep-purple9{background-color:#4527a0!important}.deep-purple10{background-color:#311b92!important}.indigo,.indigo6{background-color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-text{color:#3f51b5!important}.indigo1{background-color:#e8eaf6!important}.indigo2{background-color:#c5cae9!important}.indigo3{background-color:#9fa8da!important}.indigo4{background-color:#7986cb!important}.indigo5{background-color:#5c6bc0!important}.indigo7{background-color:#3949ab!important}.indigo8{background-color:#303f9f!important}.indigo9{background-color:#283593!important}.indigo10{background-color:#1a237e!important}.blue,.blue6{background-color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-text{color:#2196f3!important}.blue1{background-color:#e3f2fd!important}.blue2{background-color:#bbdefb!important}.blue3{background-color:#90caf9!important}.blue4{background-color:#64b5f6!important}.blue5{background-color:#42a5f5!important}.blue7{background-color:#1e88e5!important}.blue8{background-color:#1976d2!important}.blue9{background-color:#1565c0!important}.blue10{background-color:#0d47a1!important}.light-blue,.light-blue6{background-color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-text{color:#03a9f4!important}.light-blue1{background-color:#e1f5fe!important}.light-blue2{background-color:#b3e5fc!important}.light-blue3{background-color:#81d4fa!important}.light-blue4{background-color:#4fc3f7!important}.light-blue5{background-color:#29b6f6!important}.light-blue7{background-color:#039be5!important}.light-blue8{background-color:#0288d1!important}.light-blue9{background-color:#0277bd!important}.light-blue10{background-color:#01579b!important}.cyan,.cyan6{background-color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-text{color:#00bcd4!important}.cyan1{background-color:#e0f7fa!important}.cyan2{background-color:#b2ebf2!important}.cyan3{background-color:#80deea!important}.cyan4{background-color:#4dd0e1!important}.cyan5{background-color:#26c6da!important}.cyan7{background-color:#00acc1!important}.cyan8{background-color:#0097a7!important}.cyan9{background-color:#00838f!important}.cyan10{background-color:#006064!important}.teal,.teal6{background-color:#009688!important}.teal-border{border-color:#009688!important}.teal-text{color:#009688!important}.teal1{background-color:#e0f2f1!important}.teal2{background-color:#b2dfdb!important}.teal3{background-color:#80cbc4!important}.teal4{background-color:#4db6ac!important}.teal5{background-color:#26a69a!important}.teal7{background-color:#00897b!important}.teal8{background-color:#00796b!important}.teal9{background-color:#00695c!important}.teal10{background-color:#004d40!important}.green,.green6{background-color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-text{color:#4caf50!important}.green1{background-color:#e8f5e9!important}.green2{background-color:#c8e6c9!important}.green3{background-color:#a5d6a7!important}.green4{background-color:#81c784!important}.green5{background-color:#66bb6a!important}.green7{background-color:#43a047!important}.green8{background-color:#388e3c!important}.green9{background-color:#2e7d32!important}.green10{background-color:#1b5e20!important}.light-green,.light-green6{background-color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-text{color:#8bc34a!important}.light-green1{background-color:#f1f8e9!important}.light-green2{background-color:#dcedc8!important}.light-green3{background-color:#c5e1a5!important}.light-green4{background-color:#aed581!important}.light-green5{background-color:#9ccc65!important}.light-green7{background-color:#7cb342!important}.light-green8{background-color:#689f38!important}.light-green9{background-color:#558b2f!important}.light-green10{background-color:#33691e!important}.lime,.lime6{background-color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-text{color:#cddc39!important}.lime1{background-color:#f9fbe7!important}.lime2{background-color:#f0f4c3!important}.lime3{background-color:#e6ee9c!important}.lime4{background-color:#dce775!important}.lime5{background-color:#d4e157!important}.lime7{background-color:#c0ca33!important}.lime8{background-color:#afb42b!important}.lime9{background-color:#9e9d24!important}.lime10{background-color:#827717!important}.yellow,.yellow6{background-color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-text{color:#ffeb3b!important}.yellow1{background-color:#fffde7!important}.yellow2{background-color:#fff9c4!important}.yellow3{background-color:#fff59d!important}.yellow4{background-color:#fff176!important}.yellow5{background-color:#ffee58!important}.yellow7{background-color:#fdd835!important}.yellow8{background-color:#fbc02d!important}.yellow9{background-color:#f9a825!important}.yellow10{background-color:#f57f17!important}.amber,.amber6{background-color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-text{color:#ffc107!important}.amber1{background-color:#fff8e1!important}.amber2{background-color:#ffecb3!important}.amber3{background-color:#ffe082!important}.amber4{background-color:#ffd54f!important}.amber5{background-color:#ffca28!important}.amber7{background-color:#ffb300!important}.amber8{background-color:#ffa000!important}.amber9{background-color:#ff8f00!important}.amber10{background-color:#ff6f00!important}.orange,.orange6{background-color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-text{color:#ff9800!important}.orange1{background-color:#fff3e0!important}.orange2{background-color:#ffe0b2!important}.orange3{background-color:#ffcc80!important}.orange4{background-color:#ffb74d!important}.orange5{background-color:#ffa726!important}.orange7{background-color:#fb8c00!important}.orange8{background-color:#f57c00!important}.orange9{background-color:#ef6c00!important}.orange10{background-color:#e65100!important}.deep-orange,.deep-orange6{background-color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-text{color:#ff5722!important}.deep-orange1{background-color:#fbe9e7!important}.deep-orange2{background-color:#ffccbc!important}.deep-orange3{background-color:#ffab91!important}.deep-orange4{background-color:#ff8a65!important}.deep-orange5{background-color:#ff7043!important}.deep-orange7{background-color:#f4511e!important}.deep-orange8{background-color:#e64a19!important}.deep-orange9{background-color:#d84315!important}.deep-orange10{background-color:#bf360c!important}.brown,.brown6{background-color:#795548!important}.brown-border{border-color:#795548!important}.brown-text{color:#795548!important}.brown1{background-color:#efebe9!important}.brown2{background-color:#d7ccc8!important}.brown3{background-color:#bcaaa4!important}.brown4{background-color:#a1887f!important}.brown5{background-color:#8d6e63!important}.brown7{background-color:#6d4c41!important}.brown8{background-color:#5d4037!important}.brown9{background-color:#4e342e!important}.brown10{background-color:#3e2723!important}.blue-grey,.blue-grey6{background-color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-text{color:#607d8b!important}.blue-grey1{background-color:#eceff1!important}.blue-grey2{background-color:#cfd8dc!important}.blue-grey3{background-color:#b0bec5!important}.blue-grey4{background-color:#90a4ae!important}.blue-grey5{background-color:#78909c!important}.blue-grey7{background-color:#546e7a!important}.blue-grey8{background-color:#455a64!important}.blue-grey9{background-color:#37474f!important}.blue-grey10{background-color:#263238!important}.grey,.grey6{background-color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-text{color:#9e9e9e!important}.grey1{background-color:#fafafa!important}.grey2{background-color:#f5f5f5!important}.grey3{background-color:#eee!important}.grey4{background-color:#e0e0e0!important}.grey5{background-color:#bdbdbd!important}.grey7{background-color:#757575!important}.grey8{background-color:#616161!important}.grey9{background-color:#424242!important}.grey10{background-color:#212121!important}
5
5
 
6
6
 
7
- /* Khipu Design System Tokens & BeerCSS Variable Mappings */
8
- /* Khipu Material Design 3 Brand Tokens
9
- * Design system tokens extracted from Figma Make prototype
10
- * Implements OKLch color system, Material Design 3 typography, and spacing system
7
+ /* Core Design System Tokens (auto-generated from src/tokens/index.ts) */
8
+ /**
9
+ * Khipu Design System - CSS Custom Properties
10
+ * Use these variables for runtime theming and CSS-based styling
11
+ *
12
+ * AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
13
+ * Source: design-system/src/tokens/tokens.json
14
+ * Generated: 2026-03-25T18:39:44.178Z
15
+ *
16
+ * To regenerate:
17
+ * cd design-system && npm run tokens:generate
11
18
  */
12
19
 
13
- /* ========================================
14
- OKLch Color System (from Figma Make)
15
- ======================================== */
20
+ /* Font imports - must be at the top of the file */
21
+ @import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700&family=Roboto:wght@400;500;700&family=Inter:wght@400;500;600&display=swap');
22
+
23
+ :root {
24
+ /* ==========================================================================
25
+ COLOR TOKENS
26
+ ========================================================================== */
27
+
28
+
29
+ /* Primary palette - Khipu brand */
30
+ --kds-color-primary-main: #8347AD;
31
+ --kds-color-primary-light: #A066C9;
32
+ --kds-color-primary-dark: #6A3A8C;
33
+ --kds-color-primary-contrast: #FFFFFF;
34
+ --kds-color-primary-hover: rgba(131, 71, 173, 0.04);
35
+ --kds-color-primary-selected: rgba(131, 71, 173, 0.08);
36
+ --kds-color-primary-focus: rgba(131, 71, 173, 0.12);
37
+ --kds-color-primary-focus-visible: rgba(131, 71, 173, 0.30);
38
+
39
+ /* Secondary palette */
40
+ --kds-color-secondary-main: #4CAF50;
41
+ --kds-color-secondary-light: #81C784;
42
+ --kds-color-secondary-dark: #388E3C;
43
+ --kds-color-secondary-contrast: #FFFFFF;
44
+
45
+ /* Semantic colors */
46
+ --kds-color-success-main: #2E7D32;
47
+ --kds-color-success-light: #4CAF50;
48
+ --kds-color-success-dark: #1B5E20;
49
+ --kds-color-warning-main: #ED6C02;
50
+ --kds-color-warning-light: #FF9800;
51
+ --kds-color-warning-dark: #E65100;
52
+ --kds-color-error-main: #D32F2F;
53
+ --kds-color-error-light: #EF5350;
54
+ --kds-color-error-dark: #C62828;
55
+ --kds-color-info-main: #0288D1;
56
+ --kds-color-info-light: #03A9F4;
57
+ --kds-color-info-dark: #01579B;
58
+
59
+ /* Text colors */
60
+ --kds-color-text-primary: rgba(0, 0, 0, 0.87);
61
+ --kds-color-text-secondary: rgba(0, 0, 0, 0.60);
62
+ --kds-color-text-disabled: rgba(0, 0, 0, 0.38);
63
+ --kds-color-text-hint: rgba(0, 0, 0, 0.38);
64
+
65
+ /* Background colors */
66
+ --kds-color-background-default: #FFFFFF;
67
+ --kds-color-background-paper: #FFFFFF;
68
+ --kds-color-background-elevated: #FAFAFA;
69
+
70
+ /* Action colors */
71
+ --kds-color-action-active: rgba(0, 0, 0, 0.56);
72
+ --kds-color-action-hover: rgba(0, 0, 0, 0.04);
73
+ --kds-color-action-selected: rgba(0, 0, 0, 0.08);
74
+ --kds-color-action-disabled: rgba(0, 0, 0, 0.38);
75
+ --kds-color-action-disabled-bg: rgba(0, 0, 0, 0.12);
76
+ --kds-color-action-focus: rgba(0, 0, 0, 0.12);
77
+
78
+ /* Divider */
79
+ --kds-color-divider: rgba(0, 0, 0, 0.12);
80
+
81
+ /* Input borders */
82
+ --kds-color-input-enabled-border: rgba(0, 0, 0, 0.23);
83
+ --kds-color-input-hover-border: rgba(0, 0, 0, 0.87);
84
+
85
+ /* Snackbar backgrounds */
86
+ --kds-snackbar-success-bg: rgba(46, 125, 50, 0.08);
87
+ --kds-snackbar-warning-bg: rgba(237, 108, 2, 0.08);
88
+ --kds-snackbar-error-bg: rgba(211, 47, 47, 0.08);
89
+ --kds-snackbar-info-bg: rgba(2, 136, 209, 0.08);
90
+
91
+ /* ==========================================================================
92
+ TYPOGRAPHY TOKENS
93
+ ========================================================================== */
94
+
95
+
96
+ /* Font families */
97
+ --kds-font-family-primary: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
98
+ --kds-font-family-secondary: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
99
+ --kds-font-family-mono: "Roboto Mono", "SF Mono", "Monaco", monospace;
100
+
101
+ /* Font weights */
102
+ --kds-font-weight-regular: 400;
103
+ --kds-font-weight-medium: 500;
104
+ --kds-font-weight-semibold: 600;
105
+ --kds-font-weight-bold: 700;
106
+
107
+ /* Font sizes */
108
+ --kds-font-size-xs: 0.75rem;
109
+ --kds-font-size-sm: 0.875rem;
110
+ --kds-font-size-base: 1rem;
111
+ --kds-font-size-lg: 1.125rem;
112
+ --kds-font-size-xl: 1.25rem;
113
+ --kds-font-size-2xl: 1.5rem;
114
+ --kds-font-size-3xl: 1.875rem;
115
+ --kds-font-size-4xl: 2.25rem;
116
+
117
+ /* Line heights */
118
+ --kds-line-height-tight: 1.2;
119
+ --kds-line-height-snug: 1.375;
120
+ --kds-line-height-normal: 1.5;
121
+ --kds-line-height-relaxed: 1.66;
122
+
123
+ /* Letter spacing */
124
+ --kds-letter-spacing-normal: 0.15px;
125
+ --kds-letter-spacing-wide: 0.4px;
126
+ --kds-letter-spacing-wider: 0.46px;
127
+ --kds-letter-spacing-widest: 1px;
128
+
129
+ /* Button typography */
130
+ --kds-typography-button-font-size: 0.9375rem;
131
+ --kds-typography-button-font-weight: 500;
132
+ --kds-typography-button-line-height: 26px;
133
+ --kds-typography-button-letter-spacing: 0.46px;
134
+
135
+ /* ==========================================================================
136
+ SPACING TOKENS
137
+ ========================================================================== */
138
+
139
+ --kds-spacing-0: 0px;
140
+ --kds-spacing-1: 8px;
141
+ --kds-spacing-2: 16px;
142
+ --kds-spacing-3: 24px;
143
+ --kds-spacing-4: 32px;
144
+ --kds-spacing-5: 40px;
145
+ --kds-spacing-6: 48px;
146
+ --kds-spacing-7: 56px;
147
+ --kds-spacing-8: 64px;
148
+ --kds-spacing-9: 72px;
149
+ --kds-spacing-10: 80px;
150
+ --kds-spacing-11: 88px;
151
+ --kds-spacing-12: 96px;
152
+
153
+ /* Semantic spacing */
154
+ --kds-spacing-input-padding-y: 16px;
155
+ --kds-spacing-input-padding-x: 12px;
156
+ --kds-spacing-input-padding: 16px 12px;
157
+ --kds-spacing-button-padding-y: 8px;
158
+ --kds-spacing-button-padding-x: 22px;
159
+ --kds-spacing-button-padding: 8px 22px;
160
+ --kds-spacing-button-min-height: 50px;
161
+ --kds-spacing-button-icon-size: 20px;
162
+ --kds-spacing-section: 32px;
163
+ --kds-spacing-form-gap: 20px;
164
+ --kds-spacing-inline-gap: 8px;
165
+
166
+ /* ==========================================================================
167
+ BORDER RADIUS TOKENS
168
+ ========================================================================== */
169
+
170
+ --kds-radius-none: 0px;
171
+ --kds-radius-sm: 4px;
172
+ --kds-radius-md: 8px;
173
+ --kds-radius-lg: 12px;
174
+ --kds-radius-xl: 16px;
175
+ --kds-radius-2xl: 20px;
176
+ --kds-radius-full: 9999px;
177
+
178
+ /* Component-specific radii */
179
+ --kds-radius-button: 4px;
180
+ --kds-radius-input: 4px;
181
+ --kds-radius-card: 20px;
182
+ --kds-radius-modal: 20px;
183
+ --kds-radius-chip: 16px;
184
+ --kds-radius-iconContainer: 10px;
185
+
186
+ /* ==========================================================================
187
+ SHADOW TOKENS
188
+ ========================================================================== */
189
+
190
+ --kds-shadow-1: 0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12);
191
+ --kds-shadow-2: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12);
192
+ --kds-shadow-4: 0px 2px 4px -1px rgba(0,0,0,0.2), 0px 4px 5px 0px rgba(0,0,0,0.14), 0px 1px 10px 0px rgba(0,0,0,0.12);
193
+ --kds-shadow-8: 0px 5px 5px -3px rgba(0,0,0,0.2), 0px 8px 10px 1px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12);
194
+ --kds-shadow-16: 0px 8px 10px -5px rgba(0,0,0,0.2), 0px 16px 24px 2px rgba(0,0,0,0.14), 0px 6px 30px 5px rgba(0,0,0,0.12);
195
+ --kds-shadow-24: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12);
196
+ --kds-shadow-none: none;
197
+
198
+ /* Semantic shadows */
199
+ --kds-shadow-button: var(--kds-shadow-2);
200
+ --kds-shadow-card: var(--kds-shadow-1);
201
+ --kds-shadow-modal: var(--kds-shadow-24);
202
+ --kds-shadow-dropdown: var(--kds-shadow-8);
203
+
204
+ /* ==========================================================================
205
+ Z-INDEX TOKENS
206
+ ========================================================================== */
207
+
208
+ --kds-z-index-fab: 1050;
209
+ --kds-z-index-appbar: 1100;
210
+ --kds-z-index-drawer: 1200;
211
+ --kds-z-index-modal: 1300;
212
+ --kds-z-index-snackbar: 1400;
213
+ --kds-z-index-tooltip: 1500;
214
+
215
+ /* ==========================================================================
216
+ TRANSITION TOKENS
217
+ ========================================================================== */
218
+
219
+ --kds-transition-shortest: 150ms;
220
+ --kds-transition-shorter: 200ms;
221
+ --kds-transition-short: 250ms;
222
+ --kds-transition-standard: 300ms;
223
+ --kds-transition-complex: 375ms;
224
+ --kds-easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
225
+ --kds-easing-ease-out: cubic-bezier(0.0, 0, 0.2, 1);
226
+ --kds-easing-ease-in: cubic-bezier(0.4, 0, 1, 1);
227
+ --kds-easing-sharp: cubic-bezier(0.4, 0, 0.6, 1);
228
+
229
+ /* ==========================================================================
230
+ BREAKPOINTS
231
+ ========================================================================== */
232
+
233
+ --kds-breakpoint-sm: 600px;
234
+ --kds-breakpoint-md: 900px;
235
+ --kds-breakpoint-lg: 1200px;
236
+ --kds-breakpoint-xl: 1536px;
237
+
238
+ }
239
+
240
+
241
+ /* Khipu BeerCSS Variable Mappings */
242
+ /* Khipu Material Design 3 Brand Tokens for BeerCSS
243
+ * Imports core tokens from css-variables.css (auto-generated from src/tokens/index.ts)
244
+ * This file only maps BeerCSS-specific variables to core design tokens
245
+ * Source: design.khipu.com and BeerCSS framework
246
+ */
16
247
 
248
+ /* Import core design tokens (auto-generated) */
17
249
  :root {
18
- /* === Primary Scale (Purple) === */
19
- --kds-color-primary-50: oklch(96% 0.02 295);
20
- --kds-color-primary-100: oklch(92% 0.04 295);
21
- --kds-color-primary-200: oklch(84% 0.08 295);
22
- --kds-color-primary-300: oklch(76% 0.12 295);
23
- --kds-color-primary-400: oklch(68% 0.16 295);
24
- --kds-color-primary-500: oklch(60% 0.20 295);
25
- --kds-color-primary-600: oklch(52% 0.18 295);
26
- --kds-color-primary-700: oklch(44% 0.16 295);
27
- --kds-color-primary-800: oklch(36% 0.14 295);
28
- --kds-color-primary-900: oklch(28% 0.12 295);
29
-
30
- /* === Secondary Scale (Blue from Figma Make) === */
31
- --kds-color-secondary-50: oklch(96% 0.02 240);
32
- --kds-color-secondary-100: oklch(92% 0.04 240);
33
- --kds-color-secondary-500: #3B82F6; /* Figma Make Blue */
34
- --kds-color-secondary-900: oklch(32% 0.12 240);
35
-
36
- /* === Semantic Colors === */
37
- --kds-color-success: #10B981; /* Green (only for success/completed states) */
38
- --kds-color-error: oklch(48% 0.20 28); /* Red #D32F2F */
39
- --kds-color-warning: oklch(72% 0.18 90); /* Amber #ED6C02 */
40
- --kds-color-info: oklch(60% 0.18 240); /* Blue #0288D1 */
41
-
42
- /* === Alert/Validation Backgrounds === */
43
- --kds-alert-info-bg: #EFF6FF; /* Light blue */
44
- --kds-alert-warning-bg: #FFFBEB; /* Light amber */
45
- --kds-alert-success-bg: #ECFDF5; /* Light green */
46
- --kds-alert-error-bg: #FEF2F2; /* Light red */
47
-
48
- /* === Surface Colors === */
49
- --kds-surface-base: #FFFFFF;
50
- --kds-surface-paper: #FFFFFF;
51
- --kds-surface-elevated: oklch(98% 0.01 295);
52
- --kds-surface-background: #F5F6FA; /* Main background from Figma Make */
53
-
54
- /* === Border Colors === */
250
+ /* ========================================
251
+ Map core tokens to BeerCSS-specific names
252
+ (BeerCSS may use different naming conventions)
253
+ ======================================== */
254
+
255
+ /* Alert backgrounds (using info color with transparency) */
256
+ --kds-alert-info-bg: #EFF6FF;
257
+ --kds-alert-warning-bg: #FFFBEB;
258
+ --kds-alert-success-bg: #ECFDF5;
259
+ --kds-alert-error-bg: #FEF2F2;
260
+
261
+ /* Border colors (not in core tokens) */
55
262
  --kds-border-light: #DDD;
56
263
  --kds-border-medium: #999;
57
264
  --kds-border-dark: #666;
58
265
 
59
- /* === Typography Scale (Material Design 3) === */
60
- --kds-font-family-primary: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
61
-
62
- --kds-font-size-xs: 0.75rem; /* 12px */
63
- --kds-font-size-sm: 0.875rem; /* 14px */
64
- --kds-font-size-base: 1rem; /* 16px */
65
- --kds-font-size-lg: 1.125rem; /* 18px */
66
- --kds-font-size-xl: 1.25rem; /* 20px */
67
- --kds-font-size-2xl: 1.5rem; /* 24px */
68
- --kds-font-size-3xl: 2rem; /* 32px */
69
- --kds-font-size-4xl: 3rem; /* 48px */
70
-
71
- --kds-font-weight-regular: 400;
72
- --kds-font-weight-medium: 500;
73
- --kds-font-weight-semibold: 600;
74
- --kds-font-weight-bold: 700;
75
-
76
- /* === Spacing System (4px base grid) === */
77
- --kds-spacing-1: 4px;
78
- --kds-spacing-2: 8px;
79
- --kds-spacing-3: 12px;
80
- --kds-spacing-4: 16px;
81
- --kds-spacing-5: 20px;
82
- --kds-spacing-6: 24px;
83
- --kds-spacing-8: 32px;
84
- --kds-spacing-10: 40px;
85
- --kds-spacing-12: 48px;
86
- --kds-spacing-16: 64px;
87
- --kds-spacing-20: 80px;
88
-
89
- /* === Shadows (Material Design 3 Elevation) === */
90
- --kds-shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
91
- --kds-shadow-md: 0 4px 6px rgba(0,0,0,0.1);
92
- --kds-shadow-lg: 0 10px 15px rgba(0,0,0,0.1);
93
- --kds-shadow-xl: 0 20px 25px rgba(0,0,0,0.15);
94
- --kds-shadow-elevation-1: 0px 2px 1px -1px rgba(0,0,0,0.2), 0px 1px 1px 0px rgba(0,0,0,0.14), 0px 1px 3px 0px rgba(0,0,0,0.12);
95
- --kds-shadow-elevation-2: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12);
96
- --kds-shadow-elevation-3: 0px 3px 3px -2px rgba(0,0,0,0.2), 0px 3px 4px 0px rgba(0,0,0,0.14), 0px 1px 8px 0px rgba(0,0,0,0.12);
97
- --kds-shadow-elevation-4: 0px 2px 4px -1px rgba(0,0,0,0.2), 0px 4px 5px 0px rgba(0,0,0,0.14), 0px 1px 10px 0px rgba(0,0,0,0.12);
98
-
99
- /* === Border Radius === */
100
- --kds-radius-none: 0;
101
- --kds-radius-sm: 4px;
102
- --kds-radius-md: 8px;
103
- --kds-radius-lg: 12px;
104
- --kds-radius-xl: 16px;
105
- --kds-radius-2xl: 20px;
106
- --kds-radius-full: 9999px;
266
+ /* Input border states */
267
+ --kds-input-border-hover: rgba(0, 0, 0, 0.42); /* Slightly darker on hover (Material Design spec) */
268
+
269
+ /* Override BeerCSS native font variable */
270
+ --font: var(--kds-font-family-primary);
107
271
 
108
272
  /* ========================================
109
- Map KDS Tokens to BeerCSS Variables
273
+ Map Core Design Tokens to BeerCSS Variables
274
+ Material Design 3 Light Mode
110
275
  ======================================== */
111
276
 
112
- /* Keep Khipu Purple as primary brand color */
113
- --primary: var(--kds-color-primary-500); /* Purple - Khipu brand */
114
- --on-primary: #FFFFFF;
115
- --primary-container: var(--kds-color-primary-100);
116
- --on-primary-container: var(--kds-color-primary-900);
277
+ /* Primary - Khipu Purple brand */
278
+ --primary: var(--kds-color-primary-main);
279
+ --on-primary: var(--kds-color-primary-contrast);
280
+ --primary-container: var(--kds-color-primary-light);
281
+ --on-primary-container: var(--kds-color-primary-dark);
117
282
 
118
- /* Use Figma Make Blue as secondary (call-to-action color) */
119
- --secondary: var(--kds-color-secondary-500); /* Blue #3B82F6 - CTA buttons */
120
- --on-secondary: #FFFFFF;
121
- --secondary-container: var(--kds-color-secondary-100);
122
- --on-secondary-container: var(--kds-color-secondary-900);
283
+ /* Secondary - Green for success/positive actions */
284
+ --secondary: var(--kds-color-secondary-main);
285
+ --on-secondary: var(--kds-color-secondary-contrast);
286
+ --secondary-container: var(--kds-color-secondary-light);
287
+ --on-secondary-container: var(--kds-color-secondary-dark);
123
288
 
124
- /* Map semantic colors */
125
- --success: var(--kds-color-success);
126
- --error: var(--kds-color-error);
127
- --warning: var(--kds-color-warning);
128
- --info: var(--kds-color-info);
289
+ /* Semantic colors */
290
+ --success: var(--kds-color-success-main);
291
+ --error: var(--kds-color-error-main);
292
+ --warning: var(--kds-color-warning-main);
293
+ --info: var(--kds-color-info-main);
129
294
 
130
295
  /* Background and surface colors */
131
- --surface: var(--kds-surface-paper);
132
- --on-surface: oklch(20% 0 0);
133
- --surface-variant: var(--kds-surface-elevated);
134
- --surface-container: var(--kds-surface-base);
135
-
136
- /* Legacy Khipu color aliases (for backward compatibility) */
137
- --khipu-primary: var(--kds-color-primary-500);
138
- --khipu-primary-dark: var(--kds-color-primary-700);
139
- --khipu-primary-light: var(--kds-color-primary-300);
140
- --khipu-secondary: var(--kds-color-secondary-500);
141
- --khipu-accent: #FF5722;
296
+ --background: var(--kds-color-background-default);
297
+ --surface: var(--kds-color-background-paper);
298
+ --on-surface: var(--kds-color-text-primary);
299
+ --on-surface-variant: var(--kds-color-action-active);
300
+ --surface-variant: var(--kds-color-background-elevated);
301
+ --surface-container: var(--kds-color-background-default);
302
+ --outline: var(--kds-color-input-border);
303
+ --outline-variant: var(--kds-border-light);
142
304
 
143
305
  /* ========================================
144
306
  ONBOARDING COMPONENTS TOKENS
@@ -149,8 +311,8 @@
149
311
  --kds-upload-zone-border: #D1D5DB; /* gray-300 */
150
312
  --kds-upload-zone-border-hover: #3B82F6; /* blue-500 */
151
313
  --kds-upload-zone-border-drag: #8347AD; /* primary-500 (purple) */
152
- --kds-upload-zone-border-error: var(--kds-color-error);
153
- --kds-upload-zone-border-success: var(--kds-color-success);
314
+ --kds-upload-zone-border-error: var(--kds-color-error-main);
315
+ --kds-upload-zone-border-success: var(--kds-color-success-main);
154
316
  --kds-upload-item-bg: #FFFFFF;
155
317
  --kds-upload-item-border: #E5E7EB; /* gray-200 */
156
318
 
@@ -162,15 +324,27 @@
162
324
  --kds-otp-digit-bg: #FFFFFF;
163
325
  --kds-otp-digit-bg-filled: #F9FAFB;
164
326
 
165
- /* KYC Blocking Modal */
166
- --kds-kyc-block-bg: oklch(96% 0.02 60); /* Amber-50 */
167
- --kds-kyc-block-border: oklch(88% 0.08 60); /* Amber-200 */
168
- --kds-kyc-block-text: oklch(40% 0.12 60); /* Amber-800 */
169
- --kds-kyc-block-icon: oklch(60% 0.15 60); /* Amber-600 */
327
+ /* Modal Base */
328
+ --kds-modal-bg: #FFFFFF;
329
+ --kds-modal-padding: var(--kds-spacing-6);
330
+ --kds-modal-padding-mobile: var(--kds-spacing-4);
331
+ --kds-modal-border-radius: var(--kds-radius-lg);
332
+ --kds-modal-shadow: var(--kds-shadow-elevation-4);
333
+ --kds-modal-backdrop: rgba(0, 0, 0, 0.5);
334
+ --kds-modal-max-width: 600px;
335
+ --kds-modal-max-width-mobile: 95vw;
336
+
337
+ /* Modal Content Colors */
338
+ --kds-modal-title-color: #111827; /* gray-900 */
339
+ --kds-modal-text-color: #374151; /* gray-700 */
340
+ --kds-modal-icon-warning: var(--kds-color-warning-main);
341
+ --kds-modal-icon-error: var(--kds-color-error-main);
342
+ --kds-modal-icon-success: var(--kds-color-success-main);
343
+ --kds-modal-icon-info: var(--kds-color-info-main);
170
344
 
171
345
  /* Welcome Gradient */
172
- --kds-welcome-gradient-start: #3B82F6; /* blue-500 */
173
- --kds-welcome-gradient-end: #1D4ED8; /* blue-700 */
346
+ --kds-welcome-gradient-start: var(--kds-color-primary-main); /* Khipu purple */
347
+ --kds-welcome-gradient-end: var(--kds-color-primary-dark); /* Khipu purple dark */
174
348
 
175
349
  /* Bank Selector */
176
350
  --kds-bank-item-border: #E5E7EB;
@@ -197,19 +371,40 @@
197
371
  }
198
372
 
199
373
  /* ========================================
200
- Body Layout (Sticky Footer) - Figma Make Style
374
+ Force Light Mode Only
375
+ ======================================== */
376
+
377
+ /* Force light mode - disable dark mode */
378
+ :root,
379
+ html,
380
+ body {
381
+ color-scheme: light only;
382
+ }
383
+
384
+ /* Override system dark mode preference */
385
+ @media (prefers-color-scheme: dark) {
386
+ :root,
387
+ html,
388
+ body {
389
+ color-scheme: light only;
390
+ }
391
+ }
392
+
393
+ /* ========================================
394
+ Body Layout (Sticky Footer)
201
395
  ======================================== */
202
396
  html, body {
203
397
  display: flex;
204
398
  flex-direction: column;
205
399
  min-height: 100vh;
206
400
  margin: 0;
207
- background: var(--kds-surface-background); /* Light gray background */
401
+ background: var(--kds-color-background-default);
402
+ color: var(--kds-color-text-primary);
208
403
  }
209
404
 
210
405
  main {
211
406
  flex: 1 0 auto;
212
- padding: 0; /* Remove default padding for Figma Make style */
407
+ padding: 0;
213
408
  }
214
409
 
215
410
  footer {
@@ -220,12 +415,13 @@ footer {
220
415
 
221
416
  /* Khipu Custom Components */
222
417
  /* Khipu Custom Components for BeerCSS
223
- * Custom Material Design 3 components extracted from Figma Make prototype
418
+ * Custom Material Design 3 components based on BeerCSS framework
224
419
  * Implements: Cards, Stepper, Alerts, Forms, Typography utilities
420
+ * Source: design.khipu.com and Material Design 3 specifications
225
421
  */
226
422
 
227
423
  /* ========================================
228
- Button Overrides (Figma Make Style)
424
+ Button Overrides (Material Design 3)
229
425
  ======================================== */
230
426
 
231
427
  /* ========================================
@@ -240,68 +436,135 @@ a.kds-btn {
240
436
  align-items: center;
241
437
  justify-content: center;
242
438
  gap: 8px;
243
- padding: 12px 24px;
244
- font-size: 16px;
245
- font-weight: 600;
246
- line-height: 1;
247
- border-radius: 8px;
439
+
440
+ /* Typography - Using design tokens */
441
+ font-family: var(--kds-font-family-secondary);
442
+ font-weight: var(--kds-font-weight-medium); /* 500, no 600 */
443
+ font-size: var(--kds-typography-button-font-size); /* 0.9375rem = 15px */
444
+ line-height: var(--kds-typography-button-line-height); /* 26px, no 1 */
445
+ letter-spacing: var(--kds-typography-button-letter-spacing); /* 0.46px */
446
+ text-transform: uppercase;
447
+
448
+ /* Spacing - Using design tokens */
449
+ padding: var(--kds-spacing-button-padding); /* 8px 22px */
450
+ min-height: var(--kds-spacing-button-min-height); /* 50px */
451
+ height: auto; /* Remove fixed height, let content + padding define it */
452
+
453
+ /* Border - Using design token */
454
+ border-radius: var(--kds-radius-button); /* 4px */
455
+ border: none;
456
+
457
+ /* Interaction */
248
458
  cursor: pointer;
249
- transition: all 0.2s ease;
459
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
460
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1),
461
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
462
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1);
250
463
  box-sizing: border-box;
251
- min-height: 48px;
252
- height: 48px;
253
464
  vertical-align: middle;
254
465
  }
255
466
 
467
+ /* Disabled state - colores específicos en lugar de opacity */
256
468
  button.kds-btn:disabled,
257
469
  a.kds-btn:disabled {
258
- opacity: 0.5;
470
+ background-color: var(--kds-color-action-disabled-bg); /* rgba(0, 0, 0, 0.12) */
471
+ color: var(--kds-color-action-disabled); /* rgba(0, 0, 0, 0.38) */
259
472
  cursor: not-allowed;
260
473
  pointer-events: none;
474
+ box-shadow: none;
475
+ border-color: transparent;
261
476
  }
262
477
 
263
- /* Primary button - Khipu purple (Figma Make) */
478
+ /* Primary button - Khipu purple */
264
479
  button.kds-btn-primary,
265
480
  a.kds-btn-primary {
266
- background: var(--primary);
481
+ background: var(--kds-color-primary-main); /* #8347AD */
267
482
  color: white;
268
483
  border: none;
484
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
485
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
486
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12); /* elevation/2 */
269
487
  }
270
488
 
489
+ /* Hover State - background más oscuro + elevation/4 */
271
490
  button.kds-btn-primary:hover:not(:disabled),
272
491
  a.kds-btn-primary:hover:not(:disabled) {
273
- opacity: 0.9;
492
+ background: var(--kds-color-primary-dark); /* #6A3A8C */
493
+ box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
494
+ 0px 4px 5px 0px rgba(0, 0, 0, 0.14),
495
+ 0px 1px 10px 0px rgba(0, 0, 0, 0.12); /* elevation/4 */
496
+ }
497
+
498
+ /* Active/Focus State */
499
+ button.kds-btn-primary:active:not(:disabled),
500
+ button.kds-btn-primary:focus-visible:not(:disabled),
501
+ a.kds-btn-primary:active:not(:disabled),
502
+ a.kds-btn-primary:focus-visible:not(:disabled) {
503
+ background: var(--kds-color-primary-dark);
504
+ outline: 2px solid var(--kds-color-primary-main);
505
+ outline-offset: 2px;
506
+ }
507
+
508
+ /* Override disabled para primary */
509
+ button.kds-btn-primary:disabled,
510
+ a.kds-btn-primary:disabled {
511
+ background-color: var(--kds-color-action-disabled-bg);
512
+ color: var(--kds-color-action-disabled);
513
+ box-shadow: none;
514
+ border-color: transparent;
274
515
  }
275
516
 
276
- /* Secondary button - Blue CTA (Figma Make) */
517
+ /* Secondary button - Blue CTA */
277
518
  button.kds-btn-secondary,
278
519
  a.kds-btn-secondary {
279
520
  background: #3B82F6;
280
521
  color: white;
281
522
  border: none;
523
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
524
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
525
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12); /* elevation/2 */
282
526
  }
283
527
 
284
528
  button.kds-btn-secondary:hover:not(:disabled),
285
529
  a.kds-btn-secondary:hover:not(:disabled) {
286
530
  background: #2563EB;
287
- box-shadow: 0 4px 6px rgba(59, 130, 246, 0.3);
531
+ box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
532
+ 0px 4px 5px 0px rgba(0, 0, 0, 0.14),
533
+ 0px 1px 10px 0px rgba(0, 0, 0, 0.12); /* elevation/4 */
534
+ }
535
+
536
+ button.kds-btn-secondary:disabled,
537
+ a.kds-btn-secondary:disabled {
538
+ background-color: var(--kds-color-action-disabled-bg);
539
+ color: var(--kds-color-action-disabled);
540
+ box-shadow: none;
541
+ border-color: transparent;
288
542
  }
289
543
 
290
- /* Outlined button (Figma Make) */
544
+ /* Outlined button */
291
545
  button.kds-btn-outlined,
292
546
  a.kds-btn-outlined {
293
547
  background: transparent;
294
- color: var(--primary);
295
- border-color: var(--kds-border-medium);
548
+ color: var(--kds-color-primary-main);
549
+ border: 1px solid var(--kds-border-medium); /* rgba(0, 0, 0, 0.5) aprox */
550
+ box-shadow: none;
296
551
  }
297
552
 
298
553
  button.kds-btn-outlined:hover:not(:disabled),
299
554
  a.kds-btn-outlined:hover:not(:disabled) {
300
- background: #F3F4F6;
301
- border-color: var(--primary);
555
+ background: var(--kds-color-primary-hover); /* rgba(131, 71, 173, 0.04) */
556
+ border-color: var(--kds-color-primary-main);
302
557
  }
303
558
 
304
- /* Outlined white - for dark backgrounds (Figma Make hero) */
559
+ button.kds-btn-outlined:disabled,
560
+ a.kds-btn-outlined:disabled {
561
+ background: transparent;
562
+ color: var(--kds-color-action-disabled);
563
+ border-color: var(--kds-color-action-disabled);
564
+ box-shadow: none;
565
+ }
566
+
567
+ /* Outlined white - for dark backgrounds */
305
568
  button.kds-btn-outlined-white,
306
569
  a.kds-btn-outlined-white {
307
570
  background: white;
@@ -314,44 +577,57 @@ a.kds-btn-outlined-white:hover:not(:disabled) {
314
577
  opacity: 0.9;
315
578
  }
316
579
 
317
- /* Text button (Figma Make) */
580
+ /* Text button */
318
581
  button.kds-btn-text,
319
582
  a.kds-btn-text {
320
583
  background: transparent;
321
- color: var(--primary);
584
+ color: var(--kds-color-primary-main);
322
585
  border: none;
323
- padding: 8px 16px;
324
- min-height: auto;
325
- height: auto;
586
+ padding: 6px 16px; /* Menor padding para text variant */
587
+ min-height: 32px; /* Menor altura para text variant */
588
+ box-shadow: none;
326
589
  }
327
590
 
328
591
  button.kds-btn-text:hover:not(:disabled),
329
592
  a.kds-btn-text:hover:not(:disabled) {
330
- background: #EFF6FF;
593
+ background: var(--kds-color-primary-hover); /* rgba(131, 71, 173, 0.04) */
594
+ }
595
+
596
+ button.kds-btn-text:disabled,
597
+ a.kds-btn-text:disabled {
598
+ background: transparent;
599
+ color: var(--kds-color-action-disabled);
600
+ box-shadow: none;
331
601
  }
332
602
 
333
603
  /* Icon wrapper - control size via span container */
334
604
  button.kds-btn > .kds-icon,
335
605
  a.kds-btn > .kds-icon {
336
- width: 20px;
337
- height: 20px;
338
- padding-top: 2px;
606
+ min-width: var(--kds-spacing-button-icon-size);
607
+ min-height: var(--kds-spacing-button-icon-size);
608
+ width: var(--kds-spacing-button-icon-size);
609
+ height: var(--kds-spacing-button-icon-size);
339
610
  line-height: 1;
340
611
  overflow: hidden;
341
612
  flex-shrink: 0;
613
+ display: inline-flex;
614
+ align-items: center;
615
+ justify-content: center;
342
616
  }
343
617
 
344
618
  button.kds-btn > .kds-icon > i,
345
619
  a.kds-btn > .kds-icon > i {
346
- font-size: 17px;
620
+ font-size: var(--kds-spacing-button-icon-size);
621
+ min-width: var(--kds-spacing-button-icon-size);
622
+ min-height: var(--kds-spacing-button-icon-size);
347
623
  line-height: 1;
348
624
  }
349
625
 
350
626
  /* ========================================
351
- Card Components (from Figma Make)
627
+ Card Components (Material Design 3)
352
628
  ======================================== */
353
629
 
354
- /* Base elevated card - EXACT from Figma Make */
630
+ /* Base elevated card */
355
631
  .kds-card-elevated,
356
632
  .khipu-card-elevated {
357
633
  background: #FFFFFF;
@@ -394,7 +670,7 @@ a.kds-btn > .kds-icon > i {
394
670
  }
395
671
  }
396
672
 
397
- /* Selection card - EXACT from Figma Make StageSelector */
673
+ /* Selection card */
398
674
  .kds-card-selector {
399
675
  padding: 24px;
400
676
  border-radius: 12px;
@@ -414,7 +690,7 @@ a.kds-btn > .kds-icon > i {
414
690
  .kds-card-selector.selected {
415
691
  border-color: #3B82F6; /* blue-600 */
416
692
  background: #EFF6FF; /* blue-50 */
417
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
693
+ box-shadow: var(--kds-shadow-md);
418
694
  }
419
695
 
420
696
  /* Icon container */
@@ -433,6 +709,8 @@ a.kds-btn > .kds-icon > i {
433
709
  .kds-card-selector-icon svg {
434
710
  width: 24px;
435
711
  height: 24px;
712
+ min-width: 24px;
713
+ min-height: 24px;
436
714
  color: #3B82F6; /* blue-600 */
437
715
  }
438
716
 
@@ -453,47 +731,130 @@ a.kds-btn > .kds-icon > i {
453
731
 
454
732
  /* Selected state - visual feedback via border only */
455
733
 
456
- /* Pricing/Plan card (from Figma Make StagePricingPlan) */
734
+ /* Pricing/Plan card */
735
+ /* Pricing Card - Base */
457
736
  .kds-card-plan {
737
+ position: relative;
458
738
  display: flex;
459
739
  flex-direction: column;
460
- gap: var(--kds-spacing-5);
740
+ gap: var(--kds-spacing-6);
461
741
  padding: var(--kds-spacing-8);
462
742
  border-radius: var(--kds-radius-lg);
463
- border: 1px solid var(--kds-border-medium);
464
- max-width: 365px;
743
+ border: 2px solid var(--kds-border-medium);
744
+ max-width: 400px; /* Increased from 365px for better text spacing */
465
745
  background: var(--kds-surface-base);
466
- transition: border-color 0.3s ease, background 0.3s ease;
746
+ transition: all 0.3s ease;
747
+ cursor: pointer;
748
+ height: 100%; /* Ensure cards fill grid height */
467
749
  }
468
750
 
751
+ .kds-card-plan:hover {
752
+ border-color: var(--primary);
753
+ box-shadow: var(--kds-shadow-elevation-2);
754
+ transform: translateY(-2px);
755
+ }
756
+
757
+ /* Recommended Plan */
469
758
  .kds-card-plan.recommended {
470
759
  border-color: var(--primary);
471
- background: var(--primary-container);
760
+ background: linear-gradient(to bottom, rgba(131, 71, 173, 0.05), var(--kds-surface-base));
761
+ box-shadow: var(--kds-shadow-elevation-3);
472
762
  }
473
763
 
474
- .kds-card-plan .plan-price {
475
- font-size: var(--kds-font-size-3xl);
764
+ .kds-card-plan.recommended:hover {
765
+ box-shadow: var(--kds-shadow-elevation-4);
766
+ }
767
+
768
+ /* Recommended Badge */
769
+ .kds-card-plan-badge {
770
+ position: absolute;
771
+ top: -12px;
772
+ right: var(--kds-spacing-6);
773
+ padding: var(--kds-spacing-1) var(--kds-spacing-4);
774
+ background: var(--primary);
775
+ color: white;
776
+ font-size: var(--kds-font-size-sm);
777
+ font-weight: var(--kds-font-weight-semibold);
778
+ border-radius: var(--kds-radius-full);
779
+ box-shadow: var(--kds-shadow-elevation-1);
780
+ }
781
+
782
+ /* Plan Header */
783
+ .kds-card-plan-header {
784
+ display: flex;
785
+ flex-direction: column;
786
+ gap: var(--kds-spacing-1);
787
+ }
788
+
789
+ .kds-card-plan-header h3 {
790
+ margin: 0;
791
+ font-size: var(--kds-font-size-2xl);
476
792
  font-weight: var(--kds-font-weight-bold);
477
- color: var(--primary);
793
+ color: var(--kds-text-primary);
478
794
  }
479
795
 
480
- .kds-card-plan .plan-features {
481
- list-style: none;
482
- padding: 0;
796
+ .kds-card-plan-header p {
483
797
  margin: 0;
798
+ font-size: var(--kds-font-size-sm);
799
+ color: var(--kds-text-secondary);
484
800
  }
485
801
 
486
- .kds-card-plan .plan-features li {
487
- padding: var(--kds-spacing-2) 0;
802
+ /* Plan Price */
803
+ .kds-card-plan-price {
488
804
  display: flex;
489
- align-items: center;
805
+ align-items: baseline;
490
806
  gap: var(--kds-spacing-2);
807
+ padding: var(--kds-spacing-4) 0;
808
+ border-bottom: 1px solid var(--kds-border-light);
809
+ min-height: 88px; /* Standardize price area height */
491
810
  }
492
811
 
493
- .kds-card-plan .plan-features li::before {
494
- content: "✓";
495
- color: var(--success);
812
+ .kds-price {
813
+ font-size: 42px;
496
814
  font-weight: var(--kds-font-weight-bold);
815
+ color: var(--primary);
816
+ line-height: 1.1;
817
+ max-width: 100%; /* Prevent overflow */
818
+ word-break: break-word; /* Allow wrapping if needed */
819
+ }
820
+
821
+ .kds-price-period {
822
+ font-size: var(--kds-font-size-base);
823
+ color: var(--kds-text-secondary);
824
+ font-weight: var(--kds-font-weight-medium);
825
+ }
826
+
827
+ /* Plan Features */
828
+ .kds-card-plan-features {
829
+ display: flex;
830
+ flex-direction: column;
831
+ gap: var(--kds-spacing-3);
832
+ flex: 1;
833
+ }
834
+
835
+ .kds-feature {
836
+ display: flex;
837
+ align-items: flex-start;
838
+ gap: var(--kds-spacing-3);
839
+ font-size: var(--kds-font-size-sm);
840
+ color: var(--kds-text-primary);
841
+ }
842
+
843
+ .kds-feature i {
844
+ font-size: 20px;
845
+ min-width: 20px;
846
+ min-height: 20px;
847
+ color: var(--success);
848
+ flex-shrink: 0;
849
+ }
850
+
851
+ .kds-feature.disabled {
852
+ color: var(--kds-text-disabled);
853
+ text-decoration: line-through;
854
+ }
855
+
856
+ .kds-feature.disabled i {
857
+ color: var(--kds-text-disabled);
497
858
  }
498
859
 
499
860
  /* Verification/Status card (from onboarding patterns) */
@@ -518,6 +879,8 @@ a.kds-btn > .kds-icon > i {
518
879
  .kds-card-status .status-icon {
519
880
  flex-shrink: 0;
520
881
  font-size: 24px;
882
+ min-width: 24px;
883
+ min-height: 24px;
521
884
  }
522
885
 
523
886
  .kds-card-status .status-content {
@@ -600,6 +963,7 @@ a.kds-btn > .kds-icon > i {
600
963
  display: grid;
601
964
  grid-template-columns: 1fr;
602
965
  gap: var(--kds-spacing-4);
966
+ align-items: start;
603
967
  }
604
968
 
605
969
  @media (min-width: 768px) {
@@ -608,10 +972,22 @@ a.kds-btn > .kds-icon > i {
608
972
  }
609
973
  }
610
974
 
975
+ /* Align fields inside grids */
976
+ .kds-grid-2col > .kds-field,
977
+ .kds-grid-3col > .kds-field {
978
+ align-self: start;
979
+ }
980
+
981
+ .kds-grid-2col > .kds-field .kds-form-label,
982
+ .kds-grid-3col > .kds-field .kds-form-label {
983
+ min-height: 20px;
984
+ }
985
+
611
986
  .kds-grid-3col {
612
987
  display: grid;
613
988
  grid-template-columns: 1fr;
614
989
  gap: var(--kds-spacing-4);
990
+ align-items: stretch; /* Ensure equal heights */
615
991
  }
616
992
 
617
993
  @media (min-width: 768px) {
@@ -767,7 +1143,7 @@ a.kds-btn > .kds-icon > i {
767
1143
 
768
1144
  /* ========================================
769
1145
  Stepper Component (Multi-stage Progress Indicator)
770
- EXACT match from Figma Make onboarding
1146
+ Material Design 3 stepper pattern
771
1147
  ======================================== */
772
1148
 
773
1149
  .kds-stepper {
@@ -835,10 +1211,10 @@ a.kds-btn > .kds-icon > i {
835
1211
 
836
1212
  /* Step States */
837
1213
 
838
- /* Current step - Blue/Primary */
1214
+ /* Current step - Info color */
839
1215
  .kds-step.current .kds-step-indicator {
840
- background: #3B82F6; /* Blue from Figma Make */
841
- box-shadow: 0 2px 4px rgba(59, 130, 246, 0.25);
1216
+ background: var(--kds-color-info-main);
1217
+ box-shadow: var(--kds-shadow-stepper-info);
842
1218
  }
843
1219
 
844
1220
  .kds-step.current .kds-step-label {
@@ -846,10 +1222,10 @@ a.kds-btn > .kds-icon > i {
846
1222
  font-weight: 500;
847
1223
  }
848
1224
 
849
- /* Completed step - Green with checkmark */
1225
+ /* Completed step - Success color with checkmark */
850
1226
  .kds-step.completed .kds-step-indicator {
851
- background: #10B981; /* Green from Figma Make */
852
- box-shadow: 0 2px 4px rgba(16, 185, 129, 0.25);
1227
+ background: var(--kds-color-success-main);
1228
+ box-shadow: var(--kds-shadow-stepper-success);
853
1229
  }
854
1230
 
855
1231
  .kds-step.completed .kds-step-label {
@@ -1082,10 +1458,10 @@ footer.primary a:hover {
1082
1458
  }
1083
1459
 
1084
1460
  /* ========================================
1085
- Form Inputs - EXACT from Figma Make
1461
+ Form Inputs (Material Design 3)
1086
1462
  ======================================== */
1087
1463
 
1088
- /* Form labels from Figma Make */
1464
+ /* Form labels */
1089
1465
  .field label,
1090
1466
  .kds-form-label {
1091
1467
  font-size: 14px;
@@ -1095,289 +1471,325 @@ footer.primary a:hover {
1095
1471
  display: block;
1096
1472
  }
1097
1473
 
1098
- /* Input styling from Figma Make */
1099
- .field input,
1100
- .field textarea,
1101
- .field select,
1102
- input[type="text"],
1103
- input[type="email"],
1104
- input[type="password"],
1105
- input[type="number"],
1106
- input[type="tel"],
1107
- input[type="url"],
1108
- input[type="search"],
1109
- textarea,
1110
- select {
1111
- border-radius: 8px !important;
1112
- border: 1px solid #D1D5DB !important;
1113
- padding: 12px 16px !important;
1114
- font-size: 15px !important;
1115
- color: #111827 !important;
1116
- background: #FFFFFF !important;
1117
- transition: all 0.2s ease !important;
1474
+ /* Icon utilities for inline icons */
1475
+ .kds-icon-inline {
1476
+ vertical-align: middle;
1477
+ margin-right: var(--kds-spacing-2);
1478
+ }
1479
+
1480
+ /* Section title icon */
1481
+ .kds-stage-section-title i {
1482
+ vertical-align: middle;
1483
+ margin-right: var(--kds-spacing-2);
1118
1484
  }
1119
1485
 
1120
- /* Placeholder styling */
1121
- .field input::placeholder,
1122
- .field textarea::placeholder,
1123
- input::placeholder,
1124
- textarea::placeholder {
1125
- color: #9CA3AF !important;
1126
- opacity: 1 !important;
1486
+ /* ==============================================
1487
+ MATERIAL DESIGN 3 FLOATING LABELS (BeerCSS)
1488
+ Solución limpia con principios claros
1489
+ ============================================== */
1490
+
1491
+ /* === VARIABLES GLOBALES === */
1492
+ :root,
1493
+ body.light,
1494
+ body.dark {
1495
+ --primary: var(--kds-color-primary-main); /* Purple Khipu - Focus */
1496
+ --outline: var(--kds-color-input-enabled-border); /* Gris normal - Unfocused */
1497
+ --error: var(--kds-color-error-main); /* Rojo - Invalid */
1127
1498
  }
1128
1499
 
1129
- /* Focus state */
1130
- .field input:focus,
1131
- .field textarea:focus,
1132
- .field select:focus,
1133
- input:focus,
1134
- textarea:focus,
1135
- select:focus {
1136
- outline: none !important;
1137
- border-color: #3B82F6 !important;
1138
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
1500
+ /* === ALTURA PERSONALIZADA === */
1501
+ .field {
1502
+ --_input: 3.625rem; /* 58px (vs 48px default BeerCSS) */
1503
+ --_start: 1.4rem; /* Posición del label ajustada proporcionalmente */
1139
1504
  }
1140
1505
 
1141
- /* Outlined inputs (default) */
1142
- .field.border input,
1143
- .field.border textarea,
1144
- .field.border select {
1145
- border-radius: 8px !important;
1506
+ /* === TRANSICIONES SUAVES === */
1507
+ .field > :is(input, textarea, select) {
1508
+ transition: border-color 0.2s, box-shadow 0.2s, outline-color 0.2s;
1146
1509
  }
1147
1510
 
1148
- /* Filled inputs */
1149
- .field.fill input,
1150
- .field.fill textarea,
1151
- .field.fill select {
1152
- border-radius: 8px !important;
1153
- background: #F9FAFB !important;
1511
+ /* ==========================================
1512
+ NOTCH VISIBILITY (opacity)
1513
+ ========================================== */
1514
+
1515
+ /* Ocultar notch por defecto */
1516
+ .field.label.border:not(.fill) > label::after {
1517
+ opacity: 0;
1154
1518
  }
1155
1519
 
1156
- /* Round variant (only when explicitly requested) */
1157
- .field.round input,
1158
- .field.round textarea,
1159
- .field.round select {
1160
- border-radius: 28px !important;
1520
+ /* Mostrar notch cuando label flota (tiene valor O focus) */
1521
+ .field.label.border:not(.fill) > :is(
1522
+ :focus + label,
1523
+ input:not(:placeholder-shown) + label,
1524
+ textarea:not(:placeholder-shown) + label,
1525
+ select + label
1526
+ )::after {
1527
+ opacity: 1;
1161
1528
  }
1162
1529
 
1163
- /* ========================================
1164
- Form Validation States (from Figma Make patterns)
1165
- Enhanced with Info, Warning, Success, Error states
1166
- ======================================== */
1530
+ /* ==========================================
1531
+ BORDER COLOR
1532
+ Notch + Input border cambian en hover - con transición suave
1533
+ ========================================== */
1167
1534
 
1168
- /* Info state (blue) */
1169
- .field.info input,
1170
- .field.info textarea,
1171
- .field.info select {
1172
- border-color: var(--kds-color-info) !important;
1535
+ /* Agregar transición al notch (BeerCSS usa transition: none, lo sobrescribimos) */
1536
+ .field.label.border:not(.fill) > label::after {
1537
+ transition: border-color 0.2s, opacity 0.2s;
1173
1538
  }
1174
1539
 
1175
- .field.info label {
1176
- color: var(--kds-color-info) !important;
1540
+ /* Estado normal: usa --outline (viene de BeerCSS) */
1541
+
1542
+ /* Hover SIN focus: cambiar color del notch Y del borde del input */
1543
+ .field.label.border:not(.fill):hover:not(:focus-within) > label::after {
1544
+ border-block-start-color: var(--kds-color-input-hover-border);
1177
1545
  }
1178
1546
 
1179
- .field .info-message {
1180
- display: block;
1181
- color: var(--kds-color-info);
1182
- font-size: 0.75rem;
1183
- margin-top: 4px;
1184
- padding: 8px 12px;
1185
- background: var(--kds-alert-info-bg);
1186
- border-radius: var(--kds-radius-sm);
1187
- border-left: 3px solid var(--kds-color-info);
1188
- line-height: 1.4;
1547
+ .field.label.border:not(.fill):hover:not(:focus-within) > :is(input, textarea, select) {
1548
+ border-color: var(--kds-color-input-hover-border);
1189
1549
  }
1190
1550
 
1191
- /* Warning state (amber) */
1192
- .field.warning input,
1193
- .field.warning textarea,
1194
- .field.warning select {
1195
- border-color: var(--kds-color-warning) !important;
1551
+ /* Focus: usar primary (mayor especificidad, gana sobre hover) */
1552
+ .field.label.border:not(.fill):focus-within > label::after {
1553
+ border-block-start-color: var(--primary);
1196
1554
  }
1197
1555
 
1198
- .field.warning label {
1199
- color: var(--kds-color-warning) !important;
1556
+ .field.label.border:not(.fill):focus-within > :is(input, textarea, select) {
1557
+ border-color: var(--primary);
1200
1558
  }
1201
1559
 
1202
- .field .warning-message {
1203
- display: block;
1204
- color: var(--kds-color-warning);
1205
- font-size: 0.75rem;
1206
- margin-top: 4px;
1207
- padding: 8px 12px;
1208
- background: var(--kds-alert-warning-bg);
1209
- border-radius: var(--kds-radius-sm);
1210
- border-left: 3px solid var(--kds-color-warning);
1211
- line-height: 1.4;
1560
+ /* ==========================================
1561
+ INVALID STATE (error)
1562
+ Error siempre gana - mayor especificidad que hover y focus
1563
+ ========================================== */
1564
+
1565
+ /* Invalid: notch rojo (gana sobre hover y focus) */
1566
+ .field.label.border:not(.fill).invalid > label::after {
1567
+ border-block-start-color: var(--error);
1212
1568
  }
1213
1569
 
1214
- /* Valid/Success state (enhanced) */
1215
- .field.valid input,
1216
- .field.valid textarea,
1217
- .field.valid select {
1218
- border-color: var(--kds-color-success) !important;
1570
+ /* Invalid: borde del input rojo (gana sobre hover y focus) */
1571
+ .field.label.border:not(.fill).invalid > :is(input, textarea, select) {
1572
+ border-color: var(--error);
1219
1573
  }
1220
1574
 
1221
- /* Success label color - more specific to override BeerCSS :focus + label primary color */
1222
- .field.label.valid > label,
1223
- .field.label.valid > input:focus + label,
1224
- .field.label.valid > textarea:focus + label,
1225
- .field.label.valid > select:focus + label,
1226
- .field.label.valid > input:not(:focus) + label,
1227
- .field.label.valid > textarea:not(:focus) + label,
1228
- .field.label.valid > select:not(:focus) + label {
1229
- color: var(--kds-color-success) !important;
1575
+ /* Invalid + hover: mantener rojo (no cambiar a gris) */
1576
+ .field.label.border:not(.fill).invalid:hover > label::after {
1577
+ border-block-start-color: var(--error);
1230
1578
  }
1231
1579
 
1232
- .field .success-message {
1233
- display: block;
1234
- color: var(--kds-color-success);
1235
- font-size: 0.75rem;
1236
- margin-top: 4px;
1237
- padding: 8px 12px;
1238
- background: var(--kds-alert-success-bg);
1239
- border-radius: var(--kds-radius-sm);
1240
- border-left: 3px solid var(--kds-color-success);
1241
- line-height: 1.4;
1580
+ .field.label.border:not(.fill).invalid:hover > :is(input, textarea, select) {
1581
+ border-color: var(--error);
1242
1582
  }
1243
1583
 
1244
- /* Invalid/Error state (enhanced) */
1245
- .field.invalid input,
1246
- .field.invalid textarea,
1247
- .field.invalid select {
1248
- border-color: var(--kds-color-error) !important;
1249
- color: var(--on-surface, rgba(0, 0, 0, 0.87)) !important;
1584
+ /* Invalid + focus: mantener rojo (no cambiar a morado) */
1585
+ .field.label.border:not(.fill).invalid:focus-within > label::after {
1586
+ border-block-start-color: var(--error);
1250
1587
  }
1251
1588
 
1252
- .field.invalid input:focus,
1253
- .field.invalid textarea:focus,
1254
- .field.invalid select:focus {
1255
- border-color: var(--kds-color-error) !important;
1256
- outline-color: var(--kds-color-error) !important;
1589
+ .field.label.border:not(.fill).invalid:focus-within > :is(input, textarea, select) {
1590
+ border-color: var(--error);
1257
1591
  }
1258
1592
 
1259
- /* Invalid label */
1260
- .field.invalid label {
1261
- color: var(--kds-color-error) !important;
1593
+ /* ==========================================
1594
+ SELECT DROPDOWN ARROW
1595
+ Asegurar que el dropdown arrow sea visible
1596
+ ========================================== */
1597
+
1598
+ /* Select: mantener appearance nativa para mostrar el dropdown arrow */
1599
+ .field select {
1600
+ /* BeerCSS puede estar ocultando el arrow, aseguramos que sea visible */
1601
+ appearance: auto;
1602
+ -webkit-appearance: auto;
1603
+ -moz-appearance: auto;
1604
+
1605
+ /* Asegurar que el arrow nativo tenga espacio */
1606
+ padding-right: var(--kds-spacing-10); /* 40px */
1607
+ background-position: right var(--kds-spacing-4) center; /* 16px desde el borde */
1608
+ background-repeat: no-repeat;
1609
+ background-size: var(--kds-spacing-5); /* 20px */
1262
1610
  }
1263
1611
 
1264
- /* Error message styling (enhanced) */
1265
- .field .error,
1266
- .field span.error {
1267
- display: block;
1268
- color: var(--kds-color-error);
1269
- font-size: 0.75rem;
1270
- margin-top: 4px;
1271
- padding: 8px 12px;
1272
- background: var(--kds-alert-error-bg);
1273
- border-radius: var(--kds-radius-sm);
1274
- border-left: 3px solid var(--kds-color-error);
1275
- font-weight: 400;
1276
- line-height: 1.4;
1612
+ /* ==========================================
1613
+ HELPER TEXT (mensaje debajo del input)
1614
+ Usando tokens de diseño
1615
+ ========================================== */
1616
+
1617
+ /* Helper text: output o span.helper */
1618
+ .field > :is(output, .helper, span.helper) {
1619
+ display: block;
1620
+ font-family: var(--kds-font-family-primary); /* Public Sans */
1621
+ font-weight: var(--kds-font-weight-regular); /* 400 */
1622
+ font-size: var(--kds-font-size-xs); /* 0.75rem / 12px */
1623
+ line-height: var(--kds-line-height-relaxed); /* 1.66 */
1624
+ color: var(--kds-color-text-secondary); /* Gris normal */
1625
+ padding: 0.25rem 1rem 0 1rem;
1626
+ margin: 0;
1277
1627
  }
1278
1628
 
1279
- /* Helper text (neutral) */
1280
- .field .helper,
1281
- .field span.helper {
1282
- display: block;
1283
- color: var(--on-surface-variant, rgba(0, 0, 0, 0.60));
1284
- font-size: 0.75rem;
1285
- margin-top: 4px;
1286
- padding: 4px 12px;
1287
- line-height: 1.4;
1629
+ /* Helper text en estado error */
1630
+ .field.invalid > :is(output, .helper, span.helper) {
1631
+ color: var(--error); /* Rojo error */
1632
+ }
1633
+
1634
+ /* ==========================================
1635
+ LABEL COLOR
1636
+ Mantener sincronizado con border
1637
+ ========================================== */
1638
+
1639
+ /* Estado normal: color secundario (60% opacity) */
1640
+ .field.label > label {
1641
+ color: var(--kds-color-text-secondary);
1642
+ }
1643
+
1644
+ /* Hover SIN focus: más oscuro (70% opacity) */
1645
+ .field.label:hover:not(:focus-within) > label {
1646
+ color: rgba(0, 0, 0, 0.7);
1647
+ }
1648
+
1649
+ /* Focus: primary purple (BeerCSS ya lo hace, pero aseguramos) */
1650
+ .field.label:focus-within > label {
1651
+ color: var(--primary);
1288
1652
  }
1289
1653
 
1290
1654
  /* ========================================
1291
- Alert/Banner Components
1292
- From Figma Make: KYC blocking patterns, info messages
1655
+ Snackbar Components (Material Design 3)
1656
+ Floating notifications at bottom of screen
1293
1657
  ======================================== */
1294
1658
 
1295
- .kds-alert {
1659
+ /* Base snackbar - extends BeerCSS .snackbar */
1660
+ .kds-snackbar {
1661
+ position: fixed;
1662
+ bottom: var(--kds-spacing-3);
1663
+ left: 50%;
1664
+ transform: translateX(-50%);
1665
+ z-index: var(--kds-z-index-snackbar);
1666
+
1667
+ /* Layout */
1296
1668
  display: flex;
1297
- gap: var(--kds-spacing-3);
1298
- padding: var(--kds-spacing-4);
1299
- border-radius: var(--kds-radius-md);
1300
- border: 1px solid;
1301
- margin: var(--kds-spacing-4) 0;
1302
- align-items: flex-start;
1303
- }
1669
+ align-items: center;
1670
+ gap: var(--kds-spacing-2);
1304
1671
 
1305
- .kds-alert-icon {
1306
- flex-shrink: 0;
1307
- font-size: 20px;
1308
- margin-top: 2px;
1672
+ /* Sizing */
1673
+ min-width: 344px;
1674
+ max-width: 672px;
1675
+ padding: var(--kds-spacing-2) var(--kds-spacing-3);
1676
+
1677
+ /* Styling */
1678
+ border-radius: var(--kds-radius-sm);
1679
+ box-shadow: var(--kds-shadow-8);
1680
+
1681
+ /* Typography */
1682
+ font-family: var(--kds-font-family-primary);
1683
+ font-size: var(--kds-font-size-sm);
1684
+ font-weight: var(--kds-font-weight-medium);
1685
+ line-height: var(--kds-line-height-normal);
1686
+
1687
+ /* Animation */
1688
+ animation: kds-snackbar-in 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1309
1689
  }
1310
1690
 
1311
- .kds-alert-content {
1312
- flex: 1;
1691
+ /* Snackbar animation */
1692
+ @keyframes kds-snackbar-in {
1693
+ from {
1694
+ transform: translateX(-50%) translateY(100px);
1695
+ opacity: 0;
1696
+ }
1697
+ to {
1698
+ transform: translateX(-50%) translateY(0);
1699
+ opacity: 1;
1700
+ }
1313
1701
  }
1314
1702
 
1315
- .kds-alert-title {
1316
- font-weight: var(--kds-font-weight-semibold);
1317
- margin-bottom: var(--kds-spacing-2);
1318
- font-size: var(--kds-font-size-base);
1703
+ /* Icon */
1704
+ .kds-snackbar-icon {
1705
+ flex-shrink: 0;
1706
+ font-size: var(--kds-spacing-button-icon-size);
1707
+ min-width: var(--kds-spacing-button-icon-size);
1708
+ min-height: var(--kds-spacing-button-icon-size);
1319
1709
  }
1320
1710
 
1321
- .kds-alert-description {
1322
- font-size: var(--kds-font-size-sm);
1323
- line-height: 1.5;
1711
+ /* Content */
1712
+ .kds-snackbar-content {
1713
+ flex: 1;
1714
+ min-width: 0;
1324
1715
  }
1325
1716
 
1326
- /* Alert Variants */
1327
- .kds-alert.info {
1328
- background: var(--kds-alert-info-bg);
1329
- border-color: var(--kds-color-info);
1330
- color: var(--kds-color-info);
1717
+ /* Action button (optional) */
1718
+ .kds-snackbar-action {
1719
+ flex-shrink: 0;
1331
1720
  }
1332
1721
 
1333
- .kds-alert.info .kds-alert-icon {
1334
- color: var(--kds-color-info);
1722
+ /* Snackbar Variants */
1723
+ .kds-snackbar.success {
1724
+ background: var(--kds-snackbar-success-bg);
1725
+ border: 1px solid var(--kds-color-success-main);
1726
+ color: var(--kds-color-success-main);
1335
1727
  }
1336
1728
 
1337
- .kds-alert.warning {
1338
- background: var(--kds-alert-warning-bg);
1339
- border-color: var(--kds-color-warning);
1340
- color: var(--kds-color-warning);
1729
+ .kds-snackbar.success .kds-snackbar-icon {
1730
+ color: var(--kds-color-success-main);
1341
1731
  }
1342
1732
 
1343
- .kds-alert.warning .kds-alert-icon {
1344
- color: var(--kds-color-warning);
1733
+ .kds-snackbar.warning {
1734
+ background: var(--kds-snackbar-warning-bg);
1735
+ border: 1px solid var(--kds-color-warning-main);
1736
+ color: var(--kds-color-warning-main);
1345
1737
  }
1346
1738
 
1347
- .kds-alert.success {
1348
- background: var(--kds-alert-success-bg);
1349
- border-color: var(--kds-color-success);
1350
- color: var(--kds-color-success);
1739
+ .kds-snackbar.warning .kds-snackbar-icon {
1740
+ color: var(--kds-color-warning-main);
1351
1741
  }
1352
1742
 
1353
- .kds-alert.success .kds-alert-icon {
1354
- color: var(--kds-color-success);
1743
+ .kds-snackbar.error {
1744
+ background: var(--kds-snackbar-error-bg);
1745
+ border: 1px solid var(--kds-color-error-main);
1746
+ color: var(--kds-color-error-main);
1355
1747
  }
1356
1748
 
1357
- .kds-alert.error {
1358
- background: var(--kds-alert-error-bg);
1359
- border-color: var(--kds-color-error);
1360
- color: var(--kds-color-error);
1749
+ .kds-snackbar.error .kds-snackbar-icon {
1750
+ color: var(--kds-color-error-main);
1361
1751
  }
1362
1752
 
1363
- .kds-alert.error .kds-alert-icon {
1364
- color: var(--kds-color-error);
1753
+ .kds-snackbar.info {
1754
+ background: var(--kds-snackbar-info-bg);
1755
+ border: 1px solid var(--kds-color-info-main);
1756
+ color: var(--kds-color-info-main);
1365
1757
  }
1366
1758
 
1367
- /* Alert with action button */
1368
- .kds-alert-actions {
1369
- margin-top: var(--kds-spacing-3);
1370
- display: flex;
1371
- gap: var(--kds-spacing-2);
1759
+ .kds-snackbar.info .kds-snackbar-icon {
1760
+ color: var(--kds-color-info-main);
1372
1761
  }
1373
1762
 
1374
- /* Compact alert variant (no icon) */
1375
- .kds-alert.compact {
1376
- padding: var(--kds-spacing-3);
1763
+ /* Static variant for showcase/demo purposes */
1764
+ .kds-snackbar.static {
1765
+ position: relative;
1766
+ left: auto;
1767
+ bottom: auto;
1768
+ transform: none;
1769
+ margin-bottom: var(--kds-spacing-3);
1770
+ animation: none;
1377
1771
  }
1378
1772
 
1379
- .kds-alert.compact .kds-alert-icon {
1380
- display: none;
1773
+ /* Mobile responsive */
1774
+ @media (max-width: 768px) {
1775
+ .kds-snackbar {
1776
+ min-width: calc(100vw - var(--kds-spacing-4));
1777
+ max-width: calc(100vw - var(--kds-spacing-4));
1778
+ left: var(--kds-spacing-2);
1779
+ right: var(--kds-spacing-2);
1780
+ transform: translateX(0);
1781
+ }
1782
+
1783
+ @keyframes kds-snackbar-in {
1784
+ from {
1785
+ transform: translateY(100px);
1786
+ opacity: 0;
1787
+ }
1788
+ to {
1789
+ transform: translateY(0);
1790
+ opacity: 1;
1791
+ }
1792
+ }
1381
1793
  }
1382
1794
 
1383
1795
  /* ========================================
@@ -1390,6 +1802,11 @@ select:focus {
1390
1802
  'wght' 400,
1391
1803
  'GRAD' 0,
1392
1804
  'opsz' 24;
1805
+ min-width: 24px;
1806
+ min-height: 24px;
1807
+ display: inline-flex;
1808
+ align-items: center;
1809
+ justify-content: center;
1393
1810
  }
1394
1811
 
1395
1812
  /* Filled icons for specific contexts */
@@ -1402,217 +1819,30 @@ select:focus {
1402
1819
  }
1403
1820
 
1404
1821
  /* ========================================
1405
- Typography Scale - EXACT from Figma Make
1822
+ Width & Display Utilities
1406
1823
  ======================================== */
1407
1824
 
1408
- /* Stage title (e.g., "Etapa 2: Datos personales") */
1409
- .kds-stage-title {
1410
- font-size: 32px;
1411
- font-weight: 700;
1412
- line-height: 1.3;
1413
- color: #111827;
1414
- margin: 0 0 12px 0;
1415
- text-align: center;
1825
+ .kds-w-full {
1826
+ width: 100%;
1416
1827
  }
1417
1828
 
1418
- /* Stage subtitle (e.g., "Completa tu información personal") */
1419
- .kds-stage-subtitle {
1420
- font-size: 16px;
1421
- font-weight: 400;
1422
- line-height: 1.5;
1423
- color: #6B7280;
1424
- margin: 0 0 32px 0;
1425
- text-align: center;
1829
+ .kds-max-w-sm {
1830
+ max-width: 400px;
1426
1831
  }
1427
1832
 
1428
- /* Section title (e.g., "Datos personales") */
1429
- .kds-section-title {
1430
- font-size: 20px;
1431
- font-weight: 600;
1432
- line-height: 1.4;
1433
- color: #111827;
1434
- margin: 0 0 24px 0;
1833
+ .kds-max-w-md {
1834
+ max-width: 600px;
1435
1835
  }
1436
1836
 
1437
- /* Display styles (largest) */
1438
- .kds-display-large {
1439
- font-size: var(--kds-font-size-4xl);
1440
- font-weight: var(--kds-font-weight-bold);
1441
- line-height: 1.2;
1442
- margin: 0;
1443
- letter-spacing: -0.02em;
1444
- color: #111827;
1837
+ .kds-max-w-lg {
1838
+ max-width: 800px;
1445
1839
  }
1446
1840
 
1447
- .kds-display-medium {
1448
- font-size: var(--kds-font-size-3xl);
1449
- font-weight: var(--kds-font-weight-bold);
1450
- line-height: 1.2;
1451
- margin: 0;
1452
- letter-spacing: -0.01em;
1453
- color: #111827;
1454
- }
1455
-
1456
- /* Headline styles */
1457
- .kds-headline-large {
1458
- font-size: var(--kds-font-size-2xl);
1459
- font-weight: var(--kds-font-weight-bold);
1460
- line-height: 1.3;
1461
- margin: 0;
1462
- }
1463
-
1464
- .kds-headline-medium {
1465
- font-size: var(--kds-font-size-xl);
1466
- font-weight: var(--kds-font-weight-bold);
1467
- line-height: 1.3;
1468
- margin: 0;
1469
- }
1470
-
1471
- .kds-headline-small {
1472
- font-size: var(--kds-font-size-lg);
1473
- font-weight: var(--kds-font-weight-bold);
1474
- line-height: 1.4;
1475
- margin: 0;
1476
- }
1477
-
1478
- /* Title styles */
1479
- .kds-title-large {
1480
- font-size: var(--kds-font-size-xl);
1481
- font-weight: var(--kds-font-weight-semibold);
1482
- line-height: 1.5;
1483
- margin: 0;
1484
- }
1485
-
1486
- .kds-title-medium {
1487
- font-size: var(--kds-font-size-base);
1488
- font-weight: var(--kds-font-weight-semibold);
1489
- line-height: 1.5;
1490
- margin: 0;
1491
- }
1492
-
1493
- .kds-title-small {
1494
- font-size: var(--kds-font-size-sm);
1495
- font-weight: var(--kds-font-weight-semibold);
1496
- line-height: 1.5;
1497
- margin: 0;
1498
- }
1499
-
1500
- /* Body text styles */
1501
- .kds-body-large {
1502
- font-size: var(--kds-font-size-lg);
1503
- font-weight: var(--kds-font-weight-regular);
1504
- line-height: 1.5;
1505
- }
1506
-
1507
- .kds-body-medium {
1508
- font-size: var(--kds-font-size-base);
1509
- font-weight: var(--kds-font-weight-regular);
1510
- line-height: 1.5;
1511
- }
1512
-
1513
- .kds-body-small {
1514
- font-size: var(--kds-font-size-sm);
1515
- font-weight: var(--kds-font-weight-regular);
1516
- line-height: 1.5;
1517
- }
1518
-
1519
- /* Label styles */
1520
- .kds-label-large {
1521
- font-size: var(--kds-font-size-base);
1522
- font-weight: var(--kds-font-weight-semibold);
1523
- line-height: 1.5;
1524
- letter-spacing: 0.01em;
1525
- }
1526
-
1527
- .kds-label-medium {
1528
- font-size: var(--kds-font-size-sm);
1529
- font-weight: var(--kds-font-weight-semibold);
1530
- line-height: 1.5;
1531
- letter-spacing: 0.01em;
1532
- }
1533
-
1534
- .kds-label-small {
1535
- font-size: var(--kds-font-size-xs);
1536
- font-weight: var(--kds-font-weight-semibold);
1537
- line-height: 1.5;
1538
- letter-spacing: 0.02em;
1539
- }
1540
-
1541
- /* Text utilities */
1542
- .kds-text-center {
1543
- text-align: center;
1544
- }
1545
-
1546
- .kds-text-left {
1547
- text-align: left;
1548
- }
1549
-
1550
- .kds-text-right {
1551
- text-align: right;
1552
- }
1553
-
1554
- .kds-text-muted {
1555
- color: var(--on-surface-variant, rgba(0, 0, 0, 0.60));
1556
- }
1557
-
1558
- .kds-text-primary {
1559
- color: var(--primary);
1560
- }
1561
-
1562
- .kds-text-success {
1563
- color: var(--kds-color-success);
1564
- }
1565
-
1566
- .kds-text-error {
1567
- color: var(--kds-color-error);
1568
- }
1569
-
1570
- .kds-text-warning {
1571
- color: var(--kds-color-warning);
1572
- }
1573
-
1574
- /* Font weight utilities */
1575
- .kds-font-regular {
1576
- font-weight: var(--kds-font-weight-regular);
1577
- }
1578
-
1579
- .kds-font-medium {
1580
- font-weight: var(--kds-font-weight-medium);
1581
- }
1582
-
1583
- .kds-font-semibold {
1584
- font-weight: var(--kds-font-weight-semibold);
1585
- }
1586
-
1587
- .kds-font-bold {
1588
- font-weight: var(--kds-font-weight-bold);
1589
- }
1590
-
1591
- /* ========================================
1592
- Width & Display Utilities
1593
- ======================================== */
1594
-
1595
- .kds-w-full {
1596
- width: 100%;
1597
- }
1598
-
1599
- .kds-max-w-sm {
1600
- max-width: 400px;
1601
- }
1602
-
1603
- .kds-max-w-md {
1604
- max-width: 600px;
1605
- }
1606
-
1607
- .kds-max-w-lg {
1608
- max-width: 800px;
1609
- }
1610
-
1611
- /* Status card content styling */
1612
- .kds-card-status .status-content strong {
1613
- display: block;
1614
- font-weight: var(--kds-font-weight-semibold);
1615
- margin-bottom: var(--kds-spacing-1);
1841
+ /* Status card content styling */
1842
+ .kds-card-status .status-content strong {
1843
+ display: block;
1844
+ font-weight: var(--kds-font-weight-semibold);
1845
+ margin-bottom: var(--kds-spacing-1);
1616
1846
  }
1617
1847
 
1618
1848
  .kds-card-status .status-content p {
@@ -1659,6 +1889,80 @@ select:focus {
1659
1889
  margin: 0;
1660
1890
  }
1661
1891
 
1892
+ /* ========================================
1893
+ CHECKBOX & RADIO GROUPS
1894
+ Form selection components
1895
+ ======================================== */
1896
+
1897
+ /* Checkbox Group */
1898
+ .kds-checkbox-group {
1899
+ display: flex;
1900
+ flex-direction: column;
1901
+ gap: var(--kds-spacing-3);
1902
+ }
1903
+
1904
+ /* Radio Group */
1905
+ .kds-radio-group {
1906
+ display: flex;
1907
+ flex-direction: column;
1908
+ gap: var(--kds-spacing-3);
1909
+ }
1910
+
1911
+ /* Checkbox Label - BeerCSS override */
1912
+ label.checkbox,
1913
+ label.radio {
1914
+ display: flex;
1915
+ align-items: center;
1916
+ padding: var(--kds-spacing-3) var(--kds-spacing-4);
1917
+ border-radius: 8px;
1918
+ cursor: pointer;
1919
+ transition: background-color 0.2s;
1920
+ font-size: 16px;
1921
+ line-height: 1.5;
1922
+ color: #111827;
1923
+ }
1924
+
1925
+ label.checkbox:hover,
1926
+ label.radio:hover {
1927
+ background-color: #F9FAFB;
1928
+ }
1929
+
1930
+ /* Checkbox/Radio Input */
1931
+ label.checkbox input[type="checkbox"],
1932
+ label.radio input[type="radio"] {
1933
+ width: 20px;
1934
+ height: 20px;
1935
+ margin-right: var(--kds-spacing-3);
1936
+ cursor: pointer;
1937
+ flex-shrink: 0;
1938
+ }
1939
+
1940
+ /* Checkbox/Radio Text */
1941
+ label.checkbox span,
1942
+ label.radio span {
1943
+ flex: 1;
1944
+ cursor: pointer;
1945
+ }
1946
+
1947
+ /* Checked state */
1948
+ label.checkbox input[type="checkbox"]:checked,
1949
+ label.radio input[type="radio"]:checked {
1950
+ accent-color: var(--primary);
1951
+ }
1952
+
1953
+ /* Disabled state */
1954
+ label.checkbox input[type="checkbox"]:disabled,
1955
+ label.radio input[type="radio"]:disabled {
1956
+ cursor: not-allowed;
1957
+ opacity: 0.5;
1958
+ }
1959
+
1960
+ label.checkbox:has(input:disabled),
1961
+ label.radio:has(input:disabled) {
1962
+ cursor: not-allowed;
1963
+ opacity: 0.6;
1964
+ }
1965
+
1662
1966
  /* ========================================
1663
1967
  ONBOARDING COMPONENTS
1664
1968
  Multi-stage onboarding flow with form validation
@@ -1835,6 +2139,8 @@ select:focus {
1835
2139
  /* Upload zone content */
1836
2140
  .kds-file-upload-icon {
1837
2141
  font-size: 48px;
2142
+ min-width: 48px;
2143
+ min-height: 48px;
1838
2144
  color: #9CA3AF;
1839
2145
  margin-bottom: var(--kds-spacing-3);
1840
2146
  }
@@ -1850,6 +2156,24 @@ select:focus {
1850
2156
  margin-bottom: var(--kds-spacing-2);
1851
2157
  }
1852
2158
 
2159
+ .kds-file-upload-button {
2160
+ color: var(--primary);
2161
+ text-decoration: underline;
2162
+ cursor: pointer;
2163
+ font-weight: 600;
2164
+ }
2165
+
2166
+ .kds-file-upload-button:hover {
2167
+ color: var(--kds-color-primary-700);
2168
+ }
2169
+
2170
+ .kds-file-upload-helper {
2171
+ font-size: var(--kds-font-size-sm);
2172
+ color: #6B7280;
2173
+ display: block;
2174
+ margin-top: var(--kds-spacing-1);
2175
+ }
2176
+
1853
2177
  .kds-file-upload-hint {
1854
2178
  font-size: var(--kds-font-size-sm);
1855
2179
  color: #6B7280;
@@ -1889,6 +2213,8 @@ select:focus {
1889
2213
  flex-shrink: 0;
1890
2214
  width: 40px;
1891
2215
  height: 40px;
2216
+ min-width: 40px;
2217
+ min-height: 40px;
1892
2218
  display: flex;
1893
2219
  align-items: center;
1894
2220
  justify-content: center;
@@ -1898,6 +2224,11 @@ select:focus {
1898
2224
  font-size: 20px;
1899
2225
  }
1900
2226
 
2227
+ .kds-file-upload-item-icon i {
2228
+ min-width: 20px;
2229
+ min-height: 20px;
2230
+ }
2231
+
1901
2232
  /* File info */
1902
2233
  .kds-file-upload-item-info {
1903
2234
  flex: 1;
@@ -1919,6 +2250,12 @@ select:focus {
1919
2250
  margin-top: 2px;
1920
2251
  }
1921
2252
 
2253
+ .kds-file-upload-item-size {
2254
+ font-size: var(--kds-font-size-xs);
2255
+ color: #6B7280;
2256
+ margin-top: 2px;
2257
+ }
2258
+
1922
2259
  /* File status */
1923
2260
  .kds-file-upload-item-status {
1924
2261
  flex-shrink: 0;
@@ -2147,19 +2484,37 @@ select:focus {
2147
2484
  }
2148
2485
  }
2149
2486
 
2487
+ /* ========================================
2488
+ MODAL BASE CONFIGURATION
2489
+ Override BeerCSS modal defaults
2490
+ ======================================== */
2491
+
2492
+ dialog.modal {
2493
+ background: var(--kds-modal-bg);
2494
+ border: none;
2495
+ border-radius: var(--kds-modal-border-radius);
2496
+ padding: var(--kds-modal-padding);
2497
+ max-width: var(--kds-modal-max-width);
2498
+ box-shadow: var(--kds-modal-shadow);
2499
+ }
2500
+
2501
+ dialog.modal::backdrop {
2502
+ background: var(--kds-modal-backdrop);
2503
+ }
2504
+
2150
2505
  /* ========================================
2151
2506
  KYC BLOCKING MODAL
2152
2507
  Warning modal for high-risk sectors
2153
2508
  ======================================== */
2154
2509
 
2155
2510
  .kds-kyc-modal {
2156
- background: var(--kds-kyc-block-bg);
2157
- border: 2px solid var(--kds-kyc-block-border);
2158
- border-radius: var(--kds-radius-lg);
2159
- padding: var(--kds-spacing-8);
2160
- max-width: 600px;
2511
+ background: var(--kds-modal-bg);
2512
+ border: none;
2513
+ border-radius: var(--kds-modal-border-radius);
2514
+ padding: var(--kds-modal-padding);
2515
+ max-width: var(--kds-modal-max-width);
2161
2516
  margin: 0 auto;
2162
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
2517
+ box-shadow: var(--kds-modal-shadow);
2163
2518
  }
2164
2519
 
2165
2520
  .kds-kyc-modal-icon {
@@ -2169,37 +2524,39 @@ select:focus {
2169
2524
 
2170
2525
  .kds-kyc-modal-icon i {
2171
2526
  font-size: 64px;
2172
- color: var(--kds-kyc-block-icon);
2527
+ min-width: 64px;
2528
+ min-height: 64px;
2529
+ color: var(--kds-modal-icon-warning);
2173
2530
  }
2174
2531
 
2175
2532
  .kds-kyc-modal-title {
2176
2533
  font-size: var(--kds-font-size-2xl);
2177
2534
  font-weight: var(--kds-font-weight-bold);
2178
- color: var(--kds-kyc-block-text);
2535
+ color: var(--kds-modal-title-color);
2179
2536
  text-align: center;
2180
2537
  margin-bottom: var(--kds-spacing-4);
2181
2538
  }
2182
2539
 
2183
2540
  .kds-kyc-modal-message {
2184
2541
  font-size: var(--kds-font-size-base);
2185
- color: var(--kds-kyc-block-text);
2542
+ color: var(--kds-modal-text-color);
2186
2543
  line-height: 1.6;
2187
2544
  margin-bottom: var(--kds-spacing-6);
2188
2545
  text-align: center;
2189
2546
  }
2190
2547
 
2191
2548
  .kds-kyc-modal-contact {
2192
- background: #FFFFFF;
2549
+ background: var(--kds-surface-elevated);
2193
2550
  border-radius: var(--kds-radius-md);
2194
2551
  padding: var(--kds-spacing-4);
2195
2552
  margin-bottom: var(--kds-spacing-6);
2196
- border-left: 4px solid var(--kds-kyc-block-icon);
2553
+ border-left: 4px solid var(--primary);
2197
2554
  }
2198
2555
 
2199
2556
  .kds-kyc-modal-contact strong {
2200
2557
  display: block;
2201
2558
  font-weight: var(--kds-font-weight-semibold);
2202
- color: var(--kds-kyc-block-text);
2559
+ color: var(--kds-modal-title-color);
2203
2560
  margin-bottom: var(--kds-spacing-2);
2204
2561
  }
2205
2562
 
@@ -2220,12 +2577,16 @@ select:focus {
2220
2577
  }
2221
2578
 
2222
2579
  @media (max-width: 480px) {
2223
- .kds-kyc-modal {
2224
- padding: var(--kds-spacing-6);
2580
+ .kds-kyc-modal,
2581
+ dialog.modal {
2582
+ padding: var(--kds-modal-padding-mobile);
2583
+ max-width: var(--kds-modal-max-width-mobile);
2225
2584
  }
2226
2585
 
2227
2586
  .kds-kyc-modal-icon i {
2228
2587
  font-size: 48px;
2588
+ min-width: 48px;
2589
+ min-height: 48px;
2229
2590
  }
2230
2591
 
2231
2592
  .kds-kyc-modal-actions {
@@ -2293,12 +2654,16 @@ select:focus {
2293
2654
  width: auto !important;
2294
2655
  height: auto !important;
2295
2656
  font-size: 80px !important;
2657
+ min-width: 80px;
2658
+ min-height: 80px;
2296
2659
  }
2297
2660
 
2298
2661
  /* Fix for benefit card icons - BeerCSS forces 24px, override for large icons */
2299
2662
  .kds-card-elevated i.icon-filled {
2300
2663
  width: auto !important;
2301
2664
  height: auto !important;
2665
+ min-width: 48px;
2666
+ min-height: 48px;
2302
2667
  }
2303
2668
 
2304
2669
  .kds-welcome-hero-title {
@@ -2530,6 +2895,228 @@ select:focus {
2530
2895
  border-radius: var(--kds-radius-md);
2531
2896
  }
2532
2897
 
2898
+ /* ========================================
2899
+ SUMMARY CARD (Review/Validation)
2900
+ Used in validation stage to show user data
2901
+ ======================================== */
2902
+
2903
+ .kds-summary-card {
2904
+ background: white;
2905
+ border: 1px solid #E5E7EB;
2906
+ border-radius: var(--kds-radius-lg);
2907
+ padding: var(--kds-spacing-5);
2908
+ margin-bottom: var(--kds-spacing-4);
2909
+ }
2910
+
2911
+ .kds-summary-card-header {
2912
+ display: flex;
2913
+ justify-content: space-between;
2914
+ align-items: center;
2915
+ margin-bottom: var(--kds-spacing-4);
2916
+ padding-bottom: var(--kds-spacing-3);
2917
+ border-bottom: 1px solid #F3F4F6;
2918
+ }
2919
+
2920
+ .kds-summary-card-title {
2921
+ display: flex;
2922
+ align-items: center;
2923
+ gap: var(--kds-spacing-2);
2924
+ font-size: var(--kds-font-size-lg);
2925
+ font-weight: var(--kds-font-weight-semibold);
2926
+ color: #111827;
2927
+ }
2928
+
2929
+ .kds-summary-card-edit {
2930
+ color: var(--primary);
2931
+ text-decoration: none;
2932
+ font-size: var(--kds-font-size-sm);
2933
+ font-weight: var(--kds-font-weight-medium);
2934
+ display: flex;
2935
+ align-items: center;
2936
+ gap: 4px;
2937
+ transition: opacity 0.2s ease;
2938
+ }
2939
+
2940
+ .kds-summary-card-edit:hover {
2941
+ text-decoration: underline;
2942
+ opacity: 0.8;
2943
+ }
2944
+
2945
+ .kds-summary-row {
2946
+ display: flex;
2947
+ padding: var(--kds-spacing-2) 0;
2948
+ }
2949
+
2950
+ .kds-summary-label {
2951
+ flex: 0 0 140px;
2952
+ font-size: var(--kds-font-size-sm);
2953
+ font-weight: var(--kds-font-weight-medium);
2954
+ color: #6B7280;
2955
+ }
2956
+
2957
+ .kds-summary-value {
2958
+ flex: 1;
2959
+ font-size: var(--kds-font-size-sm);
2960
+ color: #111827;
2961
+ }
2962
+
2963
+ .kds-summary-value.badge {
2964
+ display: inline-block;
2965
+ padding: 4px 12px;
2966
+ background: var(--kds-color-primary-100);
2967
+ color: var(--primary);
2968
+ border-radius: var(--kds-radius-full);
2969
+ font-weight: var(--kds-font-weight-medium);
2970
+ }
2971
+
2972
+ /* ========================================
2973
+ SUCCESS PAGE COMPONENTS
2974
+ Celebration/completion page layout
2975
+ ======================================== */
2976
+
2977
+ .kds-success-container {
2978
+ display: flex;
2979
+ flex-direction: column;
2980
+ align-items: center;
2981
+ justify-content: center;
2982
+ min-height: 80vh;
2983
+ text-align: center;
2984
+ padding: var(--kds-spacing-8);
2985
+ }
2986
+
2987
+ .kds-success-icon {
2988
+ width: 120px;
2989
+ height: 120px;
2990
+ background: #ECFDF5;
2991
+ border-radius: 50%;
2992
+ display: flex;
2993
+ align-items: center;
2994
+ justify-content: center;
2995
+ margin-bottom: var(--kds-spacing-6);
2996
+ animation: scaleIn 0.5s ease-out;
2997
+ }
2998
+
2999
+ @keyframes scaleIn {
3000
+ from {
3001
+ transform: scale(0);
3002
+ opacity: 0;
3003
+ }
3004
+ to {
3005
+ transform: scale(1);
3006
+ opacity: 1;
3007
+ }
3008
+ }
3009
+
3010
+ .kds-success-icon i {
3011
+ font-size: 80px;
3012
+ min-width: 80px;
3013
+ min-height: 80px;
3014
+ color: var(--kds-color-success);
3015
+ }
3016
+
3017
+ .kds-success-title {
3018
+ font-size: var(--kds-font-size-3xl);
3019
+ font-weight: var(--kds-font-weight-bold);
3020
+ color: #111827;
3021
+ margin-bottom: var(--kds-spacing-3);
3022
+ }
3023
+
3024
+ .kds-success-subtitle {
3025
+ font-size: var(--kds-font-size-lg);
3026
+ color: #6B7280;
3027
+ margin-bottom: var(--kds-spacing-8);
3028
+ max-width: 600px;
3029
+ }
3030
+
3031
+ .kds-next-steps {
3032
+ background: white;
3033
+ border: 1px solid #E5E7EB;
3034
+ border-radius: var(--kds-radius-xl);
3035
+ padding: var(--kds-spacing-6);
3036
+ max-width: 700px;
3037
+ width: 100%;
3038
+ margin-bottom: var(--kds-spacing-6);
3039
+ text-align: left;
3040
+ }
3041
+
3042
+ .kds-next-steps-title {
3043
+ font-size: var(--kds-font-size-xl);
3044
+ font-weight: var(--kds-font-weight-semibold);
3045
+ color: #111827;
3046
+ margin-bottom: var(--kds-spacing-4);
3047
+ display: flex;
3048
+ align-items: center;
3049
+ gap: var(--kds-spacing-2);
3050
+ }
3051
+
3052
+ .kds-step-item {
3053
+ display: flex;
3054
+ gap: var(--kds-spacing-3);
3055
+ padding: var(--kds-spacing-3) 0;
3056
+ border-bottom: 1px solid #F3F4F6;
3057
+ }
3058
+
3059
+ .kds-step-item:last-child {
3060
+ border-bottom: none;
3061
+ }
3062
+
3063
+ .kds-step-number {
3064
+ flex-shrink: 0;
3065
+ width: 32px;
3066
+ height: 32px;
3067
+ background: var(--kds-color-primary-100);
3068
+ color: var(--primary);
3069
+ border-radius: 50%;
3070
+ display: flex;
3071
+ align-items: center;
3072
+ justify-content: center;
3073
+ font-weight: var(--kds-font-weight-semibold);
3074
+ font-size: var(--kds-font-size-sm);
3075
+ }
3076
+
3077
+ .kds-step-content {
3078
+ flex: 1;
3079
+ }
3080
+
3081
+ .kds-step-title {
3082
+ font-size: var(--kds-font-size-base);
3083
+ font-weight: var(--kds-font-weight-semibold);
3084
+ color: #111827;
3085
+ margin-bottom: 4px;
3086
+ }
3087
+
3088
+ .kds-step-description {
3089
+ font-size: var(--kds-font-size-sm);
3090
+ color: #6B7280;
3091
+ line-height: 1.5;
3092
+ }
3093
+
3094
+ .kds-success-actions {
3095
+ display: flex;
3096
+ gap: var(--kds-spacing-3);
3097
+ flex-wrap: wrap;
3098
+ justify-content: center;
3099
+ }
3100
+
3101
+ @media (max-width: 768px) {
3102
+ .kds-success-title {
3103
+ font-size: var(--kds-font-size-2xl);
3104
+ }
3105
+
3106
+ .kds-success-subtitle {
3107
+ font-size: var(--kds-font-size-base);
3108
+ }
3109
+
3110
+ .kds-success-actions {
3111
+ flex-direction: column;
3112
+ width: 100%;
3113
+ }
3114
+
3115
+ .kds-success-actions button {
3116
+ width: 100%;
3117
+ }
3118
+ }
3119
+
2533
3120
  /* ========================================
2534
3121
  Responsive Utilities
2535
3122
  ======================================== */
@@ -2555,3 +3142,146 @@ select:focus {
2555
3142
  }
2556
3143
  }
2557
3144
 
3145
+ /* ========================================
3146
+ UTILITY CLASSES
3147
+ ======================================== */
3148
+
3149
+ /* Container utilities */
3150
+ .kds-container-center {
3151
+ margin-left: auto;
3152
+ margin-right: auto;
3153
+ }
3154
+
3155
+ .max-w-500 {
3156
+ max-width: 500px;
3157
+ }
3158
+
3159
+ .max-w-1200 {
3160
+ max-width: 1200px;
3161
+ }
3162
+
3163
+ /* Margin top utilities */
3164
+ .kds-mt-3 {
3165
+ margin-top: var(--kds-spacing-3);
3166
+ }
3167
+
3168
+ /* ========================================
3169
+ AUTOMATIC SPACING SYSTEM
3170
+ Components handle their own spacing
3171
+ ======================================== */
3172
+
3173
+ /* Component showcase sections */
3174
+ .component-section {
3175
+ margin-bottom: var(--kds-spacing-12);
3176
+ }
3177
+
3178
+ .component-section > h2 {
3179
+ margin-bottom: var(--kds-spacing-6);
3180
+ }
3181
+
3182
+ .component-item {
3183
+ margin-bottom: var(--kds-spacing-10);
3184
+ }
3185
+
3186
+ .component-item > h3 {
3187
+ margin-bottom: var(--kds-spacing-2);
3188
+ }
3189
+
3190
+ .component-item > p {
3191
+ margin-bottom: var(--kds-spacing-4);
3192
+ }
3193
+
3194
+ .component-demo {
3195
+ margin-bottom: var(--kds-spacing-6);
3196
+ }
3197
+
3198
+ .component-code {
3199
+ margin-bottom: var(--kds-spacing-4);
3200
+ }
3201
+
3202
+ .usage-note,
3203
+ .grails-note {
3204
+ margin-top: var(--kds-spacing-4);
3205
+ margin-bottom: var(--kds-spacing-6);
3206
+ }
3207
+
3208
+ .usage-note > h4,
3209
+ .grails-note > h4 {
3210
+ margin-bottom: var(--kds-spacing-2);
3211
+ }
3212
+
3213
+ /* Onboarding stage sections */
3214
+ .kds-stage-section {
3215
+ margin-bottom: var(--kds-spacing-8);
3216
+ }
3217
+
3218
+ .kds-stage-section:last-child {
3219
+ margin-bottom: 0;
3220
+ }
3221
+
3222
+ .kds-stage-section-title {
3223
+ margin-bottom: var(--kds-spacing-4);
3224
+ }
3225
+
3226
+ .kds-stage-section-description {
3227
+ margin-bottom: var(--kds-spacing-4);
3228
+ }
3229
+
3230
+ /* Stage header */
3231
+ .kds-stage-header {
3232
+ margin-bottom: var(--kds-spacing-8);
3233
+ }
3234
+
3235
+ .kds-stage-title {
3236
+ margin-bottom: var(--kds-spacing-2);
3237
+ }
3238
+
3239
+ .kds-stage-subtitle {
3240
+ margin-bottom: 0;
3241
+ }
3242
+
3243
+ .kds-stage-header > button {
3244
+ margin-top: var(--kds-spacing-3);
3245
+ }
3246
+
3247
+ /* Showcase header */
3248
+ .showcase-header {
3249
+ margin-bottom: var(--kds-spacing-8);
3250
+ }
3251
+
3252
+ .showcase-header h1 {
3253
+ margin-bottom: var(--kds-spacing-3);
3254
+ }
3255
+
3256
+ /* Form groups and fields already have margin-bottom */
3257
+ .kds-field {
3258
+ margin-bottom: var(--kds-spacing-4);
3259
+ }
3260
+
3261
+ .kds-field:last-child {
3262
+ margin-bottom: 0;
3263
+ }
3264
+
3265
+ /* Grids handle spacing between children */
3266
+ .kds-grid-2col > *,
3267
+ .kds-grid-3col > * {
3268
+ margin-bottom: 0; /* Grid gap handles spacing */
3269
+ }
3270
+
3271
+ /* Alerts have margin */
3272
+ .kds-alert {
3273
+ margin-bottom: var(--kds-spacing-6);
3274
+ }
3275
+
3276
+ .kds-alert:last-child {
3277
+ margin-bottom: 0;
3278
+ }
3279
+
3280
+
3281
+ /* Modal actions (buttons at bottom) */
3282
+ .modal .kds-kyc-modal-content + div,
3283
+ .modal .kds-alert + div {
3284
+ margin-top: var(--kds-spacing-6);
3285
+ }
3286
+
3287
+