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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,14 +4,14 @@
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 (from @khipu/design-system) */
7
+ /* Core Design System Tokens (auto-generated from src/tokens/index.ts) */
8
8
  /**
9
9
  * Khipu Design System - CSS Custom Properties
10
10
  * Use these variables for runtime theming and CSS-based styling
11
11
  *
12
12
  * AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
13
13
  * Source: design-system/src/tokens/tokens.json
14
- * Generated: 2026-03-19T13:37:00.330Z
14
+ * Generated: 2026-03-25T18:39:44.178Z
15
15
  *
16
16
  * To regenerate:
17
17
  * cd design-system && npm run tokens:generate
@@ -79,8 +79,14 @@
79
79
  --kds-color-divider: rgba(0, 0, 0, 0.12);
80
80
 
81
81
  /* Input borders */
82
- --kds-color-input-border: rgba(0, 0, 0, 0.23);
83
- --kds-color-input-border-hover: rgba(0, 0, 0, 0.87);
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);
84
90
 
85
91
  /* ==========================================================================
86
92
  TYPOGRAPHY TOKENS
@@ -120,6 +126,12 @@
120
126
  --kds-letter-spacing-wider: 0.46px;
121
127
  --kds-letter-spacing-widest: 1px;
122
128
 
129
+ /* Button typography */
130
+ --kds-typography-button-font-size: 0.9375rem;
131
+ --kds-typography-button-font-weight: 500;
132
+ --kds-typography-button-line-height: 26px;
133
+ --kds-typography-button-letter-spacing: 0.46px;
134
+
123
135
  /* ==========================================================================
124
136
  SPACING TOKENS
125
137
  ========================================================================== */
@@ -139,14 +151,17 @@
139
151
  --kds-spacing-12: 96px;
140
152
 
141
153
  /* Semantic spacing */
142
- --kds-spacing-input-x: undefined;
143
- --kds-spacing-input-y: undefined;
144
- --kds-spacing-button-x: undefined;
145
- --kds-spacing-button-y: undefined;
146
- --kds-spacing-card: undefined;
147
- --kds-spacing-modal: 24px;
154
+ --kds-spacing-input-padding-y: 16px;
155
+ --kds-spacing-input-padding-x: 12px;
156
+ --kds-spacing-input-padding: 16px 12px;
157
+ --kds-spacing-button-padding-y: 8px;
158
+ --kds-spacing-button-padding-x: 22px;
159
+ --kds-spacing-button-padding: 8px 22px;
160
+ --kds-spacing-button-min-height: 50px;
161
+ --kds-spacing-button-icon-size: 20px;
148
162
  --kds-spacing-section: 32px;
149
163
  --kds-spacing-form-gap: 20px;
164
+ --kds-spacing-inline-gap: 8px;
150
165
 
151
166
  /* ==========================================================================
152
167
  BORDER RADIUS TOKENS
@@ -223,49 +238,156 @@
223
238
  }
224
239
 
225
240
 
226
- /* Map KDS Tokens to BeerCSS Variables */
227
- /* Khipu Material Design 3 Brand Tokens
228
- * Maps Khipu Design System tokens to BeerCSS variables
229
- *
230
- * This file bridges KDS tokens with BeerCSS Material Design 3 implementation.
231
- * It imports KDS tokens and maps them to BeerCSS custom properties.
241
+ /* Khipu BeerCSS Variable Mappings */
242
+ /* Khipu Material Design 3 Brand Tokens for BeerCSS
243
+ * Imports core tokens from css-variables.css (auto-generated from src/tokens/index.ts)
244
+ * This file only maps BeerCSS-specific variables to core design tokens
245
+ * Source: design.khipu.com and BeerCSS framework
232
246
  */
233
247
 
234
- /* Import Khipu Design System tokens (from design-system build) */
235
- /* ========================================
236
- Map KDS Tokens to BeerCSS Variables
237
- ======================================== */
238
-
248
+ /* Import core design tokens (auto-generated) */
239
249
  :root {
240
- /* Map Khipu primary purple to BeerCSS primary */
250
+ /* ========================================
251
+ Map core tokens to BeerCSS-specific names
252
+ (BeerCSS may use different naming conventions)
253
+ ======================================== */
254
+
255
+ /* Alert backgrounds (using info color with transparency) */
256
+ --kds-alert-info-bg: #EFF6FF;
257
+ --kds-alert-warning-bg: #FFFBEB;
258
+ --kds-alert-success-bg: #ECFDF5;
259
+ --kds-alert-error-bg: #FEF2F2;
260
+
261
+ /* Border colors (not in core tokens) */
262
+ --kds-border-light: #DDD;
263
+ --kds-border-medium: #999;
264
+ --kds-border-dark: #666;
265
+
266
+ /* Input border states */
267
+ --kds-input-border-hover: rgba(0, 0, 0, 0.42); /* Slightly darker on hover (Material Design spec) */
268
+
269
+ /* Override BeerCSS native font variable */
270
+ --font: var(--kds-font-family-primary);
271
+
272
+ /* ========================================
273
+ Map Core Design Tokens to BeerCSS Variables
274
+ Material Design 3 Light Mode
275
+ ======================================== */
276
+
277
+ /* Primary - Khipu Purple brand */
241
278
  --primary: var(--kds-color-primary-main);
242
279
  --on-primary: var(--kds-color-primary-contrast);
243
280
  --primary-container: var(--kds-color-primary-light);
244
281
  --on-primary-container: var(--kds-color-primary-dark);
245
282
 
246
- /* Map Khipu secondary green to BeerCSS secondary */
283
+ /* Secondary - Green for success/positive actions */
247
284
  --secondary: var(--kds-color-secondary-main);
248
285
  --on-secondary: var(--kds-color-secondary-contrast);
249
286
  --secondary-container: var(--kds-color-secondary-light);
250
287
  --on-secondary-container: var(--kds-color-secondary-dark);
251
288
 
252
- /* Map semantic colors */
289
+ /* Semantic colors */
253
290
  --success: var(--kds-color-success-main);
254
291
  --error: var(--kds-color-error-main);
255
292
  --warning: var(--kds-color-warning-main);
256
293
  --info: var(--kds-color-info-main);
257
294
 
258
295
  /* Background and surface colors */
296
+ --background: var(--kds-color-background-default);
259
297
  --surface: var(--kds-color-background-paper);
260
298
  --on-surface: var(--kds-color-text-primary);
299
+ --on-surface-variant: var(--kds-color-action-active);
261
300
  --surface-variant: var(--kds-color-background-elevated);
301
+ --surface-container: var(--kds-color-background-default);
302
+ --outline: var(--kds-color-input-border);
303
+ --outline-variant: var(--kds-border-light);
304
+
305
+ /* ========================================
306
+ ONBOARDING COMPONENTS TOKENS
307
+ ======================================== */
308
+
309
+ /* File Upload States */
310
+ --kds-upload-zone-bg: #F9FAFB; /* gray-50 */
311
+ --kds-upload-zone-border: #D1D5DB; /* gray-300 */
312
+ --kds-upload-zone-border-hover: #3B82F6; /* blue-500 */
313
+ --kds-upload-zone-border-drag: #8347AD; /* primary-500 (purple) */
314
+ --kds-upload-zone-border-error: var(--kds-color-error-main);
315
+ --kds-upload-zone-border-success: var(--kds-color-success-main);
316
+ --kds-upload-item-bg: #FFFFFF;
317
+ --kds-upload-item-border: #E5E7EB; /* gray-200 */
318
+
319
+ /* OTP Input */
320
+ --kds-otp-digit-size: 56px;
321
+ --kds-otp-digit-height: 64px;
322
+ --kds-otp-digit-border: #D1D5DB;
323
+ --kds-otp-digit-border-focus: #3B82F6;
324
+ --kds-otp-digit-bg: #FFFFFF;
325
+ --kds-otp-digit-bg-filled: #F9FAFB;
326
+
327
+ /* Modal Base */
328
+ --kds-modal-bg: #FFFFFF;
329
+ --kds-modal-padding: var(--kds-spacing-6);
330
+ --kds-modal-padding-mobile: var(--kds-spacing-4);
331
+ --kds-modal-border-radius: var(--kds-radius-lg);
332
+ --kds-modal-shadow: var(--kds-shadow-elevation-4);
333
+ --kds-modal-backdrop: rgba(0, 0, 0, 0.5);
334
+ --kds-modal-max-width: 600px;
335
+ --kds-modal-max-width-mobile: 95vw;
336
+
337
+ /* Modal Content Colors */
338
+ --kds-modal-title-color: #111827; /* gray-900 */
339
+ --kds-modal-text-color: #374151; /* gray-700 */
340
+ --kds-modal-icon-warning: var(--kds-color-warning-main);
341
+ --kds-modal-icon-error: var(--kds-color-error-main);
342
+ --kds-modal-icon-success: var(--kds-color-success-main);
343
+ --kds-modal-icon-info: var(--kds-color-info-main);
344
+
345
+ /* Welcome Gradient */
346
+ --kds-welcome-gradient-start: var(--kds-color-primary-main); /* Khipu purple */
347
+ --kds-welcome-gradient-end: var(--kds-color-primary-dark); /* Khipu purple dark */
348
+
349
+ /* Bank Selector */
350
+ --kds-bank-item-border: #E5E7EB;
351
+ --kds-bank-item-border-hover: #D1D5DB;
352
+ --kds-bank-item-border-selected: #3B82F6;
353
+ --kds-bank-item-bg-selected: #EFF6FF; /* blue-50 */
354
+ --kds-bank-item-bg-hover: #F9FAFB;
355
+
356
+ /* Signature Pad */
357
+ --kds-signature-border: #D1D5DB;
358
+ --kds-signature-bg: #FFFFFF;
359
+ --kds-signature-line-color: #000000;
360
+
361
+ /* Contract Accordion */
362
+ --kds-accordion-border: #E5E7EB;
363
+ --kds-accordion-bg: #F9FAFB;
364
+ --kds-accordion-bg-open: #FFFFFF;
365
+ --kds-accordion-header-bg: #F3F4F6;
366
+
367
+ /* Onboarding Container */
368
+ --kds-onboarding-max-width: 800px;
369
+ --kds-onboarding-padding: var(--kds-spacing-6);
370
+ --kds-onboarding-gap: var(--kds-spacing-6);
371
+ }
372
+
373
+ /* ========================================
374
+ Force Light Mode Only
375
+ ======================================== */
376
+
377
+ /* Force light mode - disable dark mode */
378
+ :root,
379
+ html,
380
+ body {
381
+ color-scheme: light only;
382
+ }
262
383
 
263
- /* Legacy Khipu color aliases (for backward compatibility) */
264
- --khipu-primary: var(--kds-color-primary-main);
265
- --khipu-primary-dark: var(--kds-color-primary-dark);
266
- --khipu-primary-light: var(--kds-color-primary-light);
267
- --khipu-secondary: var(--kds-color-secondary-main);
268
- --khipu-accent: #FF5722;
384
+ /* Override system dark mode preference */
385
+ @media (prefers-color-scheme: dark) {
386
+ :root,
387
+ html,
388
+ body {
389
+ color-scheme: light only;
390
+ }
269
391
  }
270
392
 
271
393
  /* ========================================
@@ -276,11 +398,13 @@ html, body {
276
398
  flex-direction: column;
277
399
  min-height: 100vh;
278
400
  margin: 0;
401
+ background: var(--kds-color-background-default);
402
+ color: var(--kds-color-text-primary);
279
403
  }
280
404
 
281
405
  main {
282
406
  flex: 1 0 auto;
283
- padding: 24px 16px;
407
+ padding: 0;
284
408
  }
285
409
 
286
410
  footer {
@@ -291,25 +415,522 @@ footer {
291
415
 
292
416
  /* Khipu Custom Components */
293
417
  /* Khipu Custom Components for BeerCSS
294
- * Custom Material Design 3 components and utilities for Khipu payment app
418
+ * Custom Material Design 3 components based on BeerCSS framework
419
+ * Implements: Cards, Stepper, Alerts, Forms, Typography utilities
420
+ * Source: design.khipu.com and Material Design 3 specifications
295
421
  */
296
422
 
