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

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,191 +4,399 @@
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-26T19:18:15.487Z
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');
16
22
 
17
23
  :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 === */
55
- --kds-border-light: #DDD;
56
- --kds-border-medium: #999;
57
- --kds-border-dark: #666;
58
-
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;
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
+ /* Alert backgrounds */
92
+ --kds-alert-info-bg: #EFF6FF;
93
+ --kds-alert-warning-bg: #FFFBEB;
94
+ --kds-alert-success-bg: #ECFDF5;
95
+ --kds-alert-error-bg: #FEF2F2;
96
+
97
+ /* ==========================================================================
98
+ TYPOGRAPHY TOKENS
99
+ ========================================================================== */
100
+
101
+
102
+ /* Font families */
103
+ --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";
104
+ --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";
105
+ --kds-font-family-mono: "Roboto Mono", "SF Mono", "Monaco", monospace;
106
+
107
+ /* Font weights */
108
+ --kds-font-weight-regular: 400;
109
+ --kds-font-weight-medium: 500;
110
+ --kds-font-weight-semibold: 600;
111
+ --kds-font-weight-bold: 700;
112
+
113
+ /* Font sizes */
114
+ --kds-font-size-xs: 0.75rem;
115
+ --kds-font-size-sm: 0.875rem;
116
+ --kds-font-size-base: 1rem;
117
+ --kds-font-size-lg: 1.125rem;
118
+ --kds-font-size-xl: 1.25rem;
119
+ --kds-font-size-2xl: 1.5rem;
120
+ --kds-font-size-3xl: 1.875rem;
121
+ --kds-font-size-4xl: 2.25rem;
122
+
123
+ /* Line heights */
124
+ --kds-line-height-tight: 1.2;
125
+ --kds-line-height-snug: 1.375;
126
+ --kds-line-height-normal: 1.5;
127
+ --kds-line-height-relaxed: 1.66;
128
+
129
+ /* Letter spacing */
130
+ --kds-letter-spacing-normal: 0.15px;
131
+ --kds-letter-spacing-wide: 0.4px;
132
+ --kds-letter-spacing-wider: 0.46px;
133
+ --kds-letter-spacing-widest: 1px;
134
+
135
+ /* Button typography */
136
+ --kds-typography-button-font-size: 0.9375rem;
137
+ --kds-typography-button-font-weight: 500;
138
+ --kds-typography-button-line-height: 26px;
139
+ --kds-typography-button-letter-spacing: 0.46px;
140
+
141
+ /* ==========================================================================
142
+ SPACING TOKENS
143
+ ========================================================================== */
144
+
145
+ --kds-spacing-0: 0px;
146
+ --kds-spacing-1: 8px;
147
+ --kds-spacing-2: 16px;
148
+ --kds-spacing-3: 24px;
149
+ --kds-spacing-4: 32px;
150
+ --kds-spacing-5: 40px;
151
+ --kds-spacing-6: 48px;
152
+ --kds-spacing-7: 56px;
153
+ --kds-spacing-8: 64px;
154
+ --kds-spacing-9: 72px;
155
+ --kds-spacing-10: 80px;
156
+ --kds-spacing-11: 88px;
157
+ --kds-spacing-12: 96px;
158
+
159
+ /* Semantic spacing */
160
+ --kds-spacing-input-padding-y: 16px;
161
+ --kds-spacing-input-padding-x: 12px;
162
+ --kds-spacing-input-padding: 16px 12px;
163
+ --kds-spacing-button-padding-y: 8px;
164
+ --kds-spacing-button-padding-x: 22px;
165
+ --kds-spacing-button-padding: 8px 22px;
166
+ --kds-spacing-button-min-height: 50px;
167
+ --kds-spacing-button-icon-size: 20px;
168
+ --kds-spacing-sidebar-width: 280px;
169
+ --kds-spacing-sidebar-width-collapsed: 72px;
170
+ --kds-spacing-sidebar-width-mobile: 100%;
171
+ --kds-spacing-sidebar-header-padding: 16px;
172
+ --kds-spacing-sidebar-nav-item-padding-y: 8px;
173
+ --kds-spacing-sidebar-nav-item-padding-x: 12px;
174
+ --kds-spacing-sidebar-nav-item-margin-x: 12px;
175
+ --kds-spacing-sidebar-nav-item-gap: 12px;
176
+ --kds-spacing-sidebar-submenu-indent: 64px;
177
+ --kds-spacing-sidebar-icon-size: 24px;
178
+ --kds-spacing-sidebar-icon-container-size: 40px;
179
+ --kds-spacing-sidebar-label-padding-x: 24px;
180
+ --kds-spacing-sidebar-label-padding-y: 8px;
181
+ --kds-spacing-sidebar-label-margin-top: 16px;
182
+ --kds-spacing-sidebar-label-font-size: 11px;
183
+ --kds-spacing-sidebar-z-index: 100;
184
+ --kds-spacing-sidebar-z-index-mobile: 1000;
185
+ --kds-spacing-sidebar-transition: 0.2s;
186
+ --kds-spacing-sidebar-collapsable-max-height: 500px;
187
+ --kds-spacing-section: 32px;
188
+ --kds-spacing-form-gap: 20px;
189
+ --kds-spacing-inline-gap: 8px;
190
+
191
+ /* ==========================================================================
192
+ BORDER RADIUS TOKENS
193
+ ========================================================================== */
194
+
195
+ --kds-radius-none: 0px;
196
+ --kds-radius-sm: 4px;
197
+ --kds-radius-md: 8px;
198
+ --kds-radius-lg: 12px;
199
+ --kds-radius-xl: 16px;
200
+ --kds-radius-2xl: 20px;
201
+ --kds-radius-full: 9999px;
202
+
203
+ /* Component-specific radii */
204
+ --kds-radius-button: 4px;
205
+ --kds-radius-input: 4px;
206
+ --kds-radius-card: 20px;
207
+ --kds-radius-modal: 20px;
208
+ --kds-radius-chip: 16px;
209
+ --kds-radius-iconContainer: 10px;
210
+
211
+ /* ==========================================================================
212
+ BORDER TOKENS
213
+ ========================================================================== */
214
+
215
+
216
+ /* Border colors */
217
+ --kds-border-light: #DDDDDD;
218
+ --kds-border-medium: #999999;
219
+ --kds-border-dark: #666666;
220
+
221
+ /* ==========================================================================
222
+ SHADOW TOKENS
223
+ ========================================================================== */
224
+
225
+ --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);
226
+ --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);
227
+ --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);
228
+ --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);
229
+ --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);
230
+ --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);
231
+ --kds-shadow-none: none;
232
+
233
+ /* Semantic shadows */
234
+ --kds-shadow-button: var(--kds-shadow-2);
235
+ --kds-shadow-card: var(--kds-shadow-1);
236
+ --kds-shadow-modal: var(--kds-shadow-24);
237
+ --kds-shadow-dropdown: var(--kds-shadow-8);
238
+
239
+ /* ==========================================================================
240
+ Z-INDEX TOKENS
241
+ ========================================================================== */
242
+
243
+ --kds-z-index-fab: 1050;
244
+ --kds-z-index-appbar: 1100;
245
+ --kds-z-index-drawer: 1200;
246
+ --kds-z-index-modal: 1300;
247
+ --kds-z-index-snackbar: 1400;
248
+ --kds-z-index-tooltip: 1500;
249
+
250
+ /* ==========================================================================
251
+ TRANSITION TOKENS
252
+ ========================================================================== */
253
+
254
+ --kds-transition-shortest: 150ms;
255
+ --kds-transition-shorter: 200ms;
256
+ --kds-transition-short: 250ms;
257
+ --kds-transition-standard: 300ms;
258
+ --kds-transition-complex: 375ms;
259
+ --kds-easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
260
+ --kds-easing-ease-out: cubic-bezier(0.0, 0, 0.2, 1);
261
+ --kds-easing-ease-in: cubic-bezier(0.4, 0, 1, 1);
262
+ --kds-easing-sharp: cubic-bezier(0.4, 0, 0.6, 1);
263
+
264
+ /* ==========================================================================
265
+ BREAKPOINTS
266
+ ========================================================================== */
267
+
268
+
269
+ /* Breakpoints */
270
+ --kds-breakpoint-mobile: 768px;
271
+ --kds-breakpoint-tablet: 1024px;
272
+ --kds-breakpoint-desktop: 1025px;
273
+
274
+ }
275
+
276
+
277
+ /* Khipu BeerCSS Variable Mappings */
278
+ /* Khipu Material Design 3 Brand Tokens for BeerCSS
279
+ * Imports core tokens from css-variables.css (auto-generated from src/tokens/index.ts)
280
+ * This file only maps BeerCSS-specific variables to core design tokens
281
+ * Source: design.khipu.com and BeerCSS framework
282
+ */
283
+
284
+ /* Import core design tokens (auto-generated) */
285
+ :root,
286
+ body.light,
287
+ body.dark {
288
+ /* ========================================
289
+ Map core tokens to BeerCSS-specific names
290
+ (BeerCSS may use different naming conventions)
291
+ Same selector specificity as BeerCSS to ensure override
292
+ ======================================== */
293
+
294
+ /* Input border states */
295
+ --kds-input-border-hover: var(--kds-color-input-hover-border);
296
+
297
+ /* Override BeerCSS native font variable */
298
+ --font: var(--kds-font-family-primary);
107
299
 
108
300
  /* ========================================
109
- Map KDS Tokens to BeerCSS Variables
301
+ Map Core Design Tokens to BeerCSS Variables
302
+ Material Design 3 Light Mode
110
303
  ======================================== */
111
304
 
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);
117
-
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);
123
-
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);
129
-
130
- /* 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;
305
+ /* Primary - Khipu Purple brand */
306
+ --primary: var(--kds-color-primary-main);
307
+ --on-primary: var(--kds-color-primary-contrast);
308
+ --primary-container: var(--kds-color-primary-light);
309
+ --on-primary-container: var(--kds-color-primary-dark);
310
+
311
+ /* Secondary - Green for success/positive actions */
312
+ --secondary: var(--kds-color-secondary-main);
313
+ --on-secondary: var(--kds-color-secondary-contrast);
314
+ --secondary-container: var(--kds-color-secondary-light);
315
+ --on-secondary-container: var(--kds-color-secondary-dark);
316
+
317
+ /* Semantic colors */
318
+ --success: var(--kds-color-success-main);
319
+ --error: var(--kds-color-error-main);
320
+ --warning: var(--kds-color-warning-main);
321
+ --info: var(--kds-color-info-main);
322
+
323
+ /* Background and surface colors - Override BeerCSS purple defaults */
324
+ --background: var(--kds-color-background-default);
325
+ --surface: var(--kds-color-background-paper);
326
+ --surface-dim: var(--kds-color-background-elevated);
327
+ --surface-bright: var(--kds-color-background-paper);
328
+ --surface-variant: var(--kds-color-background-elevated);
329
+ --surface-container-lowest: var(--kds-color-background-default);
330
+ --surface-container-low: var(--kds-color-background-paper);
331
+ --surface-container: var(--kds-color-background-default);
332
+ --surface-container-high: var(--kds-color-background-elevated);
333
+ --surface-container-highest: var(--kds-color-background-elevated);
334
+ --on-surface: var(--kds-color-text-primary);
335
+ --on-surface-variant: var(--kds-color-action-active);
336
+ --outline: var(--kds-color-input-border);
337
+ --outline-variant: var(--kds-border-light);
142
338
 
143
339
  /* ========================================
144
340
  ONBOARDING COMPONENTS TOKENS
145
341
  ======================================== */
146
342
 
147
343
  /* File Upload States */
148
- --kds-upload-zone-bg: #F9FAFB; /* gray-50 */
149
- --kds-upload-zone-border: #D1D5DB; /* gray-300 */
150
- --kds-upload-zone-border-hover: #3B82F6; /* blue-500 */
151
- --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);
154
- --kds-upload-item-bg: #FFFFFF;
155
- --kds-upload-item-border: #E5E7EB; /* gray-200 */
344
+ --kds-upload-zone-bg: var(--kds-color-background-elevated);
345
+ --kds-upload-zone-border: var(--kds-border-light);
346
+ --kds-upload-zone-border-hover: var(--kds-color-info-main);
347
+ --kds-upload-zone-border-drag: var(--kds-color-primary-main);
348
+ --kds-upload-zone-border-error: var(--kds-color-error-main);
349
+ --kds-upload-zone-border-success: var(--kds-color-success-main);
350
+ --kds-upload-item-bg: var(--kds-color-background-paper);
351
+ --kds-upload-item-border: var(--kds-border-light);
156
352
 
157
353
  /* OTP Input */
158
354
  --kds-otp-digit-size: 56px;
159
355
  --kds-otp-digit-height: 64px;
160
- --kds-otp-digit-border: #D1D5DB;
161
- --kds-otp-digit-border-focus: #3B82F6;
162
- --kds-otp-digit-bg: #FFFFFF;
163
- --kds-otp-digit-bg-filled: #F9FAFB;
164
-
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 */
356
+ --kds-otp-digit-border: var(--kds-border-light);
357
+ --kds-otp-digit-border-focus: var(--kds-color-info-main);
358
+ --kds-otp-digit-bg: var(--kds-color-background-paper);
359
+ --kds-otp-digit-bg-filled: var(--kds-color-background-elevated);
360
+
361
+ /* Modal Base */
362
+ --kds-modal-bg: var(--kds-color-background-paper);
363
+ --kds-modal-padding: var(--kds-spacing-6);
364
+ --kds-modal-padding-mobile: var(--kds-spacing-4);
365
+ --kds-modal-border-radius: var(--kds-radius-lg);
366
+ --kds-modal-shadow: var(--kds-shadow-4);
367
+ --kds-modal-backdrop: rgba(0, 0, 0, 0.5);
368
+ --kds-modal-max-width: 600px;
369
+ --kds-modal-max-width-mobile: 95vw;
370
+
371
+ /* Modal Content Colors */
372
+ --kds-modal-title-color: var(--kds-color-text-primary);
373
+ --kds-modal-text-color: var(--kds-color-text-secondary);
374
+ --kds-modal-icon-warning: var(--kds-color-warning-main);
375
+ --kds-modal-icon-error: var(--kds-color-error-main);
376
+ --kds-modal-icon-success: var(--kds-color-success-main);
377
+ --kds-modal-icon-info: var(--kds-color-info-main);
170
378
 
171
379
  /* Welcome Gradient */
172
- --kds-welcome-gradient-start: #3B82F6; /* blue-500 */
173
- --kds-welcome-gradient-end: #1D4ED8; /* blue-700 */
380
+ --kds-welcome-gradient-start: var(--kds-color-primary-main); /* Khipu purple */
381
+ --kds-welcome-gradient-end: var(--kds-color-primary-dark); /* Khipu purple dark */
174
382
 
175
383
  /* Bank Selector */
176
- --kds-bank-item-border: #E5E7EB;
177
- --kds-bank-item-border-hover: #D1D5DB;
178
- --kds-bank-item-border-selected: #3B82F6;
179
- --kds-bank-item-bg-selected: #EFF6FF; /* blue-50 */
180
- --kds-bank-item-bg-hover: #F9FAFB;
384
+ --kds-bank-item-border: var(--kds-border-light);
385
+ --kds-bank-item-border-hover: var(--kds-border-light);
386
+ --kds-bank-item-border-selected: var(--kds-color-info-main);
387
+ --kds-bank-item-bg-selected: var(--kds-alert-info-bg);
388
+ --kds-bank-item-bg-hover: var(--kds-color-background-elevated);
181
389
 
182
390
  /* Signature Pad */
183
- --kds-signature-border: #D1D5DB;
184
- --kds-signature-bg: #FFFFFF;
391
+ --kds-signature-border: var(--kds-border-light);
392
+ --kds-signature-bg: var(--kds-color-background-paper);
185
393
  --kds-signature-line-color: #000000;
186
394
 
187
395
  /* Contract Accordion */
188
- --kds-accordion-border: #E5E7EB;
189
- --kds-accordion-bg: #F9FAFB;
190
- --kds-accordion-bg-open: #FFFFFF;
191
- --kds-accordion-header-bg: #F3F4F6;
396
+ --kds-accordion-border: var(--kds-border-light);
397
+ --kds-accordion-bg: var(--kds-color-background-elevated);
398
+ --kds-accordion-bg-open: var(--kds-color-background-paper);
399
+ --kds-accordion-header-bg: var(--kds-color-background-elevated);
192
400
 
193
401
  /* Onboarding Container */
194
402
  --kds-onboarding-max-width: 800px;
@@ -197,19 +405,40 @@
197
405
  }
198
406
 
199
407
  /* ========================================
200
- Body Layout (Sticky Footer) - Figma Make Style
408
+ Force Light Mode Only
409
+ ======================================== */
410
+
411
+ /* Force light mode - disable dark mode */
412
+ :root,
413
+ html,
414
+ body {
415
+ color-scheme: light only;
416
+ }
417
+
418
+ /* Override system dark mode preference */
419
+ @media (prefers-color-scheme: dark) {
420
+ :root,
421
+ html,
422
+ body {
423
+ color-scheme: light only;
424
+ }
425
+ }
426
+
427
+ /* ========================================
428
+ Body Layout (Sticky Footer)
201
429
  ======================================== */
202
430
  html, body {
203
431
  display: flex;
204
432
  flex-direction: column;
205
433
  min-height: 100vh;
206
434
  margin: 0;
207
- background: var(--kds-surface-background); /* Light gray background */
435
+ background: var(--kds-color-background-default);
436
+ color: var(--kds-color-text-primary);
208
437
  }
209
438
 
210
439
  main {
211
440
  flex: 1 0 auto;
212
- padding: 0; /* Remove default padding for Figma Make style */
441
+ padding: 0;
213
442
  }
214
443
 
215
444
  footer {
@@ -220,13 +449,15 @@ footer {
220
449
 
221
450
  /* Khipu Custom Components */
222
451
  /* Khipu Custom Components for BeerCSS
223
- * Custom Material Design 3 components extracted from Figma Make prototype
452
+ * Custom Material Design 3 components based on BeerCSS framework
224
453
  * Implements: Cards, Stepper, Alerts, Forms, Typography utilities
454
+ * Source: design.khipu.com and Material Design 3 specifications
225
455
  */
226
456
 
227
- /* ========================================
228
- Button Overrides (Figma Make Style)
229
- ======================================== */
457
+
458
+ :has(>main) {
459
+ background-color: transparent !important;
460
+ }
230
461
 
231
462
  /* ========================================
232
463
  KHIPU BUTTON SYSTEM
@@ -240,68 +471,135 @@ a.kds-btn {
240
471
  align-items: center;
241
472
  justify-content: center;
242
473
  gap: 8px;
243
- padding: 12px 24px;
244
- font-size: 16px;
245
- font-weight: 600;
246
- line-height: 1;
247
- border-radius: 8px;
474
+
475
+ /* Typography - Using design tokens */
476
+ font-family: var(--kds-font-family-secondary);
477
+ font-weight: var(--kds-font-weight-medium); /* 500, no 600 */
478
+ font-size: var(--kds-typography-button-font-size); /* 0.9375rem = 15px */
479
+ line-height: var(--kds-typography-button-line-height); /* 26px, no 1 */
480
+ letter-spacing: var(--kds-typography-button-letter-spacing); /* 0.46px */
481
+ text-transform: uppercase;
482
+
483
+ /* Spacing - Using design tokens */
484
+ padding: var(--kds-spacing-button-padding); /* 8px 22px */
485
+ min-height: var(--kds-spacing-button-min-height); /* 50px */
486
+ height: auto; /* Remove fixed height, let content + padding define it */
487
+
488
+ /* Border - Using design token */
489
+ border-radius: var(--kds-radius-button); /* 4px */
490
+ border: none;
491
+
492
+ /* Interaction */
248
493
  cursor: pointer;
249
- transition: all 0.2s ease;
494
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
495
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1),
496
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
497
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1);
250
498
  box-sizing: border-box;
251
- min-height: 48px;
252
- height: 48px;
253
499
  vertical-align: middle;
254
500
  }
255
501
 
502
+ /* Disabled state - colores específicos en lugar de opacity */
256
503
  button.kds-btn:disabled,
257
504
  a.kds-btn:disabled {
258
- opacity: 0.5;
505
+ background-color: var(--kds-color-action-disabled-bg); /* rgba(0, 0, 0, 0.12) */
506
+ color: var(--kds-color-action-disabled); /* rgba(0, 0, 0, 0.38) */
259
507
  cursor: not-allowed;
260
508
  pointer-events: none;
509
+ box-shadow: none;
510
+ border-color: transparent;
261
511
  }
262
512
 
263
- /* Primary button - Khipu purple (Figma Make) */
513
+ /* Primary button - Khipu purple */
264
514
  button.kds-btn-primary,
265
515
  a.kds-btn-primary {
266
- background: var(--primary);
516
+ background: var(--kds-color-primary-main); /* #8347AD */
267
517
  color: white;
268
518
  border: none;
519
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
520
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
521
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12); /* elevation/2 */
269
522
  }
270
523
 
524
+ /* Hover State - background más oscuro + elevation/4 */
271
525
  button.kds-btn-primary:hover:not(:disabled),
272
526
  a.kds-btn-primary:hover:not(:disabled) {
273
- opacity: 0.9;
527
+ background: var(--kds-color-primary-dark); /* #6A3A8C */
528
+ box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
529
+ 0px 4px 5px 0px rgba(0, 0, 0, 0.14),
530
+ 0px 1px 10px 0px rgba(0, 0, 0, 0.12); /* elevation/4 */
531
+ }
532
+
533
+ /* Active/Focus State */
534
+ button.kds-btn-primary:active:not(:disabled),
535
+ button.kds-btn-primary:focus-visible:not(:disabled),
536
+ a.kds-btn-primary:active:not(:disabled),
537
+ a.kds-btn-primary:focus-visible:not(:disabled) {
538
+ background: var(--kds-color-primary-dark);
539
+ outline: 2px solid var(--kds-color-primary-main);
540
+ outline-offset: 2px;
541
+ }
542
+
543
+ /* Override disabled para primary */
544
+ button.kds-btn-primary:disabled,
545
+ a.kds-btn-primary:disabled {
546
+ background-color: var(--kds-color-action-disabled-bg);
547
+ color: var(--kds-color-action-disabled);
548
+ box-shadow: none;
549
+ border-color: transparent;
274
550
  }
275
551
 
276
- /* Secondary button - Blue CTA (Figma Make) */
552
+ /* Secondary button - Blue CTA */
277
553
  button.kds-btn-secondary,
278
554
  a.kds-btn-secondary {
279
555
  background: #3B82F6;
280
556
  color: white;
281
557
  border: none;
558
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
559
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
560
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12); /* elevation/2 */
282
561
  }
283
562
 
284
563
  button.kds-btn-secondary:hover:not(:disabled),
285
564
  a.kds-btn-secondary:hover:not(:disabled) {
286
565
  background: #2563EB;
287
- box-shadow: 0 4px 6px rgba(59, 130, 246, 0.3);
566
+ box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
567
+ 0px 4px 5px 0px rgba(0, 0, 0, 0.14),
568
+ 0px 1px 10px 0px rgba(0, 0, 0, 0.12); /* elevation/4 */
569
+ }
570
+
571
+ button.kds-btn-secondary:disabled,
572
+ a.kds-btn-secondary:disabled {
573
+ background-color: var(--kds-color-action-disabled-bg);
574
+ color: var(--kds-color-action-disabled);
575
+ box-shadow: none;
576
+ border-color: transparent;
288
577
  }
289
578
 
290
- /* Outlined button (Figma Make) */
579
+ /* Outlined button */
291
580
  button.kds-btn-outlined,