297
423
  /* ========================================
298
- Khipu Custom Components
424
+ Button Overrides (Material Design 3)
425
+ ======================================== */
426
+
427
+ /* ========================================
428
+ KHIPU BUTTON SYSTEM
429
+ Custom button components - don't modify BeerCSS classes
430
+ ======================================== */
431
+
432
+ /* Base button - use element selector for higher specificity */
433
+ button.kds-btn,
434
+ a.kds-btn {
435
+ display: inline-flex;
436
+ align-items: center;
437
+ justify-content: center;
438
+ gap: 8px;
439
+
440
+ /* Typography - Using design tokens */
441
+ font-family: var(--kds-font-family-secondary);
442
+ font-weight: var(--kds-font-weight-medium); /* 500, no 600 */
443
+ font-size: var(--kds-typography-button-font-size); /* 0.9375rem = 15px */
444
+ line-height: var(--kds-typography-button-line-height); /* 26px, no 1 */
445
+ letter-spacing: var(--kds-typography-button-letter-spacing); /* 0.46px */
446
+ text-transform: uppercase;
447
+
448
+ /* Spacing - Using design tokens */
449
+ padding: var(--kds-spacing-button-padding); /* 8px 22px */
450
+ min-height: var(--kds-spacing-button-min-height); /* 50px */
451
+ height: auto; /* Remove fixed height, let content + padding define it */
452
+
453
+ /* Border - Using design token */
454
+ border-radius: var(--kds-radius-button); /* 4px */
455
+ border: none;
456
+
457
+ /* Interaction */
458
+ cursor: pointer;
459
+ transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
460
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1),
461
+ border-color 250ms cubic-bezier(0.4, 0, 0.2, 1),
462
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1);
463
+ box-sizing: border-box;
464
+ vertical-align: middle;
465
+ }
466
+
467
+ /* Disabled state - colores específicos en lugar de opacity */
468
+ button.kds-btn:disabled,
469
+ a.kds-btn:disabled {
470
+ background-color: var(--kds-color-action-disabled-bg); /* rgba(0, 0, 0, 0.12) */
471
+ color: var(--kds-color-action-disabled); /* rgba(0, 0, 0, 0.38) */
472
+ cursor: not-allowed;
473
+ pointer-events: none;
474
+ box-shadow: none;
475
+ border-color: transparent;
476
+ }
477
+
478
+ /* Primary button - Khipu purple */
479
+ button.kds-btn-primary,
480
+ a.kds-btn-primary {
481
+ background: var(--kds-color-primary-main); /* #8347AD */
482
+ color: white;
483
+ border: none;
484
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
485
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
486
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12); /* elevation/2 */
487
+ }
488
+
489
+ /* Hover State - background más oscuro + elevation/4 */
490
+ button.kds-btn-primary:hover:not(:disabled),
491
+ a.kds-btn-primary:hover:not(:disabled) {
492
+ background: var(--kds-color-primary-dark); /* #6A3A8C */
493
+ box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
494
+ 0px 4px 5px 0px rgba(0, 0, 0, 0.14),
495
+ 0px 1px 10px 0px rgba(0, 0, 0, 0.12); /* elevation/4 */
496
+ }
497
+
498
+ /* Active/Focus State */
499
+ button.kds-btn-primary:active:not(:disabled),
500
+ button.kds-btn-primary:focus-visible:not(:disabled),
501
+ a.kds-btn-primary:active:not(:disabled),
502
+ a.kds-btn-primary:focus-visible:not(:disabled) {
503
+ background: var(--kds-color-primary-dark);
504
+ outline: 2px solid var(--kds-color-primary-main);
505
+ outline-offset: 2px;
506
+ }
507
+
508
+ /* Override disabled para primary */
509
+ button.kds-btn-primary:disabled,
510
+ a.kds-btn-primary:disabled {
511
+ background-color: var(--kds-color-action-disabled-bg);
512
+ color: var(--kds-color-action-disabled);
513
+ box-shadow: none;
514
+ border-color: transparent;
515
+ }
516
+
517
+ /* Secondary button - Blue CTA */
518
+ button.kds-btn-secondary,
519
+ a.kds-btn-secondary {
520
+ background: #3B82F6;
521
+ color: white;
522
+ border: none;
523
+ box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2),
524
+ 0px 2px 2px 0px rgba(0, 0, 0, 0.14),
525
+ 0px 1px 5px 0px rgba(0, 0, 0, 0.12); /* elevation/2 */
526
+ }
527
+
528
+ button.kds-btn-secondary:hover:not(:disabled),
529
+ a.kds-btn-secondary:hover:not(:disabled) {
530
+ background: #2563EB;
531
+ box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2),
532
+ 0px 4px 5px 0px rgba(0, 0, 0, 0.14),
533
+ 0px 1px 10px 0px rgba(0, 0, 0, 0.12); /* elevation/4 */
534
+ }
535
+
536
+ button.kds-btn-secondary:disabled,
537
+ a.kds-btn-secondary:disabled {
538
+ background-color: var(--kds-color-action-disabled-bg);
539
+ color: var(--kds-color-action-disabled);
540
+ box-shadow: none;
541
+ border-color: transparent;
542
+ }
543
+
544
+ /* Outlined button */
545
+ button.kds-btn-outlined,
546
+ a.kds-btn-outlined {
547
+ background: transparent;
548
+ color: var(--kds-color-primary-main);
549
+ border: 1px solid var(--kds-border-medium); /* rgba(0, 0, 0, 0.5) aprox */
550
+ box-shadow: none;
551
+ }
552
+
553
+ button.kds-btn-outlined:hover:not(:disabled),
554
+ a.kds-btn-outlined:hover:not(:disabled) {
555
+ background: var(--kds-color-primary-hover); /* rgba(131, 71, 173, 0.04) */
556
+ border-color: var(--kds-color-primary-main);
557
+ }
558
+
559
+ button.kds-btn-outlined:disabled,
560
+ a.kds-btn-outlined:disabled {
561
+ background: transparent;
562
+ color: var(--kds-color-action-disabled);
563
+ border-color: var(--kds-color-action-disabled);
564
+ box-shadow: none;
565
+ }
566
+
567
+ /* Outlined white - for dark backgrounds */
568
+ button.kds-btn-outlined-white,
569
+ a.kds-btn-outlined-white {
570
+ background: white;
571
+ color: var(--primary);
572
+ border-color: white;
573
+ }
574
+
575
+ button.kds-btn-outlined-white:hover:not(:disabled),
576
+ a.kds-btn-outlined-white:hover:not(:disabled) {
577
+ opacity: 0.9;
578
+ }
579
+
580
+ /* Text button */
581
+ button.kds-btn-text,
582
+ a.kds-btn-text {
583
+ background: transparent;
584
+ color: var(--kds-color-primary-main);
585
+ border: none;
586
+ padding: 6px 16px; /* Menor padding para text variant */
587
+ min-height: 32px; /* Menor altura para text variant */
588
+ box-shadow: none;
589
+ }
590
+
591
+ button.kds-btn-text:hover:not(:disabled),
592
+ a.kds-btn-text:hover:not(:disabled) {
593
+ background: var(--kds-color-primary-hover); /* rgba(131, 71, 173, 0.04) */
594
+ }
595
+
596
+ button.kds-btn-text:disabled,
597
+ a.kds-btn-text:disabled {
598
+ background: transparent;
599
+ color: var(--kds-color-action-disabled);
600
+ box-shadow: none;
601
+ }
602
+
603
+ /* Icon wrapper - control size via span container */
604
+ button.kds-btn > .kds-icon,
605
+ a.kds-btn > .kds-icon {
606
+ min-width: var(--kds-spacing-button-icon-size);
607
+ min-height: var(--kds-spacing-button-icon-size);
608
+ width: var(--kds-spacing-button-icon-size);
609
+ height: var(--kds-spacing-button-icon-size);
610
+ line-height: 1;
611
+ overflow: hidden;
612
+ flex-shrink: 0;
613
+ display: inline-flex;
614
+ align-items: center;
615
+ justify-content: center;
616
+ }
617
+
618
+ button.kds-btn > .kds-icon > i,
619
+ a.kds-btn > .kds-icon > i {
620
+ font-size: var(--kds-spacing-button-icon-size);
621
+ min-width: var(--kds-spacing-button-icon-size);
622
+ min-height: var(--kds-spacing-button-icon-size);
623
+ line-height: 1;
624
+ }
625
+
626
+ /* ========================================
627
+ Card Components (Material Design 3)
299
628
  ======================================== */
300
629
 
301
- /* Elevated Card with Khipu shadow */
630
+ /* Base elevated card */
631
+ .kds-card-elevated,
302
632
  .khipu-card-elevated {
303
- background: var(--surface-container, #FAFAFA);
304
- border-radius: 12px;
305
- box-shadow: 0 4px 12px rgba(131, 71, 173, 0.1);
306
- padding: 24px;
307
- margin-bottom: 24px;
633
+ background: #FFFFFF;
634
+ border-radius: 16px;
635
+ padding: 32px;
636
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
308
637
  transition: box-shadow 0.3s ease;
309
638
  }
310
639
 
640
+ .kds-card-elevated:hover,
311
641
  .khipu-card-elevated:hover {
312
- box-shadow: 0 8px 24px rgba(131, 71, 173, 0.2);
642
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
643
+ }
644
+
645
+ /* Main content card (centered, max-width) */
646
+ .kds-card-main {
647
+ background: #FFFFFF;
648
+ border-radius: 16px;
649
+ padding: 32px;
650
+ max-width: 800px;
651
+ margin: 24px auto;
652
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
653
+ }
654
+
655
+ @media (max-width: 768px) {
656
+ .kds-card-elevated,
657
+ .khipu-card-elevated,
658
+ .kds-card-main {
659
+ padding: 24px;
660
+ border-radius: 12px;
661
+ }
662
+ }
663
+
664
+ @media (max-width: 480px) {
665
+ .kds-card-elevated,
666
+ .khipu-card-elevated,
667
+ .kds-card-main {
668
+ padding: 20px;
669
+ margin: 16px;
670
+ }
671
+ }
672
+
673
+ /* Selection card */
674
+ .kds-card-selector {
675
+ padding: 24px;
676
+ border-radius: 12px;
677
+ border: 2px solid #E5E7EB; /* gray-200 */
678
+ background: #FFFFFF;
679
+ transition: all 0.3s ease;
680
+ text-align: left;
681
+ cursor: pointer;
682
+ display: flex;
683
+ flex-direction: column;
684
+ }
685
+
686
+ .kds-card-selector:hover {
687
+ border-color: #D1D5DB; /* gray-300 */
688
+ }
689
+
690
+ .kds-card-selector.selected {
691
+ border-color: #3B82F6; /* blue-600 */
692
+ background: #EFF6FF; /* blue-50 */
693
+ box-shadow: var(--kds-shadow-md);
694
+ }
695
+
696
+ /* Icon container */
697
+ .kds-card-selector-icon {
698
+ width: 48px;
699
+ height: 48px;
700
+ background: #DBEAFE; /* blue-100 */
701
+ border-radius: 8px;
702
+ display: flex;
703
+ align-items: center;
704
+ justify-content: center;
705
+ margin-bottom: 16px;
706
+ }
707
+
708
+ .kds-card-selector-icon i,
709
+ .kds-card-selector-icon svg {
710
+ width: 24px;
711
+ height: 24px;
712
+ min-width: 24px;
713
+ min-height: 24px;
714
+ color: #3B82F6; /* blue-600 */
715
+ }
716
+
717
+ /* Title */
718
+ .kds-card-selector-title {
719
+ font-weight: 600;
720
+ color: #111827; /* gray-900 */
721
+ margin-bottom: 8px;
722
+ font-size: 16px;
723
+ }
724
+
725
+ /* Description */
726
+ .kds-card-selector-description {
727
+ font-size: 14px;
728
+ color: #4B5563; /* gray-600 */
729
+ line-height: 1.5;
730
+ }
731
+
732
+ /* Selected state - visual feedback via border only */
733
+
734
+ /* Pricing/Plan card */
735
+ /* Pricing Card - Base */
736
+ .kds-card-plan {
737
+ position: relative;
738
+ display: flex;
739
+ flex-direction: column;
740
+ gap: var(--kds-spacing-6);
741
+ padding: var(--kds-spacing-8);
742
+ border-radius: var(--kds-radius-lg);
743
+ border: 2px solid var(--kds-border-medium);
744
+ max-width: 400px; /* Increased from 365px for better text spacing */
745
+ background: var(--kds-surface-base);
746
+ transition: all 0.3s ease;
747
+ cursor: pointer;
748
+ height: 100%; /* Ensure cards fill grid height */
749
+ }
750
+
751
+ .kds-card-plan:hover {
752
+ border-color: var(--primary);
753
+ box-shadow: var(--kds-shadow-elevation-2);
754
+ transform: translateY(-2px);
755
+ }
756
+
757
+ /* Recommended Plan */
758
+ .kds-card-plan.recommended {
759
+ border-color: var(--primary);
760
+ background: linear-gradient(to bottom, rgba(131, 71, 173, 0.05), var(--kds-surface-base));
761
+ box-shadow: var(--kds-shadow-elevation-3);
762
+ }
763
+
764
+ .kds-card-plan.recommended:hover {
765
+ box-shadow: var(--kds-shadow-elevation-4);
766
+ }
767
+
768
+ /* Recommended Badge */
769
+ .kds-card-plan-badge {
770
+ position: absolute;
771
+ top: -12px;
772
+ right: var(--kds-spacing-6);
773
+ padding: var(--kds-spacing-1) var(--kds-spacing-4);
774
+ background: var(--primary);
775
+ color: white;
776
+ font-size: var(--kds-font-size-sm);
777
+ font-weight: var(--kds-font-weight-semibold);
778
+ border-radius: var(--kds-radius-full);
779
+ box-shadow: var(--kds-shadow-elevation-1);
780
+ }
781
+
782
+ /* Plan Header */
783
+ .kds-card-plan-header {
784
+ display: flex;
785
+ flex-direction: column;
786
+ gap: var(--kds-spacing-1);
787
+ }
788
+
789
+ .kds-card-plan-header h3 {
790
+ margin: 0;
791
+ font-size: var(--kds-font-size-2xl);
792
+ font-weight: var(--kds-font-weight-bold);
793
+ color: var(--kds-text-primary);
794
+ }
795
+
796
+ .kds-card-plan-header p {
797
+ margin: 0;
798
+ font-size: var(--kds-font-size-sm);
799
+ color: var(--kds-text-secondary);
800
+ }
801
+
802
+ /* Plan Price */
803
+ .kds-card-plan-price {
804
+ display: flex;
805
+ align-items: baseline;
806
+ gap: var(--kds-spacing-2);
807
+ padding: var(--kds-spacing-4) 0;
808
+ border-bottom: 1px solid var(--kds-border-light);
809
+ min-height: 88px; /* Standardize price area height */
810
+ }
811
+
812
+ .kds-price {
813
+ font-size: 42px;
814
+ font-weight: var(--kds-font-weight-bold);
815
+ color: var(--primary);
816
+ line-height: 1.1;
817
+ max-width: 100%; /* Prevent overflow */
818
+ word-break: break-word; /* Allow wrapping if needed */
819
+ }
820
+
821
+ .kds-price-period {
822
+ font-size: var(--kds-font-size-base);
823
+ color: var(--kds-text-secondary);
824
+ font-weight: var(--kds-font-weight-medium);
825
+ }
826
+
827
+ /* Plan Features */
828
+ .kds-card-plan-features {
829
+ display: flex;
830
+ flex-direction: column;
831
+ gap: var(--kds-spacing-3);
832
+ flex: 1;
833
+ }
834
+
835
+ .kds-feature {
836
+ display: flex;
837
+ align-items: flex-start;
838
+ gap: var(--kds-spacing-3);
839
+ font-size: var(--kds-font-size-sm);
840
+ color: var(--kds-text-primary);
841
+ }
842
+
843
+ .kds-feature i {
844
+ font-size: 20px;
845
+ min-width: 20px;
846
+ min-height: 20px;
847
+ color: var(--success);
848
+ flex-shrink: 0;
849
+ }
850
+
851
+ .kds-feature.disabled {
852
+ color: var(--kds-text-disabled);
853
+ text-decoration: line-through;
854
+ }
855
+
856
+ .kds-feature.disabled i {
857
+ color: var(--kds-text-disabled);
858
+ }
859
+
860
+ /* Verification/Status card (from onboarding patterns) */
861
+ .kds-card-status {
862
+ display: flex;
863
+ align-items: center;
864
+ justify-content: space-between;
865
+ padding: 10px 20px;
866
+ min-height: 80px;
867
+ border-radius: 6px;
868
+ border: 1px solid var(--kds-border-light);
869
+ gap: var(--kds-spacing-4);
870
+ background: var(--kds-surface-base);
871
+ transition: background 0.2s ease;
872
+ }
873
+
874
+ .kds-card-status.muted {
875
+ border-color: transparent;
876
+ background: var(--kds-surface-elevated);
877
+ }
878
+
879
+ .kds-card-status .status-icon {
880
+ flex-shrink: 0;
881
+ font-size: 24px;
882
+ min-width: 24px;
883
+ min-height: 24px;
884
+ }
885
+
886
+ .kds-card-status .status-content {
887
+ flex: 1;
888
+ }
889
+
890
+ /* Card sections (header, body, footer) */
891
+ .kds-card-header {
892
+ padding-bottom: var(--kds-spacing-3);
893
+ border-bottom: 1px solid var(--kds-border-light);
894
+ margin-bottom: var(--kds-spacing-3);
895
+ }
896
+
897
+ .kds-card-header h2,
898
+ .kds-card-header h3 {
899
+ margin: 0;
900
+ font-weight: var(--kds-font-weight-bold);
901
+ }
902
+
903
+ .kds-card-body {
904
+ padding: 0;
905
+ margin-bottom: var(--kds-spacing-3);
906
+ }
907
+
908
+ .kds-card-footer {
909
+ padding-top: var(--kds-spacing-3);
910
+ border-top: 1px solid var(--kds-border-light);
911
+ margin-top: 0;
912
+ display: flex;
913
+ flex-direction: column;
914
+ gap: var(--kds-spacing-2);
915
+ }
916
+
917
+ .kds-card-footer button,
918
+ .kds-card-footer .button {
919
+ width: 100% !important;
920
+ }
921
+
922
+ /* Horizontal layout for desktop */
923
+ @media (min-width: 768px) {
924
+ .kds-card-footer {
925
+ flex-direction: row;
926
+ justify-content: flex-end;
927
+ }
928
+
929
+ .kds-card-footer button,
930
+ .kds-card-footer .button {
931
+ width: auto !important;
932
+ min-width: 120px;
933
+ }
313
934
  }
314
935
 
315
936
  /* Hero Section with gradient */
@@ -334,121 +955,2333 @@ footer {
334
955
  }
335
956
 
336
957
  /* ========================================
337
- Spacing Utilities
958
+ Layout & Spacing Utilities
338
959
  ======================================== */
339
960
 
340
- .khipu-spacing-top {
341
- margin-top: 32px;
961
+ /* Grid patterns */
962
+ .kds-grid-2col {
963
+ display: grid;
964
+ grid-template-columns: 1fr;
965
+ gap: var(--kds-spacing-4);
966
+ align-items: start;
342
967
  }
343
968
 
344
- .khipu-spacing-bottom {
345
- margin-bottom: 32px;
969
+ @media (min-width: 768px) {
970
+ .kds-grid-2col {
971
+ grid-template-columns: 1fr 1fr;
972
+ }
346
973
  }
347
974
 
348
- .khipu-spacing-large {
349
- margin: 48px 0;
975
+ /* Align fields inside grids */
976
+ .kds-grid-2col > .kds-field,
977
+ .kds-grid-3col > .kds-field {
978
+ align-self: start;
350
979
  }
351
980
 
352
- /* ========================================
353
- Snackbar Positioning
354
- ======================================== */
981
+ .kds-grid-2col > .kds-field .kds-form-label,
982
+ .kds-grid-3col > .kds-field .kds-form-label {
983
+ min-height: 20px;
984
+ }
355
985
 
356
- .snackbar {
357
- position: fixed;
358
- bottom: 24px;
359
- left: 50%;
360
- transform: translateX(-50%);
361
- z-index: 9999;
362
- min-width: 344px;
363
- max-width: 672px;
364
- box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
986
+ .kds-grid-3col {
987
+ display: grid;
988
+ grid-template-columns: 1fr;
989
+ gap: var(--kds-spacing-4);
990
+ align-items: stretch; /* Ensure equal heights */
365
991
  }
366
992
 
367
- /* ========================================
368
- Navbar Customization
369
- ======================================== */
993
+ @media (min-width: 768px) {
994
+ .kds-grid-3col {
995
+ grid-template-columns: repeat(2, 1fr);
996
+ }
997
+ }
370
998
 
371
- nav.primary {
372
- background: var(--khipu-primary);
373
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
999
+ @media (min-width: 1024px) {
1000
+ .kds-grid-3col {
1001
+ grid-template-columns: repeat(3, 1fr);
1002
+ }
374
1003
  }
375
1004
 
376
- nav.primary a,
377
- nav.primary button {
378
- color: white;
1005
+ .kds-grid-4col {
1006
+ display: grid;
1007
+ grid-template-columns: 1fr;
1008
+ gap: var(--kds-spacing-4);
379
1009
  }
380
1010
 
381
- /* ========================================
382
- Footer Customization
383
- ======================================== */
1011
+ @media (min-width: 768px) {
1012
+ .kds-grid-4col {
1013
+ grid-template-columns: repeat(2, 1fr);
1014
+ }
1015
+ }
384
1016
 
385
- footer.primary {
386
- background: var(--surface-container-high, #F5F5F5);
387
- padding: 32px 24px;
388
- margin-top: 48px;
1017
+ @media (min-width: 1024px) {
1018
+ .kds-grid-4col {
1019
+ grid-template-columns: repeat(4, 1fr);
1020
+ }
389
1021
  }
390
1022
 
391
- footer.primary h6 {
392
- color: var(--khipu-primary);
393
- font-weight: 600;
394
- margin-bottom: 16px;
1023
+ /* Flex utilities */
1024
+ .kds-flex {
1025
+ display: flex;
395
1026
  }
396
1027
 
397
- footer.primary a {
398
- color: var(--on-surface);
399
- text-decoration: none;
400
- display: block;
401
- padding: 4px 0;
402
- transition: color 0.2s ease;
1028
+ .kds-flex-col {
1029
+ flex-direction: column;
403
1030
  }
404
1031
 
405
- footer.primary a:hover {
406
- color: var(--khipu-primary);
1032
+ .kds-flex-row {
1033
+ flex-direction: row;
407
1034
  }
408
1035
 
409
- /* ========================================
410
- Material Symbols Icon Sizing
411
- ======================================== */
1036
+ .kds-justify-start {
1037
+ justify-content: flex-start;
1038
+ }
412
1039
 
413
- .material-symbols-outlined {
414
- font-variation-settings:
415
- 'FILL' 0,
416
- 'wght' 400,
417
- 'GRAD' 0,
418
- 'opsz' 24;
1040
+ .kds-justify-center {
1041
+ justify-content: center;
419
1042
  }
420
1043
 
421
- /* Filled icons for specific contexts */
422
- .icon-filled {
423
- font-variation-settings:
424
- 'FILL' 1,
425
- 'wght' 400,
426
- 'GRAD' 0,
427
- 'opsz' 24;
1044
+ .kds-justify-end {
1045
+ justify-content: flex-end;
428
1046
  }
429
1047
 
430
- /* ========================================
431
- Responsive Utilities
432
- ======================================== */
1048
+ .kds-justify-between {
1049
+ justify-content: space-between;
1050
+ }
433
1051
 
434
- @media (max-width: 768px) {
435
- .khipu-hero h1 {
436
- font-size: 2rem;
437
- }
1052
+ .kds-items-start {
1053
+ align-items: flex-start;
1054
+ }
438
1055
 
439
- .khipu-hero p {
440
- font-size: 1rem;
441
- }
1056
+ .kds-items-center {
1057
+ align-items: center;
1058
+ }
442
1059
 
443
- .khipu-card-elevated {
444
- padding: 16px;
445
- }
1060
+ .kds-items-end {
1061
+ align-items: flex-end;
1062
+ }
446
1063
 
447
- .snackbar {
448
- min-width: calc(100% - 32px);
1064
+ /* Gap utilities */
1065
+ .kds-gap-1 { gap: var(--kds-spacing-1); }
1066
+ .kds-gap-2 { gap: var(--kds-spacing-2); }
1067
+ .kds-gap-3 { gap: var(--kds-spacing-3); }
1068
+ .kds-gap-4 { gap: var(--kds-spacing-4); }
1069
+ .kds-gap-5 { gap: var(--kds-spacing-5); }
1070
+ .kds-gap-6 { gap: var(--kds-spacing-6); }
1071
+ .kds-gap-8 { gap: var(--kds-spacing-8); }
1072
+
1073
+ /* Spacing utilities - Margin */
1074
+ .kds-m-0 { margin: 0; }
1075
+ .kds-m-2 { margin: var(--kds-spacing-2); }
1076
+ .kds-m-4 { margin: var(--kds-spacing-4); }
1077
+ .kds-m-6 { margin: var(--kds-spacing-6); }
1078
+ .kds-m-8 { margin: var(--kds-spacing-8); }
1079
+
1080
+ .kds-mt-0 { margin-top: 0; }
1081
+ .kds-mt-2 { margin-top: var(--kds-spacing-2); }
1082
+ .kds-mt-4 { margin-top: var(--kds-spacing-4); }
1083
+ .kds-mt-6 { margin-top: var(--kds-spacing-6); }
1084
+ .kds-mt-8 { margin-top: var(--kds-spacing-8); }
1085
+
1086
+ .kds-mb-0 { margin-bottom: 0; }
1087
+ .kds-mb-2 { margin-bottom: var(--kds-spacing-2); }
1088
+ .kds-mb-4 { margin-bottom: var(--kds-spacing-4); }
1089
+ .kds-mb-6 { margin-bottom: var(--kds-spacing-6); }
1090
+ .kds-mb-8 { margin-bottom: var(--kds-spacing-8); }
1091
+
1092
+ .kds-ml-0 { margin-left: 0; }
1093
+ .kds-ml-2 { margin-left: var(--kds-spacing-2); }
1094
+ .kds-ml-4 { margin-left: var(--kds-spacing-4); }
1095
+
1096
+ .kds-mr-0 { margin-right: 0; }
1097
+ .kds-mr-2 { margin-right: var(--kds-spacing-2); }
1098
+ .kds-mr-4 { margin-right: var(--kds-spacing-4); }
1099
+
1100
+ .kds-my-0 { margin-top: 0; margin-bottom: 0; }
1101
+ .kds-my-2 { margin-top: var(--kds-spacing-2); margin-bottom: var(--kds-spacing-2); }
1102
+ .kds-my-4 { margin-top: var(--kds-spacing-4); margin-bottom: var(--kds-spacing-4); }
1103
+ .kds-my-6 { margin-top: var(--kds-spacing-6); margin-bottom: var(--kds-spacing-6); }
1104
+ .kds-my-8 { margin-top: var(--kds-spacing-8); margin-bottom: var(--kds-spacing-8); }
1105
+
1106
+ .kds-mx-auto { margin-left: auto; margin-right: auto; }
1107
+
1108
+ /* Spacing utilities - Padding */
1109
+ .kds-p-0 { padding: 0; }
1110
+ .kds-p-2 { padding: var(--kds-spacing-2); }
1111
+ .kds-p-4 { padding: var(--kds-spacing-4); }
1112
+ .kds-p-6 { padding: var(--kds-spacing-6); }
1113
+ .kds-p-8 { padding: var(--kds-spacing-8); }
1114
+
1115
+ .kds-pt-4 { padding-top: var(--kds-spacing-4); }
1116
+ .kds-pt-6 { padding-top: var(--kds-spacing-6); }
1117
+ .kds-pt-8 { padding-top: var(--kds-spacing-8); }
1118
+
1119
+ .kds-pb-4 { padding-bottom: var(--kds-spacing-4); }
1120
+ .kds-pb-6 { padding-bottom: var(--kds-spacing-6); }
1121
+ .kds-pb-8 { padding-bottom: var(--kds-spacing-8); }
1122
+
1123
+ .kds-px-4 { padding-left: var(--kds-spacing-4); padding-right: var(--kds-spacing-4); }
1124
+ .kds-px-6 { padding-left: var(--kds-spacing-6); padding-right: var(--kds-spacing-6); }
1125
+ .kds-px-8 { padding-left: var(--kds-spacing-8); padding-right: var(--kds-spacing-8); }
1126
+
1127
+ .kds-py-4 { padding-top: var(--kds-spacing-4); padding-bottom: var(--kds-spacing-4); }
1128
+ .kds-py-6 { padding-top: var(--kds-spacing-6); padding-bottom: var(--kds-spacing-6); }
1129
+ .kds-py-8 { padding-top: var(--kds-spacing-8); padding-bottom: var(--kds-spacing-8); }
1130
+
1131
+ /* Legacy spacing utilities (backward compatibility) */
1132
+ .khipu-spacing-top {
1133
+ margin-top: var(--kds-spacing-8);
1134
+ }
1135
+
1136
+ .khipu-spacing-bottom {
1137
+ margin-bottom: var(--kds-spacing-8);
1138
+ }
1139
+
1140
+ .khipu-spacing-large {
1141
+ margin: var(--kds-spacing-12) 0;
1142
+ }
1143
+
1144
+ /* ========================================
1145
+ Stepper Component (Multi-stage Progress Indicator)
1146
+ Material Design 3 stepper pattern
1147
+ ======================================== */
1148
+
1149
+ .kds-stepper {
1150
+ display: flex;
1151
+ justify-content: space-between;
1152
+ align-items: flex-start;
1153
+ gap: 0;
1154
+ position: relative;
1155
+ padding: 24px 0;
1156
+ background: #FFFFFF;
1157
+ border-bottom: 1px solid #E5E7EB;
1158
+ }
1159
+
1160
+ /* Progress line connecting steps */
1161
+ .kds-stepper::before {
1162
+ content: "";
1163
+ position: absolute;
1164
+ left: 10%;
1165
+ right: 10%;
1166
+ top: 44px;
1167
+ height: 2px;
1168
+ background: #E5E7EB;
1169
+ z-index: 0;
1170
+ }
1171
+
1172
+ /* Individual step */
1173
+ .kds-step {
1174
+ flex: 1 1 0;
1175
+ min-width: 0;
1176
+ text-align: center;
1177
+ position: relative;
1178
+ display: flex;
1179
+ flex-direction: column;
1180
+ align-items: center;
1181
+ }
1182
+
1183
+ /* Step indicator (circle) */
1184
+ .kds-step-indicator {
1185
+ width: 40px;
1186
+ height: 40px;
1187
+ border-radius: 50%;
1188
+ margin: 0 auto;
1189
+ background: #E5E7EB; /* Pending state - light gray */
1190
+ position: relative;
1191
+ z-index: 2;
1192
+ transition: all 0.3s ease;
1193
+ display: flex;
1194
+ align-items: center;
1195
+ justify-content: center;
1196
+ color: #6B7280;
1197
+ font-size: 0; /* Hide number by default */
1198
+ font-weight: 600;
1199
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
1200
+ }
1201
+
1202
+ /* Step label */
1203
+ .kds-step-label {
1204
+ margin-top: 12px;
1205
+ font-weight: 400;
1206
+ color: #6B7280;
1207
+ line-height: 1.25;
1208
+ font-size: 14px;
1209
+ transition: color 0.3s ease;
1210
+ }
1211
+
1212
+ /* Step States */
1213
+
1214
+ /* Current step - Info color */
1215
+ .kds-step.current .kds-step-indicator {
1216
+ background: var(--kds-color-info-main);
1217
+ box-shadow: var(--kds-shadow-stepper-info);
1218
+ }
1219
+
1220
+ .kds-step.current .kds-step-label {
1221
+ color: #111827;
1222
+ font-weight: 500;
1223
+ }
1224
+
1225
+ /* Completed step - Success color with checkmark */
1226
+ .kds-step.completed .kds-step-indicator {
1227
+ background: var(--kds-color-success-main);
1228
+ box-shadow: var(--kds-shadow-stepper-success);
1229
+ }
1230
+
1231
+ .kds-step.completed .kds-step-label {
1232
+ color: #111827;
1233
+ }
1234
+
1235
+ /* Checkmark for completed steps - Material Symbols icon */
1236
+ .kds-step.completed .kds-step-indicator::after {
1237
+ content: "check";
1238
+ font-family: 'Material Symbols Outlined';
1239
+ position: absolute;
1240
+ color: white;
1241
+ font-size: 24px;
1242
+ font-weight: 400;
1243
+ left: 50%;
1244
+ top: 50%;
1245
+ transform: translate(-50%, -50%);
1246
+ line-height: 1;
1247
+ }
1248
+
1249
+ /* Pending step */
1250
+ .kds-step .kds-step-indicator {
1251
+ background: #E5E7EB;
1252
+ }
1253
+
1254
+ /* Responsive - Tablet */
1255
+ @media (max-width: 768px) {
1256
+ .kds-stepper {
1257
+ padding: 24px 0;
1258
+ }
1259
+
1260
+ .kds-step-indicator {
1261
+ width: 44px;
1262
+ height: 44px;
1263
+ }
1264
+
1265
+ .kds-stepper::before {
1266
+ top: 46px;
1267
+ }
1268
+
1269
+ .kds-step-label {
1270
+ font-size: 13px;
1271
+ margin-top: 12px;
1272
+ }
1273
+
1274
+ .kds-step.completed .kds-step-indicator::after {
1275
+ font-size: 22px;
1276
+ }
1277
+ }
1278
+
1279
+ /* Responsive - Mobile */
1280
+ @media (max-width: 480px) {
1281
+ .kds-stepper {
1282
+ padding: 16px 0;
1283
+ }
1284
+
1285
+ .kds-step-indicator {
1286
+ width: 36px;
1287
+ height: 36px;
1288
+ }
1289
+
1290
+ .kds-stepper::before {
1291
+ top: 38px;
1292
+ left: 15%;
1293
+ right: 15%;
1294
+ }
1295
+
1296
+ .kds-step-label {
1297
+ font-size: 11px;
1298
+ margin-top: 8px;
1299
+ }
1300
+
1301
+ .kds-step.completed .kds-step-indicator::after {
1302
+ font-size: 16px;
1303
+ }
1304
+ }
1305
+
1306
+ /* ========================================
1307
+ Snackbar Positioning
1308
+ ======================================== */
1309
+
1310
+ .snackbar {
1311
+ position: fixed;
1312
+ bottom: 24px;
1313
+ left: 50%;
1314
+ transform: translateX(-50%);
1315
+ z-index: 9999;
1316
+ min-width: 344px;
1317
+ max-width: 672px;
1318
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
1319
+ }
1320
+
1321
+ /* ========================================
1322
+ Navbar Customization
1323
+ ======================================== */
1324
+
1325
+ nav.primary {
1326
+ background: var(--khipu-primary);
1327
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
1328
+ position: relative;
1329
+ z-index: 1000;
1330
+ }
1331
+
1332
+ nav.primary a,
1333
+ nav.primary button {
1334
+ color: white;
1335
+ }
1336
+
1337
+ /* ========================================
1338
+ Drawer/Sidenav (Mobile Navigation)
1339
+ ======================================== */
1340
+
1341
+ /* Left drawer hidden by default */
1342
+ nav.drawer.left {
1343
+ position: fixed;
1344
+ top: 0;
1345
+ left: 0;
1346
+ bottom: 0;
1347
+ width: 280px;
1348
+ max-width: 80vw;
1349
+ background: var(--surface-container, #FFFFFF);
1350
+ box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15);
1351
+ transform: translateX(-100%);
1352
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1353
+ z-index: 1100;
1354
+ overflow-y: auto;
1355
+ display: flex;
1356
+ flex-direction: column;
1357
+ }
1358
+
1359
+ /* Show drawer when active */
1360
+ nav.drawer.left.active {
1361
+ transform: translateX(0);
1362
+ }
1363
+
1364
+ /* Drawer overlay */
1365
+ nav.drawer.left::before {
1366
+ content: '';
1367
+ position: fixed;
1368
+ top: 0;
1369
+ left: 0;
1370
+ right: 0;
1371
+ bottom: 0;
1372
+ background: rgba(0, 0, 0, 0.5);
1373
+ opacity: 0;
1374
+ visibility: hidden;
1375
+ transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
1376
+ visibility 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1377
+ z-index: -1;
1378
+ pointer-events: none;
1379
+ }
1380
+
1381
+ /* Show overlay when drawer is active */
1382
+ nav.drawer.left.active::before {
1383
+ opacity: 1;
1384
+ visibility: visible;
1385
+ pointer-events: auto;
1386
+ }
1387
+
1388
+ /* Drawer header styling */
1389
+ nav.drawer header {
1390
+ padding: 16px;
1391
+ background: var(--primary-container, rgba(131, 71, 173, 0.1));
1392
+ border-bottom: 1px solid var(--outline-variant, rgba(0, 0, 0, 0.12));
1393
+ }
1394
+
1395
+ /* Drawer links */
1396
+ nav.drawer a {
1397
+ display: flex;
1398
+ align-items: center;
1399
+ padding: 12px 16px;
1400
+ color: var(--on-surface, rgba(0, 0, 0, 0.87));
1401
+ text-decoration: none;
1402
+ transition: background 0.2s ease;
1403
+ gap: 16px;
1404
+ }
1405
+
1406
+ nav.drawer a:hover {
1407
+ background: var(--surface-variant, rgba(0, 0, 0, 0.04));
1408
+ }
1409
+
1410
+ nav.drawer a i {
1411
+ font-size: 24px;
1412
+ color: var(--on-surface-variant, rgba(0, 0, 0, 0.60));
1413
+ }
1414
+
1415
+ nav.drawer .divider {
1416
+ height: 1px;
1417
+ background: var(--outline-variant, rgba(0, 0, 0, 0.12));
1418
+ margin: 8px 0;
1419
+ }
1420
+
1421
+ /* Hide menu toggle button on desktop */
1422
+ @media (min-width: 769px) {
1423
+ #menu-toggle {
1424
+ display: none;
1425
+ }
1426
+
1427
+ nav.drawer.left {
1428
+ display: none;
1429
+ }
1430
+ }
1431
+
1432
+ /* ========================================
1433
+ Footer Customization
1434
+ ======================================== */
1435
+
1436
+ footer.primary {
1437
+ background: var(--surface-container-high, #F5F5F5);
1438
+ padding: 32px 24px;
1439
+ margin-top: 48px;
1440
+ }
1441
+
1442
+ footer.primary h6 {
1443
+ color: var(--khipu-primary);
1444
+ font-weight: 600;
1445
+ margin-bottom: 16px;
1446
+ }
1447
+
1448
+ footer.primary a {
1449
+ color: var(--on-surface);
1450
+ text-decoration: none;
1451
+ display: block;
1452
+ padding: 4px 0;
1453
+ transition: color 0.2s ease;
1454
+ }
1455
+
1456
+ footer.primary a:hover {
1457
+ color: var(--khipu-primary);
1458
+ }
1459
+
1460
+ /* ========================================
1461
+ Form Inputs (Material Design 3)
1462
+ ======================================== */
1463
+
1464
+ /* Form labels */
1465
+ .field label,
1466
+ .kds-form-label {
1467
+ font-size: 14px;
1468
+ font-weight: 500;
1469
+ color: #111827;
1470
+ margin-bottom: 8px;
1471
+ display: block;
1472
+ }
1473
+
1474
+ /* Icon utilities for inline icons */
1475
+ .kds-icon-inline {
1476
+ vertical-align: middle;
1477
+ margin-right: var(--kds-spacing-2);
1478
+ }
1479
+
1480
+ /* Section title icon */
1481
+ .kds-stage-section-title i {
1482
+ vertical-align: middle;
1483
+ margin-right: var(--kds-spacing-2);
1484
+ }
1485
+
1486
+ /* ==============================================
1487
+ MATERIAL DESIGN 3 FLOATING LABELS (BeerCSS)
1488
+ Solución limpia con principios claros
1489
+ ============================================== */
1490
+
1491
+ /* === VARIABLES GLOBALES === */
1492
+ :root,
1493
+ body.light,
1494
+ body.dark {
1495
+ --primary: var(--kds-color-primary-main); /* Purple Khipu - Focus */
1496
+ --outline: var(--kds-color-input-enabled-border); /* Gris normal - Unfocused */
1497
+ --error: var(--kds-color-error-main); /* Rojo - Invalid */
1498
+ }
1499
+
1500
+ /* === ALTURA PERSONALIZADA === */
1501
+ .field {
1502
+ --_input: 3.625rem; /* 58px (vs 48px default BeerCSS) */
1503
+ --_start: 1.4rem; /* Posición del label ajustada proporcionalmente */
1504
+ }
1505
+
1506
+ /* === TRANSICIONES SUAVES === */
1507
+ .field > :is(input, textarea, select) {
1508
+ transition: border-color 0.2s, box-shadow 0.2s, outline-color 0.2s;
1509
+ }
1510
+
1511
+ /* ==========================================
1512
+ NOTCH VISIBILITY (opacity)
1513
+ ========================================== */
1514
+
1515
+ /* Ocultar notch por defecto */
1516
+ .field.label.border:not(.fill) > label::after {
1517
+ opacity: 0;
1518
+ }
1519
+
1520
+ /* Mostrar notch cuando label flota (tiene valor O focus) */
1521
+ .field.label.border:not(.fill) > :is(
1522
+ :focus + label,
1523
+ input:not(:placeholder-shown) + label,
1524
+ textarea:not(:placeholder-shown) + label,
1525
+ select + label
1526
+ )::after {
1527
+ opacity: 1;
1528
+ }
1529
+
1530
+ /* ==========================================
1531
+ BORDER COLOR
1532
+ Notch + Input border cambian en hover - con transición suave
1533
+ ========================================== */
1534
+
1535
+ /* Agregar transición al notch (BeerCSS usa transition: none, lo sobrescribimos) */
1536
+ .field.label.border:not(.fill) > label::after {
1537
+ transition: border-color 0.2s, opacity 0.2s;
1538
+ }
1539
+
1540
+ /* Estado normal: usa --outline (viene de BeerCSS) */
1541
+
1542
+ /* Hover SIN focus: cambiar color del notch Y del borde del input */
1543
+ .field.label.border:not(.fill):hover:not(:focus-within) > label::after {
1544
+ border-block-start-color: var(--kds-color-input-hover-border);
1545
+ }
1546
+
1547
+ .field.label.border:not(.fill):hover:not(:focus-within) > :is(input, textarea, select) {
1548
+ border-color: var(--kds-color-input-hover-border);
1549
+ }
1550
+
1551
+ /* Focus: usar primary (mayor especificidad, gana sobre hover) */
1552
+ .field.label.border:not(.fill):focus-within > label::after {
1553
+ border-block-start-color: var(--primary);
1554
+ }
1555
+
1556
+ .field.label.border:not(.fill):focus-within > :is(input, textarea, select) {
1557
+ border-color: var(--primary);
1558
+ }
1559
+
1560
+ /* ==========================================
1561
+ INVALID STATE (error)
1562
+ Error siempre gana - mayor especificidad que hover y focus
1563
+ ========================================== */
1564
+
1565
+ /* Invalid: notch rojo (gana sobre hover y focus) */
1566
+ .field.label.border:not(.fill).invalid > label::after {
1567
+ border-block-start-color: var(--error);
1568
+ }
1569
+
1570
+ /* Invalid: borde del input rojo (gana sobre hover y focus) */
1571
+ .field.label.border:not(.fill).invalid > :is(input, textarea, select) {
1572
+ border-color: var(--error);
1573
+ }
1574
+
1575
+ /* Invalid + hover: mantener rojo (no cambiar a gris) */
1576
+ .field.label.border:not(.fill).invalid:hover > label::after {
1577
+ border-block-start-color: var(--error);
1578
+ }
1579
+
1580
+ .field.label.border:not(.fill).invalid:hover > :is(input, textarea, select) {
1581
+ border-color: var(--error);
1582
+ }
1583
+
1584
+ /* Invalid + focus: mantener rojo (no cambiar a morado) */
1585
+ .field.label.border:not(.fill).invalid:focus-within > label::after {
1586
+ border-block-start-color: var(--error);
1587
+ }
1588
+
1589
+ .field.label.border:not(.fill).invalid:focus-within > :is(input, textarea, select) {
1590
+ border-color: var(--error);
1591
+ }
1592
+
1593
+ /* ==========================================
1594
+ SELECT DROPDOWN ARROW
1595
+ Asegurar que el dropdown arrow sea visible
1596
+ ========================================== */
1597
+
1598
+ /* Select: mantener appearance nativa para mostrar el dropdown arrow */
1599
+ .field select {
1600
+ /* BeerCSS puede estar ocultando el arrow, aseguramos que sea visible */
1601
+ appearance: auto;
1602
+ -webkit-appearance: auto;
1603
+ -moz-appearance: auto;
1604
+
1605
+ /* Asegurar que el arrow nativo tenga espacio */
1606
+ padding-right: var(--kds-spacing-10); /* 40px */
1607
+ background-position: right var(--kds-spacing-4) center; /* 16px desde el borde */
1608
+ background-repeat: no-repeat;
1609
+ background-size: var(--kds-spacing-5); /* 20px */
1610
+ }
1611
+
1612
+ /* ==========================================
1613
+ HELPER TEXT (mensaje debajo del input)
1614
+ Usando tokens de diseño
1615
+ ========================================== */
1616
+
1617
+ /* Helper text: output o span.helper */
1618
+ .field > :is(output, .helper, span.helper) {
1619
+ display: block;
1620
+ font-family: var(--kds-font-family-primary); /* Public Sans */
1621
+ font-weight: var(--kds-font-weight-regular); /* 400 */
1622
+ font-size: var(--kds-font-size-xs); /* 0.75rem / 12px */
1623
+ line-height: var(--kds-line-height-relaxed); /* 1.66 */
1624
+ color: var(--kds-color-text-secondary); /* Gris normal */
1625
+ padding: 0.25rem 1rem 0 1rem;
1626
+ margin: 0;
1627
+ }
1628
+
1629
+ /* Helper text en estado error */
1630
+ .field.invalid > :is(output, .helper, span.helper) {
1631
+ color: var(--error); /* Rojo error */
1632
+ }
1633
+
1634
+ /* ==========================================
1635
+ LABEL COLOR
1636
+ Mantener sincronizado con border
1637
+ ========================================== */
1638
+
1639
+ /* Estado normal: color secundario (60% opacity) */
1640
+ .field.label > label {
1641
+ color: var(--kds-color-text-secondary);
1642
+ }
1643
+
1644
+ /* Hover SIN focus: más oscuro (70% opacity) */
1645
+ .field.label:hover:not(:focus-within) > label {
1646
+ color: rgba(0, 0, 0, 0.7);
1647
+ }
1648
+
1649
+ /* Focus: primary purple (BeerCSS ya lo hace, pero aseguramos) */
1650
+ .field.label:focus-within > label {
1651
+ color: var(--primary);
1652
+ }
1653
+
1654
+ /* ========================================
1655
+ Snackbar Components (Material Design 3)
1656
+ Floating notifications at bottom of screen
1657
+ ======================================== */
1658
+
1659
+ /* Base snackbar - extends BeerCSS .snackbar */
1660
+ .kds-snackbar {
1661
+ position: fixed;
1662
+ bottom: var(--kds-spacing-3);
1663
+ left: 50%;
1664
+ transform: translateX(-50%);
1665
+ z-index: var(--kds-z-index-snackbar);
1666
+
1667
+ /* Layout */
1668
+ display: flex;
1669
+ align-items: center;
1670
+ gap: var(--kds-spacing-2);
1671
+
1672
+ /* Sizing */
1673
+ min-width: 344px;
1674
+ max-width: 672px;
1675
+ padding: var(--kds-spacing-2) var(--kds-spacing-3);
1676
+
1677
+ /* Styling */
1678
+ border-radius: var(--kds-radius-sm);
1679
+ box-shadow: var(--kds-shadow-8);
1680
+
1681
+ /* Typography */
1682
+ font-family: var(--kds-font-family-primary);
1683
+ font-size: var(--kds-font-size-sm);
1684
+ font-weight: var(--kds-font-weight-medium);
1685
+ line-height: var(--kds-line-height-normal);
1686
+
1687
+ /* Animation */
1688
+ animation: kds-snackbar-in 0.3s cubic-bezier(0.4, 0, 0.2, 1);
1689
+ }
1690
+
1691
+ /* Snackbar animation */
1692
+ @keyframes kds-snackbar-in {
1693
+ from {
1694
+ transform: translateX(-50%) translateY(100px);
1695
+ opacity: 0;
1696
+ }
1697
+ to {
1698
+ transform: translateX(-50%) translateY(0);
1699
+ opacity: 1;
1700
+ }
1701
+ }
1702
+
1703
+ /* Icon */
1704
+ .kds-snackbar-icon {
1705
+ flex-shrink: 0;
1706
+ font-size: var(--kds-spacing-button-icon-size);
1707
+ min-width: var(--kds-spacing-button-icon-size);
1708
+ min-height: var(--kds-spacing-button-icon-size);
1709
+ }
1710
+
1711
+ /* Content */
1712
+ .kds-snackbar-content {
1713
+ flex: 1;
1714
+ min-width: 0;
1715
+ }
1716
+
1717
+ /* Action button (optional) */
1718
+ .kds-snackbar-action {
1719
+ flex-shrink: 0;
1720
+ }
1721
+
1722
+ /* Snackbar Variants */
1723
+ .kds-snackbar.success {
1724
+ background: var(--kds-snackbar-success-bg);
1725
+ border: 1px solid var(--kds-color-success-main);
1726
+ color: var(--kds-color-success-main);
1727
+ }
1728
+
1729
+ .kds-snackbar.success .kds-snackbar-icon {
1730
+ color: var(--kds-color-success-main);
1731
+ }
1732
+
1733
+ .kds-snackbar.warning {
1734
+ background: var(--kds-snackbar-warning-bg);
1735
+ border: 1px solid var(--kds-color-warning-main);
1736
+ color: var(--kds-color-warning-main);
1737
+ }
1738
+
1739
+ .kds-snackbar.warning .kds-snackbar-icon {
1740
+ color: var(--kds-color-warning-main);
1741
+ }
1742
+
1743
+ .kds-snackbar.error {
1744
+ background: var(--kds-snackbar-error-bg);
1745
+ border: 1px solid var(--kds-color-error-main);
1746
+ color: var(--kds-color-error-main);
1747
+ }
1748
+
1749
+ .kds-snackbar.error .kds-snackbar-icon {
1750
+ color: var(--kds-color-error-main);
1751
+ }
1752
+
1753
+ .kds-snackbar.info {
1754
+ background: var(--kds-snackbar-info-bg);
1755
+ border: 1px solid var(--kds-color-info-main);
1756
+ color: var(--kds-color-info-main);
1757
+ }
1758
+
1759
+ .kds-snackbar.info .kds-snackbar-icon {
1760
+ color: var(--kds-color-info-main);
1761
+ }
1762
+
1763
+ /* Static variant for showcase/demo purposes */
1764
+ .kds-snackbar.static {
1765
+ position: relative;
1766
+ left: auto;
1767
+ bottom: auto;
1768
+ transform: none;
1769
+ margin-bottom: var(--kds-spacing-3);
1770
+ animation: none;
1771
+ }
1772
+
1773
+ /* Mobile responsive */
1774
+ @media (max-width: 768px) {
1775
+ .kds-snackbar {
1776
+ min-width: calc(100vw - var(--kds-spacing-4));
1777
+ max-width: calc(100vw - var(--kds-spacing-4));
1778
+ left: var(--kds-spacing-2);
1779
+ right: var(--kds-spacing-2);
1780
+ transform: translateX(0);
1781
+ }
1782
+
1783
+ @keyframes kds-snackbar-in {
1784
+ from {
1785
+ transform: translateY(100px);
1786
+ opacity: 0;
1787
+ }
1788
+ to {
1789
+ transform: translateY(0);
1790
+ opacity: 1;
1791
+ }
1792
+ }
1793
+ }
1794
+
1795
+ /* ========================================
1796
+ Material Symbols Icon Sizing
1797
+ ======================================== */
1798
+
1799
+ .material-symbols-outlined {
1800
+ font-variation-settings:
1801
+ 'FILL' 0,
1802
+ 'wght' 400,
1803
+ 'GRAD' 0,
1804
+ 'opsz' 24;
1805
+ min-width: 24px;
1806
+ min-height: 24px;
1807
+ display: inline-flex;
1808
+ align-items: center;
1809
+ justify-content: center;
1810
+ }
1811
+
1812
+ /* Filled icons for specific contexts */
1813
+ .icon-filled {
1814
+ font-variation-settings:
1815
+ 'FILL' 1,
1816
+ 'wght' 400,
1817
+ 'GRAD' 0,
1818
+ 'opsz' 24;
1819
+ }
1820
+
1821
+ /* ========================================
1822
+ Width & Display Utilities
1823
+ ======================================== */
1824
+
1825
+ .kds-w-full {
1826
+ width: 100%;
1827
+ }
1828
+
1829
+ .kds-max-w-sm {
1830
+ max-width: 400px;
1831
+ }
1832
+
1833
+ .kds-max-w-md {
1834
+ max-width: 600px;
1835
+ }
1836
+
1837
+ .kds-max-w-lg {
1838
+ max-width: 800px;
1839
+ }
1840
+
1841
+ /* Status card content styling */
1842
+ .kds-card-status .status-content strong {
1843
+ display: block;
1844
+ font-weight: var(--kds-font-weight-semibold);
1845
+ margin-bottom: var(--kds-spacing-1);
1846
+ }
1847
+
1848
+ .kds-card-status .status-content p {
1849
+ margin: 0;
1850
+ font-size: var(--kds-font-size-sm);
1851
+ color: var(--on-surface-variant, rgba(0, 0, 0, 0.60));
1852
+ }
1853
+
1854
+ /* Status icon colors */
1855
+ .kds-card-status .status-icon.success {
1856
+ color: var(--kds-color-success);
1857
+ }
1858
+
1859
+ .kds-card-status .status-icon.warning {
1860
+ color: var(--kds-color-warning);
1861
+ }
1862
+
1863
+ .kds-card-status .status-icon.error {
1864
+ color: var(--kds-color-error);
1865
+ }
1866
+
1867
+ .kds-card-status .status-icon.info {
1868
+ color: var(--kds-color-info);
1869
+ }
1870
+
1871
+ /* Card action buttons full width */
1872
+ .kds-card-flow button,
1873
+ .kds-card-plan button {
1874
+ width: 100%;
1875
+ }
1876
+
1877
+ /* Flow card content spacing */
1878
+ .kds-card-flow h3 {
1879
+ margin-top: 0;
1880
+ }
1881
+
1882
+ .kds-card-flow ul {
1883
+ margin: var(--kds-spacing-4) 0;
1884
+ padding-left: var(--kds-spacing-5);
1885
+ }
1886
+
1887
+ /* Plan card title */
1888
+ .kds-card-plan h3 {
1889
+ margin: 0;
1890
+ }
1891
+
1892
+ /* ========================================
1893
+ CHECKBOX & RADIO GROUPS
1894
+ Form selection components
1895
+ ======================================== */
1896
+
1897
+ /* Checkbox Group */
1898
+ .kds-checkbox-group {
1899
+ display: flex;
1900
+ flex-direction: column;
1901
+ gap: var(--kds-spacing-3);
1902
+ }
1903
+
1904
+ /* Radio Group */
1905
+ .kds-radio-group {
1906
+ display: flex;
1907
+ flex-direction: column;
1908
+ gap: var(--kds-spacing-3);
1909
+ }
1910
+
1911
+ /* Checkbox Label - BeerCSS override */
1912
+ label.checkbox,
1913
+ label.radio {
1914
+ display: flex;
1915
+ align-items: center;
1916
+ padding: var(--kds-spacing-3) var(--kds-spacing-4);
1917
+ border-radius: 8px;
1918
+ cursor: pointer;
1919
+ transition: background-color 0.2s;
1920
+ font-size: 16px;
1921
+ line-height: 1.5;
1922
+ color: #111827;
1923
+ }
1924
+
1925
+ label.checkbox:hover,
1926
+ label.radio:hover {
1927
+ background-color: #F9FAFB;
1928
+ }
1929
+
1930
+ /* Checkbox/Radio Input */
1931
+ label.checkbox input[type="checkbox"],
1932
+ label.radio input[type="radio"] {
1933
+ width: 20px;
1934
+ height: 20px;
1935
+ margin-right: var(--kds-spacing-3);
1936
+ cursor: pointer;
1937
+ flex-shrink: 0;
1938
+ }
1939
+
1940
+ /* Checkbox/Radio Text */
1941
+ label.checkbox span,
1942
+ label.radio span {
1943
+ flex: 1;
1944
+ cursor: pointer;
1945
+ }
1946
+
1947
+ /* Checked state */
1948
+ label.checkbox input[type="checkbox"]:checked,
1949
+ label.radio input[type="radio"]:checked {
1950
+ accent-color: var(--primary);
1951
+ }
1952
+
1953
+ /* Disabled state */
1954
+ label.checkbox input[type="checkbox"]:disabled,
1955
+ label.radio input[type="radio"]:disabled {
1956
+ cursor: not-allowed;
1957
+ opacity: 0.5;
1958
+ }
1959
+
1960
+ label.checkbox:has(input:disabled),
1961
+ label.radio:has(input:disabled) {
1962
+ cursor: not-allowed;
1963
+ opacity: 0.6;
1964
+ }
1965
+
1966
+ /* ========================================
1967
+ ONBOARDING COMPONENTS
1968
+ Multi-stage onboarding flow with form validation
1969
+ ======================================== */
1970
+
1971
+ /* Onboarding Container - Main wrapper for all stages */
1972
+ .kds-onboarding-container {
1973
+ display: flex;
1974
+ flex-direction: column;
1975
+ min-height: 100vh;
1976
+ background: var(--kds-surface-background);
1977
+ }
1978
+
1979
+ /* Onboarding Header - Contains stepper and progress */
1980
+ .kds-onboarding-header {
1981
+ background: #FFFFFF;
1982
+ border-bottom: 1px solid #E5E7EB;
1983
+ position: sticky;
1984
+ top: 0;
1985
+ z-index: 100;
1986
+ }
1987
+
1988
+ /* Onboarding Main - Content area */
1989
+ .kds-onboarding-main {
1990
+ flex: 1 0 auto;
1991
+ display: flex;
1992
+ flex-direction: column;
1993
+ padding: var(--kds-onboarding-padding);
1994
+ }
1995
+
1996
+ /* Onboarding Footer - Action buttons */
1997
+ .kds-onboarding-footer {
1998
+ flex-shrink: 0;
1999
+ background: #FFFFFF;
2000
+ border-top: 1px solid #E5E7EB;
2001
+ padding: var(--kds-spacing-4) var(--kds-spacing-6);
2002
+ display: flex;
2003
+ justify-content: space-between;
2004
+ align-items: center;
2005
+ gap: var(--kds-spacing-3);
2006
+ position: sticky;
2007
+ bottom: 0;
2008
+ z-index: 100;
2009
+ }
2010
+
2011
+ .kds-onboarding-footer .button-group {
2012
+ display: flex;
2013
+ gap: var(--kds-spacing-3);
2014
+ align-items: center;
2015
+ }
2016
+
2017
+ @media (max-width: 768px) {
2018
+ .kds-onboarding-footer {
2019
+ flex-direction: column;
2020
+ align-items: stretch;
2021
+ }
2022
+
2023
+ .kds-onboarding-footer .button-group {
2024
+ width: 100%;
2025
+ flex-direction: column;
2026
+ }
2027
+
2028
+ .kds-onboarding-footer button {
2029
+ width: 100% !important;
2030
+ }
2031
+ }
2032
+
2033
+ /* Stage Layout - Individual stage wrapper */
2034
+ .kds-stage {
2035
+ max-width: var(--kds-onboarding-max-width);
2036
+ margin: 0 auto;
2037
+ width: 100%;
2038
+ }
2039
+
2040
+ /* Stage Header - Title and subtitle */
2041
+ .kds-stage-header {
2042
+ text-align: center;
2043
+ margin-bottom: var(--kds-spacing-8);
2044
+ }
2045
+
2046
+ /* Stage Content - Main form/content area */
2047
+ .kds-stage-content {
2048
+ display: flex;
2049
+ flex-direction: column;
2050
+ gap: var(--kds-onboarding-gap);
2051
+ }
2052
+
2053
+ /* Stage Actions - Bottom button area (if not using sticky footer) */
2054
+ .kds-stage-actions {
2055
+ display: flex;
2056
+ justify-content: space-between;
2057
+ gap: var(--kds-spacing-3);
2058
+ margin-top: var(--kds-spacing-8);
2059
+ }
2060
+
2061
+ @media (max-width: 768px) {
2062
+ .kds-stage-actions {
2063
+ flex-direction: column;
2064
+ }
2065
+
2066
+ .kds-stage-actions button {
2067
+ width: 100% !important;
2068
+ }
2069
+ }
2070
+
2071
+ /* Stage Section - Grouping related fields */
2072
+ .kds-stage-section {
2073
+ background: #FFFFFF;
2074
+ border-radius: var(--kds-radius-lg);
2075
+ padding: var(--kds-spacing-6);
2076
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
2077
+ }
2078
+
2079
+ .kds-stage-section + .kds-stage-section {
2080
+ margin-top: var(--kds-spacing-6);
2081
+ }
2082
+
2083
+ .kds-stage-section-title {
2084
+ font-size: var(--kds-font-size-lg);
2085
+ font-weight: var(--kds-font-weight-semibold);
2086
+ color: #111827;
2087
+ margin-bottom: var(--kds-spacing-4);
2088
+ }
2089
+
2090
+ .kds-stage-section-description {
2091
+ font-size: var(--kds-font-size-sm);
2092
+ color: #6B7280;
2093
+ margin-bottom: var(--kds-spacing-4);
2094
+ line-height: 1.5;
2095
+ }
2096
+
2097
+ /* ========================================
2098
+ FILE UPLOAD COMPONENT
2099
+ Drag-and-drop file upload with preview
2100
+ ======================================== */
2101
+
2102
+ .kds-file-upload {
2103
+ width: 100%;
2104
+ }
2105
+
2106
+ /* Upload Zone - Drag and drop area */
2107
+ .kds-file-upload-zone {
2108
+ border: 2px dashed var(--kds-upload-zone-border);
2109
+ border-radius: var(--kds-radius-lg);
2110
+ background: var(--kds-upload-zone-bg);
2111
+ padding: var(--kds-spacing-8);
2112
+ text-align: center;
2113
+ cursor: pointer;
2114
+ transition: all 0.3s ease;
2115
+ position: relative;
2116
+ }
2117
+
2118
+ .kds-file-upload-zone:hover {
2119
+ border-color: var(--kds-upload-zone-border-hover);
2120
+ background: #F3F4F6;
2121
+ }
2122
+
2123
+ .kds-file-upload-zone.dragover {
2124
+ border-color: var(--kds-upload-zone-border-drag);
2125
+ background: var(--kds-color-primary-50);
2126
+ box-shadow: 0 0 0 4px rgba(131, 71, 173, 0.1);
2127
+ }
2128
+
2129
+ .kds-file-upload-zone.error {
2130
+ border-color: var(--kds-upload-zone-border-error);
2131
+ background: var(--kds-alert-error-bg);
2132
+ }
2133
+
2134
+ .kds-file-upload-zone.success {
2135
+ border-color: var(--kds-upload-zone-border-success);
2136
+ background: var(--kds-alert-success-bg);
2137
+ }
2138
+
2139
+ /* Upload zone content */
2140
+ .kds-file-upload-icon {
2141
+ font-size: 48px;
2142
+ min-width: 48px;
2143
+ min-height: 48px;
2144
+ color: #9CA3AF;
2145
+ margin-bottom: var(--kds-spacing-3);
2146
+ }
2147
+
2148
+ .kds-file-upload-zone.dragover .kds-file-upload-icon {
2149
+ color: var(--kds-color-primary-500);
2150
+ }
2151
+
2152
+ .kds-file-upload-text {
2153
+ font-size: var(--kds-font-size-base);
2154
+ font-weight: var(--kds-font-weight-medium);
2155
+ color: #111827;
2156
+ margin-bottom: var(--kds-spacing-2);
2157
+ }
2158
+
2159
+ .kds-file-upload-button {
2160
+ color: var(--primary);
2161
+ text-decoration: underline;
2162
+ cursor: pointer;
2163
+ font-weight: 600;
2164
+ }
2165
+
2166
+ .kds-file-upload-button:hover {
2167
+ color: var(--kds-color-primary-700);
2168
+ }
2169
+
2170
+ .kds-file-upload-helper {
2171
+ font-size: var(--kds-font-size-sm);
2172
+ color: #6B7280;
2173
+ display: block;
2174
+ margin-top: var(--kds-spacing-1);
2175
+ }
2176
+
2177
+ .kds-file-upload-hint {
2178
+ font-size: var(--kds-font-size-sm);
2179
+ color: #6B7280;
2180
+ }
2181
+
2182
+ /* Hidden file input */
2183
+ .kds-file-upload input[type="file"] {
2184
+ display: none;
2185
+ }
2186
+
2187
+ /* File Preview Area */
2188
+ .kds-file-upload-preview {
2189
+ margin-top: var(--kds-spacing-4);
2190
+ display: flex;
2191
+ flex-direction: column;
2192
+ gap: var(--kds-spacing-3);
2193
+ }
2194
+
2195
+ /* Individual File Item */
2196
+ .kds-file-upload-item {
2197
+ display: flex;
2198
+ align-items: center;
2199
+ gap: var(--kds-spacing-3);
2200
+ padding: var(--kds-spacing-3);
2201
+ background: var(--kds-upload-item-bg);
2202
+ border: 1px solid var(--kds-upload-item-border);
2203
+ border-radius: var(--kds-radius-md);
2204
+ transition: all 0.2s ease;
2205
+ }
2206
+
2207
+ .kds-file-upload-item:hover {
2208
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2209
+ }
2210
+
2211
+ /* File icon */
2212
+ .kds-file-upload-item-icon {
2213
+ flex-shrink: 0;
2214
+ width: 40px;
2215
+ height: 40px;
2216
+ min-width: 40px;
2217
+ min-height: 40px;
2218
+ display: flex;
2219
+ align-items: center;
2220
+ justify-content: center;
2221
+ background: var(--kds-color-primary-50);
2222
+ border-radius: var(--kds-radius-md);
2223
+ color: var(--kds-color-primary-500);
2224
+ font-size: 20px;
2225
+ }
2226
+
2227
+ .kds-file-upload-item-icon i {
2228
+ min-width: 20px;
2229
+ min-height: 20px;
2230
+ }
2231
+
2232
+ /* File info */
2233
+ .kds-file-upload-item-info {
2234
+ flex: 1;
2235
+ min-width: 0;
2236
+ }
2237
+
2238
+ .kds-file-upload-item-name {
2239
+ font-size: var(--kds-font-size-sm);
2240
+ font-weight: var(--kds-font-weight-medium);
2241
+ color: #111827;
2242
+ white-space: nowrap;
2243
+ overflow: hidden;
2244
+ text-overflow: ellipsis;
2245
+ }
2246
+
2247
+ .kds-file-upload-item-meta {
2248
+ font-size: var(--kds-font-size-xs);
2249
+ color: #6B7280;
2250
+ margin-top: 2px;
2251
+ }
2252
+
2253
+ .kds-file-upload-item-size {
2254
+ font-size: var(--kds-font-size-xs);
2255
+ color: #6B7280;
2256
+ margin-top: 2px;
2257
+ }
2258
+
2259
+ /* File status */
2260
+ .kds-file-upload-item-status {
2261
+ flex-shrink: 0;
2262
+ font-size: 20px;
2263
+ }
2264
+
2265
+ .kds-file-upload-item-status.success {
2266
+ color: var(--kds-color-success);
2267
+ }
2268
+
2269
+ .kds-file-upload-item-status.error {
2270
+ color: var(--kds-color-error);
2271
+ }
2272
+
2273
+ .kds-file-upload-item-status.uploading {
2274
+ color: var(--kds-color-info);
2275
+ }
2276
+
2277
+ /* Remove button */
2278
+ .kds-file-upload-item-remove {
2279
+ flex-shrink: 0;
2280
+ background: transparent;
2281
+ border: none;
2282
+ color: #9CA3AF;
2283
+ cursor: pointer;
2284
+ padding: var(--kds-spacing-1);
2285
+ border-radius: var(--kds-radius-sm);
2286
+ transition: all 0.2s ease;
2287
+ font-size: 20px;
2288
+ display: flex;
2289
+ align-items: center;
2290
+ justify-content: center;
2291
+ }
2292
+
2293
+ .kds-file-upload-item-remove:hover {
2294
+ background: var(--kds-alert-error-bg);
2295
+ color: var(--kds-color-error);
2296
+ }
2297
+
2298
+ /* Progress bar (for async uploads) */
2299
+ .kds-file-upload-progress {
2300
+ height: 4px;
2301
+ background: #E5E7EB;
2302
+ border-radius: 2px;
2303
+ overflow: hidden;
2304
+ margin-top: var(--kds-spacing-2);
2305
+ }
2306
+
2307
+ .kds-file-upload-progress-bar {
2308
+ height: 100%;
2309
+ background: var(--kds-color-primary-500);
2310
+ transition: width 0.3s ease;
2311
+ }
2312
+
2313
+ /* ========================================
2314
+ OTP INPUT COMPONENT
2315
+ 6-digit one-time password input
2316
+ ======================================== */
2317
+
2318
+ .kds-otp-input {
2319
+ display: flex;
2320
+ justify-content: center;
2321
+ gap: var(--kds-spacing-3);
2322
+ margin: var(--kds-spacing-6) 0;
2323
+ }
2324
+
2325
+ .kds-otp-digit {
2326
+ width: var(--kds-otp-digit-size);
2327
+ height: var(--kds-otp-digit-height);
2328
+ font-size: var(--kds-font-size-2xl);
2329
+ font-weight: var(--kds-font-weight-bold);
2330
+ text-align: center;
2331
+ border: 2px solid var(--kds-otp-digit-border);
2332
+ border-radius: var(--kds-radius-md);
2333
+ background: var(--kds-otp-digit-bg);
2334
+ transition: all 0.2s ease;
2335
+ outline: none;
2336
+ color: #111827;
2337
+ }
2338
+
2339
+ .kds-otp-digit:focus {
2340
+ border-color: var(--kds-otp-digit-border-focus);
2341
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
2342
+ }
2343
+
2344
+ .kds-otp-digit:not(:placeholder-shown) {
2345
+ background: var(--kds-otp-digit-bg-filled);
2346
+ border-color: var(--kds-color-success);
2347
+ }
2348
+
2349
+ .kds-otp-digit.error {
2350
+ border-color: var(--kds-color-error);
2351
+ background: var(--kds-alert-error-bg);
2352
+ }
2353
+
2354
+ /* Mobile responsive */
2355
+ @media (max-width: 480px) {
2356
+ .kds-otp-input {
2357
+ gap: var(--kds-spacing-2);
2358
+ }
2359
+
2360
+ .kds-otp-digit {
2361
+ width: 48px;
2362
+ height: 56px;
2363
+ font-size: var(--kds-font-size-xl);
2364
+ }
2365
+ }
2366
+
2367
+ /* ========================================
2368
+ BANK SELECTOR GRID
2369
+ Grid of selectable bank cards
2370
+ ======================================== */
2371
+
2372
+ .kds-bank-grid {
2373
+ display: grid;
2374
+ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
2375
+ gap: var(--kds-spacing-4);
2376
+ margin: var(--kds-spacing-4) 0;
2377
+ }
2378
+
2379
+ @media (max-width: 768px) {
2380
+ .kds-bank-grid {
2381
+ grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
2382
+ gap: var(--kds-spacing-3);
2383
+ }
2384
+ }
2385
+
2386
+ @media (max-width: 480px) {
2387
+ .kds-bank-grid {
2388
+ grid-template-columns: repeat(3, 1fr);
2389
+ gap: var(--kds-spacing-2);
2390
+ }
2391
+ }
2392
+
2393
+ /* Individual Bank Item */
2394
+ .kds-bank-item {
2395
+ aspect-ratio: 1;
2396
+ display: flex;
2397
+ flex-direction: column;
2398
+ align-items: center;
2399
+ justify-content: center;
2400
+ padding: var(--kds-spacing-3);
2401
+ border: 2px solid var(--kds-bank-item-border);
2402
+ border-radius: var(--kds-radius-lg);
2403
+ background: #FFFFFF;
2404
+ cursor: pointer;
2405
+ transition: all 0.3s ease;
2406
+ position: relative;
2407
+ }
2408
+
2409
+ .kds-bank-item:hover {
2410
+ border-color: var(--kds-bank-item-border-hover);
2411
+ background: var(--kds-bank-item-bg-hover);
2412
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
2413
+ }
2414
+
2415
+ .kds-bank-item.selected {
2416
+ border-color: var(--kds-bank-item-border-selected);
2417
+ background: var(--kds-bank-item-bg-selected);
2418
+ box-shadow: 0 4px 6px rgba(59, 130, 246, 0.2);
2419
+ }
2420
+
2421
+ /* Bank logo */
2422
+ .kds-bank-item-logo {
2423
+ width: 100%;
2424
+ height: auto;
2425
+ max-width: 80px;
2426
+ margin-bottom: var(--kds-spacing-2);
2427
+ object-fit: contain;
2428
+ }
2429
+
2430
+ /* Bank name */
2431
+ .kds-bank-item-name {
2432
+ font-size: var(--kds-font-size-xs);
2433
+ font-weight: var(--kds-font-weight-medium);
2434
+ color: #111827;
2435
+ text-align: center;
2436
+ line-height: 1.3;
2437
+ }
2438
+
2439
+ /* Selected checkmark */
2440
+ .kds-bank-item-check {
2441
+ position: absolute;
2442
+ top: 8px;
2443
+ right: 8px;
2444
+ width: 24px;
2445
+ height: 24px;
2446
+ background: var(--kds-color-primary-500);
2447
+ border-radius: 50%;
2448
+ display: none;
2449
+ align-items: center;
2450
+ justify-content: center;
2451
+ color: white;
2452
+ font-size: 14px;
2453
+ }
2454
+
2455
+ .kds-bank-item.selected .kds-bank-item-check {
2456
+ display: flex;
2457
+ }
2458
+
2459
+ .kds-bank-item-check::after {
2460
+ content: "✓";
2461
+ font-weight: 700;
2462
+ }
2463
+
2464
+ /* Mobile adjustments */
2465
+ @media (max-width: 480px) {
2466
+ .kds-bank-item {
2467
+ padding: var(--kds-spacing-2);
2468
+ }
2469
+
2470
+ .kds-bank-item-logo {
2471
+ max-width: 60px;
2472
+ }
2473
+
2474
+ .kds-bank-item-name {
2475
+ font-size: 10px;
2476
+ }
2477
+
2478
+ .kds-bank-item-check {
2479
+ width: 20px;
2480
+ height: 20px;
2481
+ font-size: 12px;
2482
+ top: 4px;
2483
+ right: 4px;
2484
+ }
2485
+ }
2486
+
2487
+ /* ========================================
2488
+ MODAL BASE CONFIGURATION
2489
+ Override BeerCSS modal defaults
2490
+ ======================================== */
2491
+
2492
+ dialog.modal {
2493
+ background: var(--kds-modal-bg);
2494
+ border: none;
2495
+ border-radius: var(--kds-modal-border-radius);
2496
+ padding: var(--kds-modal-padding);
2497
+ max-width: var(--kds-modal-max-width);
2498
+ box-shadow: var(--kds-modal-shadow);
2499
+ }
2500
+
2501
+ dialog.modal::backdrop {
2502
+ background: var(--kds-modal-backdrop);
2503
+ }
2504
+
2505
+ /* ========================================
2506
+ KYC BLOCKING MODAL
2507
+ Warning modal for high-risk sectors
2508
+ ======================================== */
2509
+
2510
+ .kds-kyc-modal {
2511
+ background: var(--kds-modal-bg);
2512
+ border: none;
2513
+ border-radius: var(--kds-modal-border-radius);
2514
+ padding: var(--kds-modal-padding);
2515
+ max-width: var(--kds-modal-max-width);
2516
+ margin: 0 auto;
2517
+ box-shadow: var(--kds-modal-shadow);
2518
+ }
2519
+
2520
+ .kds-kyc-modal-icon {
2521
+ text-align: center;
2522
+ margin-bottom: var(--kds-spacing-4);
2523
+ }
2524
+
2525
+ .kds-kyc-modal-icon i {
2526
+ font-size: 64px;
2527
+ min-width: 64px;
2528
+ min-height: 64px;
2529
+ color: var(--kds-modal-icon-warning);
2530
+ }
2531
+
2532
+ .kds-kyc-modal-title {
2533
+ font-size: var(--kds-font-size-2xl);
2534
+ font-weight: var(--kds-font-weight-bold);
2535
+ color: var(--kds-modal-title-color);
2536
+ text-align: center;
2537
+ margin-bottom: var(--kds-spacing-4);
2538
+ }
2539
+
2540
+ .kds-kyc-modal-message {
2541
+ font-size: var(--kds-font-size-base);
2542
+ color: var(--kds-modal-text-color);
2543
+ line-height: 1.6;
2544
+ margin-bottom: var(--kds-spacing-6);
2545
+ text-align: center;
2546
+ }
2547
+
2548
+ .kds-kyc-modal-contact {
2549
+ background: var(--kds-surface-elevated);
2550
+ border-radius: var(--kds-radius-md);
2551
+ padding: var(--kds-spacing-4);
2552
+ margin-bottom: var(--kds-spacing-6);
2553
+ border-left: 4px solid var(--primary);
2554
+ }
2555
+
2556
+ .kds-kyc-modal-contact strong {
2557
+ display: block;
2558
+ font-weight: var(--kds-font-weight-semibold);
2559
+ color: var(--kds-modal-title-color);
2560
+ margin-bottom: var(--kds-spacing-2);
2561
+ }
2562
+
2563
+ .kds-kyc-modal-contact a {
2564
+ color: var(--kds-color-primary-500);
2565
+ text-decoration: none;
2566
+ font-weight: var(--kds-font-weight-medium);
2567
+ }
2568
+
2569
+ .kds-kyc-modal-contact a:hover {
2570
+ text-decoration: underline;
2571
+ }
2572
+
2573
+ .kds-kyc-modal-actions {
2574
+ display: flex;
2575
+ gap: var(--kds-spacing-3);
2576
+ justify-content: center;
2577
+ }
2578
+
2579
+ @media (max-width: 480px) {
2580
+ .kds-kyc-modal,
2581
+ dialog.modal {
2582
+ padding: var(--kds-modal-padding-mobile);
2583
+ max-width: var(--kds-modal-max-width-mobile);
2584
+ }
2585
+
2586
+ .kds-kyc-modal-icon i {
2587
+ font-size: 48px;
2588
+ min-width: 48px;
2589
+ min-height: 48px;
2590
+ }
2591
+
2592
+ .kds-kyc-modal-actions {
2593
+ flex-direction: column;
2594
+ }
2595
+
2596
+ .kds-kyc-modal-actions button {
2597
+ width: 100% !important;
2598
+ }
2599
+ }
2600
+
2601
+ /* ========================================
2602
+ WELCOME HERO SECTION
2603
+ Full-width gradient hero with CTA
2604
+ ======================================== */
2605
+
2606
+ .kds-welcome-hero {
2607
+ background: linear-gradient(135deg, var(--kds-welcome-gradient-start) 0%, var(--kds-welcome-gradient-end) 100%);
2608
+ color: white;
2609
+ padding: var(--kds-spacing-20) var(--kds-spacing-6);
2610
+ text-align: center;
2611
+ border-radius: 0;
2612
+ margin: 0;
2613
+ position: relative;
2614
+ overflow: hidden;
2615
+ }
2616
+
2617
+ /* Decorative circles */
2618
+ .kds-welcome-hero::before,
2619
+ .kds-welcome-hero::after {
2620
+ content: "";
2621
+ position: absolute;
2622
+ border-radius: 50%;
2623
+ background: rgba(255, 255, 255, 0.1);
2624
+ }
2625
+
2626
+ .kds-welcome-hero::before {
2627
+ width: 400px;
2628
+ height: 400px;
2629
+ top: -200px;
2630
+ right: -100px;
2631
+ }
2632
+
2633
+ .kds-welcome-hero::after {
2634
+ width: 300px;
2635
+ height: 300px;
2636
+ bottom: -150px;
2637
+ left: -50px;
2638
+ }
2639
+
2640
+ .kds-welcome-hero-content {
2641
+ position: relative;
2642
+ z-index: 1;
2643
+ max-width: 800px;
2644
+ margin: 0 auto;
2645
+ }
2646
+
2647
+ .kds-welcome-hero-icon {
2648
+ font-size: 80px;
2649
+ margin-bottom: var(--kds-spacing-4);
2650
+ opacity: 0.9;
2651
+ }
2652
+
2653
+ .kds-welcome-hero-icon i {
2654
+ width: auto !important;
2655
+ height: auto !important;
2656
+ font-size: 80px !important;
2657
+ min-width: 80px;
2658
+ min-height: 80px;
2659
+ }
2660
+
2661
+ /* Fix for benefit card icons - BeerCSS forces 24px, override for large icons */
2662
+ .kds-card-elevated i.icon-filled {
2663
+ width: auto !important;
2664
+ height: auto !important;
2665
+ min-width: 48px;
2666
+ min-height: 48px;
2667
+ }
2668
+
2669
+ .kds-welcome-hero-title {
2670
+ font-size: var(--kds-font-size-4xl);
2671
+ font-weight: var(--kds-font-weight-bold);
2672
+ margin-bottom: var(--kds-spacing-4);
2673
+ line-height: 1.2;
2674
+ }
2675
+
2676
+ .kds-welcome-hero-subtitle {
2677
+ font-size: var(--kds-font-size-xl);
2678
+ opacity: 0.95;
2679
+ margin-bottom: var(--kds-spacing-8);
2680
+ line-height: 1.5;
2681
+ }
2682
+
2683
+ .kds-welcome-hero-actions {
2684
+ display: flex;
2685
+ gap: var(--kds-spacing-4);
2686
+ justify-content: center;
2687
+ }
2688
+
2689
+
2690
+ @media (max-width: 768px) {
2691
+ .kds-welcome-hero {
2692
+ padding: var(--kds-spacing-12) var(--kds-spacing-4);
2693
+ }
2694
+
2695
+ .kds-welcome-hero-icon {
2696
+ font-size: 60px;
2697
+ }
2698
+
2699
+ .kds-welcome-hero-title {
2700
+ font-size: var(--kds-font-size-3xl);
2701
+ }
2702
+
2703
+ .kds-welcome-hero-subtitle {
2704
+ font-size: var(--kds-font-size-lg);
2705
+ }
2706
+
2707
+ .kds-welcome-hero-actions {
2708
+ flex-direction: column;
2709
+ align-items: stretch;
2710
+ }
2711
+
2712
+ .kds-welcome-hero-actions button {
2713
+ width: 100% !important;
2714
+ }
2715
+ }
2716
+
2717
+ /* ========================================
2718
+ CONTRACT ACCORDION
2719
+ Expandable terms and conditions
2720
+ ======================================== */
2721
+
2722
+ .kds-contract-accordion {
2723
+ border: 1px solid var(--kds-accordion-border);
2724
+ border-radius: var(--kds-radius-md);
2725
+ overflow: hidden;
2726
+ }
2727
+
2728
+ .kds-contract-accordion details {
2729
+ border-bottom: 1px solid var(--kds-accordion-border);
2730
+ }
2731
+
2732
+ .kds-contract-accordion details:last-child {
2733
+ border-bottom: none;
2734
+ }
2735
+
2736
+ .kds-contract-accordion summary {
2737
+ padding: var(--kds-spacing-4);
2738
+ background: var(--kds-accordion-header-bg);
2739
+ cursor: pointer;
2740
+ font-weight: var(--kds-font-weight-semibold);
2741
+ color: #111827;
2742
+ list-style: none;
2743
+ display: flex;
2744
+ justify-content: space-between;
2745
+ align-items: center;
2746
+ transition: background 0.2s ease;
2747
+ }
2748
+
2749
+ .kds-contract-accordion summary::-webkit-details-marker {
2750
+ display: none;
2751
+ }
2752
+
2753
+ .kds-contract-accordion summary:hover {
2754
+ background: #E5E7EB;
2755
+ }
2756
+
2757
+ .kds-contract-accordion summary::after {
2758
+ content: "expand_more";
2759
+ font-family: 'Material Symbols Outlined';
2760
+ font-size: 24px;
2761
+ transition: transform 0.3s ease;
2762
+ }
2763
+
2764
+ .kds-contract-accordion details[open] summary::after {
2765
+ transform: rotate(180deg);
2766
+ }
2767
+
2768
+ .kds-contract-accordion details[open] summary {
2769
+ background: var(--kds-accordion-bg-open);
2770
+ border-bottom: 1px solid var(--kds-accordion-border);
2771
+ }
2772
+
2773
+ .kds-contract-accordion-content {
2774
+ padding: var(--kds-spacing-4);
2775
+ background: var(--kds-accordion-bg-open);
2776
+ font-size: var(--kds-font-size-sm);
2777
+ line-height: 1.6;
2778
+ color: #374151;
2779
+ }
2780
+
2781
+ .kds-contract-accordion-content h4 {
2782
+ font-size: var(--kds-font-size-base);
2783
+ font-weight: var(--kds-font-weight-semibold);
2784
+ margin-top: var(--kds-spacing-4);
2785
+ margin-bottom: var(--kds-spacing-2);
2786
+ }
2787
+
2788
+ .kds-contract-accordion-content p {
2789
+ margin-bottom: var(--kds-spacing-3);
2790
+ }
2791
+
2792
+ .kds-contract-accordion-content ul,
2793
+ .kds-contract-accordion-content ol {
2794
+ margin-bottom: var(--kds-spacing-3);
2795
+ padding-left: var(--kds-spacing-5);
2796
+ }
2797
+
2798
+ /* ========================================
2799
+ SIGNATURE PAD
2800
+ Canvas-based signature capture
2801
+ ======================================== */
2802
+
2803
+ .kds-signature-pad {
2804
+ width: 100%;
2805
+ }
2806
+
2807
+ .kds-signature-canvas-wrapper {
2808
+ border: 2px solid var(--kds-signature-border);
2809
+ border-radius: var(--kds-radius-md);
2810
+ background: var(--kds-signature-bg);
2811
+ padding: var(--kds-spacing-2);
2812
+ margin-bottom: var(--kds-spacing-3);
2813
+ }
2814
+
2815
+ .kds-signature-canvas {
2816
+ display: block;
2817
+ width: 100%;
2818
+ height: 200px;
2819
+ border-radius: var(--kds-radius-sm);
2820
+ cursor: crosshair;
2821
+ touch-action: none;
2822
+ }
2823
+
2824
+ .kds-signature-actions {
2825
+ display: flex;
2826
+ gap: var(--kds-spacing-2);
2827
+ justify-content: flex-end;
2828
+ }
2829
+
2830
+ .kds-signature-clear {
2831
+ background: transparent !important;
2832
+ color: #6B7280 !important;
2833
+ border: 1px solid #D1D5DB !important;
2834
+ }
2835
+
2836
+ .kds-signature-clear:hover {
2837
+ background: #F3F4F6 !important;
2838
+ border-color: #9CA3AF !important;
2839
+ }
2840
+
2841
+ /* Form Grid - 2-column responsive layout for forms */
2842
+ .kds-form-grid {
2843
+ display: grid;
2844
+ grid-template-columns: 1fr;
2845
+ gap: var(--kds-spacing-4);
2846
+ }
2847
+
2848
+ @media (min-width: 768px) {
2849
+ .kds-form-grid {
2850
+ grid-template-columns: 1fr 1fr;
2851
+ }
2852
+
2853
+ .kds-form-grid .field.full-width {
2854
+ grid-column: 1 / -1;
2855
+ }
2856
+ }
2857
+
2858
+ /* Demo-specific helpers */
2859
+ .demo-color-box {
2860
+ padding: var(--kds-spacing-8);
2861
+ border-radius: var(--kds-radius-md);
2862
+ text-align: center;
2863
+ color: white;
2864
+ }
2865
+
2866
+ .demo-color-box.primary-bg {
2867
+ background: var(--primary);
2868
+ }
2869
+
2870
+ .demo-color-box.secondary-bg {
2871
+ background: var(--secondary);
2872
+ }
2873
+
2874
+ .demo-color-box.accent-bg {
2875
+ background: var(--khipu-accent);
2876
+ }
2877
+
2878
+ .demo-grid-item {
2879
+ padding: var(--kds-spacing-4);
2880
+ border-radius: var(--kds-radius-md);
2881
+ text-align: center;
2882
+ }
2883
+
2884
+ .demo-grid-item.primary-container-bg {
2885
+ background: var(--primary-container);
2886
+ }
2887
+
2888
+ .demo-grid-item.secondary-container-bg {
2889
+ background: var(--secondary-container);
2890
+ }
2891
+
2892
+ .demo-surface-box {
2893
+ background: var(--surface-variant);
2894
+ padding: var(--kds-spacing-4);
2895
+ border-radius: var(--kds-radius-md);
2896
+ }
2897
+
2898
+ /* ========================================
2899
+ SUMMARY CARD (Review/Validation)
2900
+ Used in validation stage to show user data
2901
+ ======================================== */
2902
+
2903
+ .kds-summary-card {
2904
+ background: white;
2905
+ border: 1px solid #E5E7EB;
2906
+ border-radius: var(--kds-radius-lg);
2907
+ padding: var(--kds-spacing-5);
2908
+ margin-bottom: var(--kds-spacing-4);
2909
+ }
2910
+
2911
+ .kds-summary-card-header {
2912
+ display: flex;
2913
+ justify-content: space-between;
2914
+ align-items: center;
2915
+ margin-bottom: var(--kds-spacing-4);
2916
+ padding-bottom: var(--kds-spacing-3);
2917
+ border-bottom: 1px solid #F3F4F6;
2918
+ }
2919
+
2920
+ .kds-summary-card-title {
2921
+ display: flex;
2922
+ align-items: center;
2923
+ gap: var(--kds-spacing-2);
2924
+ font-size: var(--kds-font-size-lg);
2925
+ font-weight: var(--kds-font-weight-semibold);
2926
+ color: #111827;
2927
+ }
2928
+
2929
+ .kds-summary-card-edit {
2930
+ color: var(--primary);
2931
+ text-decoration: none;
2932
+ font-size: var(--kds-font-size-sm);
2933
+ font-weight: var(--kds-font-weight-medium);
2934
+ display: flex;
2935
+ align-items: center;
2936
+ gap: 4px;
2937
+ transition: opacity 0.2s ease;
2938
+ }
2939
+
2940
+ .kds-summary-card-edit:hover {
2941
+ text-decoration: underline;
2942
+ opacity: 0.8;
2943
+ }
2944
+
2945
+ .kds-summary-row {
2946
+ display: flex;
2947
+ padding: var(--kds-spacing-2) 0;
2948
+ }
2949
+
2950
+ .kds-summary-label {
2951
+ flex: 0 0 140px;
2952
+ font-size: var(--kds-font-size-sm);
2953
+ font-weight: var(--kds-font-weight-medium);
2954
+ color: #6B7280;
2955
+ }
2956
+
2957
+ .kds-summary-value {
2958
+ flex: 1;
2959
+ font-size: var(--kds-font-size-sm);
2960
+ color: #111827;
2961
+ }
2962
+
2963
+ .kds-summary-value.badge {
2964
+ display: inline-block;
2965
+ padding: 4px 12px;
2966
+ background: var(--kds-color-primary-100);
2967
+ color: var(--primary);
2968
+ border-radius: var(--kds-radius-full);
2969
+ font-weight: var(--kds-font-weight-medium);
2970
+ }
2971
+
2972
+ /* ========================================
2973
+ SUCCESS PAGE COMPONENTS
2974
+ Celebration/completion page layout
2975
+ ======================================== */
2976
+
2977
+ .kds-success-container {
2978
+ display: flex;
2979
+ flex-direction: column;
2980
+ align-items: center;
2981
+ justify-content: center;
2982
+ min-height: 80vh;
2983
+ text-align: center;
2984
+ padding: var(--kds-spacing-8);
2985
+ }
2986
+
2987
+ .kds-success-icon {
2988
+ width: 120px;
2989
+ height: 120px;
2990
+ background: #ECFDF5;
2991
+ border-radius: 50%;
2992
+ display: flex;
2993
+ align-items: center;
2994
+ justify-content: center;
2995
+ margin-bottom: var(--kds-spacing-6);
2996
+ animation: scaleIn 0.5s ease-out;
2997
+ }
2998
+
2999
+ @keyframes scaleIn {
3000
+ from {
3001
+ transform: scale(0);
3002
+ opacity: 0;
3003
+ }
3004
+ to {
3005
+ transform: scale(1);
3006
+ opacity: 1;
3007
+ }
3008
+ }
3009
+
3010
+ .kds-success-icon i {
3011
+ font-size: 80px;
3012
+ min-width: 80px;
3013
+ min-height: 80px;
3014
+ color: var(--kds-color-success);
3015
+ }
3016
+
3017
+ .kds-success-title {
3018
+ font-size: var(--kds-font-size-3xl);
3019
+ font-weight: var(--kds-font-weight-bold);
3020
+ color: #111827;
3021
+ margin-bottom: var(--kds-spacing-3);
3022
+ }
3023
+
3024
+ .kds-success-subtitle {
3025
+ font-size: var(--kds-font-size-lg);
3026
+ color: #6B7280;
3027
+ margin-bottom: var(--kds-spacing-8);
3028
+ max-width: 600px;
3029
+ }
3030
+
3031
+ .kds-next-steps {
3032
+ background: white;
3033
+ border: 1px solid #E5E7EB;
3034
+ border-radius: var(--kds-radius-xl);
3035
+ padding: var(--kds-spacing-6);
3036
+ max-width: 700px;
3037
+ width: 100%;
3038
+ margin-bottom: var(--kds-spacing-6);
3039
+ text-align: left;
3040
+ }
3041
+
3042
+ .kds-next-steps-title {
3043
+ font-size: var(--kds-font-size-xl);
3044
+ font-weight: var(--kds-font-weight-semibold);
3045
+ color: #111827;
3046
+ margin-bottom: var(--kds-spacing-4);
3047
+ display: flex;
3048
+ align-items: center;
3049
+ gap: var(--kds-spacing-2);
3050
+ }
3051
+
3052
+ .kds-step-item {
3053
+ display: flex;
3054
+ gap: var(--kds-spacing-3);
3055
+ padding: var(--kds-spacing-3) 0;
3056
+ border-bottom: 1px solid #F3F4F6;
3057
+ }
3058
+
3059
+ .kds-step-item:last-child {
3060
+ border-bottom: none;
3061
+ }
3062
+
3063
+ .kds-step-number {
3064
+ flex-shrink: 0;
3065
+ width: 32px;
3066
+ height: 32px;
3067
+ background: var(--kds-color-primary-100);
3068
+ color: var(--primary);
3069
+ border-radius: 50%;
3070
+ display: flex;
3071
+ align-items: center;
3072
+ justify-content: center;
3073
+ font-weight: var(--kds-font-weight-semibold);
3074
+ font-size: var(--kds-font-size-sm);
3075
+ }
3076
+
3077
+ .kds-step-content {
3078
+ flex: 1;
3079
+ }
3080
+
3081
+ .kds-step-title {
3082
+ font-size: var(--kds-font-size-base);
3083
+ font-weight: var(--kds-font-weight-semibold);
3084
+ color: #111827;
3085
+ margin-bottom: 4px;
3086
+ }
3087
+
3088
+ .kds-step-description {
3089
+ font-size: var(--kds-font-size-sm);
3090
+ color: #6B7280;
3091
+ line-height: 1.5;
3092
+ }
3093
+
3094
+ .kds-success-actions {
3095
+ display: flex;
3096
+ gap: var(--kds-spacing-3);
3097
+ flex-wrap: wrap;
3098
+ justify-content: center;
3099
+ }
3100
+
3101
+ @media (max-width: 768px) {
3102
+ .kds-success-title {
3103
+ font-size: var(--kds-font-size-2xl);
3104
+ }
3105
+
3106
+ .kds-success-subtitle {
3107
+ font-size: var(--kds-font-size-base);
3108
+ }
3109
+
3110
+ .kds-success-actions {
3111
+ flex-direction: column;
3112
+ width: 100%;
3113
+ }
3114
+
3115
+ .kds-success-actions button {
3116
+ width: 100%;
3117
+ }
3118
+ }
3119
+
3120
+ /* ========================================
3121
+ Responsive Utilities
3122
+ ======================================== */
3123
+
3124
+ @media (max-width: 768px) {
3125
+ .khipu-hero h1 {
3126
+ font-size: 2rem;
3127
+ }
3128
+
3129
+ .khipu-hero p {
3130
+ font-size: 1rem;
3131
+ }
3132
+
3133
+ .khipu-card-elevated {
3134
+ padding: 16px;
3135
+ }
3136
+
3137
+ .snackbar {
3138
+ min-width: calc(100% - 32px);
449
3139
  left: 16px;
450
3140
  right: 16px;
451
3141
  transform: none;
452
3142
  }
453
3143
  }
454
3144
 
3145
+ /* ========================================
3146
+ UTILITY CLASSES
3147
+ ======================================== */
3148
+
3149
+ /* Container utilities */
3150
+ .kds-container-center {
3151
+ margin-left: auto;
3152
+ margin-right: auto;
3153
+ }
3154
+
3155
+ .max-w-500 {
3156
+ max-width: 500px;
3157
+ }
3158
+
3159
+ .max-w-1200 {
3160
+ max-width: 1200px;
3161
+ }
3162
+
3163
+ /* Margin top utilities */
3164
+ .kds-mt-3 {
3165
+ margin-top: var(--kds-spacing-3);
3166
+ }
3167
+
3168
+ /* ========================================
3169
+ AUTOMATIC SPACING SYSTEM
3170
+ Components handle their own spacing
3171
+ ======================================== */
3172
+
3173
+ /* Component showcase sections */
3174
+ .component-section {
3175
+ margin-bottom: var(--kds-spacing-12);
3176
+ }
3177
+
3178
+ .component-section > h2 {
3179
+ margin-bottom: var(--kds-spacing-6);
3180
+ }
3181
+
3182
+ .component-item {
3183
+ margin-bottom: var(--kds-spacing-10);
3184
+ }
3185
+
3186
+ .component-item > h3 {
3187
+ margin-bottom: var(--kds-spacing-2);
3188
+ }
3189
+
3190
+ .component-item > p {
3191
+ margin-bottom: var(--kds-spacing-4);
3192
+ }
3193
+
3194
+ .component-demo {
3195
+ margin-bottom: var(--kds-spacing-6);
3196
+ }
3197
+
3198
+ .component-code {
3199
+ margin-bottom: var(--kds-spacing-4);
3200
+ }
3201
+
3202
+ .usage-note,
3203
+ .grails-note {
3204
+ margin-top: var(--kds-spacing-4);
3205
+ margin-bottom: var(--kds-spacing-6);
3206
+ }
3207
+
3208
+ .usage-note > h4,
3209
+ .grails-note > h4 {
3210
+ margin-bottom: var(--kds-spacing-2);
3211
+ }
3212
+
3213
+ /* Onboarding stage sections */
3214
+ .kds-stage-section {
3215
+ margin-bottom: var(--kds-spacing-8);
3216
+ }
3217
+
3218
+ .kds-stage-section:last-child {
3219
+ margin-bottom: 0;
3220
+ }
3221
+
3222
+ .kds-stage-section-title {
3223
+ margin-bottom: var(--kds-spacing-4);
3224
+ }
3225
+
3226
+ .kds-stage-section-description {
3227
+ margin-bottom: var(--kds-spacing-4);
3228
+ }
3229
+
3230
+ /* Stage header */
3231
+ .kds-stage-header {
3232
+ margin-bottom: var(--kds-spacing-8);
3233
+ }
3234
+
3235
+ .kds-stage-title {
3236
+ margin-bottom: var(--kds-spacing-2);
3237
+ }
3238
+
3239
+ .kds-stage-subtitle {
3240
+ margin-bottom: 0;
3241
+ }
3242
+
3243
+ .kds-stage-header > button {
3244
+ margin-top: var(--kds-spacing-3);
3245
+ }
3246
+
3247
+ /* Showcase header */
3248
+ .showcase-header {
3249
+ margin-bottom: var(--kds-spacing-8);
3250
+ }
3251
+
3252
+ .showcase-header h1 {
3253
+ margin-bottom: var(--kds-spacing-3);
3254
+ }
3255
+
3256
+ /* Form groups and fields already have margin-bottom */
3257
+ .kds-field {
3258
+ margin-bottom: var(--kds-spacing-4);
3259
+ }
3260
+
3261
+ .kds-field:last-child {
3262
+ margin-bottom: 0;
3263
+ }
3264
+
3265
+ /* Grids handle spacing between children */
3266
+ .kds-grid-2col > *,
3267
+ .kds-grid-3col > * {
3268
+ margin-bottom: 0; /* Grid gap handles spacing */
3269
+ }
3270
+
3271
+ /* Alerts have margin */
3272
+ .kds-alert {
3273
+ margin-bottom: var(--kds-spacing-6);
3274
+ }
3275
+
3276
+ .kds-alert:last-child {
3277
+ margin-bottom: 0;
3278
+ }
3279
+
3280
+
3281
+ /* Modal actions (buttons at bottom) */
3282
+ .modal .kds-kyc-modal-content + div,
3283
+ .modal .kds-alert + div {
3284
+ margin-top: var(--kds-spacing-6);
3285
+ }
3286
+
3287
+