292
581
  a.kds-btn-outlined {
293
582
  background: transparent;
294
- color: var(--primary);
295
- border-color: var(--kds-border-medium);
583
+ color: var(--kds-color-primary-main);
584
+ border: 1px solid var(--kds-border-medium); /* rgba(0, 0, 0, 0.5) aprox */
585
+ box-shadow: none;
296
586
  }
297
587
 
298
588
  button.kds-btn-outlined:hover:not(:disabled),
299
589
  a.kds-btn-outlined:hover:not(:disabled) {
300
- background: #F3F4F6;
301
- border-color: var(--primary);
590
+ background: var(--kds-color-primary-hover); /* rgba(131, 71, 173, 0.04) */
591
+ border-color: var(--kds-color-primary-main);
592
+ }
593
+
594
+ button.kds-btn-outlined:disabled,
595
+ a.kds-btn-outlined:disabled {
596
+ background: transparent;
597
+ color: var(--kds-color-action-disabled);
598
+ border-color: var(--kds-color-action-disabled);
599
+ box-shadow: none;
302
600
  }
303
601
 
304
- /* Outlined white - for dark backgrounds (Figma Make hero) */
602
+ /* Outlined white - for dark backgrounds */
305
603
  button.kds-btn-outlined-white,
306
604
  a.kds-btn-outlined-white {
307
605
  background: white;
@@ -314,44 +612,57 @@ a.kds-btn-outlined-white:hover:not(:disabled) {
314
612
  opacity: 0.9;
315
613
  }
316
614
 
317
- /* Text button (Figma Make) */
615
+ /* Text button */
318
616
  button.kds-btn-text,
319
617
  a.kds-btn-text {
320
618
  background: transparent;
321
- color: var(--primary);
619
+ color: var(--kds-color-primary-main);
322
620
  border: none;
323
- padding: 8px 16px;
324
- min-height: auto;
325
- height: auto;
621
+ padding: 6px 16px; /* Menor padding para text variant */
622
+ min-height: 32px; /* Menor altura para text variant */
623
+ box-shadow: none;
326
624
  }
327
625
 
328
626
  button.kds-btn-text:hover:not(:disabled),
329
627
  a.kds-btn-text:hover:not(:disabled) {
330
- background: #EFF6FF;
628
+ background: var(--kds-color-primary-hover); /* rgba(131, 71, 173, 0.04) */
629
+ }
630
+
631
+ button.kds-btn-text:disabled,
632
+ a.kds-btn-text:disabled {
633
+ background: transparent;
634
+ color: var(--kds-color-action-disabled);
635
+ box-shadow: none;
331
636
  }
332
637
 
333
638
  /* Icon wrapper - control size via span container */
334
639
  button.kds-btn > .kds-icon,
335
640
  a.kds-btn > .kds-icon {
336
- width: 20px;
337
- height: 20px;
338
- padding-top: 2px;
641
+ min-width: var(--kds-spacing-button-icon-size);
642
+ min-height: var(--kds-spacing-button-icon-size);
643
+ width: var(--kds-spacing-button-icon-size);
644
+ height: var(--kds-spacing-button-icon-size);
339
645
  line-height: 1;
340
646
  overflow: hidden;
341
647
  flex-shrink: 0;
648
+ display: inline-flex;
649
+ align-items: center;
650
+ justify-content: center;
342
651
  }
343
652
 
344
653
  button.kds-btn > .kds-icon > i,
345
654
  a.kds-btn > .kds-icon > i {
346
- font-size: 17px;
655
+ font-size: var(--kds-spacing-button-icon-size);
656
+ min-width: var(--kds-spacing-button-icon-size);
657
+ min-height: var(--kds-spacing-button-icon-size);
347
658
  line-height: 1;
348
659
  }
349
660
 
350
661
  /* ========================================
351
- Card Components (from Figma Make)
662
+ Card Components (Material Design 3)
352
663
  ======================================== */
353
664
 
354
- /* Base elevated card - EXACT from Figma Make */
665
+ /* Base elevated card */
355
666
  .kds-card-elevated,
356
667
  .khipu-card-elevated {
357
668
  background: #FFFFFF;
@@ -394,7 +705,7 @@ a.kds-btn > .kds-icon > i {
394
705
  }
395
706
  }
396
707
 
397
- /* Selection card - EXACT from Figma Make StageSelector */
708
+ /* Selection card */
398
709
  .kds-card-selector {
399
710
  padding: 24px;
400
711
  border-radius: 12px;
@@ -414,7 +725,7 @@ a.kds-btn > .kds-icon > i {
414
725
  .kds-card-selector.selected {
415
726
  border-color: #3B82F6; /* blue-600 */
416
727
  background: #EFF6FF; /* blue-50 */
417
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
728
+ box-shadow: var(--kds-shadow-md);
418
729
  }
419
730
 
420
731
  /* Icon container */
@@ -433,6 +744,8 @@ a.kds-btn > .kds-icon > i {
433
744
  .kds-card-selector-icon svg {
434
745
  width: 24px;
435
746
  height: 24px;
747
+ min-width: 24px;
748
+ min-height: 24px;
436
749
  color: #3B82F6; /* blue-600 */
437
750
  }
438
751
 
@@ -453,47 +766,130 @@ a.kds-btn > .kds-icon > i {
453
766
 
454
767
  /* Selected state - visual feedback via border only */
455
768
 
456
- /* Pricing/Plan card (from Figma Make StagePricingPlan) */
769
+ /* Pricing/Plan card */
770
+ /* Pricing Card - Base */
457
771
  .kds-card-plan {
772
+ position: relative;
458
773
  display: flex;
459
774
  flex-direction: column;
460
- gap: var(--kds-spacing-5);
775
+ gap: var(--kds-spacing-6);
461
776
  padding: var(--kds-spacing-8);
462
777
  border-radius: var(--kds-radius-lg);
463
- border: 1px solid var(--kds-border-medium);
464
- max-width: 365px;
778
+ border: 2px solid var(--kds-border-medium);
779
+ max-width: 400px; /* Increased from 365px for better text spacing */
465
780
  background: var(--kds-surface-base);
466
- transition: border-color 0.3s ease, background 0.3s ease;
781
+ transition: all 0.3s ease;
782
+ cursor: pointer;
783
+ height: 100%; /* Ensure cards fill grid height */
784
+ }
785
+
786
+ .kds-card-plan:hover {
787
+ border-color: var(--primary);
788
+ box-shadow: var(--kds-shadow-elevation-2);
789
+ transform: translateY(-2px);
467
790
  }
468
791
 
792
+ /* Recommended Plan */
469
793
  .kds-card-plan.recommended {
470
794
  border-color: var(--primary);
471
- background: var(--primary-container);
795
+ background: linear-gradient(to bottom, rgba(131, 71, 173, 0.05), var(--kds-surface-base));
796
+ box-shadow: var(--kds-shadow-elevation-3);
472
797
  }
473
798
 
474
- .kds-card-plan .plan-price {
475
- font-size: var(--kds-font-size-3xl);
799
+ .kds-card-plan.recommended:hover {
800
+ box-shadow: var(--kds-shadow-elevation-4);
801
+ }
802
+
803
+ /* Recommended Badge */
804
+ .kds-card-plan-badge {
805
+ position: absolute;
806
+ top: -12px;
807
+ right: var(--kds-spacing-6);
808
+ padding: var(--kds-spacing-1) var(--kds-spacing-4);
809
+ background: var(--primary);
810
+ color: white;
811
+ font-size: var(--kds-font-size-sm);
812
+ font-weight: var(--kds-font-weight-semibold);
813
+ border-radius: var(--kds-radius-full);
814
+ box-shadow: var(--kds-shadow-elevation-1);
815
+ }
816
+
817
+ /* Plan Header */
818
+ .kds-card-plan-header {
819
+ display: flex;
820
+ flex-direction: column;
821
+ gap: var(--kds-spacing-1);
822
+ }
823
+
824
+ .kds-card-plan-header h3 {
825
+ margin: 0;
826
+ font-size: var(--kds-font-size-2xl);
476
827
  font-weight: var(--kds-font-weight-bold);
477
- color: var(--primary);
828
+ color: var(--kds-text-primary);
478
829
  }
479
830
 
480
- .kds-card-plan .plan-features {
481
- list-style: none;
482
- padding: 0;
831
+ .kds-card-plan-header p {
483
832
  margin: 0;
833
+ font-size: var(--kds-font-size-sm);
834
+ color: var(--kds-text-secondary);
484
835
  }
485
836
 
486
- .kds-card-plan .plan-features li {
487
- padding: var(--kds-spacing-2) 0;
837
+ /* Plan Price */
838
+ .kds-card-plan-price {
488
839
  display: flex;
489
- align-items: center;
840
+ align-items: baseline;
490
841
  gap: var(--kds-spacing-2);
842
+ padding: var(--kds-spacing-4) 0;
843
+ border-bottom: 1px solid var(--kds-border-light);
844
+ min-height: 88px; /* Standardize price area height */
491
845
  }
492
846
 
493
- .kds-card-plan .plan-features li::before {
494
- content: "✓";
495
- color: var(--success);
847
+ .kds-price {
848
+ font-size: 42px;
496
849
  font-weight: var(--kds-font-weight-bold);
850
+ color: var(--primary);
851
+ line-height: 1.1;
852
+ max-width: 100%; /* Prevent overflow */
853
+ word-break: break-word; /* Allow wrapping if needed */
854
+ }
855
+
856
+ .kds-price-period {
857
+ font-size: var(--kds-font-size-base);
858
+ color: var(--kds-text-secondary);
859
+ font-weight: var(--kds-font-weight-medium);
860
+ }
861
+
862
+ /* Plan Features */
863
+ .kds-card-plan-features {
864
+ display: flex;
865
+ flex-direction: column;
866
+ gap: var(--kds-spacing-3);
867
+ flex: 1;
868
+ }
869
+
870
+ .kds-feature {
871
+ display: flex;
872
+ align-items: flex-start;
873
+ gap: var(--kds-spacing-3);
874
+ font-size: var(--kds-font-size-sm);
875
+ color: var(--kds-text-primary);
876
+ }
877
+
878
+ .kds-feature i {
879
+ font-size: 20px;
880
+ min-width: 20px;
881
+ min-height: 20px;
882
+ color: var(--success);
883
+ flex-shrink: 0;
884
+ }
885
+
886
+ .kds-feature.disabled {
887
+ color: var(--kds-text-disabled);
888
+ text-decoration: line-through;
889
+ }
890
+
891
+ .kds-feature.disabled i {
892
+ color: var(--kds-text-disabled);
497
893
  }
498
894
 
499
895
  /* Verification/Status card (from onboarding patterns) */
@@ -518,6 +914,8 @@ a.kds-btn > .kds-icon > i {
518
914
  .kds-card-status .status-icon {
519
915
  flex-shrink: 0;
520
916
  font-size: 24px;
917
+ min-width: 24px;
918
+ min-height: 24px;
521
919
  }
522
920
 
523
921
  .kds-card-status .status-content {
@@ -600,6 +998,7 @@ a.kds-btn > .kds-icon > i {
600
998
  display: grid;
601
999
  grid-template-columns: 1fr;
602
1000
  gap: var(--kds-spacing-4);
1001
+ align-items: start;
603
1002
  }
604
1003
 
605
1004
  @media (min-width: 768px) {
@@ -608,10 +1007,22 @@ a.kds-btn > .kds-icon > i {
608
1007
  }
609
1008
  }
610
1009
 
1010
+ /* Align fields inside grids */
1011
+ .kds-grid-2col > .kds-field,
1012
+ .kds-grid-3col > .kds-field {
1013
+ align-self: start;
1014
+ }
1015
+
1016
+ .kds-grid-2col > .kds-field .kds-form-label,
1017
+ .kds-grid-3col > .kds-field .kds-form-label {
1018
+ min-height: 20px;
1019
+ }
1020
+
611
1021
  .kds-grid-3col {
612
1022
  display: grid;
613
1023
  grid-template-columns: 1fr;
614
1024
  gap: var(--kds-spacing-4);
1025
+ align-items: stretch; /* Ensure equal heights */
615
1026
  }
616
1027
 
617
1028
  @media (min-width: 768px) {
@@ -767,7 +1178,7 @@ a.kds-btn > .kds-icon > i {
767
1178
 
768
1179
  /* ========================================
769
1180
  Stepper Component (Multi-stage Progress Indicator)
770
- EXACT match from Figma Make onboarding
1181
+ Material Design 3 stepper pattern
771
1182
  ======================================== */
772
1183
 
773
1184
  .kds-stepper {
@@ -835,10 +1246,10 @@ a.kds-btn > .kds-icon > i {
835
1246
 
836
1247
  /* Step States */
837
1248
 
838
- /* Current step - Blue/Primary */
1249
+ /* Current step - Info color */
839
1250
  .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);
1251
+ background: var(--kds-color-info-main);
1252
+ box-shadow: var(--kds-shadow-stepper-info);
842
1253
  }
843
1254
 
844
1255
  .kds-step.current .kds-step-label {
@@ -846,10 +1257,10 @@ a.kds-btn > .kds-icon > i {
846
1257
  font-weight: 500;
847
1258
  }
848
1259
 
849
- /* Completed step - Green with checkmark */
1260
+ /* Completed step - Success color with checkmark */
850
1261
  .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);
1262
+ background: var(--kds-color-success-main);
1263
+ box-shadow: var(--kds-shadow-stepper-success);
853
1264
  }
854
1265
 
855
1266
  .kds-step.completed .kds-step-label {
@@ -959,100 +1370,24 @@ nav.primary button {
959
1370
  }
960
1371
 
961
1372
  /* ========================================
962
- Drawer/Sidenav (Mobile Navigation)
1373
+ Flex Layout System (Body + Container + Sidebar)
963
1374
  ======================================== */
964
1375
 
965
- /* Left drawer hidden by default */
966
- nav.drawer.left {
967
- position: fixed;
968
- top: 0;
969
- left: 0;
970
- bottom: 0;
971
- width: 280px;
972
- max-width: 80vw;
973
- background: var(--surface-container, #FFFFFF);
974
- box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
975
- transform: translateX(-100%);
976
- transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
977
- z-index: 1100;
978
- overflow-y: auto;
1376
+ /* Body flex-column layout */
1377
+ body.kds-layout {
979
1378
  display: flex;
980
1379
  flex-direction: column;
1380
+ min-height: 100vh;
1381
+ margin: 0;
981
1382
  }
982
1383
 
983
- /* Show drawer when active */
984
- nav.drawer.left.active {
985
- transform: translateX(0);
986
- }
987
-
988
- /* Drawer overlay */
989
- nav.drawer.left::before {
990
- content: '';
991
- position: fixed;
992
- top: 0;
993
- left: 0;
994
- right: 0;
995
- bottom: 0;
996
- background: rgba(0, 0, 0, 0.5);
997
- opacity: 0;
998
- visibility: hidden;
999
- transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
1000
- visibility 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1001
- z-index: -1;
1002
- pointer-events: none;
1003
- }
1004
-
1005
- /* Show overlay when drawer is active */
1006
- nav.drawer.left.active::before {
1007
- opacity: 1;
1008
- visibility: visible;
1009
- pointer-events: auto;
1010
- }
1011
-
1012
- /* Drawer header styling */
1013
- nav.drawer header {
1014
- padding: 16px;
1015
- background: var(--primary-container, rgba(131, 71, 173, 0.1));
1016
- border-bottom: 1px solid var(--outline-variant, rgba(0, 0, 0, 0.12));
1017
- }
1018
-
1019
- /* Drawer links */
1020
- nav.drawer a {
1384
+ /* Layout container (flex-row) - below header */
1385
+ .kds-layout-container {
1021
1386
  display: flex;
1022
- align-items: center;
1023
- padding: 12px 16px;
1024
- color: var(--on-surface, rgba(0, 0, 0, 0.87));
1025
- text-decoration: none;
1026
- transition: background 0.2s ease;
1027
- gap: 16px;
1028
- }
1029
-
1030
- nav.drawer a:hover {
1031
- background: var(--surface-variant, rgba(0, 0, 0, 0.04));
1032
- }
1033
-
1034
- nav.drawer a i {
1035
- font-size: 24px;
1036
- color: var(--on-surface-variant, rgba(0, 0, 0, 0.60));
1037
- }
1038
-
1039
- nav.drawer .divider {
1040
- height: 1px;
1041
- background: var(--outline-variant, rgba(0, 0, 0, 0.12));
1042
- margin: 8px 0;
1043
- }
1044
-
1045
- /* Hide menu toggle button on desktop */
1046
- @media (min-width: 769px) {
1047
- #menu-toggle {
1048
- display: none;
1049
- }
1050
-
1051
- nav.drawer.left {
1052
- display: none;
1053
- }
1387
+ flex-direction: row;
1388
+ flex: 1;
1389
+ overflow: hidden;
1054
1390
  }
1055
-
1056
1391
  /* ========================================
1057
1392
  Footer Customization
1058
1393
  ======================================== */
@@ -1082,10 +1417,10 @@ footer.primary a:hover {
1082
1417
  }
1083
1418
 
1084
1419
  /* ========================================
1085
- Form Inputs - EXACT from Figma Make
1420
+ Form Inputs (Material Design 3)
1086
1421
  ======================================== */
1087
1422
 
1088
- /* Form labels from Figma Make */
1423
+ /* Form labels */
1089
1424
  .field label,
1090
1425
  .kds-form-label {
1091
1426
  font-size: 14px;
@@ -1095,292 +1430,328 @@ footer.primary a:hover {
1095
1430
  display: block;
1096
1431
  }
1097
1432
 
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;
1433
+ /* Icon utilities for inline icons */
1434
+ .kds-icon-inline {
1435
+ vertical-align: middle;
1436
+ margin-right: var(--kds-spacing-2);
1118
1437
  }
1119
1438
 
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;
1439
+ /* Section title icon */
1440
+ .kds-stage-section-title i {
1441
+ vertical-align: middle;
1442
+ margin-right: var(--kds-spacing-2);
1127
1443
  }
1128
1444
 
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;
1139
- }
1445
+ /* ==============================================
1446
+ MATERIAL DESIGN 3 FLOATING LABELS (BeerCSS)
1447
+ Solución limpia con principios claros
1448
+ ============================================== */
1140
1449
 
1141
- /* Outlined inputs (default) */
1142
- .field.border input,
1143
- .field.border textarea,
1144
- .field.border select {
1145
- border-radius: 8px !important;
1450
+ /* === VARIABLES GLOBALES === */
1451
+ :root,
1452
+ body.light,
1453
+ body.dark {
1454
+ --primary: var(--kds-color-primary-main); /* Purple Khipu - Focus */
1455
+ --outline: var(--kds-color-input-enabled-border); /* Gris normal - Unfocused */
1456
+ --error: var(--kds-color-error-main); /* Rojo - Invalid */
1146
1457
  }
1147
1458
 
1148
- /* Filled inputs */
1149
- .field.fill input,
1150
- .field.fill textarea,
1151
- .field.fill select {
1152
- border-radius: 8px !important;
1153
- background: #F9FAFB !important;
1459
+ /* === ALTURA PERSONALIZADA === */
1460
+ .field {
1461
+ --_input: 3.625rem; /* 58px (vs 48px default BeerCSS) */
1462
+ --_start: 1.4rem; /* Posición del label ajustada proporcionalmente */
1154
1463
  }
1155
1464
 
1156
- /* Round variant (only when explicitly requested) */
1157
- .field.round input,
1158
- .field.round textarea,
1159
- .field.round select {
1160
- border-radius: 28px !important;
1465
+ /* === TRANSICIONES SUAVES === */
1466
+ .field > :is(input, textarea, select) {
1467
+ transition: border-color 0.2s, box-shadow 0.2s, outline-color 0.2s;
1161
1468
  }
1162
1469
 
1163
- /* ========================================
1164
- Form Validation States (from Figma Make patterns)
1165
- Enhanced with Info, Warning, Success, Error states
1166
- ======================================== */
1470
+ /* ==========================================
1471
+ NOTCH VISIBILITY (opacity)
1472
+ ========================================== */
1167
1473
 
1168
- /* Info state (blue) */
1169
- .field.info input,
1170
- .field.info textarea,
1171
- .field.info select {
1172
- border-color: var(--kds-color-info) !important;
1474
+ /* Ocultar notch por defecto */
1475
+ .field.label.border:not(.fill) > label::after {
1476
+ opacity: 0;
1173
1477
  }
1174
1478
 
1175
- .field.info label {
1176
- color: var(--kds-color-info) !important;
1479
+ /* Mostrar notch cuando label flota (tiene valor O focus) */
1480
+ .field.label.border:not(.fill) > :is(
1481
+ :focus + label,
1482
+ input:not(:placeholder-shown) + label,
1483
+ textarea:not(:placeholder-shown) + label,
1484
+ select + label
1485
+ )::after {
1486
+ opacity: 1;
1177
1487
  }
1178
1488
 
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;
1489
+ /* ==========================================
1490
+ BORDER COLOR
1491
+ Notch + Input border cambian en hover - con transición suave
1492
+ ========================================== */
1493
+
1494
+ /* Agregar transición al notch (BeerCSS usa transition: none, lo sobrescribimos) */
1495
+ .field.label.border:not(.fill) > label::after {
1496
+ transition: border-color 0.2s, opacity 0.2s;
1189
1497
  }
1190
1498
 
1191
- /* Warning state (amber) */
1192
- .field.warning input,
1193
- .field.warning textarea,
1194
- .field.warning select {
1195
- border-color: var(--kds-color-warning) !important;
1499
+ /* Estado normal: usa --outline (viene de BeerCSS) */
1500
+
1501
+ /* Hover SIN focus: cambiar color del notch Y del borde del input */
1502
+ .field.label.border:not(.fill):hover:not(:focus-within) > label::after {
1503
+ border-block-start-color: var(--kds-color-input-hover-border);
1196
1504
  }
1197
1505
 
1198
- .field.warning label {
1199
- color: var(--kds-color-warning) !important;
1506
+ .field.label.border:not(.fill):hover:not(:focus-within) > :is(input, textarea, select) {
1507
+ border-color: var(--kds-color-input-hover-border);
1200
1508
  }
1201
1509
 
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;
1510
+ /* Focus: usar primary (mayor especificidad, gana sobre hover) */
1511
+ .field.label.border:not(.fill):focus-within > label::after {
1512
+ border-block-start-color: var(--primary);
1212
1513
  }
1213
1514
 
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;
1515
+ .field.label.border:not(.fill):focus-within > :is(input, textarea, select) {
1516
+ border-color: var(--primary);
1219
1517
  }
1220
1518
 
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;
1519
+ /* ==========================================
1520
+ INVALID STATE (error)
1521
+ Error siempre gana - mayor especificidad que hover y focus
1522
+ ========================================== */
1523
+
1524
+ /* Invalid: notch rojo (gana sobre hover y focus) */
1525
+ .field.label.border:not(.fill).invalid > label::after {
1526
+ border-block-start-color: var(--error);
1230
1527
  }
1231
1528
 
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;
1529
+ /* Invalid: borde del input rojo (gana sobre hover y focus) */
1530
+ .field.label.border:not(.fill).invalid > :is(input, textarea, select) {
1531
+ border-color: var(--error);
1242
1532
  }
1243
1533
 
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;
1534
+ /* Invalid + hover: mantener rojo (no cambiar a gris) */
1535
+ .field.label.border:not(.fill).invalid:hover > label::after {
1536
+ border-block-start-color: var(--error);
1250
1537
  }
1251
1538
 
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;
1539
+ .field.label.border:not(.fill).invalid:hover > :is(input, textarea, select) {
1540
+ border-color: var(--error);
1257
1541
  }
1258
1542
 
1259
- /* Invalid label */
1260
- .field.invalid label {
1261
- color: var(--kds-color-error) !important;
1543
+ /* Invalid + focus: mantener rojo (no cambiar a morado) */
1544
+ .field.label.border:not(.fill).invalid:focus-within > label::after {
1545
+ border-block-start-color: var(--error);
1262
1546
  }
1263
1547
 
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;
1548
+ .field.label.border:not(.fill).invalid:focus-within > :is(input, textarea, select) {
1549
+ border-color: var(--error);
1277
1550
  }
1278
1551
 
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;
1552
+ /* ==========================================
1553
+ SELECT DROPDOWN ARROW
1554
+ Asegurar que el dropdown arrow sea visible
1555
+ ========================================== */
1556
+
1557
+ /* Select: mantener appearance nativa para mostrar el dropdown arrow */
1558
+ .field select {
1559
+ /* BeerCSS puede estar ocultando el arrow, aseguramos que sea visible */
1560
+ appearance: auto;
1561
+ -webkit-appearance: auto;
1562
+ -moz-appearance: auto;
1563
+
1564
+ /* Asegurar que el arrow nativo tenga espacio */
1565
+ padding-right: var(--kds-spacing-10); /* 40px */
1566
+ background-position: right var(--kds-spacing-4) center; /* 16px desde el borde */
1567
+ background-repeat: no-repeat;
1568
+ background-size: var(--kds-spacing-5); /* 20px */
1288
1569
  }
1289
1570
 
1290
- /* ========================================
1291
- Alert/Banner Components
1292
- From Figma Make: KYC blocking patterns, info messages
1293
- ======================================== */
1571
+ /* ==========================================
1572
+ HELPER TEXT (mensaje debajo del input)
1573
+ Usando tokens de diseño
1574
+ ========================================== */
1294
1575
 
1295
- .kds-alert {
1296
- 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;
1576
+ /* Helper text: output o span.helper */
1577
+ .field > :is(output, .helper, span.helper) {
1578
+ display: block;
1579
+ font-family: var(--kds-font-family-primary); /* Public Sans */
1580
+ font-weight: var(--kds-font-weight-regular); /* 400 */
1581
+ font-size: var(--kds-font-size-xs); /* 0.75rem / 12px */
1582
+ line-height: var(--kds-line-height-relaxed); /* 1.66 */
1583
+ color: var(--kds-color-text-secondary); /* Gris normal */
1584
+ padding: 0.25rem 1rem 0 1rem;
1585
+ margin: 0;
1303
1586
  }
1304
1587
 
1305
- .kds-alert-icon {
1306
- flex-shrink: 0;
1307
- font-size: 20px;
1308
- margin-top: 2px;
1588
+ /* Helper text en estado error */
1589
+ .field.invalid > :is(output, .helper, span.helper) {
1590
+ color: var(--error); /* Rojo error */
1309
1591
  }
1310
1592
 
1311
- .kds-alert-content {
1312
- flex: 1;
1593
+ /* ==========================================
1594
+ LABEL COLOR
1595
+ Mantener sincronizado con border
1596
+ ========================================== */
1597
+
1598
+ /* Estado normal: color secundario (60% opacity) */
1599
+ .field.label > label {
1600
+ color: var(--kds-color-text-secondary);
1313
1601
  }
1314
1602
 
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);
1603
+ /* Hover SIN focus: más oscuro (70% opacity) */
1604
+ .field.label:hover:not(:focus-within) > label {
1605
+ color: rgba(0, 0, 0, 0.7);
1606
+ }
1607
+
1608
+ /* Focus: primary purple (BeerCSS ya lo hace, pero aseguramos) */
1609
+ .field.label:focus-within > label {
1610
+ color: var(--primary);
1319
1611
  }
1320
1612
 
1321
- .kds-alert-description {
1613
+ /* ========================================
1614
+ Snackbar Components (Material Design 3)
1615
+ Floating notifications at bottom of screen
1616
+ ======================================== */
1617
+
1618
+ /* Base snackbar - extends BeerCSS .snackbar */
1619
+ .kds-snackbar {
1620
+ position: fixed;
1621
+ bottom: var(--kds-spacing-3);
1622
+ left: 50%;
1623
+ transform: translateX(-50%);
1624
+ z-index: var(--kds-z-index-snackbar);
1625
+
1626
+ /* Layout */
1627
+ display: flex;
1628
+ align-items: center;
1629
+ gap: var(--kds-spacing-2);
1630
+
1631
+ /* Sizing */
1632
+ min-width: 344px;
1633
+ max-width: 672px;
1634
+ padding: var(--kds-spacing-2) var(--kds-spacing-3);
1635
+
1636
+ /* Styling */
1637
+ border-radius: var(--kds-radius-sm);
1638
+ box-shadow: var(--kds-shadow-8);
1639
+
1640
+ /* Typography */
1641
+ font-family: var(--kds-font-family-primary);
1322
1642
  font-size: var(--kds-font-size-sm);
1323
- line-height: 1.5;
1643
+ font-weight: var(--kds-font-weight-medium);
1644
+ line-height: var(--kds-line-height-normal);
1645
+
1646
+ /* Animation */
1647
+ animation: kds-snackbar-in 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1324
1648
  }
1325
1649
 
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);
1650
+ /* Snackbar animation */
1651
+ @keyframes kds-snackbar-in {
1652
+ from {
1653
+ transform: translateX(-50%) translateY(100px);
1654
+ opacity: 0;
1655
+ }
1656
+ to {
1657
+ transform: translateX(-50%) translateY(0);
1658
+ opacity: 1;
1659
+ }
1331
1660
  }
1332
1661
 
1333
- .kds-alert.info .kds-alert-icon {
1334
- color: var(--kds-color-info);
1662
+ /* Icon */
1663
+ .kds-snackbar-icon {
1664
+ flex-shrink: 0;
1665
+ font-size: var(--kds-spacing-button-icon-size);
1666
+ min-width: var(--kds-spacing-button-icon-size);
1667
+ min-height: var(--kds-spacing-button-icon-size);
1335
1668
  }
1336
1669
 
1337
- .kds-alert.warning {
1338
- background: var(--kds-alert-warning-bg);
1339
- border-color: var(--kds-color-warning);
1340
- color: var(--kds-color-warning);
1670
+ /* Content */
1671
+ .kds-snackbar-content {
1672
+ flex: 1;
1673
+ min-width: 0;
1341
1674
  }
1342
1675
 
1343
- .kds-alert.warning .kds-alert-icon {
1344
- color: var(--kds-color-warning);
1676
+ /* Action button (optional) */
1677
+ .kds-snackbar-action {
1678
+ flex-shrink: 0;
1345
1679
  }
1346
1680
 
1347
- .kds-alert.success {
1348
- background: var(--kds-alert-success-bg);
1349
- border-color: var(--kds-color-success);
1350
- color: var(--kds-color-success);
1681
+ /* Snackbar Variants */
1682
+ .kds-snackbar.success {
1683
+ background: var(--kds-snackbar-success-bg);
1684
+ border: 1px solid var(--kds-color-success-main);
1685
+ color: var(--kds-color-success-main);
1351
1686
  }
1352
1687
 
1353
- .kds-alert.success .kds-alert-icon {
1354
- color: var(--kds-color-success);
1688
+ .kds-snackbar.success .kds-snackbar-icon {
1689
+ color: var(--kds-color-success-main);
1355
1690
  }
1356
1691
 
1357
- .kds-alert.error {
1358
- background: var(--kds-alert-error-bg);
1359
- border-color: var(--kds-color-error);
1360
- color: var(--kds-color-error);
1692
+ .kds-snackbar.warning {
1693
+ background: var(--kds-snackbar-warning-bg);
1694
+ border: 1px solid var(--kds-color-warning-main);
1695
+ color: var(--kds-color-warning-main);
1361
1696
  }
1362
1697
 
1363
- .kds-alert.error .kds-alert-icon {
1364
- color: var(--kds-color-error);
1698
+ .kds-snackbar.warning .kds-snackbar-icon {
1699
+ color: var(--kds-color-warning-main);
1365
1700
  }
1366
1701
 
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);
1702
+ .kds-snackbar.error {
1703
+ background: var(--kds-snackbar-error-bg);
1704
+ border: 1px solid var(--kds-color-error-main);
1705
+ color: var(--kds-color-error-main);
1372
1706
  }
1373
1707
 
1374
- /* Compact alert variant (no icon) */
1375
- .kds-alert.compact {
1376
- padding: var(--kds-spacing-3);
1708
+ .kds-snackbar.error .kds-snackbar-icon {
1709
+ color: var(--kds-color-error-main);
1377
1710
  }
1378
1711
 
1379
- .kds-alert.compact .kds-alert-icon {
1380
- display: none;
1712
+ .kds-snackbar.info {
1713
+ background: var(--kds-snackbar-info-bg);
1714
+ border: 1px solid var(--kds-color-info-main);
1715
+ color: var(--kds-color-info-main);
1381
1716
  }
1382
1717
 
1383
- /* ========================================
1718
+ .kds-snackbar.info .kds-snackbar-icon {
1719
+ color: var(--kds-color-info-main);
1720
+ }
1721
+
1722
+ /* Static variant for showcase/demo purposes */
1723
+ .kds-snackbar.static {
1724
+ position: relative;
1725
+ left: auto;
1726
+ bottom: auto;
1727
+ transform: none;
1728
+ margin-bottom: var(--kds-spacing-3);
1729
+ animation: none;
1730
+ }
1731
+
1732
+ /* Mobile responsive */
1733
+ @media (max-width: 768px) {
1734
+ .kds-snackbar {
1735
+ min-width: calc(100vw - var(--kds-spacing-4));
1736
+ max-width: calc(100vw - var(--kds-spacing-4));
1737
+ left: var(--kds-spacing-2);
1738
+ right: var(--kds-spacing-2);
1739
+ transform: translateX(0);
1740
+ }
1741
+
1742
+ @keyframes kds-snackbar-in {
1743
+ from {
1744
+ transform: translateY(100px);
1745
+ opacity: 0;
1746
+ }
1747
+ to {
1748
+ transform: translateY(0);
1749
+ opacity: 1;
1750
+ }
1751
+ }
1752
+ }
1753
+
1754
+ /* ========================================
1384
1755
  Material Symbols Icon Sizing
1385
1756
  ======================================== */
1386
1757
 
@@ -1390,6 +1761,11 @@ select:focus {
1390
1761
  'wght' 400,
1391
1762
  'GRAD' 0,
1392
1763
  'opsz' 24;
1764
+ min-width: 24px;
1765
+ min-height: 24px;
1766
+ display: inline-flex;
1767
+ align-items: center;
1768
+ justify-content: center;
1393
1769
  }
1394
1770
 
1395
1771
  /* Filled icons for specific contexts */
@@ -1401,193 +1777,6 @@ select:focus {
1401
1777
  'opsz' 24;
1402
1778
  }
1403
1779
 
1404
- /* ========================================
1405
- Typography Scale - EXACT from Figma Make
1406
- ======================================== */
1407
-
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;
1416
- }
1417
-
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;
1426
- }
1427
-
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;
1435
- }
1436
-
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;
1445
- }
1446
-
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
1780
  /* ========================================
1592
1781
  Width & Display Utilities
1593
1782
  ======================================== */
@@ -1659,6 +1848,80 @@ select:focus {
1659
1848
  margin: 0;
1660
1849
  }
1661
1850
 
1851
+ /* ========================================
1852
+ CHECKBOX & RADIO GROUPS
1853
+ Form selection components
1854
+ ======================================== */
1855
+
1856
+ /* Checkbox Group */
1857
+ .kds-checkbox-group {
1858
+ display: flex;
1859
+ flex-direction: column;
1860
+ gap: var(--kds-spacing-3);
1861
+ }
1862
+
1863
+ /* Radio Group */
1864
+ .kds-radio-group {
1865
+ display: flex;
1866
+ flex-direction: column;
1867
+ gap: var(--kds-spacing-3);
1868
+ }
1869
+
1870
+ /* Checkbox Label - BeerCSS override */
1871
+ label.checkbox,
1872
+ label.radio {
1873
+ display: flex;
1874
+ align-items: center;
1875
+ padding: var(--kds-spacing-3) var(--kds-spacing-4);
1876
+ border-radius: 8px;
1877
+ cursor: pointer;
1878
+ transition: background-color 0.2s;
1879
+ font-size: 16px;
1880
+ line-height: 1.5;
1881
+ color: #111827;
1882
+ }
1883
+
1884
+ label.checkbox:hover,
1885
+ label.radio:hover {
1886
+ background-color: #F9FAFB;
1887
+ }
1888
+
1889
+ /* Checkbox/Radio Input */
1890
+ label.checkbox input[type="checkbox"],
1891
+ label.radio input[type="radio"] {
1892
+ width: 20px;
1893
+ height: 20px;
1894
+ margin-right: var(--kds-spacing-3);
1895
+ cursor: pointer;
1896
+ flex-shrink: 0;
1897
+ }
1898
+
1899
+ /* Checkbox/Radio Text */
1900
+ label.checkbox span,
1901
+ label.radio span {
1902
+ flex: 1;
1903
+ cursor: pointer;
1904
+ }
1905
+
1906
+ /* Checked state */
1907
+ label.checkbox input[type="checkbox"]:checked,
1908
+ label.radio input[type="radio"]:checked {
1909
+ accent-color: var(--primary);
1910
+ }
1911
+
1912
+ /* Disabled state */
1913
+ label.checkbox input[type="checkbox"]:disabled,
1914
+ label.radio input[type="radio"]:disabled {
1915
+ cursor: not-allowed;
1916
+ opacity: 0.5;
1917
+ }
1918
+
1919
+ label.checkbox:has(input:disabled),
1920
+ label.radio:has(input:disabled) {
1921
+ cursor: not-allowed;
1922
+ opacity: 0.6;
1923
+ }
1924
+
1662
1925
  /* ========================================
1663
1926
  ONBOARDING COMPONENTS
1664
1927
  Multi-stage onboarding flow with form validation
@@ -1835,6 +2098,8 @@ select:focus {
1835
2098
  /* Upload zone content */
1836
2099
  .kds-file-upload-icon {
1837
2100
  font-size: 48px;
2101
+ min-width: 48px;
2102
+ min-height: 48px;
1838
2103
  color: #9CA3AF;
1839
2104
  margin-bottom: var(--kds-spacing-3);
1840
2105
  }
@@ -1850,6 +2115,24 @@ select:focus {
1850
2115
  margin-bottom: var(--kds-spacing-2);
1851
2116
  }
1852
2117
 
2118
+ .kds-file-upload-button {
2119
+ color: var(--primary);
2120
+ text-decoration: underline;
2121
+ cursor: pointer;
2122
+ font-weight: 600;
2123
+ }
2124
+
2125
+ .kds-file-upload-button:hover {
2126
+ color: var(--kds-color-primary-700);
2127
+ }
2128
+
2129
+ .kds-file-upload-helper {
2130
+ font-size: var(--kds-font-size-sm);
2131
+ color: #6B7280;
2132
+ display: block;
2133
+ margin-top: var(--kds-spacing-1);
2134
+ }
2135
+
1853
2136
  .kds-file-upload-hint {
1854
2137
  font-size: var(--kds-font-size-sm);
1855
2138
  color: #6B7280;
@@ -1889,6 +2172,8 @@ select:focus {
1889
2172
  flex-shrink: 0;
1890
2173
  width: 40px;
1891
2174
  height: 40px;
2175
+ min-width: 40px;
2176
+ min-height: 40px;
1892
2177
  display: flex;
1893
2178
  align-items: center;
1894
2179
  justify-content: center;
@@ -1898,6 +2183,11 @@ select:focus {
1898
2183
  font-size: 20px;
1899
2184
  }
1900
2185
 
2186
+ .kds-file-upload-item-icon i {
2187
+ min-width: 20px;
2188
+ min-height: 20px;
2189
+ }
2190
+
1901
2191
  /* File info */
1902
2192
  .kds-file-upload-item-info {
1903
2193
  flex: 1;
@@ -1919,6 +2209,12 @@ select:focus {
1919
2209
  margin-top: 2px;
1920
2210
  }
1921
2211
 
2212
+ .kds-file-upload-item-size {
2213
+ font-size: var(--kds-font-size-xs);
2214
+ color: #6B7280;
2215
+ margin-top: 2px;
2216
+ }
2217
+
1922
2218
  /* File status */
1923
2219
  .kds-file-upload-item-status {
1924
2220
  flex-shrink: 0;
@@ -2147,19 +2443,37 @@ select:focus {
2147
2443
  }
2148
2444
  }
2149
2445
 
2446
+ /* ========================================
2447
+ MODAL BASE CONFIGURATION
2448
+ Override BeerCSS modal defaults
2449
+ ======================================== */
2450
+
2451
+ dialog.modal {
2452
+ background: var(--kds-modal-bg);
2453
+ border: none;
2454
+ border-radius: var(--kds-modal-border-radius);
2455
+ padding: var(--kds-modal-padding);
2456
+ max-width: var(--kds-modal-max-width);
2457
+ box-shadow: var(--kds-modal-shadow);
2458
+ }
2459
+
2460
+ dialog.modal::backdrop {
2461
+ background: var(--kds-modal-backdrop);
2462
+ }
2463
+
2150
2464
  /* ========================================
2151
2465
  KYC BLOCKING MODAL
2152
2466
  Warning modal for high-risk sectors
2153
2467
  ======================================== */
2154
2468
 
2155
2469
  .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;
2470
+ background: var(--kds-modal-bg);
2471
+ border: none;
2472
+ border-radius: var(--kds-modal-border-radius);
2473
+ padding: var(--kds-modal-padding);
2474
+ max-width: var(--kds-modal-max-width);
2161
2475
  margin: 0 auto;
2162
- box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
2476
+ box-shadow: var(--kds-modal-shadow);
2163
2477
  }
2164
2478
 
2165
2479
  .kds-kyc-modal-icon {
@@ -2169,37 +2483,39 @@ select:focus {
2169
2483
 
2170
2484
  .kds-kyc-modal-icon i {
2171
2485
  font-size: 64px;
2172
- color: var(--kds-kyc-block-icon);
2486
+ min-width: 64px;
2487
+ min-height: 64px;
2488
+ color: var(--kds-modal-icon-warning);
2173
2489
  }
2174
2490
 
2175
2491
  .kds-kyc-modal-title {
2176
2492
  font-size: var(--kds-font-size-2xl);
2177
2493
  font-weight: var(--kds-font-weight-bold);
2178
- color: var(--kds-kyc-block-text);
2494
+ color: var(--kds-modal-title-color);
2179
2495
  text-align: center;
2180
2496
  margin-bottom: var(--kds-spacing-4);
2181
2497
  }
2182
2498
 
2183
2499
  .kds-kyc-modal-message {
2184
2500
  font-size: var(--kds-font-size-base);
2185
- color: var(--kds-kyc-block-text);
2501
+ color: var(--kds-modal-text-color);
2186
2502
  line-height: 1.6;
2187
2503
  margin-bottom: var(--kds-spacing-6);
2188
2504
  text-align: center;
2189
2505
  }
2190
2506
 
2191
2507
  .kds-kyc-modal-contact {
2192
- background: #FFFFFF;
2508
+ background: var(--kds-surface-elevated);
2193
2509
  border-radius: var(--kds-radius-md);
2194
2510
  padding: var(--kds-spacing-4);
2195
2511
  margin-bottom: var(--kds-spacing-6);
2196
- border-left: 4px solid var(--kds-kyc-block-icon);
2512
+ border-left: 4px solid var(--primary);
2197
2513
  }
2198
2514
 
2199
2515
  .kds-kyc-modal-contact strong {
2200
2516
  display: block;
2201
2517
  font-weight: var(--kds-font-weight-semibold);
2202
- color: var(--kds-kyc-block-text);
2518
+ color: var(--kds-modal-title-color);
2203
2519
  margin-bottom: var(--kds-spacing-2);
2204
2520
  }
2205
2521
 
@@ -2220,12 +2536,16 @@ select:focus {
2220
2536
  }
2221
2537
 
2222
2538
  @media (max-width: 480px) {
2223
- .kds-kyc-modal {
2224
- padding: var(--kds-spacing-6);
2539
+ .kds-kyc-modal,
2540
+ dialog.modal {
2541
+ padding: var(--kds-modal-padding-mobile);
2542
+ max-width: var(--kds-modal-max-width-mobile);
2225
2543
  }
2226
2544
 
2227
2545
  .kds-kyc-modal-icon i {
2228
2546
  font-size: 48px;
2547
+ min-width: 48px;
2548
+ min-height: 48px;
2229
2549
  }
2230
2550
 
2231
2551
  .kds-kyc-modal-actions {
@@ -2293,12 +2613,16 @@ select:focus {
2293
2613
  width: auto !important;
2294
2614
  height: auto !important;
2295
2615
  font-size: 80px !important;
2616
+ min-width: 80px;
2617
+ min-height: 80px;
2296
2618
  }
2297
2619
 
2298
2620
  /* Fix for benefit card icons - BeerCSS forces 24px, override for large icons */
2299
2621
  .kds-card-elevated i.icon-filled {
2300
2622
  width: auto !important;
2301
2623
  height: auto !important;
2624
+ min-width: 48px;
2625
+ min-height: 48px;
2302
2626
  }
2303
2627
 
2304
2628
  .kds-welcome-hero-title {
@@ -2531,27 +2855,721 @@ select:focus {
2531
2855
  }
2532
2856
 
2533
2857
  /* ========================================
2534
- Responsive Utilities
2858
+ SUMMARY CARD (Review/Validation)
2859
+ Used in validation stage to show user data
2535
2860
  ======================================== */
2536
2861
 
2537
- @media (max-width: 768px) {
2538
- .khipu-hero h1 {
2539
- font-size: 2rem;
2540
- }
2541
-
2542
- .khipu-hero p {
2543
- font-size: 1rem;
2544
- }
2862
+ .kds-summary-card {
2863
+ background: white;
2864
+ border: 1px solid #E5E7EB;
2865
+ border-radius: var(--kds-radius-lg);
2866
+ padding: var(--kds-spacing-5);
2867
+ margin-bottom: var(--kds-spacing-4);
2868
+ }
2545
2869
 
2546
- .khipu-card-elevated {
2547
- padding: 16px;
2548
- }
2870
+ .kds-summary-card-header {
2871
+ display: flex;
2872
+ justify-content: space-between;
2873
+ align-items: center;
2874
+ margin-bottom: var(--kds-spacing-4);
2875
+ padding-bottom: var(--kds-spacing-3);
2876
+ border-bottom: 1px solid #F3F4F6;
2877
+ }
2549
2878
 
2550
- .snackbar {
2551
- min-width: calc(100% - 32px);
2552
- left: 16px;
2553
- right: 16px;
2879
+ .kds-summary-card-title {
2880
+ display: flex;
2881
+ align-items: center;
2882
+ gap: var(--kds-spacing-2);
2883
+ font-size: var(--kds-font-size-lg);
2884
+ font-weight: var(--kds-font-weight-semibold);
2885
+ color: #111827;
2886
+ }
2887
+
2888
+ .kds-summary-card-edit {
2889
+ color: var(--primary);
2890
+ text-decoration: none;
2891
+ font-size: var(--kds-font-size-sm);
2892
+ font-weight: var(--kds-font-weight-medium);
2893
+ display: flex;
2894
+ align-items: center;
2895
+ gap: 4px;
2896
+ transition: opacity 0.2s ease;
2897
+ }
2898
+
2899
+ .kds-summary-card-edit:hover {
2900
+ text-decoration: underline;
2901
+ opacity: 0.8;
2902
+ }
2903
+
2904
+ .kds-summary-row {
2905
+ display: flex;
2906
+ padding: var(--kds-spacing-2) 0;
2907
+ }
2908
+
2909
+ .kds-summary-label {
2910
+ flex: 0 0 140px;
2911
+ font-size: var(--kds-font-size-sm);
2912
+ font-weight: var(--kds-font-weight-medium);
2913
+ color: #6B7280;
2914
+ }
2915
+
2916
+ .kds-summary-value {
2917
+ flex: 1;
2918
+ font-size: var(--kds-font-size-sm);
2919
+ color: #111827;
2920
+ }
2921
+
2922
+ .kds-summary-value.badge {
2923
+ display: inline-block;
2924
+ padding: 4px 12px;
2925
+ background: var(--kds-color-primary-100);
2926
+ color: var(--primary);
2927
+ border-radius: var(--kds-radius-full);
2928
+ font-weight: var(--kds-font-weight-medium);
2929
+ }
2930
+
2931
+ /* ========================================
2932
+ SUCCESS PAGE COMPONENTS
2933
+ Celebration/completion page layout
2934
+ ======================================== */
2935
+
2936
+ .kds-success-container {
2937
+ display: flex;
2938
+ flex-direction: column;
2939
+ align-items: center;
2940
+ justify-content: center;
2941
+ min-height: 80vh;
2942
+ text-align: center;
2943
+ padding: var(--kds-spacing-8);
2944
+ }
2945
+
2946
+ .kds-success-icon {
2947
+ width: 120px;
2948
+ height: 120px;
2949
+ background: #ECFDF5;
2950
+ border-radius: 50%;
2951
+ display: flex;
2952
+ align-items: center;
2953
+ justify-content: center;
2954
+ margin-bottom: var(--kds-spacing-6);
2955
+ animation: scaleIn 0.5s ease-out;
2956
+ }
2957
+
2958
+ @keyframes scaleIn {
2959
+ from {
2960
+ transform: scale(0);
2961
+ opacity: 0;
2962
+ }
2963
+ to {
2964
+ transform: scale(1);
2965
+ opacity: 1;
2966
+ }
2967
+ }
2968
+
2969
+ .kds-success-icon i {
2970
+ font-size: 80px;
2971
+ min-width: 80px;
2972
+ min-height: 80px;
2973
+ color: var(--kds-color-success);
2974
+ }
2975
+
2976
+ .kds-success-title {
2977
+ font-size: var(--kds-font-size-3xl);
2978
+ font-weight: var(--kds-font-weight-bold);
2979
+ color: #111827;
2980
+ margin-bottom: var(--kds-spacing-3);
2981
+ }
2982
+
2983
+ .kds-success-subtitle {
2984
+ font-size: var(--kds-font-size-lg);
2985
+ color: #6B7280;
2986
+ margin-bottom: var(--kds-spacing-8);
2987
+ max-width: 600px;
2988
+ }
2989
+
2990
+ .kds-next-steps {
2991
+ background: white;
2992
+ border: 1px solid #E5E7EB;
2993
+ border-radius: var(--kds-radius-xl);
2994
+ padding: var(--kds-spacing-6);
2995
+ max-width: 700px;
2996
+ width: 100%;
2997
+ margin-bottom: var(--kds-spacing-6);
2998
+ text-align: left;
2999
+ }
3000
+
3001
+ .kds-next-steps-title {
3002
+ font-size: var(--kds-font-size-xl);
3003
+ font-weight: var(--kds-font-weight-semibold);
3004
+ color: #111827;
3005
+ margin-bottom: var(--kds-spacing-4);
3006
+ display: flex;
3007
+ align-items: center;
3008
+ gap: var(--kds-spacing-2);
3009
+ }
3010
+
3011
+ .kds-step-item {
3012
+ display: flex;
3013
+ gap: var(--kds-spacing-3);
3014
+ padding: var(--kds-spacing-3) 0;
3015
+ border-bottom: 1px solid #F3F4F6;
3016
+ }
3017
+
3018
+ .kds-step-item:last-child {
3019
+ border-bottom: none;
3020
+ }
3021
+
3022
+ .kds-step-number {
3023
+ flex-shrink: 0;
3024
+ width: 32px;
3025
+ height: 32px;
3026
+ background: var(--kds-color-primary-100);
3027
+ color: var(--primary);
3028
+ border-radius: 50%;
3029
+ display: flex;
3030
+ align-items: center;
3031
+ justify-content: center;
3032
+ font-weight: var(--kds-font-weight-semibold);
3033
+ font-size: var(--kds-font-size-sm);
3034
+ }
3035
+
3036
+ .kds-step-content {
3037
+ flex: 1;
3038
+ }
3039
+
3040
+ .kds-step-title {
3041
+ font-size: var(--kds-font-size-base);
3042
+ font-weight: var(--kds-font-weight-semibold);
3043
+ color: #111827;
3044
+ margin-bottom: 4px;
3045
+ }
3046
+
3047
+ .kds-step-description {
3048
+ font-size: var(--kds-font-size-sm);
3049
+ color: #6B7280;
3050
+ line-height: 1.5;
3051
+ }
3052
+
3053
+ .kds-success-actions {
3054
+ display: flex;
3055
+ gap: var(--kds-spacing-3);
3056
+ flex-wrap: wrap;
3057
+ justify-content: center;
3058
+ }
3059
+
3060
+ @media (max-width: 768px) {
3061
+ .kds-success-title {
3062
+ font-size: var(--kds-font-size-2xl);
3063
+ }
3064
+
3065
+ .kds-success-subtitle {
3066
+ font-size: var(--kds-font-size-base);
3067
+ }
3068
+
3069
+ .kds-success-actions {
3070
+ flex-direction: column;
3071
+ width: 100%;
3072
+ }
3073
+
3074
+ .kds-success-actions button {
3075
+ width: 100%;
3076
+ }
3077
+ }
3078
+
3079
+ /* ========================================
3080
+ Responsive Utilities
3081
+ ======================================== */
3082
+
3083
+ @media (max-width: 768px) {
3084
+ .khipu-hero h1 {
3085
+ font-size: 2rem;
3086
+ }
3087
+
3088
+ .khipu-hero p {
3089
+ font-size: 1rem;
3090
+ }
3091
+
3092
+ .khipu-card-elevated {
3093
+ padding: 16px;
3094
+ }
3095
+
3096
+ .snackbar {
3097
+ min-width: calc(100% - 32px);
3098
+ left: 16px;
3099
+ right: 16px;
2554
3100
  transform: none;
2555
3101
  }
2556
3102
  }
2557
3103
 
3104
+ /* ========================================
3105
+ UTILITY CLASSES
3106
+ ======================================== */
3107
+
3108
+ /* Container utilities */
3109
+ .kds-container-center {
3110
+ margin-left: auto;
3111
+ margin-right: auto;
3112
+ }
3113
+
3114
+ .max-w-500 {
3115
+ max-width: 500px;
3116
+ }
3117
+
3118
+ .max-w-1200 {
3119
+ max-width: 1200px;
3120
+ }
3121
+
3122
+ /* Margin top utilities */
3123
+ .kds-mt-3 {
3124
+ margin-top: var(--kds-spacing-3);
3125
+ }
3126
+
3127
+ /* ========================================
3128
+ AUTOMATIC SPACING SYSTEM
3129
+ Components handle their own spacing
3130
+ ======================================== */
3131
+
3132
+ /* Component showcase sections */
3133
+ .component-section {
3134
+ margin-bottom: var(--kds-spacing-12);
3135
+ }
3136
+
3137
+ .component-section > h2 {
3138
+ margin-bottom: var(--kds-spacing-6);
3139
+ }
3140
+
3141
+ .component-item {
3142
+ margin-bottom: var(--kds-spacing-10);
3143
+ }
3144
+
3145
+ .component-item > h3 {
3146
+ margin-bottom: var(--kds-spacing-2);
3147
+ }
3148
+
3149
+ .component-item > p {
3150
+ margin-bottom: var(--kds-spacing-4);
3151
+ }
3152
+
3153
+ .component-demo {
3154
+ margin-bottom: var(--kds-spacing-6);
3155
+ }
3156
+
3157
+ .component-code {
3158
+ margin-bottom: var(--kds-spacing-4);
3159
+ }
3160
+
3161
+ .usage-note,
3162
+ .grails-note {
3163
+ margin-top: var(--kds-spacing-4);
3164
+ margin-bottom: var(--kds-spacing-6);
3165
+ }
3166
+
3167
+ .usage-note > h4,
3168
+ .grails-note > h4 {
3169
+ margin-bottom: var(--kds-spacing-2);
3170
+ }
3171
+
3172
+ /* Onboarding stage sections */
3173
+ .kds-stage-section {
3174
+ margin-bottom: var(--kds-spacing-8);
3175
+ }
3176
+
3177
+ .kds-stage-section:last-child {
3178
+ margin-bottom: 0;
3179
+ }
3180
+
3181
+ .kds-stage-section-title {
3182
+ margin-bottom: var(--kds-spacing-4);
3183
+ }
3184
+
3185
+ .kds-stage-section-description {
3186
+ margin-bottom: var(--kds-spacing-4);
3187
+ }
3188
+
3189
+ /* Stage header */
3190
+ .kds-stage-header {
3191
+ margin-bottom: var(--kds-spacing-8);
3192
+ }
3193
+
3194
+ .kds-stage-title {
3195
+ margin-bottom: var(--kds-spacing-2);
3196
+ }
3197
+
3198
+ .kds-stage-subtitle {
3199
+ margin-bottom: 0;
3200
+ }
3201
+
3202
+ .kds-stage-header > button {
3203
+ margin-top: var(--kds-spacing-3);
3204
+ }
3205
+
3206
+ /* Showcase header */
3207
+ .showcase-header {
3208
+ margin-bottom: var(--kds-spacing-8);
3209
+ }
3210
+
3211
+ .showcase-header h1 {
3212
+ margin-bottom: var(--kds-spacing-3);
3213
+ }
3214
+
3215
+ /* Form groups and fields already have margin-bottom */
3216
+ .kds-field {
3217
+ margin-bottom: var(--kds-spacing-4);
3218
+ }
3219
+
3220
+ .kds-field:last-child {
3221
+ margin-bottom: 0;
3222
+ }
3223
+
3224
+ /* Grids handle spacing between children */
3225
+ .kds-grid-2col > *,
3226
+ .kds-grid-3col > * {
3227
+ margin-bottom: 0; /* Grid gap handles spacing */
3228
+ }
3229
+
3230
+ /* Alerts have margin */
3231
+ .kds-alert {
3232
+ margin-bottom: var(--kds-spacing-6);
3233
+ }
3234
+
3235
+ .kds-alert:last-child {
3236
+ margin-bottom: 0;
3237
+ }
3238
+
3239
+
3240
+ /* Modal actions (buttons at bottom) */
3241
+ .modal .kds-kyc-modal-content + div,
3242
+ .modal .kds-alert + div {
3243
+ margin-top: var(--kds-spacing-6);
3244
+ }
3245
+
3246
+ /* ===========================================================================
3247
+
3248
+ /* ============================================
3249
+ SIDEBAR NAVIGATION (Simple & Sticky)
3250
+ ============================================ */
3251
+
3252
+ /* Page layout - Flexbox horizontal */
3253
+ .kds-page-layout {
3254
+ display: flex;
3255
+ min-height: 100vh;
3256
+ }
3257
+
3258
+ /* Sidebar - Sticky flotante a la izquierda */
3259
+ .kds-sidebar {
3260
+ width: var(--kds-spacing-sidebar-width);
3261
+ background: var(--kds-color-background-paper);
3262
+ border: 1px solid var(--kds-color-divider);
3263
+ border-radius: var(--kds-radius-lg);
3264
+ flex-shrink: 0;
3265
+ position: sticky;
3266
+ top: var(--kds-spacing-4);
3267
+ margin: var(--kds-spacing-4);
3268
+ height: fit-content;
3269
+ overflow-y: auto;
3270
+ box-shadow: var(--kds-shadow-2);
3271
+ }
3272
+
3273
+ /* Sidebar Header */
3274
+ .kds-sidebar-header {
3275
+ display: flex;
3276
+ align-items: center;
3277
+ gap: var(--kds-spacing-3);
3278
+ padding: var(--kds-spacing-1) var(--kds-spacing-2);
3279
+ border-bottom: 1px solid var(--kds-color-divider);
3280
+ border-radius: var(--kds-radius-lg) var(--kds-radius-lg) 0 0;
3281
+ cursor: pointer;
3282
+ position: relative; /* ← Para anclar dropdown */
3283
+ transition: background var(--kds-transition-shorter) var(--kds-easing-standard);
3284
+ }
3285
+
3286
+ .kds-sidebar-header:hover {
3287
+ background: var(--kds-color-action-hover);
3288
+ }
3289
+
3290
+ /* Avatar circular */
3291
+ .kds-sidebar-avatar {
3292
+ width: var(--kds-spacing-sidebar-icon-container-size);
3293
+ height: var(--kds-spacing-sidebar-icon-container-size);
3294
+ border-radius: var(--kds-radius-full);
3295
+ background: var(--kds-color-error-main);
3296
+ color: var(--kds-color-background-paper);
3297
+ display: flex;
3298
+ align-items: center;
3299
+ justify-content: center;
3300
+ font-size: var(--kds-font-size-lg);
3301
+ font-weight: var(--kds-font-weight-bold);
3302
+ flex-shrink: 0;
3303
+ }
3304
+
3305
+ /* Header text */
3306
+ .kds-sidebar-header-text {
3307
+ flex: 1;
3308
+ overflow: hidden;
3309
+ }
3310
+
3311
+ .kds-sidebar-title {
3312
+ font-size: var(--kds-font-size-base);
3313
+ font-weight: var(--kds-font-weight-semibold);
3314
+ color: var(--kds-color-text-primary);
3315
+ white-space: nowrap;
3316
+ overflow: hidden;
3317
+ text-overflow: ellipsis;
3318
+ }
3319
+
3320
+ .kds-sidebar-subtitle {
3321
+ font-size: var(--kds-font-size-sm);
3322
+ color: var(--kds-color-text-secondary);
3323
+ white-space: nowrap;
3324
+ overflow: hidden;
3325
+ text-overflow: ellipsis;
3326
+ }
3327
+
3328
+ /* Dropdown icon */
3329
+ .kds-sidebar-dropdown-icon {
3330
+ font-size: var(--kds-spacing-sidebar-icon-size);
3331
+ color: var(--kds-color-text-secondary);
3332
+ flex-shrink: 0;
3333
+ transition: transform var(--kds-transition-shorter) var(--kds-easing-standard);
3334
+ }
3335
+
3336
+ /* Header Dropdown - Flotante */
3337
+ .kds-sidebar-header-dropdown {
3338
+ position: absolute;
3339
+ top: 100%;
3340
+ left: 0;
3341
+ right: 0;
3342
+ z-index: var(--kds-z-index-drawer);
3343
+ opacity: 0;
3344
+ visibility: hidden;
3345
+ pointer-events: none;
3346
+ transform: translateY(calc(var(--kds-spacing-1) * -1));
3347
+ transition: all var(--kds-transition-shorter) var(--kds-easing-standard);
3348
+ }
3349
+
3350
+ .kds-sidebar-header-dropdown.kds-dropdown-open {
3351
+ opacity: 1;
3352
+ visibility: visible;
3353
+ pointer-events: auto;
3354
+ transform: translateY(0);
3355
+ }
3356
+
3357
+ /* Navigation */
3358
+ .kds-sidebar-nav {
3359
+ padding: var(--kds-spacing-2) 0;
3360
+ flex-direction: column;
3361
+ align-items: flex-start;
3362
+ }
3363
+
3364
+ /* Nav item */
3365
+ .kds-sidebar-nav-item {
3366
+ display: flex;
3367
+ align-items: center;
3368
+ gap: var(--kds-spacing-1);
3369
+ padding: var(--kds-spacing-1) var(--kds-spacing-2);
3370
+ color: var(--kds-color-text-primary);
3371
+ text-decoration: none;
3372
+ position: relative;
3373
+ transition: background var(--kds-transition-shorter) var(--kds-easing-standard);
3374
+ width: 100%;
3375
+ justify-content: flex-start;
3376
+ }
3377
+
3378
+ .kds-sidebar-nav-item:hover {
3379
+ background: var(--kds-color-action-hover);
3380
+ }
3381
+
3382
+ /* Nav item icon */
3383
+ .kds-sidebar-nav-item i {
3384
+ font-size: var(--kds-spacing-sidebar-icon-size);
3385
+ color: var(--kds-color-text-secondary);
3386
+ }
3387
+
3388
+ /* Nav item text */
3389
+ .kds-sidebar-nav-item span {
3390
+ font-size: var(--kds-font-size-base);
3391
+ font-weight: var(--kds-font-weight-medium);
3392
+ }
3393
+
3394
+ /* Active state - barra morada a la izquierda */
3395
+ .kds-sidebar-nav-item.active {
3396
+ background: var(--kds-color-primary-hover);
3397
+ }
3398
+
3399
+ .kds-sidebar-nav-item.active::before {
3400
+ content: '';
3401
+ position: absolute;
3402
+ left: 0;
3403
+ top: 0;
3404
+ bottom: 0;
3405
+ width: calc(var(--kds-spacing-1) / 2);
3406
+ background: var(--kds-color-primary-main);
3407
+ }
3408
+
3409
+ .kds-sidebar-nav-item.active i,
3410
+ .kds-sidebar-nav-item.active span {
3411
+ color: var(--kds-color-primary-main);
3412
+ }
3413
+
3414
+ /* Main content */
3415
+ .kds-main-content {
3416
+ flex: 1;
3417
+ padding: var(--kds-spacing-8);
3418
+ overflow-y: auto;
3419
+ }
3420
+
3421
+ /* ============================================
3422
+ MOBILE RESPONSIVE SIDEBAR
3423
+ ============================================ */
3424
+
3425
+ /* Mobile Topbar - oculto en desktop */
3426
+ .kds-mobile-topbar {
3427
+ display: none;
3428
+ }
3429
+
3430
+ /* Barra superior mobile del sidebar - oculta en desktop */
3431
+ .kds-sidebar-mobile-header {
3432
+ display: none;
3433
+ }
3434
+
3435
+ /* Botón cerrar sidebar */
3436
+ .kds-sidebar-close-btn {
3437
+ border: none;
3438
+ background: transparent;
3439
+ border-radius: var(--kds-radius-sm);
3440
+ cursor: pointer;
3441
+ padding: 0;
3442
+ }
3443
+
3444
+ .kds-sidebar-close-btn:hover {
3445
+ background: var(--kds-color-action-hover);
3446
+ }
3447
+
3448
+ .kds-sidebar-close-btn i {
3449
+ font-size: var(--kds-spacing-sidebar-icon-size);
3450
+ color: var(--kds-color-text-primary);
3451
+ }
3452
+
3453
+ /* Botón hamburger */
3454
+ .kds-hamburger-btn {
3455
+ width: var(--kds-spacing-sidebar-icon-container-size);
3456
+ height: var(--kds-spacing-sidebar-icon-container-size);
3457
+ border: none;
3458
+ background: transparent;
3459
+ border-radius: var(--kds-radius-sm);
3460
+ cursor: pointer;
3461
+ transition: background-color var(--kds-transition-shorter) var(--kds-easing-standard);
3462
+ }
3463
+
3464
+ .kds-hamburger-btn:hover {
3465
+ background: var(--kds-color-action-hover);
3466
+ }
3467
+
3468
+ .kds-hamburger-btn i {
3469
+ font-size: var(--kds-spacing-sidebar-icon-size);
3470
+ color: var(--kds-color-text-primary);
3471
+ }
3472
+
3473
+ /* Mobile (≤ 768px) */
3474
+ @media (max-width: 768px) {
3475
+ /* Mostrar topbar */
3476
+ .kds-mobile-topbar {
3477
+ display: flex;
3478
+ align-items: center;
3479
+ gap: var(--kds-spacing-2);
3480
+ position: fixed;
3481
+ top: 0;
3482
+ left: 0;
3483
+ right: 0;
3484
+ height: var(--kds-spacing-7);
3485
+ padding: 0 var(--kds-spacing-2);
3486
+ background: var(--kds-color-background-paper);
3487
+ border-bottom: 1px solid var(--kds-color-divider);
3488
+ z-index: var(--kds-z-index-appbar);
3489
+ font-size: var(--kds-font-size-lg);
3490
+ font-weight: var(--kds-font-weight-semibold);
3491
+ }
3492
+
3493
+ /* Layout con espacio para topbar */
3494
+ .kds-page-layout {
3495
+ padding-top: var(--kds-spacing-7);
3496
+ }
3497
+
3498
+ /* Sidebar = drawer full-width */
3499
+ .kds-sidebar {
3500
+ position: fixed;
3501
+ top: 0;
3502
+ left: 0;
3503
+ bottom: 0;
3504
+ width: 100vw;
3505
+ margin: 0;
3506
+ height: 100%;
3507
+ transform: translateX(-100%);
3508
+ transition: transform var(--kds-transition-standard) var(--kds-easing-ease-out);
3509
+ z-index: var(--kds-z-index-drawer);
3510
+ border-radius: 0;
3511
+ }
3512
+
3513
+ /* Barra superior mobile visible */
3514
+ .kds-sidebar-mobile-header {
3515
+ display: flex;
3516
+ align-items: center;
3517
+ justify-content: space-between;
3518
+ height: var(--kds-spacing-7);
3519
+ padding: 0 var(--kds-spacing-2);
3520
+ background: var(--kds-color-background-paper);
3521
+ border-bottom: 1px solid var(--kds-color-divider);
3522
+ font-size: var(--kds-font-size-lg);
3523
+ font-weight: var(--kds-font-weight-semibold);
3524
+ color: var(--kds-color-text-primary);
3525
+ }
3526
+
3527
+ /* Sidebar abierto */
3528
+ .kds-sidebar-open {
3529
+ transform: translateX(0);
3530
+ }
3531
+
3532
+ /* Main content full-width */
3533
+ .kds-main-content {
3534
+ margin-left: 0;
3535
+ }
3536
+ }
3537
+
3538
+ /* ============================================
3539
+ DEMO PAGE STYLES
3540
+ ============================================ */
3541
+
3542
+ .demo-card {
3543
+ background: var(--kds-color-background-paper);
3544
+ border: 1px solid var(--kds-color-divider);
3545
+ border-radius: var(--kds-radius-lg);
3546
+ padding: var(--kds-spacing-6);
3547
+ margin-bottom: var(--kds-spacing-6);
3548
+ }
3549
+
3550
+ .code-block {
3551
+ background: var(--kds-color-background-elevated);
3552
+ border: 1px solid var(--kds-color-divider);
3553
+ border-radius: var(--kds-radius-md);
3554
+ padding: var(--kds-spacing-4);
3555
+ font-family: var(--kds-font-family-mono);
3556
+ font-size: var(--kds-font-size-sm);
3557
+ line-height: var(--kds-line-height-relaxed);
3558
+ white-space: pre-wrap;
3559
+ word-wrap: break-word;
3560
+ overflow-x: auto;
3561
+ color: var(--kds-color-text-primary);
3562
+ }
3563
+
3564
+ .kds-text-secondary-color {
3565
+ color: var(--kds-color-text-secondary);
3566
+ }
3567
+
3568
+ .kds-main-content > .kds-body-large {
3569
+ margin-bottom: var(--kds-spacing-6);
3570
+ }
3571
+
3572
+ .kds-main-content > .demo-card ul {
3573
+ line-height: var(--kds-line-height-relaxed);
3574
+ }
3575
+