-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathstyles.e61673655a477d51.css.map
1 lines (1 loc) · 358 KB
/
styles.e61673655a477d51.css.map
1
{"version":3,"sources":["./src/styles/0-base/_typography.scss","./src/styles/main.scss","./src/styles/_constants.scss","./src/styles/_mixins.scss","./src/styles/0-base/_index.scss","./src/styles/1-layouts/content-layout/_content-layout.scss","./src/styles/1-layouts/doc-viewer/_doc-viewer.scss","./src/styles/1-layouts/footer/_footer.scss","./src/styles/1-layouts/layout-global/_layout-global.scss","./src/styles/1-layouts/marketing-layout/_marketing-layout.scss","./src/styles/1-layouts/not-found/_not-found.scss","./src/styles/1-layouts/sidenav/_sidenav.scss","./src/styles/1-layouts/top-menu/_top-menu.scss","./src/styles/1-layouts/_index.scss","./src/styles/2-modules/alert/_alert.scss","./src/styles/2-modules/api-list/_api-list.scss","./src/styles/2-modules/api-pages/_api-pages.scss","./src/styles/2-modules/api-symbols/_api-symbols.scss","./src/styles/2-modules/buttons/_buttons.scss","./src/styles/2-modules/callout/_callout.scss","./src/styles/2-modules/card/_card.scss","./src/styles/2-modules/cli-pages/_cli-pages.scss","./src/styles/2-modules/code/_code.scss","./src/styles/2-modules/contribute/_contribute.scss","./src/styles/2-modules/cookies-popup/_cookies-popup.scss","./node_modules/@angular/material/core/style/_elevation.scss","./src/styles/2-modules/contributor/_contributor.scss","./src/styles/2-modules/details/_details.scss","./src/styles/2-modules/errors/_errors.scss","./src/styles/2-modules/features/_features.scss","./src/styles/2-modules/filetree/_filetree.scss","./src/styles/2-modules/guides/_guides.scss","./src/styles/2-modules/heading-anchors/_heading-anchors.scss","./src/styles/2-modules/hr/_hr.scss","./src/styles/2-modules/images/_images.scss","./src/styles/2-modules/label/_label.scss","./src/styles/2-modules/notification/_notification.scss","./src/styles/2-modules/progress-bar/_progress-bar.scss","./src/styles/2-modules/presskit/_presskit.scss","./src/styles/2-modules/resources/_resources.scss","./src/styles/2-modules/roadmap/_roadmap.scss","./src/styles/2-modules/search-results/_search-results.scss","./src/styles/2-modules/select-menu/_select-menu.scss","./src/styles/2-modules/skip-links/_skip-links.scss","./src/styles/2-modules/table/_table.scss","./src/styles/2-modules/toc/_toc.scss","./src/styles/2-modules/_index.scss","./src/styles/_translator.scss","./src/styles/_print.scss","./node_modules/@angular/material/badge/_badge-theme.scss","./node_modules/@angular/material/core/typography/_typography.scss","./node_modules/@angular/material/core/typography/_typography-utils.scss","./node_modules/@angular/material/bottom-sheet/_bottom-sheet-theme.scss","./node_modules/@angular/material/button/_button-theme.scss","./node_modules/@angular/material/button-toggle/_button-toggle-theme.scss","./node_modules/@angular/material/card/_card-theme.scss","./node_modules/@angular/material/checkbox/_checkbox-theme.scss","./node_modules/@angular/material/chips/_chips-theme.scss","./node_modules/@angular/material/table/_table-theme.scss","./node_modules/@angular/material/datepicker/_datepicker-theme.scss","./node_modules/@angular/material/dialog/_dialog-theme.scss","./node_modules/@angular/material/expansion/_expansion-theme.scss","./node_modules/@angular/material/form-field/_form-field-theme.scss","./node_modules/@angular/material/form-field/_form-field-legacy-theme.scss","./node_modules/@angular/material/form-field/_form-field-fill-theme.scss","./node_modules/@angular/material/form-field/_form-field-outline-theme.scss","./node_modules/@angular/material/grid-list/_grid-list-theme.scss","./node_modules/@angular/material/core/style/_list-common.scss","./node_modules/@angular/material/input/_input-theme.scss","./node_modules/@angular/material/menu/_menu-theme.scss","./node_modules/@angular/material/paginator/_paginator-theme.scss","./node_modules/@angular/material/radio/_radio-theme.scss","./node_modules/@angular/material/select/_select-theme.scss","./node_modules/@angular/material/slide-toggle/_slide-toggle-theme.scss","./node_modules/@angular/material/slider/_slider-theme.scss","./node_modules/@angular/material/stepper/_stepper-theme.scss","./node_modules/@angular/material/tabs/_tabs-theme.scss","./node_modules/@angular/material/toolbar/_toolbar-theme.scss","./node_modules/@angular/material/tooltip/_tooltip-theme.scss","./node_modules/@angular/material/list/_list-theme.scss","./node_modules/@angular/material/core/option/_option-theme.scss","./node_modules/@angular/material/core/option/_optgroup-theme.scss","./node_modules/@angular/material/snack-bar/_snack-bar-theme.scss","./node_modules/@angular/material/tree/_tree-theme.scss","./node_modules/@angular/material/core/ripple/_ripple.scss","./node_modules/@angular/cdk/a11y/_index.scss","./node_modules/@angular/cdk/overlay/_index.scss","./node_modules/@angular/cdk/text-field/_index.scss","./node_modules/@angular/material/core/focus-indicators/_focus-indicators.scss","./node_modules/@angular/material/core/_core.scss"],"sourcesContent":["@use '../constants';\n@use '../mixins';\n\nhtml {\n font-size: 62.5%;\n}\n\nbody {\n font-family: constants.$main-font;\n margin: 0;\n @include mixins.font-size(16);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-bottom: 0;\n font-weight: 500;\n}\n\nh1 {\n @include mixins.font-size(40);\n display: inline-block;\n margin: 1.6rem 0;\n\n @media screen and (max-width: 600px) {\n margin-top: 0;\n }\n}\n\nh2 {\n clear: both;\n @include mixins.font-size(32);\n margin-top: 4rem;\n padding-top: 4rem;\n\n @include mixins.marketing-pages($extraSelectors: ('.page-api'), $nestParentSelector: true) {\n border-top: 0;\n margin-top: 2rem;\n padding-top: 0;\n }\n}\n\nh3 {\n @include mixins.font-size(24);\n margin-top: 3rem;\n clear: both;\n}\n\nh4 {\n @include mixins.font-size(20);\n margin-top: 3rem;\n clear: both;\n}\n\nh5 {\n @include mixins.font-size(18);\n margin-top: 2rem;\n clear: both;\n}\n\nh6 {\n @include mixins.font-size(16);\n margin-top: 2rem;\n clear: both;\n}\n\nh2,\nh3,\nh4,\nh5,\nh6 {\n a {\n font-size: inherit;\n }\n\n @media screen and (max-width: 600px) {\n margin: 8px 0;\n }\n}\n\n.mat-tab-body-wrapper h2 {\n margin-top: 0;\n}\n\np,\nol,\nul,\nli,\ninput,\na {\n @include mixins.font-size(16);\n @include mixins.line-height(32);\n font-family: inherit;\n font-weight: 400;\n\n & > em {\n @include mixins.letter-spacing(0.3);\n }\n}\n\np {\n margin: 1em 0;\n}\n\np + ul {\n margin-top: 4px;\n}\n\nol {\n li,\n p {\n margin: 4px 0;\n }\n}\n\nol ol {\n list-style-type: lower-alpha;\n\n ol {\n list-style-type: lower-roman;\n }\n}\n\nli {\n padding-bottom: 8px;\n @include mixins.line-height(24);\n\n p {\n margin: 0;\n }\n\n a {\n line-height: inherit;\n }\n}\n\na {\n text-decoration: none;\n}\n\n.app-toolbar a {\n @include mixins.font-size(16);\n font-weight: 400;\n font-family: constants.$main-font;\n text-transform: uppercase;\n}\n\nstrong {\n font-weight: 500;\n}\n\ntable {\n border-collapse: collapse;\n border-radius: 2px;\n border-spacing: 0;\n margin: 12px 0 32px;\n}\n\ntable tbody th {\n max-width: 100px;\n padding: 13px 32px;\n text-align: left;\n}\n\ntd {\n font-weight: 400;\n padding: 8px 30px;\n\n > p,\n ul {\n &:first-child {\n margin-top: 0;\n }\n &:last-child {\n margin-bottom: 0;\n }\n }\n}\n\nth {\n @include mixins.font-size(16);\n font-weight: 500;\n padding: 13px 32px;\n text-align: left;\n}\n\ncode {\n font-family: constants.$code-font;\n font-size: 90%;\n}\n\n.sidenav-content a {\n &:hover {\n text-decoration: underline;\n }\n}\n\n// The following css rule adds an icon to external links in the docs area, based on the classes that are applied to the\n// `doc-viewer` component when it is displaying docs for the different areas of the documentation.\n// We add the icon to all external links which are identified as absolute links (those that start with `http:` or https:`).\n// For more info see PR #36601.\n@include mixins.docs-pages {\n aio-doc-viewer {\n // The docs-viewer also contain links to GitHub (e.g. the \"edit this page\" icon) identified with\n // the `.github-links` class. We don't want to add the external link icon to these links.\n :not(.github-links) {\n > a {\n &[href^=\"http:\"],\n &[href^=\"https:\"] {\n display: inline-flex;\n padding-right: calc(1em + 0.25rem);\n position: relative;\n\n &::after {\n content: \"\\e89e\"; // codepoint for \"open_in_new\"\n font-family: \"Material Icons\";\n position: absolute;\n right: 0;\n }\n }\n }\n }\n }\n}","html {\n font-size: 62.5%;\n}\n\nbody {\n font-family: \"Roboto\", \"Helvetica Neue Light\", \"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", sans-serif;\n margin: 0;\n font-size: 16px;\n font-size: 1.6rem;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-bottom: 0;\n font-weight: 500;\n}\n\nh1 {\n font-size: 40px;\n font-size: 4rem;\n display: inline-block;\n margin: 1.6rem 0;\n}\n@media screen and (max-width: 600px) {\n h1 {\n margin-top: 0;\n }\n}\n\nh2 {\n clear: both;\n font-size: 32px;\n font-size: 3.2rem;\n margin-top: 4rem;\n padding-top: 4rem;\n}\n.page-about h2, .page-contribute h2, .page-events h2, .page-features h2, .page-home h2, .page-presskit h2, .page-resources h2, .page-api h2 {\n border-top: 0;\n margin-top: 2rem;\n padding-top: 0;\n}\n\nh3 {\n font-size: 24px;\n font-size: 2.4rem;\n margin-top: 3rem;\n clear: both;\n}\n\nh4 {\n font-size: 20px;\n font-size: 2rem;\n margin-top: 3rem;\n clear: both;\n}\n\nh5 {\n font-size: 18px;\n font-size: 1.8rem;\n margin-top: 2rem;\n clear: both;\n}\n\nh6 {\n font-size: 16px;\n font-size: 1.6rem;\n margin-top: 2rem;\n clear: both;\n}\n\nh2 a,\nh3 a,\nh4 a,\nh5 a,\nh6 a {\n font-size: inherit;\n}\n@media screen and (max-width: 600px) {\n h2,\nh3,\nh4,\nh5,\nh6 {\n margin: 8px 0;\n }\n}\n\n.mat-tab-body-wrapper h2 {\n margin-top: 0;\n}\n\np,\nol,\nul,\nli,\ninput,\na {\n font-size: 16px;\n font-size: 1.6rem;\n line-height: 32px;\n line-height: 3.2rem;\n font-family: inherit;\n font-weight: 400;\n}\np > em,\nol > em,\nul > em,\nli > em,\ninput > em,\na > em {\n letter-spacing: 0.3px;\n letter-spacing: 0.03rem;\n}\n\np {\n margin: 1em 0;\n}\n\np + ul {\n margin-top: 4px;\n}\n\nol li,\nol p {\n margin: 4px 0;\n}\n\nol ol {\n list-style-type: lower-alpha;\n}\nol ol ol {\n list-style-type: lower-roman;\n}\n\nli {\n padding-bottom: 8px;\n line-height: 24px;\n line-height: 2.4rem;\n}\nli p {\n margin: 0;\n}\nli a {\n line-height: inherit;\n}\n\na {\n text-decoration: none;\n}\n\n.app-toolbar a {\n font-size: 16px;\n font-size: 1.6rem;\n font-weight: 400;\n font-family: \"Roboto\", \"Helvetica Neue Light\", \"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", sans-serif;\n text-transform: uppercase;\n}\n\nstrong {\n font-weight: 500;\n}\n\ntable {\n border-collapse: collapse;\n border-radius: 2px;\n border-spacing: 0;\n margin: 12px 0 32px;\n}\n\ntable tbody th {\n max-width: 100px;\n padding: 13px 32px;\n text-align: left;\n}\n\ntd {\n font-weight: 400;\n padding: 8px 30px;\n}\ntd > p:first-child,\ntd ul:first-child {\n margin-top: 0;\n}\ntd > p:last-child,\ntd ul:last-child {\n margin-bottom: 0;\n}\n\nth {\n font-size: 16px;\n font-size: 1.6rem;\n font-weight: 500;\n padding: 13px 32px;\n text-align: left;\n}\n\ncode {\n font-family: \"Roboto Mono\", monospace;\n font-size: 90%;\n}\n\n.sidenav-content a:hover {\n text-decoration: underline;\n}\n\n.folder-api aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-api aio-doc-viewer :not(.github-links) > a[href^=\"https:\"], .folder-cli aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-cli aio-doc-viewer :not(.github-links) > a[href^=\"https:\"], .folder-docs aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-docs aio-doc-viewer :not(.github-links) > a[href^=\"https:\"], .folder-errors aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-errors aio-doc-viewer :not(.github-links) > a[href^=\"https:\"], .folder-extended-diagnostics aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-extended-diagnostics aio-doc-viewer :not(.github-links) > a[href^=\"https:\"], .folder-guide aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-guide aio-doc-viewer :not(.github-links) > a[href^=\"https:\"], .folder-start aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-start aio-doc-viewer :not(.github-links) > a[href^=\"https:\"], .folder-tutorial aio-doc-viewer :not(.github-links) > a[href^=\"http:\"], .folder-tutorial aio-doc-viewer :not(.github-links) > a[href^=\"https:\"] {\n display: inline-flex;\n padding-right: calc(1em + 0.25rem);\n position: relative;\n}\n.folder-api aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-api aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after, .folder-cli aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-cli aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after, .folder-docs aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-docs aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after, .folder-errors aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-errors aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after, .folder-extended-diagnostics aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-extended-diagnostics aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after, .folder-guide aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-guide aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after, .folder-start aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-start aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after, .folder-tutorial aio-doc-viewer :not(.github-links) > a[href^=\"http:\"]::after, .folder-tutorial aio-doc-viewer :not(.github-links) > a[href^=\"https:\"]::after {\n content: \"\\e89e\";\n font-family: \"Material Icons\";\n position: absolute;\n right: 0;\n}\n\n/* ==============================\n BASE STYLES\n ============================== */\n.sidenav-container {\n width: 100%;\n height: 100vh;\n}\n\n.sidenav-content {\n min-height: 100vh;\n padding: 80px 3rem 2rem;\n max-width: 50em;\n margin: 0 auto;\n}\n@media screen and (max-width: 600px) {\n .sidenav-content {\n min-height: 450px;\n padding: 80px 2rem 1rem;\n }\n}\n@media screen and (max-width: 480px) {\n .sidenav-content {\n padding: 80px 1rem 1rem;\n }\n}\n.page-about .sidenav-content, .page-contribute .sidenav-content, .page-events .sidenav-content, .page-features .sidenav-content, .page-home .sidenav-content, .page-presskit .sidenav-content, .page-resources .sidenav-content, .page-api .sidenav-content, .page-file-not-found .sidenav-content, .page-guide-cheatsheet .sidenav-content {\n max-width: none;\n}\n\n.sidenav-content button {\n min-width: 24px;\n}\n\n@media (max-width: 600px) {\n aio-menu {\n display: none;\n }\n}\n\n.no-animations aio-doc-viewer > * {\n transition: none !important;\n}\n\n.video-container {\n position: relative;\n padding-bottom: 56.25%;\n /* 16:9 */\n height: 0;\n}\n.video-container iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\nfooter {\n position: relative;\n line-height: 24px;\n line-height: 2.4rem;\n flex: 1;\n padding: 48px 25px;\n z-index: 0;\n font-weight: 300;\n}\nfooter aio-footer {\n display: block;\n position: relative;\n z-index: 0;\n overflow: auto;\n}\nfooter aio-footer > * {\n max-width: 50em;\n}\nfooter aio-footer .footer-block {\n margin: 0 0.3rem;\n}\nfooter aio-footer a {\n text-decoration: none;\n z-index: 20;\n position: relative;\n}\nfooter aio-footer a:hover {\n text-decoration: underline;\n}\nfooter aio-footer a:visited {\n text-decoration: none;\n}\nfooter aio-footer a:focus {\n outline: 1px solid rgba(255, 255, 255, 0.8);\n outline-offset: 2px;\n}\nfooter aio-footer .footer-block-heading {\n font-size: 16px;\n font-size: 1.6rem;\n text-transform: uppercase;\n font-weight: 400;\n margin: 8px 0 12px;\n}\n@media (max-width: 600px) {\n footer aio-footer .footer-block-heading {\n font-size: 14px;\n font-size: 1.4rem;\n }\n}\nfooter aio-footer p {\n text-align: center;\n margin: 10px auto 5px;\n}\n@media (max-width: 480px) {\n footer aio-footer p {\n text-align: left;\n }\n}\nfooter aio-footer div.grid-fluid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 24px;\n margin: 0 auto 40px;\n justify-content: center;\n}\nfooter aio-footer div.grid-fluid ul {\n list-style-position: inside;\n padding: 0;\n margin: 0;\n}\nfooter aio-footer div.grid-fluid ul li {\n list-style-type: none;\n padding: 4px 0;\n text-align: left;\n}\n@media (max-width: 45rem) {\n footer aio-footer div.grid-fluid {\n grid-template-columns: repeat(2, calc(50% - (24px/2)));\n }\n footer aio-footer div.grid-fluid .footer-block {\n margin: 1.5rem 2.4rem 0.8rem 20%;\n }\n}\n@media (max-width: 25rem) {\n footer aio-footer div.grid-fluid .footer-block {\n margin-left: 0.3rem;\n margin-right: 0.3rem;\n }\n}\n@media (max-width: 20rem) {\n footer aio-footer div.grid-fluid {\n grid-template-columns: 1fr;\n }\n}\nfooter::after {\n content: \"\";\n position: absolute;\n z-index: -1;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: url(\"/assets/images/logos/angular/angular_whiteTransparent_withMargin.png\") top 0 left 0 repeat, url(\"/assets/images/logos/angular/angular_whiteTransparent_withMargin.png\") top 80px left 160px repeat;\n opacity: 0.05;\n background-size: 320px auto;\n}\n\nhtml, body {\n height: 100%;\n}\n\n.center-layout {\n margin: 0 auto;\n max-width: 62.5em;\n}\n\n.center-layout-wide {\n margin: 0 auto;\n max-width: 84em;\n}\n\n.github-links + .content h1 {\n max-width: 90%;\n}\n\n.clear {\n clear: both;\n}\n\n.l-flex-wrap {\n display: flex;\n flex-wrap: wrap;\n}\n\n.flex-center {\n display: flex;\n justify-content: center;\n}\n\n.center {\n text-align: center;\n}\n\n.visually-hidden {\n position: absolute !important;\n top: -9999px !important;\n left: -9999px !important;\n}\n\n.hero {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n position: absolute;\n width: 100%;\n min-height: 480px;\n height: 80vh;\n max-height: 560px;\n box-sizing: border-box;\n padding: 48px 48px 32px 48px;\n overflow: hidden;\n transform: skewY(8deg);\n transform-origin: 100%;\n}\n@media (max-width: 480px) {\n .hero {\n max-height: 486px;\n padding-top: 40px;\n transform: none;\n }\n}\n.hero .hero-title {\n display: inline-block;\n font-size: 28px;\n font-size: 2.8rem;\n font-weight: 400;\n line-height: 48px;\n line-height: 4.8rem;\n margin: 0 8px 0 0;\n text-transform: uppercase;\n}\n.hero .hero-title.is-standard-case {\n text-transform: none;\n}\n\nsection#intro {\n display: flex;\n align-items: center;\n position: relative;\n max-width: 900px;\n width: 100%;\n height: 480px;\n margin: 0 auto;\n padding: 48px 0 0;\n}\nsection#intro .hero-logo {\n background-image: url(/assets/images/logos/angular/angular.svg);\n}\n@media (max-width: 65rem) {\n section#intro {\n flex-direction: column;\n justify-content: center;\n padding: 40px 0 32px;\n }\n section#intro button {\n margin: 0;\n height: 60px;\n }\n}\nsection#intro .homepage-container {\n width: 50%;\n max-width: 1040px;\n margin: 0 auto;\n margin-top: -7%;\n padding-top: 0;\n padding-bottom: 0;\n}\n@media (max-width: 65rem) {\n section#intro .homepage-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n max-width: 100%;\n padding: 0;\n }\n}\nsection#intro .hero-headline {\n font-size: 40px;\n font-size: 4rem;\n line-height: 64px;\n line-height: 6.4rem;\n font-weight: 500;\n margin: 32px 0;\n color: inherit;\n}\nsection#intro .hero-headline:after {\n display: none;\n}\n@media (max-width: 65rem) {\n section#intro .hero-headline {\n text-align: center;\n }\n}\n@media (max-width: 575px) {\n section#intro .hero-headline {\n font-size: 32px;\n font-size: 3.2rem;\n line-height: 50px;\n line-height: 5rem;\n }\n}\nsection#intro .hero-logo {\n display: flex;\n width: 50%;\n min-width: 250px;\n height: 400px;\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-bottom: 8px;\n}\n\n.announcement-bar {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-around;\n align-items: center;\n max-width: 50vw;\n margin: 0 auto;\n padding: 16px;\n border-radius: 4px;\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n box-sizing: border-box;\n transition: all 0.3s ease-in;\n}\n@media (max-width: 991px) {\n .announcement-bar {\n flex-direction: column;\n text-align: center;\n padding: 32px 16px;\n }\n}\n@media (max-width: 768px) {\n .announcement-bar {\n width: 100%;\n max-width: none;\n }\n}\n.announcement-bar > * {\n margin: 8px;\n}\n.announcement-bar .button {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n min-width: 160px;\n font-size: 16px;\n font-size: 1.6rem;\n border-radius: 48px;\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n box-sizing: border-box;\n cursor: pointer;\n}\n.announcement-bar .material-icons {\n display: none;\n right: 0;\n position: static;\n transition: all 0.3s ease-in;\n font-size: 16px;\n font-size: 1.6rem;\n}\n.announcement-bar p {\n font-size: 16px;\n font-size: 1.6rem;\n margin: 8px;\n text-align: center;\n}\n\n.home-row .card {\n width: 70%;\n border-radius: 4px;\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n box-sizing: border-box;\n transition: box-shadow 0.5s;\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n min-width: 350px;\n height: auto;\n margin: auto;\n padding: 24px;\n box-shadow: 0 6px 6px rgba(10, 16, 20, 0.15), 0 0 52px rgba(10, 16, 20, 0.12);\n}\n.home-row .card:hover {\n box-shadow: 0 8px 8px rgba(10, 16, 20, 0.24), 0 0 8px rgba(10, 16, 20, 0.12);\n text-decoration: none;\n}\n@media (max-width: 600px) {\n .home-row .card {\n margin: 16px auto 0;\n }\n .home-row .card h2 {\n margin: 0;\n }\n .home-row .card img {\n max-width: none;\n height: 70px;\n }\n}\n@media (max-width: 1300px) {\n .home-row .card img {\n height: 70px;\n max-width: none;\n }\n}\n.home-row .card img {\n margin: 16px;\n}\n.home-row .card .card-text-container {\n margin: 0 16px;\n}\n.home-row .card .card-text-container p {\n text-align: left;\n margin: 0;\n padding: 8px 0;\n}\n\n.button.hero-cta {\n padding: 2px 34px 0;\n font-size: 18px;\n font-size: 1.8rem;\n font-weight: 600;\n line-height: 40px;\n line-height: 4rem;\n border-radius: 48px;\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n box-sizing: border-box;\n cursor: pointer;\n}\n.button.hero-cta:hover {\n opacity: 0.9;\n}\n\n.page-about .sidenav-content, .page-contribute .sidenav-content, .page-events .sidenav-content, .page-features .sidenav-content, .page-home .sidenav-content, .page-presskit .sidenav-content, .page-resources .sidenav-content {\n padding: 0 0 3rem;\n}\n.page-about article, .page-contribute article, .page-events article, .page-features article, .page-home article, .page-presskit article, .page-resources article {\n padding: 3rem;\n padding-top: 0;\n}\n@media (max-width: 800px) {\n .page-about article, .page-contribute article, .page-events article, .page-features article, .page-home article, .page-presskit article, .page-resources article {\n padding: 2.2rem;\n padding-top: 0;\n }\n}\n\n.page-home .sidenav-content {\n padding-bottom: 0;\n}\n\n.cta-bar.announcement-bar {\n background: none;\n box-shadow: none;\n}\n\n.text-headline {\n font-size: 20px;\n font-size: 2rem;\n font-weight: 500;\n margin-top: 10px;\n text-transform: uppercase;\n}\n\naio-shell:not(.view-SideNav) mat-sidenav-container.sidenav-container {\n max-width: none;\n}\n\ndiv[layout=row] {\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n}\n@media (max-width: 480px) {\n div[layout=row] {\n display: block;\n }\n}\n\n.layout-row {\n flex-direction: row;\n}\n\n.home-rows {\n overflow: hidden;\n}\n@media (max-width: 600px) {\n .home-rows {\n margin: 0;\n }\n}\n\n.background-superhero-paper {\n background-size: 100%;\n background-blend-mode: multiply;\n}\n\n.home-row {\n max-width: 920px;\n margin: 32px auto;\n}\n.home-row .promo-img-container, .home-row .text-container {\n max-width: 50%;\n}\n@media (max-width: 480px) {\n .home-row .promo-img-container, .home-row .text-container {\n max-width: 100%;\n text-align: center;\n }\n .home-row .promo-img-container:nth-child(even), .home-row .text-container:nth-child(even) {\n flex-direction: column-reverse;\n }\n}\n.home-row .text-block {\n padding-right: 15%;\n}\n@media (max-width: 600px) {\n .home-row .text-block {\n padding: 0;\n }\n}\n.home-row .promo-img-container p {\n margin: 0 20px;\n}\n.home-row .promo-img-container img {\n max-width: 90% !important;\n}\n\n.marketing-banner {\n margin-top: 64px;\n padding: 32px;\n}\n@media (max-width: 600px) {\n .marketing-banner {\n margin-top: 56px;\n padding: 18px;\n }\n}\n.marketing-banner .banner-headline {\n text-transform: uppercase;\n font-size: 24px;\n font-size: 2.4rem;\n font-weight: 300;\n margin: 0;\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n}\n@media (max-width: 600px) {\n .marketing-banner .banner-headline {\n font-size: 18px;\n font-size: 1.8rem;\n font-weight: 400;\n }\n}\n.marketing-banner .banner-headline:after {\n display: none;\n}\n.page-features .marketing-banner {\n margin-bottom: 20px;\n}\n\n.nf-container {\n align-items: center;\n padding: 32px;\n}\n\n.nf-response {\n margin: 32px;\n height: 100%;\n flex-direction: column;\n}\n.nf-response h1 {\n font-size: 48px;\n font-size: 4.8rem;\n text-transform: uppercase;\n margin: 8px 0;\n}\n\n.nf-icon.material-icons {\n font-size: 100px;\n font-size: 10rem;\n position: static;\n}\n\n.no-animations.mat-drawer-transition .mat-drawer-content {\n transition: none;\n}\n\nmat-sidenav-container.sidenav-container {\n min-height: 100%;\n height: auto !important;\n margin: 0;\n transform: none;\n}\nmat-sidenav-container.sidenav-container.has-floating-toc .sidenav-content-container {\n padding-right: 18vw;\n}\nmat-sidenav-container.sidenav-container .sidenav-content-container {\n height: auto;\n}\nmat-sidenav-container.sidenav-container .sidenav-content-container .sidenav-content {\n overflow-x: auto;\n}\nmat-sidenav-container.sidenav-container mat-sidenav.sidenav {\n position: fixed;\n top: 64px;\n bottom: 0;\n left: 0;\n min-width: 260px;\n}\n@media (max-width: 599px) {\n mat-sidenav-container.sidenav-container mat-sidenav.sidenav {\n top: 56px;\n }\n}\nmat-sidenav-container.sidenav-container mat-sidenav.sidenav .doc-version {\n padding: 8px;\n}\n\naio-nav-menu {\n display: block;\n margin: 0 2px;\n max-width: 268px;\n}\naio-nav-menu:first-of-type {\n margin-top: 16px;\n}\naio-nav-menu:last-of-type {\n margin-bottom: 16px;\n}\naio-nav-menu ul, aio-nav-menu a {\n margin: 0;\n}\naio-nav-menu aio-nav-item .vertical-menu-item {\n box-sizing: border-box;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n overflow-wrap: break-word;\n padding: 8px;\n text-decoration: none;\n text-align: left;\n width: 100%;\n word-wrap: break-word;\n}\naio-nav-menu aio-nav-item .vertical-menu-item:focus {\n outline: #1E88E5 auto 2px;\n}\naio-nav-menu aio-nav-item .vertical-menu-item span {\n padding-right: 32px;\n}\naio-nav-menu aio-nav-item .vertical-menu-item .mat-icon {\n flex: 0 0 2.4rem;\n display: flex;\n align-items: center;\n}\naio-nav-menu aio-nav-item button.vertical-menu-item {\n border: none;\n background-color: transparent;\n margin: 0;\n width: 100%;\n overflow: hidden;\n}\naio-nav-menu aio-nav-item .heading-children.expanded {\n visibility: visible;\n opacity: 1;\n padding-left: 0;\n max-height: 4000px;\n transition: visibility 500ms, opacity 500ms, max-height 500ms;\n transition-timing-function: ease-in-out;\n}\naio-nav-menu aio-nav-item .heading-children.collapsed {\n overflow: hidden;\n visibility: hidden;\n padding-left: 0;\n opacity: 0;\n max-height: 1px;\n transition: visibility 275ms, opacity 275ms, max-height 280ms;\n transition-timing-function: ease-out;\n}\n.no-animations aio-nav-menu aio-nav-item .heading-children.expanded, .no-animations aio-nav-menu aio-nav-item .heading-children.collapsed {\n transition: none !important;\n}\naio-nav-menu aio-nav-item .level-1 {\n font-size: 16px;\n font-size: 1.6rem;\n line-height: 28px;\n line-height: 2.8rem;\n font-weight: 400;\n padding-left: 20px;\n margin: 0;\n transition: background-color 0.2s;\n}\naio-nav-menu aio-nav-item .level-2 {\n font-size: 14px;\n font-size: 1.4rem;\n line-height: 24px;\n line-height: 2.4rem;\n font-weight: 400;\n margin: 0;\n padding-left: 36px;\n}\naio-nav-menu aio-nav-item .level-3 {\n font-size: 14px;\n font-size: 1.4rem;\n line-height: 24px;\n line-height: 2.4rem;\n margin: 0;\n padding-left: 44px;\n}\naio-nav-menu aio-nav-item .level-4 {\n font-size: 14px;\n font-size: 1.4rem;\n line-height: 24px;\n line-height: 2.4rem;\n margin: 0;\n padding-left: 52px;\n}\naio-nav-menu aio-nav-item .level-1.collapsed > .mat-icon, aio-nav-menu aio-nav-item .level-2.collapsed > .mat-icon, aio-nav-menu aio-nav-item .level-3.collapsed > .mat-icon {\n -moz-transform: rotate(0deg);\n -webkit-transform: rotate(0deg);\n -o-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n transition: transform 150ms;\n transition-timing-function: ease-in-out;\n}\naio-nav-menu aio-nav-item .level-1.expanded > .mat-icon, aio-nav-menu aio-nav-item .level-2.expanded > .mat-icon, aio-nav-menu aio-nav-item .level-3.expanded > .mat-icon {\n -moz-transform: rotate(90deg);\n -webkit-transform: rotate(90deg);\n -o-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n transition: transform 150ms;\n transition-timing-function: ease-in-out;\n}\n\nmat-toolbar.app-toolbar {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 10;\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.3);\n}\n@media (min-width: 481px) {\n .page-home mat-toolbar.app-toolbar:not(.transitioning) {\n background-color: transparent;\n box-shadow: none;\n position: absolute;\n transition: background-color 0.2s linear;\n }\n}\n@media (min-width: 1150px) {\n .folder-api mat-toolbar.app-toolbar .hamburger, .folder-cli mat-toolbar.app-toolbar .hamburger, .folder-docs mat-toolbar.app-toolbar .hamburger, .folder-errors mat-toolbar.app-toolbar .hamburger, .folder-extended-diagnostics mat-toolbar.app-toolbar .hamburger, .folder-guide mat-toolbar.app-toolbar .hamburger, .folder-start mat-toolbar.app-toolbar .hamburger, .folder-tutorial mat-toolbar.app-toolbar .hamburger {\n margin: 0 8px 0 0;\n visibility: visible;\n }\n}\n\nmat-toolbar.app-toolbar mat-toolbar-row {\n padding: 0 16px 0 0;\n}\nmat-toolbar.app-toolbar .hamburger {\n height: 100%;\n margin: 0 8px 0 0;\n padding: 0;\n}\n@media (min-width: 1150px) {\n mat-toolbar.app-toolbar .hamburger {\n margin: 0 16px 0 -64px;\n visibility: hidden;\n }\n}\n@media (max-width: 480px) {\n mat-toolbar.app-toolbar .hamburger {\n min-width: 15%;\n }\n}\nmat-toolbar.app-toolbar .hamburger:not(.no-animations) {\n transition-duration: 0.4s;\n transition-property: color, margin;\n transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);\n}\nmat-toolbar.app-toolbar .hamburger .mat-icon {\n position: inherit;\n}\nmat-toolbar.app-toolbar .nav-link.home {\n cursor: pointer;\n margin: 0 16px 0 0;\n padding: 8px 0;\n}\nmat-toolbar.app-toolbar .nav-link.home:focus {\n outline-offset: 4px;\n}\n@media screen and (max-width: 1149px) {\n mat-toolbar.app-toolbar .nav-link.home {\n padding: 4px 0;\n }\n}\n@media screen and (max-width: 480px) {\n mat-toolbar.app-toolbar .nav-link.home {\n margin-right: 8px;\n }\n}\nmat-toolbar.app-toolbar .nav-link.home img {\n position: relative;\n margin-top: -21px;\n top: 12px;\n height: 40px;\n}\n@media (max-width: 1149px) {\n mat-toolbar.app-toolbar .nav-link.home img:hover {\n transform: scale(1.1);\n }\n}\nmat-toolbar.app-toolbar aio-top-menu {\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 80%;\n}\nmat-toolbar.app-toolbar aio-top-menu ul {\n display: flex;\n flex-direction: row;\n align-items: center;\n list-style-position: inside;\n padding: 0px;\n margin: 0px;\n}\nmat-toolbar.app-toolbar aio-top-menu ul li {\n padding-bottom: 2px;\n list-style-type: none;\n cursor: pointer;\n}\nmat-toolbar.app-toolbar aio-top-menu ul li:focus {\n outline: none;\n}\nmat-toolbar.app-toolbar aio-top-menu ul li a.nav-link {\n margin: 0 4px;\n padding: 0px;\n cursor: pointer;\n}\nmat-toolbar.app-toolbar aio-top-menu ul li a.nav-link .nav-link-inner {\n border-radius: 4px;\n font-size: 1.3rem;\n font-size: clamp(10px, 1.6rem, 20px);\n padding: 8px 16px;\n padding: 8px clamp(5px, 0.7vw, 16px);\n}\nmat-toolbar.app-toolbar aio-top-menu ul li a.nav-link:focus {\n outline: none;\n}\nmat-toolbar.app-toolbar aio-top-menu ul li a.nav-link:focus .nav-link-inner {\n border-radius: 1px;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n min-width: 150px;\n height: 100%;\n margin-right: 16px;\n position: relative;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input {\n border: none;\n border-radius: 100px;\n padding: 5px 3rem 5px 16px;\n margin-left: 8px;\n width: 180px;\n max-width: 240px;\n line-height: normal;\n height: 50%;\n -webkit-appearance: none;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input:focus {\n outline: none;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input:-ms-input-placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input::-ms-input-placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input::-webkit-input-placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input::placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\n@media (min-width: 1000px) {\n mat-toolbar.app-toolbar aio-search-box.search-container input {\n transition: width 0.4s ease-in-out;\n }\n mat-toolbar.app-toolbar aio-search-box.search-container input:focus {\n width: 80%;\n }\n}\n@media (max-width: 515px) {\n mat-toolbar.app-toolbar aio-search-box.search-container input {\n width: 150px;\n }\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input::-webkit-search-cancel-button {\n display: none;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input::-ms-clear {\n display: none;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container input:not(:focus):not(:hover) + mat-icon:not(:hover):not(:focus) {\n display: none;\n}\nmat-toolbar.app-toolbar aio-search-box.search-container mat-icon {\n position: absolute;\n color: #1976D2;\n right: 0.7rem;\n font-size: 2rem;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n@media screen and (min-width: 350px) {\n mat-toolbar.app-toolbar aio-theme-toggle {\n padding-right: 2px;\n margin-right: 2px;\n }\n}\n@media screen and (max-width: 480px) {\n mat-toolbar.app-toolbar .toolbar-external-icons-container a {\n margin: 0 -8px 0 0;\n }\n}\n@media screen and (max-width: 420px) {\n mat-toolbar.app-toolbar .toolbar-external-icons-container a:not([title=GitHub]) {\n display: none;\n }\n}\n@media screen and (max-width: 350px) {\n mat-toolbar.app-toolbar .toolbar-external-icons-container a[title=GitHub] {\n display: none;\n }\n}\n\n/* ==============================\n LAYOUT STYLES\n ============================== */\n.alert, .callout {\n padding: 16px;\n margin: 24px 0px;\n font-size: 14px;\n font-size: 1.4rem;\n width: 100%;\n box-sizing: border-box;\n clear: both;\n}\n.alert h1, .callout h1, .alert h2, .callout h2, .alert h3, .callout h3, .alert h4, .callout h4, .alert h5, .callout h5, .alert h6, .callout h6 {\n font-weight: 500;\n}\n.alert.archive-warning, .archive-warning.callout {\n border-radius: 4px;\n margin-bottom: 1rem;\n}\n.alert.archive-warning a, .archive-warning.callout a {\n font-weight: bold;\n text-decoration: underline;\n}\n.alert.archive-warning a:hover, .archive-warning.callout a:hover {\n opacity: 0.9;\n}\n.alert > p, .callout > p {\n margin: 8px 16px;\n}\n\n/* API LIST STYLES */\naio-api-list {\n /* LAYOUT */\n}\naio-api-list .api-filter {\n display: flex;\n margin: 0 auto;\n /* API FILTER MENU */\n /* API SEARCH ICON */\n}\n@media (max-width: 600px) {\n aio-api-list .api-filter {\n flex-direction: column;\n margin: 16px auto;\n }\n}\naio-api-list .api-filter aio-select {\n width: 200px;\n}\n@media screen and (max-width: 600px) {\n aio-api-list .api-filter aio-select {\n width: 100%;\n }\n}\naio-api-list .api-filter .form-select-menu,\naio-api-list .api-filter .form-search {\n margin: 8px;\n}\n@media screen and (max-width: 600px) {\n aio-api-list .api-filter .form-select-menu,\naio-api-list .api-filter .form-search {\n margin-left: 0;\n }\n}\naio-api-list .api-filter aio-select:first-child .form-select-menu {\n margin-left: 0;\n}\naio-api-list .api-filter .form-search {\n position: relative;\n float: left;\n}\naio-api-list .api-filter .form-search input {\n box-sizing: border-box;\n border-radius: 4px;\n font-size: 14px;\n font-size: 1.4rem;\n line-height: 32px;\n line-height: 3.2rem;\n outline: none;\n padding: 4px 16px 4px 32px;\n transition: all 0.2s;\n width: 182px;\n}\naio-api-list .api-filter .form-search input:-ms-input-placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\naio-api-list .api-filter .form-search input::-ms-input-placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\naio-api-list .api-filter .form-search input::-webkit-input-placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\naio-api-list .api-filter .form-search input::placeholder {\n font-size: 14px;\n font-size: 1.4rem;\n}\n@media screen and (max-width: 600px) {\n aio-api-list .api-filter .form-search input {\n width: 100%;\n }\n}\naio-api-list .api-filter .form-search .material-icons {\n font-size: 20px;\n font-size: 2rem;\n left: 8px;\n pointer-events: none;\n position: absolute;\n top: 12px;\n width: 20px;\n z-index: 1;\n}\naio-api-list .api-filter .material-icons {\n right: 48px;\n}\naio-api-list .api-list-container {\n display: flex;\n flex-direction: column;\n padding: 16px 0;\n position: relative;\n /* API CLASS LIST */\n}\n@media handheld and (max-width: 480px), screen and (max-device-width: 480px), screen and (max-width: 800px) {\n aio-api-list .api-list-container {\n padding: 24px 0 0;\n }\n}\naio-api-list .api-list-container h2 {\n margin-top: 16px;\n margin-bottom: 16px;\n}\naio-api-list .api-list-container .api-list {\n list-style: none;\n margin: 0 0 32px -8px;\n padding: 0;\n overflow: hidden;\n}\n@media screen and (max-width: 600px) {\n aio-api-list .api-list-container .api-list {\n margin: 0 0 0 -8px;\n }\n}\naio-api-list .api-list-container .api-list li {\n font-size: 14px;\n font-size: 1.4rem;\n margin: 8px 0;\n line-height: 14px;\n line-height: 1.4rem;\n padding: 0;\n float: left;\n width: 33%;\n overflow: hidden;\n min-width: 330px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\naio-api-list .api-list-container .api-list li a {\n line-height: 16px;\n line-height: 1.6rem;\n padding: 0 16px;\n text-decoration: none;\n transition: all 0.3s;\n}\naio-api-list .api-list-container .api-list li a.deprecated-api-item {\n text-decoration: line-through;\n}\n\n.api-body {\n max-width: 1200px;\n}\n.api-body h1 {\n margin-top: -4px;\n}\n.api-body details.overloads {\n box-shadow: none;\n}\n.api-body details.overloads > summary {\n justify-content: space-between;\n padding: 0;\n}\n.api-body details.overloads > summary h4 {\n margin: 0;\n clear: left;\n}\n.api-body details.overloads > .details-content {\n padding: 0;\n border-radius: 2px;\n box-shadow: none;\n}\n.api-body details.overloads > .details-content > *:not(hr) {\n margin: 16px 24px;\n}\n.api-body details.overload {\n box-shadow: none;\n margin: 0;\n}\n.api-body table {\n margin: 12px 0 24px;\n}\n.api-body table.item-table td {\n padding: 32px;\n}\n.api-body table.list-table td {\n padding: 16px 24px;\n}\n.api-body table.parameters-table {\n margin-top: 0;\n font-size: 14px;\n font-size: 1.4rem;\n box-shadow: none;\n}\n@media screen and (max-width: 480px) {\n .api-body table.parameters-table tr {\n display: flex;\n flex-direction: column;\n }\n}\n.api-body table.parameters-table tr td:first-child {\n font-weight: 600;\n padding-left: 16px;\n width: 20%;\n}\n.api-body table.parameters-table td {\n padding: 8px 8px 8px 0;\n border: 0;\n vertical-align: top;\n}\n.api-body table.property-table td {\n vertical-align: top;\n}\n.api-body table.method-table td > code, .api-body table.option-table td > code, .api-body table.list-table td > code {\n background-color: inherit;\n white-space: pre-wrap;\n}\n.api-body table.method-table .with-github-links, .api-body table.option-table .with-github-links, .api-body table.list-table .with-github-links {\n align-items: center;\n display: flex;\n justify-content: space-between;\n}\n.api-body table.method-table .with-github-links .github-links a .material-icons:hover, .api-body table.option-table .with-github-links .github-links a .material-icons:hover, .api-body table.list-table .with-github-links .github-links a .material-icons:hover {\n background: none;\n}\n.api-body table.method-table h3, .api-body table.option-table h3, .api-body table.list-table h3 {\n margin: 6px 0;\n font-weight: 500;\n clear: left;\n}\n.api-body table.method-table h4, .api-body table.option-table h4, .api-body table.list-table h4 {\n font-size: 14px;\n font-size: 1.4rem;\n font-weight: bold;\n margin-top: 12px;\n}\n.api-body table th {\n text-transform: none;\n font-size: 16px;\n font-size: 1.6rem;\n font-weight: bold;\n}\n.api-body table tr:last-child {\n border-bottom: none;\n}\n.api-body table td {\n vertical-align: middle;\n}\n@media screen and (max-width: 480px) {\n .api-body table tbody > tr > td tr td:first-child {\n background-color: inherit;\n }\n}\n.api-body table hr {\n margin: 16px 0;\n}\n.api-body table .short-description {\n margin-left: 0;\n}\n.api-body .class-overview {\n position: relative;\n}\n.api-body .class-overview code-example {\n clear: left;\n}\n.api-body .member-name .pln {\n font-weight: 700;\n}\n.api-body .short-description {\n margin-top: 8px;\n}\n.api-body .final-message {\n font-style: italic;\n}\n.api-body .api-heading {\n font-size: 14px;\n font-size: 1.4rem;\n margin: 16px;\n}\n.api-body .from-constructor,\n.api-body .read-only-property,\n.api-body .write-only-property {\n font-size: 12px;\n font-size: 1.2rem;\n font-weight: 600;\n letter-spacing: 0.5px;\n letter-spacing: 0.05rem;\n font-style: italic;\n border-radius: 4px;\n padding: 4px 6px;\n}\n.api-body .selector-list ul,\n.api-body .inherited-members-list ul {\n padding: 0;\n}\n.api-body .selector-list ul li,\n.api-body .inherited-members-list ul li {\n list-style: none;\n margin-bottom: 12px;\n}\n.api-body .selector-list li,\n.api-body .selector-list a {\n font-weight: bold;\n}\n.api-body .selector-list li i,\n.api-body .selector-list a i {\n font-weight: normal;\n}\n\n.github-links {\n float: right;\n}\n.github-links .material-icons {\n border-radius: 4px;\n padding: 4px;\n font-size: 20px;\n font-size: 2rem;\n}\n\n.breadcrumb-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n.api-header {\n display: flex;\n align-items: center;\n margin-top: -4px;\n}\n@media screen and (max-width: 600px) {\n .api-header {\n flex-direction: column;\n align-items: flex-start;\n }\n}\n.api-header h1 {\n font-size: 24px;\n font-size: 2.4rem;\n margin: 0;\n}\n\n.deprecated-api-item {\n text-decoration: line-through;\n}\n\n/* API SYMBOLS */\n/* SYMBOL CLASS */\n.symbol {\n border-radius: 2px;\n display: inline-block;\n font-size: 10px;\n font-size: 1rem;\n font-weight: 600;\n line-height: 16px;\n line-height: 1.6rem;\n margin-right: 8px;\n text-align: center;\n width: 16px;\n}\n\n/* Button Styles */\nbutton {\n font-family: inherit;\n}\n\na.button.mat-button,\n.button {\n color: inherit;\n display: inline-block;\n line-height: 32px;\n line-height: 3.2rem;\n padding: 0px 16px;\n font-size: 14px;\n font-size: 1.4rem;\n font-weight: 400;\n border-radius: 3px;\n text-decoration: none;\n text-transform: uppercase;\n overflow: hidden;\n border: none;\n}\na.button.mat-button.button-small,\n.button.button-small {\n font-size: 12px;\n font-size: 1.2rem;\n line-height: 24px;\n line-height: 2.4rem;\n padding: 0px 8px;\n}\na.button.mat-button.button-large,\n.button.button-large {\n font-size: 15px;\n font-size: 1.5rem;\n line-height: 48px;\n line-height: 4.8rem;\n padding: 0px 24px;\n}\na.button.mat-button.button-x-large,\n.button.button-x-large {\n font-size: 16px;\n font-size: 1.6rem;\n line-height: 56px;\n line-height: 5.6rem;\n padding: 0px 24px;\n}\n\n.cta-bar {\n text-align: center;\n}\n.cta-bar .button {\n margin: 0px 8px;\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);\n transition: all 0.2s ease-in-out;\n}\n.cta-bar .button:hover {\n transform: scale(1.1);\n}\n\n.group-buttons {\n margin: 16px auto 32px;\n}\n.group-buttons button.button.mat-button.filter-button {\n border-radius: 4px;\n font-size: 16px;\n font-size: 1.6rem;\n line-height: 48px;\n line-height: 4.8rem;\n margin: 8px;\n padding: 0px 16px;\n width: 16.8rem;\n min-width: max-content;\n}\n@media (max-width: 480px) {\n .group-buttons button.button.mat-button.filter-button {\n font-size: 14px;\n font-size: 1.4rem;\n width: auto;\n }\n}\n\n[mat-button], [mat-raised-button], [mat-button], [mat-raised-button] {\n text-transform: uppercase;\n}\n\n.callout {\n padding: 0px;\n border-left: none !important;\n border-radius: 4px;\n}\n.callout header {\n line-height: 24px;\n line-height: 2.4rem;\n font-weight: 500;\n padding: 8px 16px;\n margin: 0;\n text-transform: uppercase;\n border-radius: 4px 4px 0 0;\n}\n.callout p {\n padding: 16px;\n margin: 0px;\n font-size: 14px;\n font-size: 1.4rem;\n}\n.callout > *:not(:first-child) {\n padding: 16px 24px;\n}\n\n.card-container {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n margin: 16px 0;\n}\n.card-container .docs-card {\n width: 35%;\n border-radius: 4px;\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n box-sizing: border-box;\n transition: box-shadow 0.5s;\n max-width: 340px;\n min-width: 300px;\n margin: 24px 16px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.card-container .docs-card:hover {\n box-shadow: 0 8px 8px rgba(10, 16, 20, 0.24), 0 0 8px rgba(10, 16, 20, 0.12);\n text-decoration: none;\n}\n@media screen and (max-width: 600px) {\n .card-container .docs-card {\n width: 100%;\n margin: 8px auto;\n max-width: none;\n }\n}\n.card-container .docs-card section {\n font-size: 20px;\n font-size: 2rem;\n line-height: 24px;\n line-height: 2.4rem;\n margin: 0;\n padding: 2.7rem 1.5rem 2.1rem;\n text-transform: none;\n text-align: center;\n}\n.card-container .docs-card p {\n font-size: 13px;\n font-size: 1.3rem;\n line-height: 24px;\n line-height: 2.4rem;\n padding: 0 16px;\n margin: 0;\n margin-bottom: 1.6rem;\n text-align: center;\n}\n.card-container .docs-card .card-footer {\n margin-bottom: 0;\n box-sizing: border-box;\n line-height: 24px;\n line-height: 2.4rem;\n padding: 1.3rem 1.5rem;\n text-align: right;\n}\n.card-container .docs-card .card-footer a {\n font-size: 13px;\n font-size: 1.3rem;\n}\n\n.card-section {\n padding: 16px 32px;\n margin: 16px 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n.card-section:hover {\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n}\n.card-section h1,\n.card-section h2,\n.card-section h3,\n.card-section h4,\n.card-section h5,\n.card-section h6 {\n margin: 8px 0;\n}\n.card-section a,\n.card-section .button,\n.card-section button {\n text-align: center;\n}\n\n.cli-name {\n font-weight: bold;\n /* override code format */\n}\n.cli-name .kwd {\n color: inherit;\n}\n\n.cli-option-syntax {\n white-space: pre;\n}\n\ncode-example,\ncode-tabs {\n clear: both;\n display: block;\n}\ncode-example code,\ncode-tabs code {\n overflow: auto;\n}\ncode-example ol,\ncode-tabs ol {\n list-style: decimal;\n}\ncode-example .mat-card,\ncode-tabs .mat-card {\n padding: 0;\n border-radius: 5px;\n}\n\ncode-example:not(.no-box) {\n border-radius: 5px;\n margin: 16px auto;\n}\ncode-example.no-box pre.prettyprint {\n margin: 0;\n}\ncode-example.no-box code {\n background-color: transparent;\n}\ncode-example code {\n overflow: auto;\n}\ncode-example header {\n border-radius: 5px 5px 0 0;\n font-size: 16px;\n font-size: 1.6rem;\n padding: 8px 16px;\n}\n\ncode-tabs {\n margin: 16px 0;\n}\ncode-tabs .code-tab-group .mat-tab-body {\n overflow-y: hidden;\n}\ncode-tabs .code-tab-group .mat-tab-body .mat-tab-body-content {\n height: auto;\n transform: none;\n}\ncode-tabs .code-tab-group .mat-tab-body .mat-tab-body-content .fadeIn {\n animation: opacity 2s ease-in;\n}\n\naio-code pre.prettyprint {\n position: relative;\n display: flex;\n min-height: 32px;\n margin: 16px 24px;\n white-space: pre-wrap;\n align-items: center;\n}\naio-code pre.prettyprint code a {\n color: inherit;\n}\naio-code pre.prettyprint code span {\n line-height: 24px;\n line-height: 2.4rem;\n}\naio-code pre.prettyprint code ol.linenums {\n margin: 0;\n}\naio-code pre.prettyprint code ol.linenums li {\n margin: 0;\n font-family: \"Roboto Mono\", monospace;\n font-size: 90%;\n line-height: 24px;\n line-height: 2.4rem;\n}\naio-code pre.prettyprint .copy-button {\n position: absolute;\n top: -7px;\n right: -19px;\n padding: 0;\n background-color: transparent;\n border: none;\n cursor: pointer;\n}\n\n.sidenav-content code a {\n font-size: inherit;\n font-weight: inherit;\n}\n.sidenav-content :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(pre) > code {\n border-radius: 4px;\n padding: 4px;\n}\n.sidenav-content :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(pre):is(a) > code {\n line-height: 24px;\n line-height: 2.4rem;\n}\n.page-guide-cheatsheet .sidenav-content td:first-of-type code,\n.page-guide-cheatsheet .sidenav-content th code {\n background-color: inherit;\n padding: 0;\n white-space: pre-wrap;\n}\n.sidenav-content .code-anchor {\n cursor: pointer;\n font-size: inherit;\n}\n.sidenav-content .code-anchor:hover {\n text-decoration: underline;\n}\n\n.contribute-container h2 {\n margin: 0;\n}\n.contribute-container .card-section {\n justify-content: space-between;\n}\n@media (max-width: 600px) {\n .contribute-container .card-section {\n flex-direction: column;\n }\n}\n.contribute-container .card-section > :first-child {\n margin-right: 2rem;\n width: 67%;\n}\n@media (max-width: 600px) {\n .contribute-container .card-section > :first-child {\n width: 100%;\n }\n}\n.contribute-container .card-section:last-child {\n margin-bottom: 0;\n}\n@media (max-width: 600px) {\n .contribute-container .card-section .button {\n margin-top: 14px;\n }\n}\n\naio-cookies-popup .cookies-popup {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n border-radius: 4px;\n bottom: 0;\n left: 0;\n position: fixed;\n margin: 24px;\n max-width: 430px;\n padding: 16px 16px 8px;\n z-index: 1001;\n}\naio-cookies-popup .cookies-popup .actions {\n display: flex;\n justify-content: flex-end;\n margin: 16px -8px 0 0;\n}\naio-cookies-popup .cookies-popup .actions .mat-button {\n text-transform: uppercase;\n}\n\naio-contributor-list .contributor-group {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n}\n@media handheld and (max-width: 480px), screen and (max-width: 900px) {\n aio-contributor-list .grid-fluid {\n margin-left: 20px;\n margin-right: 20px;\n float: none;\n display: block;\n width: auto;\n }\n}\n\naio-contributor {\n margin: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n}\n@media not all and (prefers-reduced-motion) {\n aio-contributor {\n transition: all 0.3s;\n }\n}\n@media (hover) {\n aio-contributor:focus-within, aio-contributor:hover {\n transform: translate3d(0, -3px, 0);\n box-shadow: 0 8px 8px rgba(10, 16, 20, 0.24), 0 0 8px rgba(10, 16, 20, 0.12);\n }\n aio-contributor:focus-within .contributor-image, aio-contributor:hover .contributor-image {\n transform: scale(1.05);\n }\n aio-contributor:focus-within .contributor-info, aio-contributor:hover .contributor-info {\n opacity: 1;\n }\n}\naio-contributor .contributor-info {\n height: 100%;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-content: center;\n /* There is no point in hiding this if we can't hover to show it. */\n border-radius: 50%;\n}\n@media (hover) {\n aio-contributor .contributor-info {\n opacity: 0;\n }\n}\naio-contributor .contributor-info .info-item {\n display: flex;\n font-size: 14px;\n font-size: 1.4rem;\n font-size: clamp(10px, 1.4rem, 30px);\n font-weight: 500;\n margin: 0.8rem;\n padding: 0.5rem;\n width: 100%;\n justify-content: center;\n}\naio-contributor .contributor-info .info-item:hover {\n text-decoration: none;\n}\naio-contributor .contributor-info .info-item.icon {\n min-width: 23px;\n width: 23px;\n}\naio-contributor .contributor-info .info-item.icon mat-icon {\n height: 23px;\n width: 23px;\n font-size: 23px;\n}\naio-contributor .contributor-info .info-item.icon mat-icon[svgicon] svg {\n height: 100%;\n width: 100%;\n}\naio-contributor .contributor-info .info-item.icon mat-icon.link-icon {\n transform: rotateZ(45deg);\n}\naio-contributor .contributor-info button {\n background: transparent;\n border: none;\n cursor: pointer;\n}\naio-contributor .contributor-card {\n width: 25rem;\n height: 27rem;\n max-width: 310px;\n max-height: 340px;\n transform-style: preserve-3d;\n}\n@media not all and (prefers-reduced-motion) {\n aio-contributor .contributor-card {\n transition: transform ease 500ms;\n }\n}\naio-contributor .contributor-card h3 {\n margin: 0.8rem 0;\n text-align: center;\n}\naio-contributor .contributor-card .card-front, aio-contributor .contributor-card .card-back {\n cursor: pointer;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n justify-content: center;\n align-items: center;\n border: none;\n background: transparent;\n padding: 0 1.5rem;\n}\naio-contributor .contributor-card .card-back {\n padding: 16px 24px;\n transform: rotateY(180deg);\n}\naio-contributor .contributor-card .card-back section {\n display: none;\n}\naio-contributor .contributor-card .card-back p {\n margin: 0.8rem 0;\n font-size: 12px;\n font-size: 1.2rem;\n line-height: 14px;\n line-height: 1.4rem;\n text-align: left;\n}\naio-contributor .contributor-card.flipped {\n transform: rotateY(180deg);\n}\naio-contributor .contributor-card.flipped .card-front {\n display: none;\n}\naio-contributor .contributor-image {\n border-radius: 50%;\n height: 16.8rem;\n width: 16.8rem;\n min-height: 105px;\n min-width: 105px;\n max-height: 230px;\n max-width: 230px;\n background-size: cover;\n background-position: center;\n margin: 0.8rem auto;\n}\naio-contributor p {\n cursor: pointer;\n font-size: 14px;\n font-size: 1.4rem;\n line-height: 18px;\n line-height: 1.8rem;\n margin: 8px 16px;\n text-overflow: ellipsis;\n overflow-y: auto;\n font-weight: 400;\n}\n\n/*\n * General styling to make detail/summary tags look a bit more material\n * To get the best out of it you should structure your usage like this:\n *\n * ```html\n * <details>\n * <summary>Some title</summary>\n * <div class=\"details-content\">\n * Some content\n * </div>\n * </details>\n * ```\n *\n * Optionally, you can use an `.actions` container inside `<summary>` to show expand/collapse\n * actions and/or a rotating icon:\n * ```html\n * <summary>\n * <span>Some title</span>\n * <span class=\"actions\">\n * <span class=\"action-expand\">Show more</span>\n * <span class=\"action-collapse\">Show less</span>\n * <i class=\"material-icons expand\">expand_more</i>\n * </span>\n * </summary>\n * ```\n */\ndetails > summary {\n cursor: pointer;\n font-size: 16px;\n font-size: 1.6rem;\n position: relative;\n padding: 16px;\n height: inherit;\n display: flex;\n align-items: center;\n overflow: hidden;\n}\ndetails > summary::-webkit-details-marker {\n display: none;\n}\ndetails > summary > h2 {\n margin: 0;\n padding: 0;\n border: none;\n display: inline;\n}\ndetails > summary .actions {\n align-items: center;\n display: flex;\n font-size: 14px;\n font-size: 1.4rem;\n}\ndetails > summary .actions .action-expand {\n display: initial;\n}\ndetails[open] > summary .actions .action-expand {\n display: none;\n}\n\ndetails > summary .actions .action-collapse {\n display: none;\n}\ndetails[open] > summary .actions .action-collapse {\n display: initial;\n}\n\ndetails > summary .actions .material-icons.expand {\n -moz-transform: rotate(0deg);\n -webkit-transform: rotate(0deg);\n -o-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n transition: transform 150ms;\n transition-timing-function: ease-in-out;\n}\ndetails[open] > summary .actions .material-icons.expand {\n -moz-transform: rotate(180deg);\n -webkit-transform: rotate(180deg);\n -o-transform: rotate(180deg);\n -ms-transform: rotate(180deg);\n transform: rotate(180deg);\n transition: transform 150ms;\n transition-timing-function: ease-in-out;\n}\n\ndetails .details-content {\n padding: 16px 24px;\n}\n\n.error-list {\n display: grid;\n list-style: none;\n padding: 0;\n overflow: hidden;\n}\n@media screen and (max-width: 600px) {\n .error-list {\n margin: 0 0 0 -8px;\n }\n}\n.error-list li {\n font-size: 14px;\n font-size: 1.4rem;\n margin: 8px 0;\n line-height: 14px;\n line-height: 1.4rem;\n padding: 0;\n float: left;\n overflow: hidden;\n min-width: 220px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.error-list li .symbol.runtime:before {\n content: \"R\";\n}\n.error-list li .symbol.compiler:before {\n content: \"C\";\n}\n.error-list li a {\n display: inline-block;\n line-height: 16px;\n line-height: 1.6rem;\n padding: 0 16px 0;\n text-decoration: none;\n transition: all 0.3s;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.feature-section {\n margin: 0 0 32px;\n}\n.feature-section .feature-header, .feature-section .text-headline {\n text-align: center;\n}\n.feature-section .feature-header img {\n margin: 16px;\n max-width: 70px;\n}\n.feature-section .feature-title {\n font-size: 16px;\n font-size: 1.6rem;\n font-weight: 500;\n margin: 8px 0px;\n clear: both;\n}\n.feature-section .feature-row {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-evenly;\n}\n@media (max-width: 1057px) {\n .feature-section .feature-row {\n flex-direction: column;\n }\n}\n.feature-section .feature-row .feature {\n max-width: 300px;\n margin: 0 16px;\n}\n@media (max-width: 1057px) {\n .feature-section .feature-row .feature {\n max-width: 100%;\n padding: 8px 10%;\n }\n}\n@media (max-width: 768px) {\n .feature-section .feature-row .feature {\n padding: 8px 0;\n }\n}\n\n.filetree {\n border-radius: 4px;\n margin: 0 0 24px 0;\n padding: 16px 32px;\n}\n.filetree .file {\n display: block;\n letter-spacing: 0.3px;\n letter-spacing: 0.03rem;\n line-height: 32px;\n line-height: 3.2rem;\n}\n.filetree .children {\n padding-left: 24px;\n position: relative;\n overflow: hidden;\n}\n.filetree .children .file {\n position: relative;\n}\n.filetree .children .file:before {\n content: \"\";\n left: -18px;\n bottom: 16px;\n width: 16px;\n height: 9999px;\n position: absolute;\n border-width: 0 0 1px 1px;\n border-style: solid;\n border-radius: 0 0 0 3px;\n}\n\n.reviewed {\n font-size: 13px;\n font-size: 1.3rem;\n font-style: italic;\n text-align: right;\n}\n\n.sidenav-content h1 .header-link, .sidenav-content h2 .header-link, .sidenav-content h3 .header-link, .sidenav-content h4 .header-link, .sidenav-content h5 .header-link, .sidenav-content h6 .header-link {\n margin: 0 6px;\n text-decoration: none;\n user-select: none;\n visibility: hidden;\n display: inline-flex;\n vertical-align: middle;\n}\n.sidenav-content h1:hover .header-link, .sidenav-content h2:hover .header-link, .sidenav-content h3:hover .header-link, .sidenav-content h4:hover .header-link, .sidenav-content h5:hover .header-link, .sidenav-content h6:hover .header-link {\n visibility: visible;\n}\n\nhr {\n border: none;\n height: 1px;\n}\n\n.content img.right {\n clear: both;\n float: right;\n margin-left: 20px;\n margin-bottom: 20px;\n}\n.content img.left {\n clear: both;\n float: left;\n margin-right: 20px;\n margin-bottom: 20px;\n}\n@media (max-width: 1300px) {\n .content img {\n max-width: 100%;\n height: auto;\n margin: auto;\n }\n}\n@media (max-width: 600px) {\n .content img {\n float: none !important;\n }\n .content img.right {\n margin-left: 0;\n }\n .content img.left {\n margin-right: 0;\n }\n}\n.content .lightbox {\n margin: 0;\n margin-top: 14px;\n margin-bottom: 14px;\n border-radius: 1px;\n padding: 32px;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n box-shadow: 2px 2px 5px 0 rgba(0, 0, 0, 0.2);\n margin: 16px 0;\n width: 100%;\n display: flex;\n justify-content: center;\n}\n.content .lightbox img {\n max-width: 100%;\n height: auto;\n padding: 8px;\n margin: auto;\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n border-radius: 4px;\n}\n\n.api-header label,\nlabel.api-status-label {\n border-radius: 4px;\n padding: 2px 10px;\n display: inline;\n font-size: 12px;\n font-size: 1.2rem;\n margin-right: 8px;\n font-weight: 500;\n text-transform: uppercase;\n}\n@media screen and (max-width: 600px) {\n .api-header label,\nlabel.api-status-label {\n display: block;\n margin: 4px 0;\n }\n}\n.api-header label.page-label,\nlabel.api-status-label.page-label {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n margin-bottom: 8px;\n width: 140px;\n}\n.api-header label.page-label .material-icons,\nlabel.api-status-label.page-label .material-icons {\n margin-right: 8px;\n}\n.api-header label.property-type-label,\nlabel.api-status-label.property-type-label {\n font-size: 12px;\n font-size: 1.2rem;\n text-transform: none;\n}\n\n.app-toolbar mat-toolbar-row.notification-container {\n padding: 0;\n height: auto;\n overflow: hidden;\n}\n\naio-notification {\n display: flex;\n position: relative;\n width: 100%;\n height: 56px;\n justify-content: center;\n}\n@media (max-width: 430px) {\n aio-notification {\n justify-content: flex-start;\n padding-left: 10px;\n }\n}\naio-notification .close-button {\n width: 56px;\n height: 56px;\n}\naio-notification .content {\n width: calc(100% - 56px);\n text-transform: none;\n padding: 0;\n}\naio-notification .content > * {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n}\naio-notification .content .title {\n margin-right: 10px;\n}\naio-notification .content .link {\n text-transform: none;\n}\naio-notification .content .icon {\n margin-right: 10px;\n}\n@media (max-width: 464px) {\n aio-notification .content .icon {\n display: none;\n }\n}\naio-notification .content .message {\n overflow: auto;\n margin-right: 10px;\n color: #bae0ff;\n}\naio-notification .content .action-button {\n border-radius: 15px;\n text-transform: uppercase;\n padding: 0 10px;\n font-size: 12px;\n font-size: 1.2rem;\n}\n@media (max-width: 780px) {\n aio-notification .content .action-button {\n display: none;\n }\n}\n\n.aio-notification-show .toc-container {\n top: 132px;\n}\n.aio-notification-show .search-results {\n border-top-width: 124px;\n}\n.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content {\n padding-top: 136px;\n}\n.aio-notification-show mat-sidenav-container.sidenav-container mat-sidenav.sidenav {\n top: 120px;\n}\n@media (max-width: 600px) {\n .aio-notification-show mat-sidenav-container.sidenav-container mat-sidenav.sidenav {\n top: 112px;\n }\n}\n\n.page-about.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content, .page-contribute.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content, .page-events.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content, .page-features.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content, .page-home.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content, .page-presskit.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content, .page-resources.aio-notification-show mat-sidenav-container.sidenav-container .sidenav-content {\n padding-top: 56px;\n}\n\n.aio-notification-animating .sidenav-content {\n transition: padding-top 250ms ease;\n}\n.aio-notification-animating mat-sidenav.sidenav, .aio-notification-animating .toc-container {\n transition: top 250ms ease;\n}\n\n.progress-bar-container {\n height: 2px;\n overflow: hidden;\n position: fixed;\n top: 0;\n width: 100vw;\n z-index: 11;\n}\n\n.presskit-container {\n padding: 0 32px 32px 32px;\n}\n.presskit-container img {\n height: 128px;\n width: auto;\n}\n.presskit-container .presskit-section:not(:first-child) {\n margin-top: 4rem;\n padding-top: 2rem;\n}\n.presskit-container .presskit-section .presskit-icon-group {\n display: flex;\n flex-wrap: wrap;\n}\n.presskit-container .presskit-section .presskit-icon-group .presskit-icon-item {\n align-items: center;\n display: flex;\n margin: 1rem;\n width: calc(50% - 2rem);\n}\n@media screen and (max-width: 600px) {\n .presskit-container .presskit-section .presskit-icon-group .presskit-icon-item {\n align-items: flex-start;\n flex-direction: column;\n margin-bottom: 2rem;\n }\n}\n.presskit-container .presskit-section .presskit-icon-group .presskit-icon-item .presskit-image-container {\n flex: none;\n margin-right: 2rem;\n}\n@media (max-width: 600px) {\n .presskit-container .presskit-section .presskit-icon-group .presskit-icon-item .presskit-image-container {\n width: 100%;\n margin-right: 0;\n }\n}\n.presskit-container .presskit-section .presskit-icon-group .presskit-icon-item .presskit-image-container .transparent-img, .presskit-container .presskit-section .presskit-icon-group .presskit-icon-item .presskit-image-container .transparent-img-inverse {\n border-radius: 50%;\n}\n.presskit-container .presskit-section .presskit-icon-group .presskit-icon-item .presskit-links-container {\n list-style-type: none;\n margin-bottom: 0;\n padding: 0;\n}\n.presskit-container .presskit-section .presskit-icon-group .presskit-icon-item .presskit-links-container a {\n padding-right: 3rem;\n position: relative;\n}\n.presskit-container .presskit-section .presskit-icon-group .presskit-icon-item .presskit-links-container a::after {\n content: \"cloud_download\";\n font-family: \"Material Icons\";\n font-size: 24px;\n font-size: 2.4rem;\n position: absolute;\n right: 0;\n}\n\naio-resource-list .showcase {\n transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n box-shadow: 0 1px 4px 0 rgba(10, 16, 20, 0.37);\n border-radius: 4px;\n margin-bottom: 48px;\n}\naio-resource-list .resource-item .resource-name {\n margin: 0;\n line-height: 24px;\n line-height: 2.4rem;\n font-size: 20px;\n font-size: 2rem;\n}\naio-resource-list .resource-item .resource-description {\n margin: 0;\n}\naio-resource-list .subcategory-title {\n padding: 16px 23px;\n margin: 0;\n font-size: 24px;\n font-size: 2.4rem;\n}\naio-resource-list .resource-row-link {\n display: flex;\n flex-direction: column;\n border: transparent solid 1px;\n padding: 16px 23px 16px 23px;\n transition: all 0.3s;\n}\naio-resource-list .resource-row-link:hover {\n text-decoration: none;\n border-radius: 4px;\n transform: translateY(-2px);\n}\n\n.page-guide-roadmap .completed-details {\n box-shadow: none;\n margin-top: 4rem;\n padding: 4rem 0 2rem;\n}\n.page-guide-roadmap .completed-details > summary {\n justify-content: space-between;\n padding: 0;\n}\n.page-guide-roadmap .completed-details > .details-content {\n padding: 0;\n}\n.page-guide-roadmap .roadmap-last-updated {\n font-style: italic;\n}\n\naio-search-results {\n z-index: 10;\n}\naio-search-results .search-results {\n display: flex;\n flex-direction: row;\n overflow: auto;\n padding: 0px 32px;\n border-top: 68px solid transparent;\n width: auto;\n max-height: 95vh;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-sizing: border-box;\n}\naio-search-results .search-results .search-area {\n margin: 0 auto;\n padding: 16px;\n}\naio-search-results .search-results .search-area .search-section-header {\n font-size: 16px;\n font-size: 1.6rem;\n font-weight: 400;\n margin: 10px 0px 5px;\n text-transform: uppercase;\n}\naio-search-results .search-results .search-area ul {\n margin: 0;\n padding: 0;\n}\naio-search-results .search-results .search-area ul li {\n list-style: none;\n}\naio-search-results .search-results .search-area ul .search-result-item {\n font-size: 14px;\n font-size: 1.4rem;\n line-height: 24px;\n line-height: 2.4rem;\n display: inline-block;\n font-weight: normal;\n padding: 0.6rem 0;\n}\naio-search-results .search-results .search-area ul .search-result-itema {\n text-decoration: none;\n}\naio-search-results .search-results .search-area ul.priority-pages {\n padding: 0.5rem 0;\n}\naio-search-results .search-results .search-area ul.priority-pages .search-result-item {\n font-weight: bold;\n}\naio-search-results .search-results .no-results {\n text-align: center;\n margin: 16px;\n}\naio-search-results .search-results a {\n font-weight: 500;\n}\n@media (max-width: 600px) {\n aio-search-results .search-results {\n display: block;\n }\n}\naio-search-results .search-results .close-button {\n position: absolute;\n top: 1rem;\n right: 1rem;\n border: none;\n padding: 0;\n margin: 3px;\n display: flex;\n opacity: 0;\n width: 0;\n background-color: inherit;\n cursor: pointer;\n transition: 100ms opacity;\n}\naio-search-results .search-results .close-button:focus {\n opacity: 1;\n width: auto;\n}\naio-search-results.embedded .search-results {\n padding: 0;\n color: inherit;\n max-height: 100%;\n position: relative;\n background-color: inherit;\n box-shadow: none;\n}\n\n/* SELECT MENU */\naio-select .form-select-menu {\n position: relative;\n}\naio-select .form-select-button {\n box-sizing: border-box;\n border-radius: 4px;\n font-size: 14px;\n font-size: 1.4rem;\n font-weight: 400;\n line-height: 32px;\n line-height: 3.2rem;\n outline: none;\n padding: 4px 16px;\n text-align: left;\n width: 100%;\n cursor: pointer;\n display: flex;\n align-items: center;\n flex-direction: row;\n}\naio-select .form-select-button strong {\n font-weight: 600;\n margin-right: 8px;\n text-transform: capitalize;\n}\naio-select .form-select-button[disabled] {\n cursor: not-allowed;\n}\naio-select .form-select-dropdown {\n border-radius: 4px;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 2;\n}\naio-select .form-select-dropdown li {\n cursor: pointer;\n font-size: 14px;\n font-size: 1.4rem;\n line-height: 32px;\n line-height: 3.2rem;\n margin: 0;\n padding: 4px 16px 4px 40px;\n position: relative;\n transition: all 0.2s;\n border: 1px solid transparent;\n}\naio-select .form-select-dropdown li:first-child {\n border-radius: 4px 4px 0 0;\n}\naio-select .form-select-dropdown li:last-child {\n border-radius: 0 0 4px 4px;\n}\naio-select .form-select-dropdown li .symbol {\n left: 16px;\n position: absolute;\n top: 12px;\n z-index: 5;\n}\n\n.skip-to-content-link {\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\n background: #fafafa;\n border: 1px dashed;\n border-radius: 8px;\n color: #1976D2;\n font-weight: 500;\n margin: 5px;\n outline: none;\n padding: 1rem 1.5rem;\n position: fixed;\n top: -100%;\n z-index: 1001;\n}\n.skip-to-content-link:active, .skip-to-content-link:focus {\n top: auto;\n}\n.skip-to-content-link:hover {\n text-decoration: underline;\n}\n\ntable {\n margin: 24px 0px;\n border-radius: 2px;\n}\ntable.is-full-width {\n width: 100%;\n}\ntable.is-fixed-layout {\n table-layout: fixed;\n}\ntable thead {\n vertical-align: middle;\n border-color: inherit;\n}\ntable thead > tr {\n vertical-align: inherit;\n border-color: inherit;\n}\ntable thead > tr > th {\n font-size: 12px;\n font-size: 1.2rem;\n font-weight: 500;\n padding: 8px 24px;\n text-align: left;\n text-transform: uppercase;\n line-height: 28px;\n line-height: 2.8rem;\n}\ntable tbody > tr > th,\ntable tbody > tr > td {\n padding: 16px;\n text-align: left;\n line-height: 24px;\n line-height: 2.4rem;\n vertical-align: top;\n}\n@media (max-width: 480px) {\n table tbody > tr > th:before,\ntable tbody > tr > td:before {\n display: inline-block;\n }\n}\ntable tbody > tr > td {\n letter-spacing: 0.3px;\n letter-spacing: 0.03rem;\n}\ntable tbody > tr > th {\n font-weight: 600;\n max-width: 100px;\n}\ntable tbody > tr:last-child td {\n border: none;\n}\n\n.page-guide-cheatsheet table tbody td {\n overflow: auto;\n}\n@media only screen and (max-width: 990px) {\n .page-guide-cheatsheet {\n /* Force table to not be like tables anymore */\n }\n .page-guide-cheatsheet table, .page-guide-cheatsheet thead, .page-guide-cheatsheet tbody, .page-guide-cheatsheet tfoot, .page-guide-cheatsheet tr, .page-guide-cheatsheet th, .page-guide-cheatsheet td {\n display: block;\n position: relative;\n max-width: 100%;\n }\n .page-guide-cheatsheet th {\n border-right: none;\n }\n .page-guide-cheatsheet th:not(:last-child), .page-guide-cheatsheet td:not(:last-child) {\n border-bottom: none;\n padding-bottom: 0px;\n }\n}\n\n.page-events tr > td, .page-events tr > th {\n width: 33%;\n}\n\n.toc-container {\n width: 18vw;\n position: fixed;\n top: 76px;\n right: 0;\n bottom: 12px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\naio-toc .toc-inner {\n font-size: 13px;\n font-size: 1.3rem;\n overflow-y: visible;\n padding: 4px 0 0 10px;\n}\naio-toc .toc-inner .toc-heading,\naio-toc .toc-inner .toc-list .h1 {\n font-size: 16px;\n font-size: 1.6rem;\n}\naio-toc .toc-inner .toc-heading {\n font-weight: 500;\n margin: 0 0 16px 8px;\n padding: 0;\n}\naio-toc .toc-inner .toc-heading.secondary {\n position: relative;\n top: -8px;\n}\naio-toc .toc-inner button.toc-heading, aio-toc .toc-inner button.toc-more-items {\n cursor: pointer;\n display: inline-block;\n background: 0;\n background-color: transparent;\n border: none;\n box-shadow: none;\n padding: 0;\n text-align: start;\n}\naio-toc .toc-inner button.toc-heading.embedded:focus, aio-toc .toc-inner button.toc-more-items.embedded:focus {\n outline: none;\n}\naio-toc .toc-inner button.toc-heading mat-icon.rotating-icon {\n height: 18px;\n width: 18px;\n position: relative;\n left: -4px;\n top: 5px;\n}\naio-toc .toc-inner button.toc-more-items {\n top: 10px;\n position: relative;\n}\naio-toc .toc-inner button.toc-more-items::after {\n content: \"expand_less\";\n}\naio-toc .toc-inner button.toc-more-items.collapsed::after {\n content: \"more_horiz\";\n}\naio-toc .toc-inner .mat-icon.collapsed {\n -moz-transform: rotate(0deg);\n -webkit-transform: rotate(0deg);\n -o-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n transition: transform 150ms;\n transition-timing-function: ease-in-out;\n}\naio-toc .toc-inner .mat-icon:not(.collapsed) {\n -moz-transform: rotate(90deg);\n -webkit-transform: rotate(90deg);\n -o-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n transition: transform 150ms;\n transition-timing-function: ease-in-out;\n}\naio-toc .toc-inner ul.toc-list {\n list-style-type: none;\n margin: 0;\n padding: 0 8px 0 0;\n}\n@media (max-width: 800px) {\n aio-toc .toc-inner ul.toc-list {\n width: auto;\n }\n}\naio-toc .toc-inner ul.toc-list li {\n box-sizing: border-box;\n line-height: 24px;\n line-height: 2.4rem;\n padding: 9px 0 9px 12px;\n position: relative;\n transition: all 0.3s ease-in-out;\n}\naio-toc .toc-inner ul.toc-list li.h1:after {\n content: \"\";\n display: block;\n height: 1px;\n width: 40%;\n margin: 7px 0 4px 0;\n clear: both;\n}\naio-toc .toc-inner ul.toc-list li.h3 {\n padding-left: 24px;\n}\naio-toc .toc-inner ul.toc-list li a {\n overflow: visible;\n font-size: 14px;\n font-size: 1.4rem;\n line-height: inherit;\n display: table-cell;\n}\naio-toc .toc-inner ul.toc-list li.active * {\n font-weight: 500;\n}\naio-toc .toc-inner ul.toc-list li.active a:before {\n border-radius: 50%;\n content: \"\";\n height: 6px;\n left: -2.5px;\n position: absolute;\n top: calc(9px + 12px - 3px);\n top: calc(9px + 1.2rem - 3px);\n width: 6px;\n}\naio-toc .toc-inner ul.toc-list:not(.embedded) li:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n border-left-width: 1px;\n border-left-style: solid;\n}\naio-toc .toc-inner ul.toc-list:not(.embedded) li:first-child:before {\n top: calc(9px + 12px - 3px);\n top: calc(9px + 1.2rem - 3px);\n}\naio-toc .toc-inner ul.toc-list:not(.embedded) li:last-child:before {\n bottom: calc(100% - (9px + 12px + 3px));\n bottom: calc(100% - (9px + 1.2rem + 3px));\n}\naio-toc .toc-inner ul.toc-list:not(.embedded) li:not(.active):hover a:before {\n border-radius: 50%;\n content: \"\";\n height: 6px;\n left: -2.5px;\n position: absolute;\n top: calc(9px + 12px - 3px);\n top: calc(9px + 1.2rem - 3px);\n width: 6px;\n}\n@media (min-width: 801px) {\n aio-toc.embedded {\n display: none;\n }\n}\naio-toc.embedded .toc-inner {\n padding: 12px 0 0 0;\n}\naio-toc.embedded .toc-inner .toc-heading {\n margin: 0 0 8px;\n}\naio-toc.embedded .toc-inner.collapsed .secondary {\n display: none;\n}\n\n/* ==============================\n MODULE STYLES\n ============================== */\n.debug [translation-result], .debug code-tabs, .debug code-example, .debug img, .debug code, .debug pre, .debug .filetree {\n display: none;\n}\n\n[translation-result] + [translation-origin=off] {\n display: none;\n}\n\n[translation-result] + aio-toc + [translation-origin=off] {\n display: none;\n}\n\n[translation-origin=on] {\n border-top: 1px dashed #0273D4;\n}\n\n[id^=translations-cn] aio-doc-viewer blockquote {\n color: #455A64;\n margin: 0 0 32px 0;\n padding: 16px 32px;\n background: rgba(236, 239, 241, 0.24);\n border-left: 4px solid #00BCD4;\n}\n\nem {\n font-style: normal;\n font-weight: bold;\n}\n\nnt-wrapper {\n display: block;\n}\n\n@media print {\n * {\n box-shadow: none !important;\n }\n\n body,\nmat-sidenav-container {\n background: none !important;\n }\n\n h1 {\n height: 40px !important;\n color: #444444 !important;\n }\n\n h1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n page-break-after: avoid;\n }\n\n ul,\nol,\nimg,\ncode-example,\ntable,\ntr,\n.alert,\n.feature,\n.lightbox {\n page-break-inside: avoid;\n }\n\n table tbody tr:last-child td {\n border-bottom: 1px solid #DBDBDB !important;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p {\n widows: 4;\n }\n\n p > code,\nli > code,\ntable code {\n color: #1976D2 !important;\n }\n\n .no-print {\n display: none !important;\n }\n\n mat-sidenav.sidenav.mat-sidenav {\n display: none !important;\n }\n\n .mat-sidenav-content {\n margin: 0 !important;\n }\n\n mat-sidenav-container.sidenav-container {\n min-width: 100vw;\n }\n\n .sidenav-content {\n overflow: visible;\n }\n\n section#intro .hero-logo {\n align-items: center;\n background: none;\n justify-content: center;\n }\n section#intro .hero-logo::after {\n font-size: 64px;\n font-size: 6.4rem;\n line-height: 100px;\n line-height: 10rem;\n color: #DD0031;\n content: \"Angular\";\n font-weight: bold;\n }\n\n .filetree {\n max-width: 100%;\n }\n\n aio-code code {\n border: none !important;\n }\n\n code-example[language=shell], code-example[language=sh], code-example[language=bash] {\n background: none;\n }\n code-example[language=shell] .pnk,\ncode-example[language=shell] .blk,\ncode-example[language=shell] .pln,\ncode-example[language=shell] .otl,\ncode-example[language=shell] .kwd,\ncode-example[language=shell] .typ,\ncode-example[language=shell] .tag,\ncode-example[language=shell] .str,\ncode-example[language=shell] .atv,\ncode-example[language=shell] .atn,\ncode-example[language=shell] .com,\ncode-example[language=shell] .lit,\ncode-example[language=shell] .pun,\ncode-example[language=shell] .dec, code-example[language=sh] .pnk,\ncode-example[language=sh] .blk,\ncode-example[language=sh] .pln,\ncode-example[language=sh] .otl,\ncode-example[language=sh] .kwd,\ncode-example[language=sh] .typ,\ncode-example[language=sh] .tag,\ncode-example[language=sh] .str,\ncode-example[language=sh] .atv,\ncode-example[language=sh] .atn,\ncode-example[language=sh] .com,\ncode-example[language=sh] .lit,\ncode-example[language=sh] .pun,\ncode-example[language=sh] .dec, code-example[language=bash] .pnk,\ncode-example[language=bash] .blk,\ncode-example[language=bash] .pln,\ncode-example[language=bash] .otl,\ncode-example[language=bash] .kwd,\ncode-example[language=bash] .typ,\ncode-example[language=bash] .tag,\ncode-example[language=bash] .str,\ncode-example[language=bash] .atv,\ncode-example[language=bash] .atn,\ncode-example[language=bash] .com,\ncode-example[language=bash] .lit,\ncode-example[language=bash] .pun,\ncode-example[language=bash] .dec {\n color: #444444;\n }\n code-example header {\n background: none;\n border: 0.5px solid #DBDBDB;\n color: #444444;\n }\n\n .content code {\n border: 0.5px solid #DBDBDB;\n }\n\n .mat-tab-labels div.mat-tab-label:not(.mat-tab-label-active) span {\n font-style: italic;\n }\n .mat-tab-labels div.mat-tab-label.mat-tab-label-active span {\n font-weight: bold;\n }\n\n .api-header label {\n color: #444444 !important;\n font-weight: bold !important;\n margin: 2px !important;\n padding: 0 !important;\n display: block !important;\n }\n\n .feature-section img {\n max-width: 70px !important;\n }\n}\n.mat-badge-content {\n font-weight: 600;\n font-size: 12px;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-badge-small .mat-badge-content {\n font-size: 9px;\n}\n\n.mat-badge-large .mat-badge-content {\n font-size: 24px;\n}\n\n.mat-h1,\n.mat-headline,\n.mat-typography .mat-h1,\n.mat-typography .mat-headline,\n.mat-typography h1 {\n font: 400 24px / 32px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n margin: 0 0 16px;\n}\n\n.mat-h2,\n.mat-title,\n.mat-typography .mat-h2,\n.mat-typography .mat-title,\n.mat-typography h2 {\n font: 500 20px / 32px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n margin: 0 0 16px;\n}\n\n.mat-h3,\n.mat-subheading-2,\n.mat-typography .mat-h3,\n.mat-typography .mat-subheading-2,\n.mat-typography h3 {\n font: 400 16px / 28px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n margin: 0 0 16px;\n}\n\n.mat-h4,\n.mat-subheading-1,\n.mat-typography .mat-h4,\n.mat-typography .mat-subheading-1,\n.mat-typography h4 {\n font: 400 15px / 24px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n margin: 0 0 16px;\n}\n\n.mat-h5,\n.mat-typography .mat-h5,\n.mat-typography h5 {\n font: 400 calc(14px * 0.83) / 20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n\n.mat-h6,\n.mat-typography .mat-h6,\n.mat-typography h6 {\n font: 400 calc(14px * 0.67) / 20px Roboto, \"Helvetica Neue\", sans-serif;\n margin: 0 0 12px;\n}\n\n.mat-body-strong,\n.mat-body-2,\n.mat-typography .mat-body-strong,\n.mat-typography .mat-body-2 {\n font: 500 14px / 24px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n\n.mat-body,\n.mat-body-1,\n.mat-typography .mat-body,\n.mat-typography .mat-body-1,\n.mat-typography {\n font: 400 14px / 20px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n.mat-body p,\n.mat-body-1 p,\n.mat-typography .mat-body p,\n.mat-typography .mat-body-1 p,\n.mat-typography p {\n margin: 0 0 12px;\n}\n\n.mat-small,\n.mat-caption,\n.mat-typography .mat-small,\n.mat-typography .mat-caption {\n font: 400 12px / 20px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n\n.mat-display-4,\n.mat-typography .mat-display-4 {\n font: 300 112px / 112px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.05em;\n margin: 0 0 56px;\n}\n\n.mat-display-3,\n.mat-typography .mat-display-3 {\n font: 400 56px / 56px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.02em;\n margin: 0 0 64px;\n}\n\n.mat-display-2,\n.mat-typography .mat-display-2 {\n font: 400 45px / 48px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: -0.005em;\n margin: 0 0 64px;\n}\n\n.mat-display-1,\n.mat-typography .mat-display-1 {\n font: 400 34px / 40px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n margin: 0 0 64px;\n}\n\n.mat-bottom-sheet-container {\n font: 400 14px / 20px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n\n.mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\n.mat-flat-button, .mat-fab, .mat-mini-fab {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n\n.mat-button-toggle {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-card {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-card-title {\n font-size: 24px;\n font-weight: 500;\n}\n\n.mat-card-header .mat-card-title {\n font-size: 20px;\n}\n\n.mat-card-subtitle,\n.mat-card-content {\n font-size: 14px;\n}\n\n.mat-checkbox {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-checkbox-layout .mat-checkbox-label {\n line-height: 24px;\n}\n\n.mat-chip {\n font-size: 14px;\n font-weight: 500;\n}\n.mat-chip .mat-chip-trailing-icon.mat-icon,\n.mat-chip .mat-chip-remove.mat-icon {\n font-size: 18px;\n}\n\n.mat-table {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-header-cell {\n font-size: 12px;\n font-weight: 500;\n}\n\n.mat-cell, .mat-footer-cell {\n font-size: 14px;\n}\n\n.mat-calendar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-calendar-body {\n font-size: 13px;\n}\n\n.mat-calendar-body-label,\n.mat-calendar-period-button {\n font-size: 14px;\n font-weight: 500;\n}\n\n.mat-calendar-table-header th {\n font-size: 11px;\n font-weight: 400;\n}\n\n.mat-dialog-title {\n font: 500 20px / 32px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n\n.mat-expansion-panel-header {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 15px;\n font-weight: 400;\n}\n\n.mat-expansion-panel-content {\n font: 400 14px / 20px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n\n.mat-form-field {\n font-size: inherit;\n font-weight: 400;\n line-height: 1.125;\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n\n.mat-form-field-wrapper {\n padding-bottom: 1.34375em;\n}\n\n.mat-form-field-prefix .mat-icon,\n.mat-form-field-suffix .mat-icon {\n font-size: 150%;\n line-height: 1.125;\n}\n.mat-form-field-prefix .mat-icon-button,\n.mat-form-field-suffix .mat-icon-button {\n height: 1.5em;\n width: 1.5em;\n}\n.mat-form-field-prefix .mat-icon-button .mat-icon,\n.mat-form-field-suffix .mat-icon-button .mat-icon {\n height: 1.125em;\n line-height: 1.125;\n}\n\n.mat-form-field-infix {\n padding: 0.5em 0;\n border-top: 0.84375em solid transparent;\n}\n\n.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.34374em) scale(0.75);\n width: 133.3333433333%;\n}\n\n.mat-form-field-label-wrapper {\n top: -0.84375em;\n padding-top: 0.84375em;\n}\n\n.mat-form-field-label {\n top: 1.34375em;\n}\n\n.mat-form-field-underline {\n bottom: 1.34375em;\n}\n\n.mat-form-field-subscript-wrapper {\n font-size: 75%;\n margin-top: 0.6666666667em;\n top: calc(100% - 1.7916666667em);\n}\n\n.mat-form-field-appearance-legacy .mat-form-field-wrapper {\n padding-bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-infix {\n padding: 0.4375em 0;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.001px);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00101px);\n width: 133.3333433333%;\n}\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28125em) scale(0.75) perspective(100px) translateZ(0.00102px);\n width: 133.3333533333%;\n}\n.mat-form-field-appearance-legacy .mat-form-field-label {\n top: 1.28125em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-underline {\n bottom: 1.25em;\n}\n.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {\n margin-top: 0.5416666667em;\n top: calc(100% - 1.6666666667em);\n}\n\n@media print {\n .mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28122em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.28121em) scale(0.75);\n }\n .mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.2812em) scale(0.75);\n }\n}\n.mat-form-field-appearance-fill .mat-form-field-infix {\n padding: 0.25em 0 0.75em 0;\n}\n.mat-form-field-appearance-fill .mat-form-field-label {\n top: 1.09375em;\n margin-top: -0.5em;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-0.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n\n.mat-form-field-appearance-outline .mat-form-field-infix {\n padding: 1em 0 1em 0;\n}\n.mat-form-field-appearance-outline .mat-form-field-label {\n top: 1.84375em;\n margin-top: -0.25em;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59375em) scale(0.75);\n width: 133.3333333333%;\n}\n.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper .mat-form-field-label {\n transform: translateY(-1.59374em) scale(0.75);\n width: 133.3333433333%;\n}\n\n.mat-grid-tile-header,\n.mat-grid-tile-footer {\n font-size: 14px;\n}\n.mat-grid-tile-header .mat-line,\n.mat-grid-tile-footer .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-grid-tile-header .mat-line:nth-child(n+2),\n.mat-grid-tile-footer .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n\ninput.mat-input-element {\n margin-top: -0.0625em;\n}\n\n.mat-menu-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 400;\n}\n\n.mat-paginator,\n.mat-paginator-page-size .mat-select-trigger {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n}\n\n.mat-radio-button {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-select {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-select-trigger {\n height: 1.125em;\n}\n\n.mat-slide-toggle-content {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-slider-thumb-label-text {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n\n.mat-stepper-vertical, .mat-stepper-horizontal {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-step-label {\n font-size: 14px;\n font-weight: 400;\n}\n\n.mat-step-sub-label-error {\n font-weight: normal;\n}\n\n.mat-step-label-error {\n font-size: 14px;\n}\n\n.mat-step-label-selected {\n font-size: 14px;\n font-weight: 500;\n}\n\n.mat-tab-group {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-tab-label, .mat-tab-link {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n\n.mat-toolbar,\n.mat-toolbar h1,\n.mat-toolbar h2,\n.mat-toolbar h3,\n.mat-toolbar h4,\n.mat-toolbar h5,\n.mat-toolbar h6 {\n font: 500 20px / 32px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n margin: 0;\n}\n\n.mat-tooltip {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 10px;\n padding-top: 6px;\n padding-bottom: 6px;\n}\n\n.mat-tooltip-handset {\n font-size: 14px;\n padding-top: 8px;\n padding-bottom: 8px;\n}\n\n.mat-list-item {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-list-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-list-base .mat-list-item {\n font-size: 16px;\n}\n.mat-list-base .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-list-option {\n font-size: 16px;\n}\n.mat-list-base .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 14px;\n}\n.mat-list-base .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n font-weight: 500;\n}\n\n.mat-list-base[dense] .mat-list-item {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-item .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-list-option .mat-line {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n box-sizing: border-box;\n}\n.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2) {\n font-size: 12px;\n}\n.mat-list-base[dense] .mat-subheader {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 12px;\n font-weight: 500;\n}\n\n.mat-option {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 16px;\n}\n\n.mat-optgroup-label {\n font: 500 14px / 24px Roboto, \"Helvetica Neue\", sans-serif;\n letter-spacing: normal;\n}\n\n.mat-simple-snackbar {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n font-size: 14px;\n}\n\n.mat-simple-snackbar-action {\n line-height: 1;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n}\n\n.mat-tree {\n font-family: Roboto, \"Helvetica Neue\", sans-serif;\n}\n\n.mat-tree-node,\n.mat-nested-tree-node {\n font-weight: 400;\n font-size: 14px;\n}\n\n.mat-ripple {\n overflow: hidden;\n position: relative;\n}\n.mat-ripple:not(:empty) {\n transform: translateZ(0);\n}\n\n.mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n}\n\n.mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n transform: scale3d(0, 0, 0);\n}\n.cdk-high-contrast-active .mat-ripple-element {\n display: none;\n}\n\n.cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n outline: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n left: 0;\n}\n[dir=rtl] .cdk-visually-hidden {\n left: auto;\n right: 0;\n}\n\n.cdk-overlay-container, .cdk-global-overlay-wrapper {\n pointer-events: none;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n\n.cdk-overlay-container {\n position: fixed;\n z-index: 1000;\n}\n.cdk-overlay-container:empty {\n display: none;\n}\n\n.cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: 1000;\n}\n\n.cdk-overlay-pane {\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: 1000;\n display: flex;\n max-width: 100%;\n max-height: 100%;\n}\n\n.cdk-overlay-backdrop {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n opacity: 0;\n}\n.cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 1;\n}\n.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0.6;\n}\n\n.cdk-overlay-dark-backdrop {\n background: rgba(0, 0, 0, 0.32);\n}\n\n.cdk-overlay-transparent-backdrop {\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n}\n.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n}\n\n.cdk-overlay-backdrop-noop-animation {\n transition: none;\n}\n\n.cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n min-width: 1px;\n min-height: 1px;\n}\n\n.cdk-global-scrollblock {\n position: fixed;\n width: 100%;\n overflow-y: scroll;\n}\n\ntextarea.cdk-textarea-autosize {\n resize: none;\n}\n\ntextarea.cdk-textarea-autosize-measuring {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: auto !important;\n overflow: hidden !important;\n}\n\ntextarea.cdk-textarea-autosize-measuring-firefox {\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n height: 0 !important;\n}\n\n@keyframes cdk-text-field-autofill-start {\n /*!*/\n}\n@keyframes cdk-text-field-autofill-end {\n /*!*/\n}\n.cdk-text-field-autofill-monitored:-webkit-autofill {\n animation: cdk-text-field-autofill-start 0s 1ms;\n}\n\n.cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n animation: cdk-text-field-autofill-end 0s 1ms;\n}\n\n.mat-focus-indicator {\n position: relative;\n}\n\n.mat-mdc-focus-indicator {\n position: relative;\n}","// TYPOGRAPHY\n$main-font: \"Roboto\",\"Helvetica Neue Light\",\"Helvetica Neue\",Helvetica,Arial,\"Lucida Grande\",sans-serif;\n$code-font: \"Roboto Mono\", monospace;\n\n// Z-LAYER\n$layer-1: 1;\n$layer-2: 2;\n$layer-3: 3;\n$layer-4: 4;\n$layer-5: 5;\n\n// COLOR PALETTE\n$cyan: #39d0ff;\n$powderblue: #bae0ff;\n$lightblue: #7fc9ff;\n$blue: #1976D2;\n$warmblue: #7491ff;\n$coldblue: #8ccade;\n$darkblue: #1669bb;\n$accentblue: #1E88E5;\n$brightred: #DD0031;\n$darkred: #C3002F;\n$white: #FFFFFF;\n$offwhite: #FAFAFA;\n$tangerine: #DDA302;\n$darkgoldenrod: #C3A300;\n$backgroundgray: #F1F1F1;\n$superlightgray: #F2F2F2;\n$lightgray: #DBDBDB;\n$lightboxgray: #EBEBEB;\n$mist: #ECEFF1;\n$mediumgray: #6E6E6E;\n$darkgray: #444444;\n$deepgray: #333333;\n$black: #0A1014;\n$orange: #FF9800;\n$darkorange: #940;\n$anti-pattern: $brightred;\n\n// API & CODE COLORS\n$amber-200: #AA3000;\n$amber-700: #FFA000;\n$blue-400: #42A5F5;\n$blue-500: #2196F3;\n$blue-600: #1E88E5;\n$blue-800: #1565C0;\n$blue-900: #0D47A1;\n$blue-grey-50: #ECEFF1;\n$blue-grey-100: #CFD8DC;\n$blue-grey-200: #B0BEC5;\n$blue-grey-300: #90A4AE;\n$blue-grey-400: #78909C;\n$blue-grey-500: #607D8B;\n$blue-grey-600: #546E7A;\n$blue-grey-700: #455A64;\n$blue-grey-800: #37474F;\n$blue-grey-900: #263238;\n$codegreen: #17ff0b;\n$green-500: #4CAF50;\n$green-800: #2E7D32;\n$light-green-600: #7CB342;\n$pink-600: #D81B60;\n$purple-600: #8E24AA;\n$teal-500: #009688;\n$lightgrey: #F5F6F7;\n\n// STATE COLORS\n$focus-outline-ondark: rgba($white, 0.8);\n$focus-outline-onlight: $accentblue;\n\n// GRADIENTS\n$bluegradient: linear-gradient(145deg,$blue-900,$blue-400);\n$redgradient: linear-gradient(145deg,$darkred,$brightred);\n\n// API LABEL COLOR AND SYMBOLS MAP\n$api-symbols: (\n all: (\n content: ' ',\n background: $white\n ),\n class: (\n content: 'C',\n background: $blue-500\n ),\n const: (\n content: 'K',\n background: $mediumgray\n ),\n decorator: (\n content: '@',\n background: $blue-800\n ),\n directive: (\n content: 'D',\n background: $pink-600\n ),\n enum: (\n content: 'E',\n background: $amber-700\n ),\n function: (\n content: 'F',\n background: $green-500\n ),\n interface: (\n content: 'I',\n background: $teal-500\n ),\n let: (\n content: 'K',\n background: $mediumgray\n ),\n ngmodule: (\n content: 'M',\n background: $darkorange\n ),\n package: (\n content: 'Pk',\n background: $purple-600\n ),\n pipe: (\n content: 'P',\n background: $blue-grey-600\n ),\n element: (\n content: 'El',\n background: $amber-200\n ),\n type-alias: (\n content: 'T',\n background: $light-green-600\n ),\n var: (\n content: 'K',\n background: $mediumgray\n ),\n);\n\n// OTHER\n$small-breakpoint-width: 840px;\n$phone-breakpoint: 480px;\n$tablet-breakpoint: 800px;\n","@use 'sass:list';\n@use 'sass:math';\n@use 'sass:selector';\n@use './constants';\n\n// REM Font Adjustments\n@mixin font-size($sizeValue) {\n font-size: ($sizeValue) + px;\n font-size: math.div($sizeValue, 10) + rem;\n}\n\n@mixin letter-spacing($spacingValue) {\n letter-spacing: ($spacingValue) + px;\n letter-spacing: math.div($spacingValue, 10) + rem;\n}\n\n@mixin line-height($heightValue) {\n line-height: ($heightValue) + px;\n line-height: math.div($heightValue, 10) + rem;\n}\n\n// PLACEHOLDER\n// NOTE: Vendor-prefixed selectors must be on separate blocks, because one invalid/unknown\n// selector will invalidate the whole block.\n@mixin placeholder {\n &:-ms-input-placeholder { @content; } // IE\n &::-ms-input-placeholder { @content; } // Edge\n &::-webkit-input-placeholder { @content; } // QQ Browser\n &::placeholder { @content; } // Chrome/Firefox/Safari\n}\n\n@mixin rotate($degrees) {\n -moz-transform: rotate($degrees);\n -webkit-transform: rotate($degrees);\n -o-transform: rotate($degrees);\n -ms-transform: rotate($degrees);\n transform: rotate($degrees);\n transition: transform 150ms;\n transition-timing-function: ease-in-out;\n}\n\n@mixin codeblock($bgcolor) {\n background-color: $bgcolor;\n border-radius: 5px;\n padding: 20px;\n margin: 0 auto; // was 24\n border: 0.5px solid constants.$lightgray;\n}\n\n// INFO CARD SKELETON\n@mixin card($width) {\n width: $width;\n border-radius: 4px;\n box-shadow: 0 2px 2px rgba(constants.$black, 0.24), 0 0 2px rgba(constants.$black, 0.12);\n box-sizing: border-box;\n transition: box-shadow .5s;\n\n &:hover {\n box-shadow: 0 8px 8px rgba(constants.$black, 0.24), 0 0 8px rgba(constants.$black, 0.12);\n text-decoration: none;\n }\n}\n\n@mixin deploy-theme($mainColor, $gradientTargetColor, $textColor) {\n .mat-toolbar.mat-primary, footer {\n background: linear-gradient(145deg, $mainColor, $gradientTargetColor);\n }\n\n .vertical-menu-item {\n &.selected, &:hover {\n color: $textColor;\n }\n }\n\n .toc-inner ul.toc-list li {\n &.active a {\n color: $textColor;\n\n &:before {\n background-color: $mainColor;\n }\n }\n\n &:hover a {\n color: $textColor;\n }\n }\n}\n\n/// Define some styles for docs (i.e. non-marketing) pages.\n///\n/// @example scss - Example SCSS:\n/// .foo {\n/// @include docs-pages {\n/// .bar {\n/// color: orange;\n/// }\n/// }\n/// }\n///\n/// .baz {\n/// @include docs-pages($nestParentSelector: true) {\n/// .qux {\n/// color: orange;\n/// }\n/// }\n/// }\n///\n/// @example css - Output CSS:\n/// .foo .folder-api .bar, .foo .folder-cli .bar, ... {\n/// color: orange;\n/// }\n///\n/// .folder-api .baz .qux, .folder-cli .baz .qux, ... {\n/// color: orange;\n/// }\n///\n/// @param {boolean} $nestParentSelector\n/// If true, the parent selector (`&`) is nested inside the docs pages selectors.\n@mixin docs-pages($nestParentSelector: false) {\n $selectors: (\n '.folder-api',\n '.folder-cli',\n '.folder-docs',\n '.folder-errors',\n '.folder-extended-diagnostics',\n '.folder-guide',\n '.folder-start',\n '.folder-tutorial',\n );\n\n @if $nestParentSelector and & {\n @at-root #{selector.nest(#{$selectors}, &)} {\n @content;\n }\n } @else {\n #{$selectors} {\n @content;\n }\n }\n}\n\n/// Define some styles for marketing (i.e. non-docs) pages.\n///\n/// @example scss - Example SCSS:\n/// .foo {\n/// @include marketing-pages {\n/// .bar {\n/// color: orange;\n/// }\n/// }\n/// }\n///\n/// .baz {\n/// @include marketing-pages($extraSelectors: ('.other-page'), $nestParentSelector: true) {\n/// .qux {\n/// color: orange;\n/// }\n/// }\n/// }\n///\n/// @example css - Output CSS:\n/// .foo .page-about .bar, .foo .page-contribute .bar, ... {\n/// color: orange;\n/// }\n///\n/// .page-about .baz .qux, .page-contribute .baz .qux, ..., .other-page .baz .qux {\n/// color: orange;\n/// }\n///\n/// @param {string[]} $extraSelectors\n/// A list of additional page selectors to apply the styles to.\n/// @param {boolean} $nestParentSelector\n/// If true, the parent selector (`&`) is nested inside the marketing pages selectors.\n@mixin marketing-pages($extraSelectors: (), $nestParentSelector: false) {\n $marketingPagesSelectors: (\n '.page-about',\n '.page-contribute',\n '.page-events',\n '.page-features',\n '.page-home',\n '.page-presskit',\n '.page-resources',\n );\n $selectors: list.join($marketingPagesSelectors, $extraSelectors, $separator: comma);\n\n @if $nestParentSelector and & {\n @at-root #{selector.nest(#{$selectors}, &)} {\n @content;\n }\n } @else {\n #{$selectors} {\n @content;\n }\n }\n}\n","/* ==============================\n BASE STYLES\n ============================== */\n\n@forward 'typography';","@use '../../mixins';\n\n.sidenav-container {\n width: 100%;\n height: 100vh;\n}\n\n.sidenav-content {\n min-height: 100vh;\n padding: 80px 3rem 2rem;\n max-width: 50em;\n margin: 0 auto;\n\n @media screen and (max-width: 600px) {\n min-height: 450px;\n padding: 80px 2rem 1rem;\n }\n\n @media screen and (max-width: 480px) {\n padding: 80px 1rem 1rem;\n }\n\n @include mixins.marketing-pages(\n $extraSelectors: ('.page-api', '.page-file-not-found', '.page-guide-cheatsheet'),\n $nestParentSelector: true) {\n max-width: none;\n }\n\n button {\n min-width: 24px;\n }\n}\n\naio-menu {\n @media (max-width: 600px) {\n display: none;\n }\n}\n",".no-animations aio-doc-viewer > * {\n // Disable view transition animations.\n transition: none !important;\n}\n\n.video-container {\n position: relative;\n padding-bottom: 56.25%; /* 16:9 */\n height: 0;\n\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n}\n","@use '../../constants';\n@use '../../mixins';\n\nfooter {\n position: relative;\n @include mixins.line-height(24);\n flex: 1;\n padding: 48px 25px;\n z-index: 0;\n font-weight: 300;\n\n aio-footer {\n display: block;\n position: relative;\n z-index: 0;\n overflow: auto;\n\n & > * {\n max-width: 50em;\n }\n\n .footer-block {\n margin: 0 0.3rem;\n }\n\n a {\n text-decoration: none;\n z-index: 20;\n position: relative;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:visited {\n text-decoration: none;\n }\n\n &:focus {\n // `outline-offset` is not applied on Chrome on Windows, if `outline-style` is `auto.\n outline: 1px solid rgba(constants.$white, 0.8);\n outline-offset: 2px;\n }\n }\n\n .footer-block-heading {\n @include mixins.font-size(16);\n text-transform: uppercase;\n font-weight: 400;\n margin: 8px 0 12px;\n\n @media (max-width: 600px) {\n @include mixins.font-size(14);\n }\n }\n\n p {\n text-align: center;\n margin: 10px auto 5px;\n\n @media (max-width: 480px) {\n text-align: left;\n }\n }\n\n div.grid-fluid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n $grid-gap: 24px;\n gap: $grid-gap;\n margin: 0 auto 40px;\n justify-content: center;\n\n ul {\n list-style-position: inside;\n padding: 0;\n margin: 0;\n\n li {\n list-style-type: none;\n padding: 4px 0;\n text-align: left;\n }\n }\n\n @media (max-width: 45rem) {\n grid-template-columns: repeat(2, calc(50% - (#{$grid-gap}/2)));\n\n .footer-block {\n margin: 1.5rem 2.4rem 0.8rem 20%;\n }\n }\n\n @media (max-width: 25rem) {\n .footer-block {\n margin-left: 0.3rem;\n margin-right: 0.3rem;\n }\n }\n\n @media (max-width: 20rem) {\n grid-template-columns: 1fr;\n }\n }\n }\n\n &::after {\n content: \"\";\n position: absolute;\n z-index: -1;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background: url(\"/assets/images/logos/angular/angular_whiteTransparent_withMargin.png\")\n top 0 left 0 repeat,\n url(\"/assets/images/logos/angular/angular_whiteTransparent_withMargin.png\")\n top 80px left 160px repeat;\n opacity: 0.05;\n background-size: 320px auto;\n }\n}\n","html, body {\n height: 100%;\n}\n\n.center-layout {\n margin: 0 auto;\n max-width: 62.5em;\n}\n\n.center-layout-wide {\n margin: 0 auto;\n max-width: 84em;\n}\n\n.github-links + .content h1 {\n max-width: 90%;\n}\n\n.clear {\n clear: both;\n}\n\n.l-flex-wrap {\n display: flex;\n flex-wrap: wrap;\n}\n\n.flex-center {\n display: flex;\n justify-content: center;\n}\n\n.center {\n text-align: center;\n}\n\n.visually-hidden {\n position: absolute !important;\n top: -9999px !important;\n left: -9999px !important;\n}\n","@use '../../constants';\n@use '../../mixins';\n\n.hero {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n position: absolute;\n width: 100%;\n min-height: 480px;\n height: 80vh;\n max-height: 560px;\n box-sizing: border-box;\n padding: 48px 48px 32px 48px;\n overflow: hidden;\n transform: skewY(8deg);\n transform-origin: 100%;\n\n @media (max-width: 480px) {\n max-height: 486px;\n padding-top: 40px;\n transform: none;\n }\n\n .hero-title {\n display: inline-block;\n @include mixins.font-size(28);\n font-weight: 400;\n @include mixins.line-height(48);\n margin: 0 8px 0 0;\n text-transform: uppercase;\n\n &.is-standard-case {\n text-transform: none;\n }\n }\n}\n\nsection#intro {\n display: flex;\n align-items: center;\n position: relative;\n max-width: 900px;\n width: 100%;\n height: 480px;\n margin: 0 auto;\n padding: 48px 0 0;\n\n .hero-logo {\n background-image: url(/assets/images/logos/angular/angular.svg);\n }\n\n @media (max-width: 65rem) {\n flex-direction: column;\n justify-content: center;\n padding: 40px 0 32px;\n\n button {\n margin: 0;\n height: 60px;\n }\n }\n\n .homepage-container {\n width: 50%;\n max-width: 1040px;\n margin: 0 auto;\n margin-top: -7%;\n padding-top: 0;\n padding-bottom: 0;\n\n @media (max-width: 65rem) {\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n max-width: 100%;\n padding: 0;\n }\n }\n\n .hero-headline {\n @include mixins.font-size(40);\n @include mixins.line-height(64);\n font-weight: 500;\n margin: 32px 0;\n color: inherit;\n\n &:after {\n display: none;\n }\n\n @media (max-width: 65rem) {\n text-align: center;\n }\n\n @media (max-width: 575px) {\n @include mixins.font-size(32);\n @include mixins.line-height(50);\n }\n }\n\n .hero-logo {\n display: flex;\n width: 50%;\n min-width: 250px;\n height: 400px;\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-bottom: 8px;\n }\n}\n\n.announcement-bar {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-around;\n align-items: center;\n max-width: 50vw;\n margin: 0 auto;\n padding: 16px;\n border-radius: 4px;\n box-shadow: 0 2px 2px rgba(constants.$black, 0.24), 0 0 2px rgba(constants.$black, 0.12);\n box-sizing: border-box;\n transition: all 0.3s ease-in;\n\n @media (max-width: 991px) {\n flex-direction: column;\n text-align: center;\n padding: 32px 16px;\n }\n\n @media (max-width: 768px) {\n width: 100%;\n max-width: none;\n }\n\n & > * {\n margin: 8px;\n }\n\n .button {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n min-width: 160px;\n @include mixins.font-size(16);\n border-radius: 48px;\n box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);\n box-sizing: border-box;\n cursor: pointer;\n }\n\n .material-icons {\n display: none;\n right: 0;\n position: static;\n transition: all 0.3s ease-in;\n @include mixins.font-size(16);\n }\n\n p {\n @include mixins.font-size(16);\n margin: 8px;\n text-align: center;\n }\n}\n\n// ANGULAR LINE\n\n.home-row .card {\n @include mixins.card(70%);\n display: flex;\n flex-direction: row;\n align-items: center;\n position: relative;\n min-width: 350px;\n height: auto;\n margin: auto;\n padding: 24px;\n box-shadow: 0 6px 6px rgba(10, 16, 20, 0.15), 0 0 52px rgba(10, 16, 20, 0.12);\n\n @media (max-width: 600px) {\n margin: 16px auto 0;\n\n h2 {\n margin: 0;\n }\n\n img {\n max-width: none;\n height: 70px;\n }\n }\n\n @media (max-width: 1300px) {\n img {\n height: 70px;\n max-width: none;\n }\n }\n\n img {\n margin: 16px ;\n }\n\n .card-text-container {\n margin: 0 16px;\n\n p {\n text-align: left;\n margin: 0;\n padding: 8px 0;\n }\n }\n}\n\n.button.hero-cta {\n padding: 2px 34px 0;\n @include mixins.font-size(18);\n font-weight: 600;\n @include mixins.line-height(40);\n border-radius: 48px;\n box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);\n box-sizing: border-box;\n cursor: pointer;\n\n &:hover {\n opacity: 0.9;\n }\n}\n\n@include mixins.marketing-pages {\n .sidenav-content {\n padding: 0 0 3rem;\n }\n\n article {\n padding: 3rem;\n padding-top: 0;\n\n @media (max-width: 800px) {\n padding: 2.2rem;\n padding-top: 0;\n }\n }\n}\n\n.page-home {\n .sidenav-content {\n padding-bottom: 0;\n }\n}\n\n.cta-bar {\n &.announcement-bar {\n background: none;\n box-shadow: none;\n }\n}\n\n.text-headline {\n @include mixins.font-size(20);\n font-weight: 500;\n margin-top: 10px;\n text-transform: uppercase;\n}\n\naio-shell:not(.view-SideNav) {\n mat-sidenav-container.sidenav-container {\n max-width: none;\n }\n}\n\ndiv[layout=row]{\n display: flex;\n justify-content: center;\n align-items: center;\n box-sizing: border-box;\n\n @media (max-width: 480px) {\n display: block;\n }\n}\n\n.layout-row {\n flex-direction: row;\n}\n\n.home-rows {\n overflow: hidden;\n @media (max-width: 600px) {\n margin: 0;\n }\n}\n\n.background-superhero-paper {\n background-size: 100%;\n background-blend-mode: multiply;\n}\n\n.home-row {\n max-width: 920px;\n margin: 32px auto;\n\n .promo-img-container, .text-container {\n max-width: 50%;\n\n @media(max-width: 480px) {\n max-width: 100%;\n text-align: center;\n\n &:nth-child(even) {\n flex-direction: column-reverse;\n }\n }\n }\n\n .text-block {\n padding-right: 15%;\n\n @media(max-width: 600px) {\n padding: 0;\n }\n }\n\n .promo-img-container {\n p {\n margin: 0 20px;\n }\n\n img {\n max-width: 90% !important;\n }\n }\n}\n\n.marketing-banner {\n margin-top: 64px;\n padding: 32px;\n\n @media (max-width: 600px) {\n margin-top: 56px;\n padding: 18px;\n }\n\n .banner-headline {\n text-transform: uppercase;\n @include mixins.font-size(24);\n font-weight: 300;\n margin: 0;\n -webkit-margin-before: 0;\n -webkit-margin-after: 0;\n\n @media (max-width: 600px) {\n @include mixins.font-size(18);\n font-weight: 400;\n }\n\n &:after {\n display: none;\n }\n }\n\n .page-features & {\n margin-bottom: 20px;\n }\n}\n","@use '../../mixins';\n\n.nf-container {\n align-items: center;\n padding: 32px;\n}\n\n.nf-response {\n margin: 32px;\n height: 100%;\n flex-direction: column;\n\n h1 {\n @include mixins.font-size(48);\n text-transform: uppercase;\n margin: 8px 0;\n }\n}\n\n.nf-icon.material-icons {\n @include mixins.font-size(100);\n position: static;\n}\n","@use '../../constants';\n@use '../../mixins';\n\n// Disable sidenav animations for the initial render.\n.no-animations.mat-drawer-transition .mat-drawer-content {\n transition: none;\n}\n\nmat-sidenav-container.sidenav-container {\n min-height: 100%;\n height: auto !important;\n margin: 0;\n transform: none;\n\n &.has-floating-toc {\n .sidenav-content-container {\n padding-right: 18vw;\n }\n }\n\n .sidenav-content-container {\n height: auto;\n\n .sidenav-content {\n overflow-x: auto;\n }\n }\n\n mat-sidenav.sidenav {\n position: fixed;\n top: 64px;\n bottom: 0;\n left: 0;\n min-width: 260px;\n\n @media (max-width: 599px) {\n top: 56px;\n }\n\n // Angular Version Selector\n .doc-version {\n padding: 8px;\n }\n }\n}\n\naio-nav-menu {\n display: block;\n margin: 0 2px;\n max-width: 268px;\n\n &:first-of-type {\n margin-top: 16px;\n }\n\n &:last-of-type {\n margin-bottom: 16px;\n }\n\n ul, a {\n margin: 0;\n }\n\n aio-nav-item {\n .vertical-menu-item {\n box-sizing: border-box;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between;\n overflow-wrap: break-word;\n padding: 8px;\n text-decoration: none;\n text-align: left;\n width: 100%;\n word-wrap: break-word;\n\n &:focus {\n outline: constants.$focus-outline-onlight auto 2px;\n }\n\n span {\n padding-right: 32px;\n }\n\n //icons _within_ nav\n .mat-icon {\n flex: 0 0 2.4rem;\n display: flex;\n align-items: center;\n }\n }\n\n button.vertical-menu-item {\n border: none;\n background-color: transparent;\n margin: 0;\n width: 100%;\n overflow: hidden;\n }\n\n .heading-children {\n &.expanded {\n visibility: visible;\n opacity: 1;\n padding-left: 0;\n max-height: 4000px; // Arbitrary max-height. Can increase if needed. Must have measurement to transition height.\n transition: visibility 500ms, opacity 500ms, max-height 500ms;\n transition-timing-function: ease-in-out;\n }\n\n &.collapsed {\n overflow: hidden; // Needed to prevent unnecessary sidenav scrollbar.\n visibility: hidden;\n padding-left: 0;\n opacity: 0;\n max-height: 1px; // Must have measurement to transition height.\n transition: visibility 275ms, opacity 275ms, max-height 280ms;\n transition-timing-function: ease-out;\n }\n\n .no-animations &.expanded,\n .no-animations &.collapsed {\n transition: none !important;\n }\n }\n\n .level-1 {\n @include mixins.font-size(16);\n @include mixins.line-height(28);\n font-weight: 400;\n padding-left: 20px;\n margin: 0;\n transition: background-color 0.2s;\n }\n\n .level-2 {\n @include mixins.font-size(14);\n @include mixins.line-height(24);\n font-weight: 400;\n margin: 0;\n padding-left: 36px;\n }\n\n .level-3 {\n @include mixins.font-size(14);\n @include mixins.line-height(24);\n margin: 0;\n padding-left: 44px;\n }\n\n .level-4 {\n @include mixins.font-size(14);\n @include mixins.line-height(24);\n margin: 0;\n padding-left: 52px;\n }\n\n .level-1, .level-2, .level-3 {\n &.collapsed > .mat-icon {\n @include mixins.rotate(0deg);\n }\n\n &.expanded > .mat-icon {\n @include mixins.rotate(90deg);\n }\n }\n }\n}\n","@use '../../mixins';\n@use '../../constants';\n\n// VARIABLES\n$showTopMenuWidth: 1150px;\n$hideTopMenuWidth: $showTopMenuWidth - 1;\n$hamburgerShownMargin: 0 8px 0 0;\n$hamburgerHiddenMargin: 0 16px 0 -64px;\n\n// DOCS PAGE / STANDARD: TOPNAV TOOLBAR FIXED\nmat-toolbar.app-toolbar {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 10;\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.3);\n\n // HOME PAGE OVERRIDE: TOPNAV TOOLBAR\n .page-home & {\n @media (min-width: 481px) {\n &:not(.transitioning) {\n background-color: transparent;\n box-shadow: none;\n position: absolute;\n transition: background-color 0.2s linear;\n }\n }\n }\n\n // DOCS PAGES OVERRIDE: HAMBURGER\n @include mixins.docs-pages($nestParentSelector: true) {\n @media (min-width: $showTopMenuWidth) {\n .hamburger {\n // Hamburger shown on non-marketing pages even on large screens.\n margin: $hamburgerShownMargin;\n visibility: visible;\n }\n }\n }\n\n mat-toolbar-row {\n padding: 0 16px 0 0;\n }\n\n // HAMBURGER BUTTON\n .hamburger {\n height: 100%;\n margin: $hamburgerShownMargin;\n padding: 0;\n\n @media (min-width: $showTopMenuWidth) {\n // Hamburger hidden by default on large screens.\n // (Will be shown per doc.)\n margin: $hamburgerHiddenMargin;\n visibility: hidden;\n }\n\n @media (max-width: 480px) {\n min-width: 15%;\n }\n\n &:not(.no-animations) {\n transition-duration: 0.4s;\n transition-property: color, margin;\n transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1);\n }\n\n & .mat-icon {\n position: inherit;\n }\n }\n\n // HOME NAV-LINK\n .nav-link.home {\n cursor: pointer;\n margin: 0 16px 0 0;\n padding: 8px 0;\n\n &:focus {\n // `outline-offset` is not applied on Chrome on Windows, if `outline-style` is `auto.\n outline-offset: 4px;\n }\n\n @media screen and (max-width: $hideTopMenuWidth) {\n padding: 4px 0;\n }\n\n @media screen and (max-width: 480px) {\n margin-right: 8px;\n }\n\n img {\n position: relative;\n margin-top: -21px;\n top: 12px;\n height: 40px;\n\n @media (max-width: $hideTopMenuWidth) {\n &:hover {\n transform: scale(1.1);\n }\n }\n }\n }\n\n // TOP MENU\n aio-top-menu {\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 80%;\n\n ul {\n display: flex;\n flex-direction: row;\n align-items: center;\n list-style-position: inside;\n padding: 0px;\n margin: 0px;\n\n li {\n padding-bottom: 2px;\n list-style-type: none;\n cursor: pointer;\n\n &:focus {\n outline: none;\n }\n\n a.nav-link {\n margin: 0 4px;\n padding: 0px;\n cursor: pointer;\n\n .nav-link-inner {\n border-radius: 4px;\n font-size: 1.3rem;\n font-size: clamp(10px, 1.6rem, 20px);\n padding: 8px 16px;\n padding: 8px clamp(5px, 0.7vw, 16px);\n }\n\n &:focus {\n outline: none;\n\n .nav-link-inner {\n border-radius: 1px;\n }\n }\n }\n }\n }\n }\n\n // SEARCH BOX\n aio-search-box.search-container {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n width: 100%;\n min-width: 150px;\n height: 100%;\n margin-right: 16px;\n position: relative;\n\n input {\n border: none;\n border-radius: 100px;\n padding: 5px 3rem 5px 16px;\n margin-left: 8px;\n width: 180px;\n max-width: 240px;\n line-height: normal;\n height: 50%;\n -webkit-appearance: none;\n\n &:focus {\n outline: none;\n }\n\n @include mixins.placeholder {\n @include mixins.font-size(14);\n }\n\n @media (min-width: 1000px) {\n transition: width 0.4s ease-in-out;\n\n &:focus {\n width: 80%;\n }\n }\n\n @media (max-width: 515px) {\n width: 150px;\n }\n\n &::-webkit-search-cancel-button {\n display: none;\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &:not(:focus):not(:hover) + mat-icon:not(:hover):not(:focus) {\n display: none;\n }\n }\n\n mat-icon {\n position: absolute;\n color: constants.$blue;\n right: 0.7rem;\n font-size: 2rem;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n\n aio-theme-toggle {\n @media screen and (min-width: 350px) {\n padding-right: 2px;\n margin-right: 2px;\n }\n }\n\n // EXTERNAL LINK ICONS\n .toolbar-external-icons-container {\n a {\n @media screen and (max-width: 480px) {\n margin: 0 -8px 0 0;\n }\n\n @media screen and (max-width: 420px) {\n &:not([title=\"GitHub\"]) {\n display: none;\n }\n }\n\n @media screen and (max-width: 350px) {\n &[title=\"GitHub\"] {\n display: none;\n }\n }\n }\n }\n}\n","/* ==============================\n LAYOUT STYLES\n ============================== */\n\n@forward 'content-layout/content-layout';\n@forward 'doc-viewer/doc-viewer';\n@forward 'footer/footer';\n@forward 'layout-global/layout-global';\n@forward 'marketing-layout/marketing-layout';\n@forward 'not-found/not-found';\n@forward 'sidenav/sidenav';\n@forward 'top-menu/top-menu';\n","@use '../../mixins';\n\n.alert {\n padding: 16px;\n margin: 24px 0px;\n @include mixins.font-size(14);\n width: 100%;\n box-sizing: border-box;\n clear: both;\n\n h1, h2, h3, h4, h5, h6 {\n font-weight: 500;\n }\n\n &.archive-warning {\n border-radius: 4px;\n margin-bottom: 1rem;\n\n a {\n font-weight: bold;\n text-decoration: underline;\n\n &:hover {\n opacity: 0.9;\n }\n }\n }\n\n > p {\n margin: 8px 16px;\n }\n}\n","@use '../../constants';\n@use '../../mixins';\n\n/* API LIST STYLES */\n\naio-api-list {\n .api-filter {\n display: flex;\n margin: 0 auto;\n\n @media (max-width: 600px) {\n flex-direction: column;\n margin: 16px auto;\n }\n\n /* API FILTER MENU */\n aio-select {\n width: 200px;\n\n @media screen and (max-width: 600px) {\n width: 100%;\n }\n }\n\n .form-select-menu,\n .form-search {\n margin: 8px;\n\n @media screen and (max-width: 600px) {\n margin-left: 0;\n }\n }\n\n aio-select:first-child {\n .form-select-menu {\n margin-left: 0;\n }\n }\n\n .form-search {\n position: relative;\n float: left;\n\n input {\n box-sizing: border-box;\n border-radius: 4px;\n @include mixins.font-size(14);\n @include mixins.line-height(32);\n outline: none;\n padding: 4px 16px 4px 32px;\n transition: all .2s;\n width: 182px;\n\n @include mixins.placeholder {\n @include mixins.font-size(14);\n }\n\n @media screen and (max-width: 600px) {\n width: 100%;\n }\n }\n\n .material-icons {\n @include mixins.font-size(20);\n left: 8px;\n pointer-events: none;\n position: absolute;\n top: 12px;\n width: 20px;\n z-index: constants.$layer-1;\n }\n }\n\n /* API SEARCH ICON */\n .material-icons {\n right: 48px;\n }\n }\n\n /* LAYOUT */\n\n .api-list-container {\n display: flex;\n flex-direction: column;\n padding: 16px 0;\n position: relative;\n\n @media handheld and (max-width: constants.$phone-breakpoint),\n screen and (max-device-width: constants.$phone-breakpoint),\n screen and (max-width: constants.$tablet-breakpoint) {\n padding: 24px 0 0;\n }\n\n h2 {\n margin-top: 16px;\n margin-bottom: 16px;\n }\n\n /* API CLASS LIST */\n .api-list {\n list-style: none;\n margin: 0 0 32px -8px;\n padding: 0;\n overflow: hidden;\n\n @media screen and (max-width: 600px) {\n margin: 0 0 0 -8px;\n }\n\n li {\n @include mixins.font-size(14);\n margin: 8px 0;\n @include mixins.line-height(14);\n padding: 0;\n float: left;\n width: 33%;\n overflow: hidden;\n min-width: 330px;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n a {\n @include mixins.line-height(16);\n padding: 0 16px;\n text-decoration: none;\n transition: all .3s;\n\n &.deprecated-api-item {\n text-decoration: line-through;\n }\n }\n }\n }\n }\n}\n","@use '../../mixins';\n\n.api-body {\n max-width: 1200px;\n\n h1 {\n margin-top: -4px;\n }\n\n details.overloads {\n box-shadow: none;\n\n > summary {\n justify-content: space-between;\n padding: 0;\n\n h4 {\n margin: 0;\n clear: left;\n }\n }\n\n > .details-content {\n padding: 0;\n border-radius: 2px;\n box-shadow: none;\n\n > *:not(hr) {\n margin: 16px 24px;\n }\n }\n }\n\n details.overload {\n box-shadow: none;\n margin: 0;\n }\n\n table {\n margin: 12px 0 24px;\n\n &.item-table {\n td {\n padding: 32px;\n }\n }\n\n &.list-table {\n td {\n padding: 16px 24px;\n }\n }\n\n &.parameters-table {\n margin-top: 0;\n @include mixins.font-size(14);\n box-shadow: none;\n\n tr {\n @media screen and (max-width: 480px) {\n display: flex;\n flex-direction: column;\n }\n\n td:first-child {\n font-weight: 600;\n padding-left: 16px;\n width: 20%;\n }\n }\n\n td {\n padding: 8px 8px 8px 0;\n border: 0;\n vertical-align: top;\n }\n }\n\n &.property-table {\n td {\n vertical-align: top;\n }\n }\n\n &.method-table,\n &.option-table,\n &.list-table {\n td > code {\n background-color: inherit;\n white-space: pre-wrap;\n }\n\n .with-github-links {\n align-items: center;\n display: flex;\n justify-content: space-between;\n\n .github-links {\n a {\n\n\n .material-icons:hover {\n background: none;\n\n }\n }\n }\n }\n\n h3 {\n margin: 6px 0;\n font-weight: 500;\n clear: left;\n }\n\n h4 {\n @include mixins.font-size(14);\n font-weight: bold;\n margin-top: 12px;\n }\n }\n\n th {\n text-transform: none;\n @include mixins.font-size(16);\n font-weight: bold;\n }\n\n tr {\n &:last-child {\n border-bottom: none;\n }\n }\n\n td {\n vertical-align: middle;\n }\n\n // This is overriding a style here:\n // https://github.com/angular/angular/blob/95993e1/aio/src/styles/2-modules/_table.scss#L58-L62\n tbody > tr > td tr td:first-child {\n @media screen and (max-width: 480px) {\n background-color: inherit;\n }\n }\n\n hr {\n margin: 16px 0;\n }\n\n .short-description {\n margin-left: 0;\n }\n }\n\n .class-overview {\n position: relative;\n\n code-example {\n clear: left;\n }\n }\n\n .member-name .pln {\n font-weight: 700;\n }\n\n .short-description {\n margin-top: 8px;\n }\n\n .final-message {\n font-style: italic;\n }\n\n .api-heading {\n @include mixins.font-size(14);\n margin: 16px;\n }\n\n .from-constructor,\n .read-only-property,\n .write-only-property {\n @include mixins.font-size(12);\n font-weight: 600;\n @include mixins.letter-spacing(0.5);\n font-style: italic;\n border-radius: 4px;\n padding: 4px 6px;\n }\n\n .selector-list,\n .inherited-members-list {\n ul {\n padding: 0;\n\n li {\n list-style: none;\n margin-bottom: 12px;\n }\n }\n }\n\n .selector-list {\n li,\n a {\n font-weight: bold;\n\n i {\n font-weight: normal;\n }\n }\n }\n}\n\n.github-links {\n float: right;\n\n .material-icons {\n border-radius: 4px;\n padding: 4px;\n @include mixins.font-size(20);\n }\n}\n\n.breadcrumb-container {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n}\n\n.api-header {\n display: flex;\n align-items: center;\n margin-top: -4px;\n\n @media screen and (max-width: 600px) {\n flex-direction: column;\n align-items: flex-start;\n }\n\n h1 {\n @include mixins.font-size(24);\n margin: 0;\n }\n}\n\n.deprecated-api-item {\n text-decoration: line-through;\n}\n","@use '../../mixins';\n\n/* API SYMBOLS */\n\n/* SYMBOL CLASS */\n\n.symbol {\n border-radius: 2px;\n display: inline-block;\n @include mixins.font-size(10);\n font-weight: 600;\n @include mixins.line-height(16);\n margin-right: 8px;\n text-align: center;\n width: 16px;\n}\n","@use '../../constants';\n@use '../../mixins';\n\n/* Button Styles */\n\nbutton {\n font-family: inherit;\n}\n\n// This rule overrides some Angular Material styles defined for `.mat-button`\n// (hence we include `.mat-button` in the selector).\na.button.mat-button,\n.button {\n color: inherit;\n display: inline-block;\n @include mixins.line-height(32);\n padding: 0px 16px;\n @include mixins.font-size(14);\n font-weight: 400;\n border-radius: 3px;\n text-decoration: none;\n text-transform: uppercase;\n overflow: hidden;\n border: none;\n\n // SIZES\n &.button-small {\n @include mixins.font-size(12);\n @include mixins.line-height(24);\n padding: 0px 8px;\n }\n\n &.button-large {\n @include mixins.font-size(15);\n @include mixins.line-height(48);\n padding: 0px 24px;\n }\n\n &.button-x-large {\n @include mixins.font-size(16);\n @include mixins.line-height(56);\n padding: 0px 24px;\n }\n}\n\n.cta-bar {\n text-align: center;\n\n .button {\n margin: 0px 8px;\n box-shadow: 0 2px 5px 0 rgba(0,0,0,.26);\n transition: all .2s ease-in-out;\n &:hover {\n transform: scale(1.1);\n }\n }\n}\n\n\n.group-buttons {\n margin: 16px auto 32px;\n\n // This rule overrides some Angular Material styles defined for `.mat-button`\n // (hence we include `.mat-button` in the selector).\n button.button.mat-button.filter-button {\n border-radius: 4px;\n @include mixins.font-size(16);\n @include mixins.line-height(48);\n margin: 8px;\n padding: 0px 16px;\n width: 16.8rem;\n min-width: max-content;\n\n @media (max-width: 480px) {\n @include mixins.font-size(14);\n width: auto;\n }\n }\n}\n\n[mat-button], [mat-raised-button], [mat-button], [mat-raised-button] {\n text-transform: uppercase;\n}\n","@use '../../mixins';\n@use '../alert/alert';\n\n.callout {\n @extend .alert;\n padding: 0px;\n border-left: none !important;\n border-radius: 4px;\n\n header {\n @include mixins.line-height(24);\n font-weight: 500;\n padding: 8px 16px;\n margin: 0;\n text-transform: uppercase;\n border-radius: 4px 4px 0 0;\n }\n\n p {\n padding: 16px;\n margin: 0px;\n @include mixins.font-size(14);\n }\n\n > *:not(:first-child) {\n padding: 16px 24px;\n }\n}\n","@use '../../constants';\n@use '../../mixins';\n\n.card-container {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n margin: 16px 0;\n\n .docs-card {\n @include mixins.card(35%);\n\n max-width: 340px;\n min-width: 300px;\n margin: 24px 16px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n @media screen and (max-width: 600px) {\n width: 100%;\n margin: 8px auto;\n max-width: none;\n }\n\n section {\n @include mixins.font-size(20);\n @include mixins.line-height(24);\n margin: 0;\n padding: 2.7rem 1.5rem 2.1rem;\n text-transform: none;\n text-align: center;\n }\n\n p {\n @include mixins.font-size(13);\n @include mixins.line-height(24);\n padding: 0 16px;\n margin: 0;\n margin-bottom: 1.6rem;\n text-align: center;\n }\n\n .card-footer {\n margin-bottom: 0;\n box-sizing: border-box;\n @include mixins.line-height(24);\n padding: 1.3rem 1.5rem;\n text-align: right;\n\n a {\n @include mixins.font-size(13);\n }\n }\n }\n}\n\n.card-section {\n padding: 16px 32px;\n margin: 16px 0;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n // Removes on-hover effect from card mixin\n &:hover {\n box-shadow: 0 2px 2px rgba(constants.$black, 0.24), 0 0 2px rgba(constants.$black, 0.12);\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 8px 0;\n }\n\n a,\n .button,\n button {\n text-align: center;\n }\n}\n",".cli-name {\n font-weight: bold;\n\n .kwd { color: inherit; } /* override code format */\n}\n\n.cli-option-syntax {\n white-space: pre;\n}\n","@use '../../constants';\n@use '../../mixins';\n\ncode-example,\ncode-tabs {\n clear: both;\n display: block;\n\n code {\n overflow: auto;\n }\n\n ol {\n list-style: decimal;\n }\n\n .mat-card {\n padding: 0;\n border-radius: 5px;\n }\n}\n\ncode-example {\n &:not(.no-box) {\n border-radius: 5px;\n margin: 16px auto;\n }\n\n &.no-box {\n pre.prettyprint {\n margin: 0;\n }\n\n code {\n background-color: transparent;\n }\n }\n\n code {\n overflow: auto;\n }\n\n header {\n border-radius: 5px 5px 0 0;\n @include mixins.font-size(16);\n padding: 8px 16px;\n }\n}\n\ncode-tabs {\n margin: 16px 0;\n\n .code-tab-group {\n .mat-tab-body {\n overflow-y: hidden;\n\n .mat-tab-body-content {\n height: auto;\n transform: none;\n\n .fadeIn {\n animation: opacity 2s ease-in;\n }\n }\n }\n }\n}\n\naio-code {\n pre.prettyprint {\n position: relative;\n display: flex;\n min-height: 32px;\n margin: 16px 24px;\n white-space: pre-wrap;\n align-items: center;\n\n code {\n a {\n color: inherit;\n }\n\n span {\n @include mixins.line-height(24);\n }\n\n ol.linenums {\n margin: 0;\n\n li {\n margin: 0;\n font-family: constants.$code-font;\n font-size: 90%;\n @include mixins.line-height(24);\n }\n }\n }\n\n .copy-button {\n position: absolute;\n top: -7px;\n right: -19px;\n padding: 0;\n background-color: transparent;\n border: none;\n cursor: pointer;\n }\n }\n}\n\n.sidenav-content {\n code {\n a {\n font-size: inherit;\n font-weight: inherit;\n }\n }\n\n :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(pre) {\n > code {\n border-radius: 4px;\n padding: 4px;\n }\n\n &:is(a) > code {\n @include mixins.line-height(24);\n }\n }\n\n .page-guide-cheatsheet & {\n td:first-of-type,\n th {\n code {\n background-color: inherit;\n padding: 0;\n white-space: pre-wrap;\n }\n }\n }\n\n .code-anchor {\n cursor: pointer;\n font-size: inherit;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n",".contribute-container {\n h2 {\n margin: 0;\n }\n\n .card-section {\n justify-content: space-between;\n\n @media (max-width: 600px) {\n flex-direction: column;\n }\n\n > :first-child {\n margin-right: 2rem;\n width: 67%;\n\n @media (max-width: 600px) {\n width: 100%;\n }\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n .button {\n @media (max-width: 600px) {\n margin-top: 14px;\n }\n }\n }\n}\n","@use 'sass:math';\n@use '@angular/cdk' as cdk;\n@use '@angular/material' as mat;\n\n$inner-spacing: 16px;\n\naio-cookies-popup {\n .cookies-popup {\n @include mat.elevation(6);\n border-radius: 4px;\n bottom: 0;\n left: 0;\n position: fixed;\n margin: 24px;\n max-width: 430px;\n padding: $inner-spacing $inner-spacing math.div($inner-spacing, 2);\n z-index: cdk.$overlay-container-z-index + 1;\n\n .actions {\n display: flex;\n justify-content: flex-end;\n margin: $inner-spacing math.div($inner-spacing, -2) 0 0;\n\n .mat-button {\n text-transform: uppercase;\n }\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use 'variables';\n\n\n// A collection of mixins and CSS classes that can be used to apply elevation to a material\n// element.\n// See: https://material.io/design/environment/elevation.html\n// Examples:\n//\n//\n// .mat-foo {\n// @include $mat-elevation(2);\n//\n// &:active {\n// @include $mat-elevation(8);\n// }\n// }\n//\n// <div id=\"external-card\" class=\"mat-elevation-z2\"><p>Some content</p></div>\n//\n// For an explanation of the design behind how elevation is implemented, see the design doc at\n// https://goo.gl/Kq0k9Z.\n\n// Colors for umbra, penumbra, and ambient shadows. As described in the design doc, each elevation\n// level is created using a set of 3 shadow values, one for umbra (the shadow representing the\n// space completely obscured by an object relative to its light source), one for penumbra (the\n// space partially obscured by an object), and one for ambient (the space which contains the object\n// itself). For a further explanation of these terms and their meanings, see\n// https://en.wikipedia.org/wiki/Umbra,_penumbra_and_antumbra.\n\n// Maps for the different shadow sets and their values within each z-space. These values were\n// created by taking a few reference shadow sets created by Google's Designers and interpolating\n// all of the values between them.\n\n@function _get-umbra-map($color, $opacity) {\n $shadow-color: if(meta.type-of($color) == color, rgba($color, $opacity * 0.2), $color);\n\n @return (\n 0: '0px 0px 0px 0px #{$shadow-color}',\n 1: '0px 2px 1px -1px #{$shadow-color}',\n 2: '0px 3px 1px -2px #{$shadow-color}',\n 3: '0px 3px 3px -2px #{$shadow-color}',\n 4: '0px 2px 4px -1px #{$shadow-color}',\n 5: '0px 3px 5px -1px #{$shadow-color}',\n 6: '0px 3px 5px -1px #{$shadow-color}',\n 7: '0px 4px 5px -2px #{$shadow-color}',\n 8: '0px 5px 5px -3px #{$shadow-color}',\n 9: '0px 5px 6px -3px #{$shadow-color}',\n 10: '0px 6px 6px -3px #{$shadow-color}',\n 11: '0px 6px 7px -4px #{$shadow-color}',\n 12: '0px 7px 8px -4px #{$shadow-color}',\n 13: '0px 7px 8px -4px #{$shadow-color}',\n 14: '0px 7px 9px -4px #{$shadow-color}',\n 15: '0px 8px 9px -5px #{$shadow-color}',\n 16: '0px 8px 10px -5px #{$shadow-color}',\n 17: '0px 8px 11px -5px #{$shadow-color}',\n 18: '0px 9px 11px -5px #{$shadow-color}',\n 19: '0px 9px 12px -6px #{$shadow-color}',\n 20: '0px 10px 13px -6px #{$shadow-color}',\n 21: '0px 10px 13px -6px #{$shadow-color}',\n 22: '0px 10px 14px -6px #{$shadow-color}',\n 23: '0px 11px 14px -7px #{$shadow-color}',\n 24: '0px 11px 15px -7px #{$shadow-color}'\n );\n}\n\n@function _get-penumbra-map($color, $opacity) {\n $shadow-color: if(meta.type-of($color) == color, rgba($color, $opacity * 0.14), $color);\n\n @return (\n 0: '0px 0px 0px 0px #{$shadow-color}',\n 1: '0px 1px 1px 0px #{$shadow-color}',\n 2: '0px 2px 2px 0px #{$shadow-color}',\n 3: '0px 3px 4px 0px #{$shadow-color}',\n 4: '0px 4px 5px 0px #{$shadow-color}',\n 5: '0px 5px 8px 0px #{$shadow-color}',\n 6: '0px 6px 10px 0px #{$shadow-color}',\n 7: '0px 7px 10px 1px #{$shadow-color}',\n 8: '0px 8px 10px 1px #{$shadow-color}',\n 9: '0px 9px 12px 1px #{$shadow-color}',\n 10: '0px 10px 14px 1px #{$shadow-color}',\n 11: '0px 11px 15px 1px #{$shadow-color}',\n 12: '0px 12px 17px 2px #{$shadow-color}',\n 13: '0px 13px 19px 2px #{$shadow-color}',\n 14: '0px 14px 21px 2px #{$shadow-color}',\n 15: '0px 15px 22px 2px #{$shadow-color}',\n 16: '0px 16px 24px 2px #{$shadow-color}',\n 17: '0px 17px 26px 2px #{$shadow-color}',\n 18: '0px 18px 28px 2px #{$shadow-color}',\n 19: '0px 19px 29px 2px #{$shadow-color}',\n 20: '0px 20px 31px 3px #{$shadow-color}',\n 21: '0px 21px 33px 3px #{$shadow-color}',\n 22: '0px 22px 35px 3px #{$shadow-color}',\n 23: '0px 23px 36px 3px #{$shadow-color}',\n 24: '0px 24px 38px 3px #{$shadow-color}'\n );\n}\n\n@function _get-ambient-map($color, $opacity) {\n $shadow-color: if(meta.type-of($color) == color, rgba($color, $opacity * 0.12), $color);\n\n @return (\n 0: '0px 0px 0px 0px #{$shadow-color}',\n 1: '0px 1px 3px 0px #{$shadow-color}',\n 2: '0px 1px 5px 0px #{$shadow-color}',\n 3: '0px 1px 8px 0px #{$shadow-color}',\n 4: '0px 1px 10px 0px #{$shadow-color}',\n 5: '0px 1px 14px 0px #{$shadow-color}',\n 6: '0px 1px 18px 0px #{$shadow-color}',\n 7: '0px 2px 16px 1px #{$shadow-color}',\n 8: '0px 3px 14px 2px #{$shadow-color}',\n 9: '0px 3px 16px 2px #{$shadow-color}',\n 10: '0px 4px 18px 3px #{$shadow-color}',\n 11: '0px 4px 20px 3px #{$shadow-color}',\n 12: '0px 5px 22px 4px #{$shadow-color}',\n 13: '0px 5px 24px 4px #{$shadow-color}',\n 14: '0px 5px 26px 4px #{$shadow-color}',\n 15: '0px 6px 28px 5px #{$shadow-color}',\n 16: '0px 6px 30px 5px #{$shadow-color}',\n 17: '0px 6px 32px 5px #{$shadow-color}',\n 18: '0px 7px 34px 6px #{$shadow-color}',\n 19: '0px 7px 36px 6px #{$shadow-color}',\n 20: '0px 8px 38px 7px #{$shadow-color}',\n 21: '0px 8px 40px 7px #{$shadow-color}',\n 22: '0px 8px 42px 7px #{$shadow-color}',\n 23: '0px 9px 44px 8px #{$shadow-color}',\n 24: '0px 9px 46px 8px #{$shadow-color}'\n );\n}\n\n// The default duration value for elevation transitions.\n$transition-duration: 280ms !default;\n\n// The default easing value for elevation transitions.\n$transition-timing-function: variables.$fast-out-slow-in-timing-function;\n\n// The default color for elevation shadows.\n$color: black !default;\n\n// The default opacity scaling value for elevation shadows.\n$opacity: 1 !default;\n\n// Prefix for elevation-related selectors.\n$prefix: 'mat-elevation-z';\n\n// Applies the correct css rules to an element to give it the elevation specified by $zValue.\n// The $zValue must be between 0 and 24.\n@mixin elevation($zValue, $color: $color, $opacity: $opacity) {\n @if meta.type-of($zValue) != number or not math.is-unitless($zValue) {\n @error '$zValue must be a unitless number';\n }\n @if $zValue < 0 or $zValue > 24 {\n @error '$zValue must be between 0 and 24';\n }\n\n box-shadow: #{map.get(_get-umbra-map($color, $opacity), $zValue)},\n #{map.get(_get-penumbra-map($color, $opacity), $zValue)},\n #{map.get(_get-ambient-map($color, $opacity), $zValue)};\n}\n\n// Applies the elevation to an element in a manner that allows\n// consumers to override it via the Material elevation classes.\n@mixin overridable-elevation(\n $zValue,\n $color: $color,\n $opacity: $opacity) {\n &:not([class*='#{$prefix}']) {\n @include elevation($zValue, $color, $opacity);\n }\n}\n\n// Returns a string that can be used as the value for a transition property for elevation.\n// Calling this function directly is useful in situations where a component needs to transition\n// more than one property.\n//\n// .foo {\n// transition: mat-elevation-transition-property-value(), opacity 100ms ease;\n// }\n@function private-transition-property-value(\n $duration: $transition-duration,\n $easing: $transition-timing-function) {\n @return box-shadow #{$duration} #{$easing};\n}\n\n// Applies the correct css rules needed to have an element transition between elevations.\n// This mixin should be applied to elements whose elevation values will change depending on their\n// context (e.g. when active or disabled).\n//\n// NOTE(traviskaufman): Both this mixin and the above function use default parameters so they can\n// be used in the same way by clients.\n@mixin elevation-transition(\n $duration: $transition-duration,\n $easing: $transition-timing-function) {\n transition: private-transition-property-value($duration, $easing);\n}\n","@use '../../mixins';\n\naio-contributor-list {\n .contributor-group {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n }\n\n @media handheld and (max-width: 480px), screen and (max-width: 900px) {\n .grid-fluid {\n margin-left: 20px;\n margin-right: 20px;\n float: none;\n display: block;\n width: auto;\n }\n }\n}\n\naio-contributor {\n margin: 8px;\n border-radius: 4px;\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n\n @media not all and (prefers-reduced-motion) {\n transition: all .3s;\n }\n\n @media (hover) {\n &:focus-within,\n &:hover {\n transform: translate3d(0,-3px,0);\n box-shadow: 0 8px 8px rgba(10, 16, 20, 0.24), 0 0 8px rgba(10, 16, 20, 0.12);\n\n .contributor-image {\n transform: scale(1.05);\n }\n\n .contributor-info {\n opacity: 1;\n }\n }\n }\n\n .contributor-info {\n height: 100%;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-content: center;\n /* There is no point in hiding this if we can't hover to show it. */\n @media (hover) { opacity: 0; }\n border-radius: 50%;\n\n .info-item {\n display: flex;\n @include mixins.font-size(14);\n font-size: clamp(10px, 1.4rem, 30px);\n font-weight: 500;\n margin: 0.8rem;\n padding: 0.5rem;\n width: 100%;\n justify-content: center;\n\n &:hover {\n text-decoration: none;\n }\n\n &.icon {\n $size: 23px;\n min-width: $size;\n width: $size;\n\n mat-icon {\n height: $size;\n width: $size;\n font-size: $size;\n\n &[svgicon] {\n svg {\n height: 100%;\n width: 100%;\n }\n }\n\n &.link-icon {\n transform: rotateZ(45deg);\n }\n }\n }\n }\n\n button {\n background: transparent;\n border: none;\n cursor: pointer;\n }\n }\n\n .contributor-card {\n width: 25rem;\n height: 27rem;\n max-width: 310px;\n max-height: 340px;\n transform-style:preserve-3d;\n\n @media not all and (prefers-reduced-motion) {\n transition:transform ease 500ms;\n }\n\n h3 {\n margin: 0.8rem 0;\n text-align: center;\n }\n\n .card-front, .card-back {\n cursor: pointer;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n justify-content: center;\n align-items: center;\n border: none;\n background: transparent;\n padding: 0 1.5rem;\n }\n\n .card-back {\n padding: 16px 24px;\n transform:rotateY(180deg);\n\n section {\n display: none;\n }\n\n p {\n margin: 0.8rem 0;\n @include mixins.font-size(12);\n @include mixins.line-height(14);\n text-align: left;\n }\n }\n\n &.flipped {\n transform:rotateY(180deg);\n\n .card-front {\n display: none;\n }\n }\n }\n\n .contributor-image {\n border-radius: 50%;\n $size: 16.8rem;\n height: $size;\n width: $size;\n $min-size: 105px;\n min-height: $min-size;\n min-width: $min-size;\n $max-size: 230px;\n max-height: $max-size;\n max-width: $max-size;\n background-size: cover;\n background-position: center;\n margin: 0.8rem auto;\n }\n\n p {\n cursor: pointer;\n @include mixins.font-size(14);\n @include mixins.line-height(18);\n margin: 8px 16px;\n text-overflow: ellipsis;\n overflow-y: auto;\n font-weight: 400;\n }\n}\n","@use 'sass:selector';\n@use '../../constants';\n@use '../../mixins';\n\n/*\n * General styling to make detail/summary tags look a bit more material\n * To get the best out of it you should structure your usage like this:\n *\n * ```html\n * <details>\n * <summary>Some title</summary>\n * <div class=\"details-content\">\n * Some content\n * </div>\n * </details>\n * ```\n *\n * Optionally, you can use an `.actions` container inside `<summary>` to show expand/collapse\n * actions and/or a rotating icon:\n * ```html\n * <summary>\n * <span>Some title</span>\n * <span class=\"actions\">\n * <span class=\"action-expand\">Show more</span>\n * <span class=\"action-collapse\">Show less</span>\n * <i class=\"material-icons expand\">expand_more</i>\n * </span>\n * </summary>\n * ```\n */\n\ndetails {\n > summary {\n cursor: pointer;\n @include mixins.font-size(16);\n position: relative;\n padding: 16px;\n height: inherit;\n display: flex; // Remove the built in details marker in FF\n align-items: center;\n overflow: hidden;\n\n &::-webkit-details-marker {\n display: none; // Remove the built in details marker in webkit\n }\n\n > h2 {\n margin: 0;\n padding: 0;\n border: none;\n display: inline;\n }\n\n .actions {\n align-items: center;\n display: flex;\n @include mixins.font-size(14);\n\n // Show/hide expand and collapse actions.\n .action-expand {\n display: initial;\n\n @at-root #{selector.replace(&, 'details', 'details[open]')} {\n display: none;\n }\n }\n\n .action-collapse {\n display: none;\n\n @at-root #{selector.replace(&, 'details', 'details[open]')} {\n display: initial;\n }\n }\n\n // Rotate the expand/collapse icon.\n .material-icons.expand {\n @include mixins.rotate(0deg);\n\n @at-root #{selector.replace(&, 'details', 'details[open]')} {\n @include mixins.rotate(180deg);\n }\n }\n }\n }\n\n .details-content {\n padding: 16px 24px;\n }\n}\n","@use '../../mixins';\n\n.error-list {\n display: grid;\n list-style: none;\n padding: 0;\n overflow: hidden;\n\n @media screen and (max-width: 600px) {\n margin: 0 0 0 -8px;\n }\n\n li {\n @include mixins.font-size(14);\n margin: 8px 0;\n @include mixins.line-height(14);\n padding: 0;\n float: left;\n overflow: hidden;\n min-width: 220px;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n .symbol.runtime:before {\n content: \"R\";\n }\n\n .symbol.compiler:before {\n content: \"C\";\n }\n\n a {\n display: inline-block;\n @include mixins.line-height(16);\n padding: 0 16px 0;\n text-decoration: none;\n transition: all .3s;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n}\n","@use '../../mixins';\n\n// FEATURES MARKETING PAGE SPECIFIC STYLES\n\n.feature-section {\n margin: 0 0 32px;\n\n .feature-header, .text-headline {\n text-align: center;\n }\n\n .feature-header img {\n margin: 16px;\n max-width: 70px;\n }\n\n .feature-title {\n @include mixins.font-size(16);\n font-weight: 500;\n margin: 8px 0px;\n clear: both;\n }\n\n .feature-row {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-evenly;\n\n @media (max-width: 1057px) {\n flex-direction: column;\n }\n\n .feature {\n max-width: 300px;\n margin: 0 16px;\n\n @media (max-width: 1057px) {\n max-width: 100%;\n padding: 8px 10%;\n }\n\n @media (max-width: 768px) {\n padding: 8px 0;\n }\n }\n }\n}\n","@use '../../mixins';\n\n.filetree {\n border-radius: 4px;\n margin: 0 0 24px 0;\n padding: 16px 32px;\n\n .file {\n display: block;\n @include mixins.letter-spacing(0.3);\n @include mixins.line-height(32);\n }\n\n .children {\n padding-left: 24px;\n position: relative;\n overflow: hidden;\n\n .file {\n position: relative;\n\n &:before {\n content: '';\n left: -18px;\n bottom: 16px;\n width: 16px;\n height: 9999px;\n position: absolute;\n border-width: 0 0 1px 1px;\n border-style: solid;\n border-radius: 0 0 0 3px;\n }\n }\n }\n}\n","@use '../../mixins';\n\n.reviewed {\n @include mixins.font-size(13);\n font-style: italic;\n text-align: right;\n}",".sidenav-content {\n h1, h2, h3, h4, h5, h6 {\n\n .header-link {\n margin: 0 6px;\n text-decoration: none;\n user-select: none;\n visibility: hidden;\n display: inline-flex;\n vertical-align: middle;\n }\n\n &:hover .header-link {\n visibility: visible;\n }\n }\n}\n","hr {\n border: none;\n height: 1px;\n}\n",".content {\n img {\n\n &.right {\n clear: both;\n float: right;\n margin-left: 20px;\n margin-bottom: 20px;\n }\n\n &.left {\n clear: both;\n float: left;\n margin-right: 20px;\n margin-bottom: 20px;\n }\n\n @media (max-width: 1300px) {\n max-width: 100%;\n height: auto;\n margin: auto;\n }\n\n @media (max-width: 600px) {\n float: none !important;\n &.right {\n margin-left: 0;\n }\n &.left {\n margin-right: 0;\n }\n }\n }\n\n .lightbox {\n margin: 0;\n margin-top: 14px;\n margin-bottom: 14px;\n border-radius: 1px;\n padding: 32px;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n box-shadow: 2px 2px 5px 0 rgba(0, 0, 0, .2);\n margin: 16px 0;\n width: 100%;\n display: flex;\n justify-content: center;\n\n img {\n max-width: 100%;\n height: auto;\n padding: 8px;\n margin: auto;\n box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12);\n border-radius: 4px;\n }\n }\n}\n","@use '../../mixins';\n\n.api-header label,\nlabel.api-status-label {\n border-radius: 4px;\n padding: 2px 10px;\n display: inline;\n @include mixins.font-size(12);\n margin-right: 8px;\n font-weight: 500;\n text-transform: uppercase;\n\n @media screen and (max-width: 600px) {\n display: block;\n margin: 4px 0;\n }\n\n &.page-label {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n margin-bottom: 8px;\n width: 140px;\n\n .material-icons {\n margin-right: 8px;\n }\n }\n\n &.property-type-label {\n @include mixins.font-size(12);\n text-transform: none;\n }\n}","@use '../../mixins';\n@use '../../constants';\n\n$notificationHeight: 56px;\n\n// we need to override some of the toolbar styling\n.app-toolbar mat-toolbar-row.notification-container {\n padding: 0;\n height: auto;\n overflow: hidden;\n}\n\naio-notification {\n display: flex;\n position: relative;\n width: 100%;\n height: $notificationHeight;\n justify-content: center;\n\n @media (max-width: 430px) {\n justify-content: flex-start;\n padding-left: 10px;\n }\n\n .close-button {\n width: $notificationHeight;\n height: $notificationHeight;\n }\n\n .content {\n width: calc(100% - #{$notificationHeight});\n text-transform: none;\n padding: 0;\n\n > * {\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n width: 100%;\n }\n\n .title {\n margin-right: 10px;\n }\n\n .link {\n text-transform: none;\n }\n\n .icon {\n margin-right: 10px;\n\n @media (max-width: 464px) {\n display: none;\n }\n }\n\n .message {\n overflow: auto;\n margin-right: 10px;\n color: constants.$powderblue;\n }\n\n .action-button {\n border-radius: 15px;\n text-transform: uppercase;\n padding: 0 10px;\n @include mixins.font-size(12);\n @media (max-width: 780px) {\n display: none;\n }\n }\n }\n}\n\n// Here are all the hacks to make the content and sidebars the right height\n// when the notification is visible\n.aio-notification-show {\n .toc-container {\n top: 76px + $notificationHeight;\n }\n\n .search-results {\n border-top-width: 68px + $notificationHeight;\n }\n\n mat-sidenav-container.sidenav-container {\n .sidenav-content {\n padding-top: 80px + $notificationHeight;\n }\n\n mat-sidenav.sidenav {\n top: 64px + $notificationHeight;\n\n @media (max-width: 600px) {\n top: 56px + $notificationHeight;\n }\n }\n }\n}\n\n@include mixins.marketing-pages {\n &.aio-notification-show {\n mat-sidenav-container.sidenav-container {\n .sidenav-content {\n padding-top: $notificationHeight;\n }\n }\n }\n}\n\n// Animate the content when the notification bar is dismissed\n// this should be kept in sync with the animation durations in\n// - aio/src/app/layout/notification/notification.component.ts\n// - aio/src/app/app.component.ts : notificationDismissed()\n.aio-notification-animating {\n .sidenav-content {\n transition: padding-top 250ms ease;\n }\n\n mat-sidenav.sidenav, .toc-container {\n transition: top 250ms ease;\n }\n}\n",".progress-bar-container {\n height: 2px;\n overflow: hidden;\n position: fixed;\n top: 0;\n width: 100vw;\n z-index: 11;\n}\n","@use '../../mixins';\n\n.presskit-container {\n padding: 0 32px 32px 32px;\n\n img {\n height: 128px;\n width: auto;\n }\n\n .presskit-section {\n &:not(:first-child) {\n margin-top: 4rem;\n padding-top: 2rem;\n }\n\n .presskit-icon-group {\n display: flex;\n flex-wrap: wrap;\n\n .presskit-icon-item {\n align-items: center;\n display: flex;\n margin: 1rem;\n width: calc(50% - 2rem);\n\n @media screen and (max-width: 600px) {\n align-items: flex-start;\n flex-direction: column;\n margin-bottom: 2rem;\n }\n\n .presskit-image-container {\n flex: none;\n margin-right: 2rem;\n\n @media (max-width: 600px) {\n width: 100%;\n margin-right: 0;\n }\n\n .transparent-img, .transparent-img-inverse {\n border-radius: 50%;\n }\n }\n\n .presskit-links-container {\n list-style-type: none;\n margin-bottom: 0;\n padding: 0;\n\n a {\n padding-right: 3rem;\n position: relative;\n\n &::after {\n content: \"cloud_download\";\n font-family: \"Material Icons\";\n @include mixins.font-size(24);\n position: absolute;\n right: 0;\n }\n }\n }\n }\n }\n }\n}\n","@use '../../constants';\n@use '../../mixins';\n\naio-resource-list {\n .showcase {\n transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n box-shadow: 0 1px 4px 0 rgba(constants.$black, 0.37);\n border-radius: 4px;\n margin-bottom: 8px * 6;\n }\n\n .resource-item {\n .resource-name {\n margin: 0;\n @include mixins.line-height(24);\n @include mixins.font-size(20);\n }\n\n .resource-description {\n margin: 0;\n }\n }\n\n .subcategory-title {\n padding: 16px 23px;\n margin: 0;\n @include mixins.font-size(24);\n }\n\n .resource-row-link {\n display: flex;\n flex-direction: column;\n border: transparent solid 1px;\n padding: 16px 23px 16px 23px;\n transition: all .3s;\n\n &:hover {\n text-decoration: none;\n border-radius: 4px;\n transform: translateY(-2px);\n }\n }\n}\n",".page-guide-roadmap {\n .completed-details {\n box-shadow: none;\n margin-top: 4rem;\n padding: 4rem 0 2rem;\n\n > summary {\n justify-content: space-between;\n padding: 0;\n }\n\n > .details-content {\n padding: 0;\n }\n }\n\n .roadmap-last-updated {\n font-style: italic;\n }\n}\n","@use '../../mixins';\n\naio-search-results {\n z-index: 10;\n\n .search-results {\n display: flex;\n flex-direction: row;\n overflow: auto;\n padding: 0px 32px;\n border-top: 68px solid transparent;\n width: auto;\n max-height: 95vh;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-sizing: border-box;\n\n .search-area {\n margin: 0 auto;\n padding: 16px;\n\n .search-section-header {\n @include mixins.font-size(16);\n font-weight: 400;\n margin: 10px 0px 5px;\n text-transform: uppercase;\n }\n\n ul {\n margin: 0;\n padding: 0;\n\n li {\n list-style: none;\n }\n\n .search-result-item {\n @include mixins.font-size(14);\n @include mixins.line-height(24);\n display: inline-block;\n font-weight: normal;\n padding: 0.6rem 0;\n\n &a {\n text-decoration: none;\n }\n }\n\n &.priority-pages {\n padding: 0.5rem 0;\n\n .search-result-item {\n font-weight: bold;\n }\n }\n }\n }\n\n .no-results {\n text-align: center;\n margin: 16px;\n }\n\n a {\n font-weight: 500;\n }\n\n @media (max-width: 600px) {\n display: block;\n }\n\n .close-button {\n position: absolute;\n $offset: 1rem;\n top: $offset;\n right: $offset;\n border: none;\n padding: 0;\n margin: 3px;\n display: flex;\n opacity: 0;\n width: 0;\n background-color: inherit;\n cursor: pointer;\n transition: 100ms opacity;\n\n &:focus {\n opacity: 1;\n width: auto;\n }\n }\n }\n\n &.embedded {\n .search-results {\n padding: 0;\n color: inherit;\n max-height: 100%;\n position: relative;\n background-color: inherit;\n box-shadow: none;\n }\n }\n}\n","@use '../../constants';\n@use '../../mixins';\n\n/* SELECT MENU */\n\naio-select {\n .form-select-menu {\n position: relative;\n }\n\n .form-select-button {\n box-sizing: border-box;\n border-radius: 4px;\n @include mixins.font-size(14);\n font-weight: 400;\n @include mixins.line-height(32);\n outline: none;\n padding: 4px 16px;\n text-align: left;\n width: 100%;\n cursor: pointer;\n display: flex;\n align-items: center;\n flex-direction: row;\n\n strong {\n font-weight: 600;\n margin-right: 8px;\n text-transform: capitalize;\n }\n\n &[disabled] {\n cursor: not-allowed;\n }\n }\n\n .form-select-dropdown {\n border-radius: 4px;\n list-style-type: none;\n margin: 0;\n padding: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: constants.$layer-2;\n\n li {\n cursor: pointer;\n @include mixins.font-size(14);\n @include mixins.line-height(32);\n margin: 0;\n padding: 4px 16px 4px 40px;\n position: relative;\n transition: all 0.2s;\n border: 1px solid transparent;\n\n &:first-child {\n border-radius: 4px 4px 0 0;\n }\n\n &:last-child {\n border-radius: 0 0 4px 4px;\n }\n\n .symbol {\n left: 16px;\n position: absolute;\n top: 12px;\n z-index: constants.$layer-5;\n }\n }\n }\n}\n","@use 'sass:map';\n@use '@angular/cdk' as cdk;\n@use '@angular/material' as mat;\n@use '../../constants' as c;\n\n.skip-to-content-link {\n @include mat.elevation(6);\n background: map.get(mat.$grey-palette, 50);\n border: 1px dashed;\n border-radius: 8px;\n color: c.$blue;\n font-weight: 500;\n margin: 5px;\n outline: none;\n padding: 1rem 1.5rem;\n position: fixed;\n top: -100%;\n z-index: cdk.$overlay-container-z-index + 1;\n\n &:active,\n &:focus {\n top: auto;\n }\n\n &:hover {\n text-decoration: underline;\n }\n}\n","@use '../../mixins';\n\ntable {\n margin: 24px 0px;\n border-radius: 2px;\n\n &.is-full-width {\n width: 100%;\n }\n\n &.is-fixed-layout {\n table-layout: fixed;\n }\n\n thead {\n vertical-align: middle;\n border-color: inherit;\n\n > tr {\n vertical-align: inherit;\n border-color: inherit;\n }\n\n > tr > th {\n @include mixins.font-size(12);\n font-weight: 500;\n padding: 8px 24px;\n text-align: left;\n text-transform: uppercase;\n @include mixins.line-height(28);\n }\n }\n\n tbody > tr {\n > th,\n > td {\n padding: 16px;\n text-align: left;\n @include mixins.line-height(24);\n vertical-align: top;\n\n @media (max-width: 480px) {\n &:before {\n // content: **ADD TABLE HEADER**;\n display: inline-block;\n }\n }\n\n }\n\n > td {\n @include mixins.letter-spacing(0.3);\n }\n\n > th {\n font-weight: 600;\n max-width: 100px;\n }\n }\n\n tbody > tr {\n &:last-child td {\n border: none;\n }\n }\n}\n\n.page-guide-cheatsheet {\n\n table tbody td {\n overflow: auto;\n }\n\n @media only screen and (max-width: 990px) {\n\n /* Force table to not be like tables anymore */\n table, thead, tbody, tfoot, tr, th, td {\n display: block;\n position: relative;\n max-width: 100%;\n }\n\n th {\n border-right: none;\n }\n\n th, td {\n &:not(:last-child) {\n border-bottom: none;\n padding-bottom: 0px;\n }\n }\n }\n}\n\n.page-events {\n tr > td, tr > th {\n width: 33%;\n }\n}\n","@use 'sass:math';\n@use '../../mixins';\n\n$tocItemLineHeight: 24;\n$tocItemTopPadding: 9;\n$tocMarkerRailSize: 1;\n$tocMarkerSize: 6;\n\n@mixin tocMarker() {\n border-radius: 50%;\n content: \"\";\n height: #{$tocMarkerSize}px;\n left: -#{math.div($tocMarkerSize - $tocMarkerRailSize, 2)}px;\n position: absolute;\n top: calc(#{$tocItemTopPadding}px + #{math.div($tocItemLineHeight, 2)}px - #{math.div($tocMarkerSize, 2)}px);\n top: calc(#{$tocItemTopPadding}px + #{math.div($tocItemLineHeight, 2 * 10)}rem - #{math.div($tocMarkerSize, 2)}px);\n width: #{$tocMarkerSize}px;\n}\n\n.toc-container {\n width: 18vw;\n position: fixed;\n top: 76px;\n right: 0;\n bottom: 12px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\naio-toc {\n .toc-inner {\n @include mixins.font-size(13);\n overflow-y: visible;\n padding: 4px 0 0 10px;\n\n .toc-heading,\n .toc-list .h1 {\n @include mixins.font-size(16);\n }\n\n .toc-heading {\n font-weight: 500;\n margin: 0 0 16px 8px;\n padding: 0;\n\n &.secondary {\n position: relative;\n top: -8px;\n }\n }\n\n button {\n &.toc-heading,\n &.toc-more-items {\n cursor: pointer;\n display: inline-block;\n background: 0;\n background-color: transparent;\n border: none;\n box-shadow: none;\n padding: 0;\n text-align: start;\n\n &.embedded:focus {\n outline: none;\n }\n }\n\n &.toc-heading {\n mat-icon.rotating-icon {\n height: 18px;\n width: 18px;\n position: relative;\n left: -4px;\n top: 5px;\n }\n }\n\n &.toc-more-items {\n top: 10px;\n position: relative;\n\n &::after {\n content: \"expand_less\";\n }\n\n &.collapsed::after {\n content: \"more_horiz\";\n }\n }\n }\n\n .mat-icon {\n &.collapsed {\n @include mixins.rotate(0deg);\n }\n\n &:not(.collapsed) {\n @include mixins.rotate(90deg);\n }\n }\n\n ul.toc-list {\n list-style-type: none;\n margin: 0;\n padding: 0 8px 0 0;\n\n @media (max-width: 800px) {\n width: auto;\n }\n\n li {\n box-sizing: border-box;\n @include mixins.line-height($tocItemLineHeight);\n padding: #{$tocItemTopPadding}px 0 #{$tocItemTopPadding}px 12px;\n position: relative;\n transition: all 0.3s ease-in-out;\n\n &.h1:after {\n content: \"\";\n display: block;\n height: 1px;\n width: 40%;\n margin: 7px 0 4px 0;\n clear: both;\n }\n\n &.h3 {\n padding-left: 24px;\n }\n\n a {\n overflow: visible;\n @include mixins.font-size(14);\n line-height: inherit;\n display: table-cell;\n }\n\n &.active {\n * {\n font-weight: 500;\n }\n\n a:before {\n @include tocMarker();\n }\n }\n }\n\n &:not(.embedded) li {\n &:before {\n bottom: 0;\n content: \"\";\n left: 0;\n position: absolute;\n top: 0;\n border-left-width: #{$tocMarkerRailSize}px;\n border-left-style: solid;\n }\n\n &:first-child:before {\n top: calc(#{$tocItemTopPadding}px + #{math.div($tocItemLineHeight, 2)}px - #{math.div($tocMarkerSize, 2)}px);\n top: calc(#{$tocItemTopPadding}px + #{math.div($tocItemLineHeight, 2 * 10)}rem - #{math.div($tocMarkerSize, 2)}px);\n }\n\n &:last-child:before {\n bottom: calc(100% - (#{$tocItemTopPadding}px + #{math.div($tocItemLineHeight, 2)}px + #{math.div($tocMarkerSize, 2)}px));\n bottom: calc(100% - (#{$tocItemTopPadding}px + #{math.div($tocItemLineHeight, 2 * 10)}rem + #{math.div($tocMarkerSize, 2)}px));\n }\n\n &:not(.active):hover {\n a:before {\n @include tocMarker();\n }\n }\n }\n }\n }\n\n // Alternative TOC View for Smaller Screens\n &.embedded {\n @media (min-width: 801px) {\n display: none;\n }\n\n .toc-inner {\n padding: 12px 0 0 0;\n\n .toc-heading {\n margin: 0 0 8px;\n }\n\n &.collapsed {\n .secondary {\n display: none;\n }\n }\n }\n }\n}\n","/* ==============================\n MODULE STYLES\n ============================== */\n\n@forward 'alert/alert';\n@forward 'api-list/api-list';\n@forward 'api-pages/api-pages';\n@forward 'api-symbols/api-symbols';\n@forward 'buttons/buttons';\n@forward 'callout/callout';\n@forward 'card/card';\n@forward 'cli-pages/cli-pages';\n@forward 'code/code';\n@forward 'contribute/contribute';\n@forward 'cookies-popup/cookies-popup';\n@forward 'contributor/contributor';\n@forward 'deploy-theme/deploy-theme';\n@forward 'details/details';\n@forward 'errors/errors';\n@forward 'features/features';\n@forward 'filetree/filetree';\n@forward 'guides/guides';\n@forward 'heading-anchors/heading-anchors';\n@forward 'hr/hr';\n@forward 'images/images';\n@forward 'label/label';\n@forward 'notification/notification';\n@forward 'progress-bar/progress-bar';\n@forward 'presskit/presskit';\n@forward 'resources/resources';\n@forward 'roadmap/roadmap';\n@forward 'search-results/search-results';\n@forward 'select-menu/select-menu';\n@forward 'skip-links/skip-links';\n@forward 'table/table';\n@forward 'toc/toc';\n",".debug {\n [translation-result], code-tabs, code-example, img, code, pre, .filetree {\n display: none;\n }\n}\n\n[translation-result] + [translation-origin=off] {\n display: none;\n}\n\n[translation-result] + aio-toc + [translation-origin=off] {\n display: none;\n}\n\n[translation-origin=on] {\n border-top: 1px dashed #0273D4;\n}\n\n[id^=translations-cn] {\n aio-doc-viewer {\n blockquote {\n color: #455A64;\n margin: 0 0 32px 0;\n padding: 16px 32px;\n background: rgba(236, 239, 241, 0.24);\n border-left: 4px solid #00BCD4;\n }\n }\n}\n\nem {\n font-style: normal;\n font-weight: bold;\n}\n\nnt-wrapper {\n display: block;\n}\n","@use './constants';\n@use './mixins';\n\n@media print {\n // General Adjustments\n * {\n box-shadow: none !important;\n }\n\n body,\n mat-sidenav-container {\n background: none !important;\n }\n\n h1 {\n height: 40px !important;\n color: constants.$darkgray !important;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n page-break-after: avoid;\n }\n\n ul,\n ol,\n img,\n code-example,\n table,\n tr,\n .alert,\n .feature,\n .lightbox {\n page-break-inside: avoid;\n }\n\n table tbody tr:last-child td {\n border-bottom: 1px solid constants.$lightgray !important;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p {\n widows: 4;\n }\n\n p > code,\n li > code,\n table code {\n color: constants.$blue !important;\n }\n\n // No Print Class\n .no-print {\n display: none !important;\n }\n\n // Custom No Print for Sidenav Menu\n mat-sidenav.sidenav.mat-sidenav {\n display: none !important;\n }\n\n // Custom No Print Element Adjustments\n .mat-sidenav-content {\n margin: 0 !important;\n }\n\n mat-sidenav-container.sidenav-container {\n min-width: 100vw;\n }\n\n .sidenav-content {\n overflow: visible;\n }\n\n section#intro {\n .hero-logo {\n align-items: center;\n background: none;\n justify-content: center;\n\n &::after {\n @include mixins.font-size(64);\n @include mixins.line-height(100);\n\n color: constants.$brightred;\n content: 'Angular';\n font-weight: bold;\n }\n }\n }\n\n .filetree {\n max-width: 100%;\n }\n\n aio-code code {\n border: none !important;\n }\n\n code-example {\n &[language=shell],\n &[language=sh],\n &[language=bash] {\n background: none;\n\n .pnk,\n .blk,\n .pln,\n .otl,\n .kwd,\n .typ,\n .tag,\n .str,\n .atv,\n .atn,\n .com,\n .lit,\n .pun,\n .dec {\n color: constants.$darkgray;\n }\n }\n\n header {\n background: none;\n border: 0.5px solid constants.$lightgray;\n color: constants.$darkgray;\n }\n }\n\n .content code {\n border: 0.5px solid constants.$lightgray;\n }\n\n .mat-tab-labels {\n div.mat-tab-label {\n &:not(.mat-tab-label-active) span {\n font-style: italic;\n }\n\n &.mat-tab-label-active span {\n font-weight: bold;\n }\n }\n }\n\n .api-header label {\n color: constants.$darkgray !important;\n font-weight: bold !important;\n margin: 2px !important;\n padding: 0 !important;\n display: block !important;\n }\n\n .feature-section img {\n max-width: 70px !important;\n }\n}\n","// This contains all of the styles for the badge\n// rather than just the color/theme because of\n// no style sheet support for directives.\n@use 'sass:color';\n@use 'sass:map';\n@use 'sass:meta';\n@use 'sass:math';\n@use '@angular/cdk';\n\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n$font-size: 12px;\n$font-weight: 600;\n$default-size: 22px !default;\n$small-size: $default-size - 6;\n$large-size: $default-size + 6;\n$_badge-structure-emitted: false !default;\n\n// Mixin for building offset given different sizes\n@mixin _badge-size($size) {\n // This mixin isn't used in the context of a theme so we can disable the ampersand check.\n // stylelint-disable material/no-ampersand-beyond-selector-start\n .mat-badge-content {\n width: $size;\n height: $size;\n line-height: $size;\n }\n\n &.mat-badge-above {\n .mat-badge-content {\n top: math.div(-$size, 2);\n }\n }\n\n &.mat-badge-below {\n .mat-badge-content {\n bottom: math.div(-$size, 2);\n }\n }\n\n &.mat-badge-before {\n .mat-badge-content {\n left: -$size;\n }\n }\n\n [dir='rtl'] &.mat-badge-before {\n .mat-badge-content {\n left: auto;\n right: -$size;\n }\n }\n\n &.mat-badge-after {\n .mat-badge-content {\n right: -$size;\n }\n }\n\n [dir='rtl'] &.mat-badge-after {\n .mat-badge-content {\n right: auto;\n left: -$size;\n }\n }\n\n &.mat-badge-overlap {\n &.mat-badge-before {\n .mat-badge-content {\n left: math.div(-$size, 2);\n }\n }\n\n [dir='rtl'] &.mat-badge-before {\n .mat-badge-content {\n left: auto;\n right: math.div(-$size, 2);\n }\n }\n\n &.mat-badge-after {\n .mat-badge-content {\n right: math.div(-$size, 2);\n }\n }\n\n [dir='rtl'] &.mat-badge-after {\n .mat-badge-content {\n right: auto;\n left: math.div(-$size, 2);\n }\n }\n }\n // stylelint-enable\n}\n\n// Structural styles for the badge. They have to be included as a part of the theme,\n// because the badge is a directive and we have no other way of attaching styles to it.\n@mixin _badge-structure {\n .mat-badge {\n position: relative;\n }\n\n // The badge should make sure its host is overflow visible so that the badge content\n // can be rendered outside of the element. Some components such as <mat-icon> explicitly\n // style `overflow: hidden` so this requires extra specificity so that it does not\n // depend on style load order.\n .mat-badge.mat-badge {\n overflow: visible;\n }\n\n .mat-badge-hidden {\n .mat-badge-content {\n display: none;\n }\n }\n\n .mat-badge-content {\n position: absolute;\n text-align: center;\n display: inline-block;\n border-radius: 50%;\n transition: transform 200ms ease-in-out;\n transform: scale(0.6);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n pointer-events: none;\n }\n\n .ng-animate-disabled .mat-badge-content,\n .mat-badge-content._mat-animation-noopable {\n transition: none;\n }\n\n // The active class is added after the element is added\n // so it can animate scale to default\n .mat-badge-content.mat-badge-active {\n // Scale to `none` instead of `1` to avoid blurry text in some browsers.\n transform: none;\n }\n\n .mat-badge-small {\n @include _badge-size($small-size);\n }\n\n .mat-badge-medium {\n @include _badge-size($default-size);\n }\n\n .mat-badge-large {\n @include _badge-size($large-size);\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $primary: map.get($config, primary);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-badge-content {\n color: theming.get-color-from-palette($primary, default-contrast);\n background: theming.get-color-from-palette($primary);\n\n @include cdk.high-contrast(active, off) {\n outline: solid 1px;\n border-radius: 0;\n }\n }\n\n .mat-badge-accent {\n .mat-badge-content {\n background: theming.get-color-from-palette($accent);\n color: theming.get-color-from-palette($accent, default-contrast);\n }\n }\n\n .mat-badge-warn {\n .mat-badge-content {\n color: theming.get-color-from-palette($warn, default-contrast);\n background: theming.get-color-from-palette($warn);\n }\n }\n\n .mat-badge-disabled {\n .mat-badge-content {\n $app-background: theming.get-color-from-palette($background, 'background');\n $badge-color: theming.get-color-from-palette($foreground, disabled-button);\n\n // The disabled color usually has some kind of opacity, but because the badge is overlayed\n // on top of something else, it won't look good if it's opaque. If it is a color *type*,\n // we convert it into a solid color by taking the opacity from the rgba value and using\n // the value to determine the percentage of the background to put into foreground when\n // mixing the colors together.\n @if (meta.type-of($badge-color) == color and meta.type-of($app-background) == color) {\n $badge-opacity: opacity($badge-color);\n background: color.mix($app-background, rgba($badge-color, 1), (1 - $badge-opacity) * 100%);\n }\n @else {\n background: $badge-color;\n }\n\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-badge-content {\n font-weight: $font-weight;\n font-size: $font-size;\n font-family: typography-utils.font-family($config);\n }\n\n .mat-badge-small .mat-badge-content {\n // Set the font size to 75% of the original.\n font-size: $font-size * 0.75;\n }\n\n .mat-badge-large .mat-badge-content {\n font-size: $font-size * 2;\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-badge') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n // Try to reduce the number of times that the structural styles are emitted.\n @if not $_badge-structure-emitted {\n @include _badge-structure;\n\n // Only flip the flag if the mixin is included at the top level. Otherwise the first\n // inclusion might be inside of a theme class which will exclude the structural styles\n // from all other themes.\n @if not & {\n $_badge-structure-emitted: true !global;\n }\n }\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'typography-utils';\n@use '../theming/theming';\n\n/// Defines a typography level from the Material Design spec.\n/// @param {String} $font-size The font-size for this level.\n/// @param {String | Number} $line-height The line-height for this level.\n/// @param {String | Number} $font-weight The font-weight for this level.\n/// @param {String} $font-family The font-family for this level.\n/// @param {String} $letter-spacing The letter-spacing for this level.\n/// @returns {Map} A map representing the definition of this typographic level.\n@function define-typography-level(\n $font-size,\n $line-height: $font-size,\n $font-weight: 400,\n $font-family: null,\n $letter-spacing: normal) {\n\n @return (\n font-size: $font-size,\n line-height: $line-height,\n font-weight: $font-weight,\n font-family: $font-family,\n letter-spacing: $letter-spacing\n );\n}\n\n/// Defines a collection of typography levels to configure typography for an application.\n/// Any level not specified defaults to the values defined in the Material Design specification:\n/// https://material.io/guidelines/style/typography.html.\n///\n/// Note that the Material Design specification does not describe explicit letter-spacing values.\n/// The values here come from reverse engineering the Material Design examples.\n/// @param {String} $font-family Default font-family for levels that don't specify font-family.\n/// @param {Map} $display-4 Configuration for the \"display-4\" typographic level.\n/// @param {Map} $display-3 Configuration for the \"display-3\" typographic level.\n/// @param {Map} $display-2 Configuration for the \"display-2\" typographic level.\n/// @param {Map} $display-1 Configuration for the \"display-1\" typographic level.\n/// @param {Map} $headline Configuration for the \"headline\" typographic level.\n/// @param {Map} $title Configuration for the \"title\" typographic level.\n/// @param {Map} $subheading-2 Configuration for the \"subheading-2\" typographic level.\n/// @param {Map} $subheading-1 Configuration for the \"subheading-1\" typographic level.\n/// @param {Map} $body-2 Configuration for the \"body-2\" typographic level.\n/// @param {Map} $body-1 Configuration for the \"body-1\" typographic level.\n/// @param {Map} $caption Configuration for the \"caption\" typographic level.\n/// @param {Map} $button Configuration for the \"button\" typographic level.\n/// @param {Map} $input Configuration for the \"input\" typographic level.\n/// @returns {Map} A typography config for the application.\n@function define-typography-config(\n $font-family: 'Roboto, \"Helvetica Neue\", sans-serif',\n $display-4: define-typography-level(112px, 112px, 300, $letter-spacing: -0.05em),\n $display-3: define-typography-level(56px, 56px, 400, $letter-spacing: -0.02em),\n $display-2: define-typography-level(45px, 48px, 400, $letter-spacing: -0.005em),\n $display-1: define-typography-level(34px, 40px, 400),\n $headline: define-typography-level(24px, 32px, 400),\n $title: define-typography-level(20px, 32px, 500),\n $subheading-2: define-typography-level(16px, 28px, 400),\n $subheading-1: define-typography-level(15px, 24px, 400),\n $body-2: define-typography-level(14px, 24px, 500),\n $body-1: define-typography-level(14px, 20px, 400),\n $caption: define-typography-level(12px, 20px, 400),\n $button: define-typography-level(14px, 14px, 500),\n // Line-height must be unit-less fraction of the font-size.\n $input: define-typography-level(inherit, 1.125, 400)\n) {\n\n // Declare an initial map with all of the levels.\n $config: (\n display-4: $display-4,\n display-3: $display-3,\n display-2: $display-2,\n display-1: $display-1,\n headline: $headline,\n title: $title,\n subheading-2: $subheading-2,\n subheading-1: $subheading-1,\n body-2: $body-2,\n body-1: $body-1,\n caption: $caption,\n button: $button,\n input: $input,\n );\n\n // Loop through the levels and set the `font-family` of the ones that don't have one to the base.\n // Note that Sass can't modify maps in place, which means that we need to merge and re-assign.\n @each $key, $level in $config {\n @if map.get($level, font-family) == null {\n $new-level: map.merge($level, (font-family: $font-family));\n $config: map.merge($config, ($key: $new-level));\n }\n }\n\n // Add the base font family to the config.\n @return map.merge($config, (font-family: $font-family));\n}\n\n// Whether a config is for the Material Design 2018 typography system.\n@function private-typography-is-2018-config($config) {\n @return map.get($config, headline-1) != null;\n}\n\n// Whether a config is for the Material Design 2014 typography system.\n@function private-typography-is-2014-config($config) {\n @return map.get($config, headline) != null;\n}\n\n// Given a config for either the 2014 or 2018 Material Design typography system,\n// produces a normalized typography config for the 2014 Material Design typography system.\n// 2014 - https://material.io/archive/guidelines/style/typography.html#typography-styles\n// 2018 - https://material.io/design/typography/the-type-system.html#type-scale\n//\n// Components using this function should be migrated to normalize to the 2018 style config instead.\n// New components should not use this function.\n@function private-typography-to-2014-config($config) {\n @if $config == null {\n @return null;\n }\n @if not private-typography-is-2014-config($config) {\n $args: (\n display-4: map.get($config, headline-1),\n display-3: map.get($config, headline-2),\n display-2: map.get($config, headline-3),\n display-1: map.get($config, headline-4),\n headline: map.get($config, headline-5),\n title: map.get($config, headline-6),\n subheading-2: map.get($config, subtitle-1),\n subheading-1: map.get($config, subtitle-2),\n body-2: map.get($config, body-1),\n body-1: map.get($config, body-2),\n button: map.get($config, button),\n caption: map.get($config, caption),\n );\n $non-null-args: ();\n @each $key, $value in $args {\n @if $value != null {\n $non-null-args: map.merge($non-null-args, ($key: $value));\n }\n }\n @return define-typography-config($non-null-args...);\n }\n @return $config;\n}\n\n// Given a config for either the 2014 or 2018 Material Design typography system,\n// produces a normalized typography config for the 2018 Material Design typography system.\n// 2014 - https://material.io/archive/guidelines/style/typography.html#typography-styles\n// 2018 - https://material.io/design/typography/the-type-system.html#type-scale\n@function private-typography-to-2018-config($config) {\n @if $config == null {\n @return null;\n }\n @if not private-typography-is-2018-config($config) {\n @return (\n headline-1: map.get($config, display-4),\n headline-2: map.get($config, display-3),\n headline-3: map.get($config, display-2),\n headline-4: map.get($config, display-1),\n headline-5: map.get($config, headline),\n headline-6: map.get($config, title),\n subtitle-1: map.get($config, subheading-2),\n\n // These mappings are odd, but body-2 in the 2014 system actually looks closer to subtitle-2\n // in the 2018 system, and subeading-1 in the 2014 system looks more like body-1 in the 2018\n // system.\n subtitle-2: map.get($config, body-2),\n body-1: map.get($config, subheading-1),\n\n body-2: map.get($config, body-1),\n button: map.get($config, button),\n caption: map.get($config, caption),\n overline: if(map.get($config, overline), map.get($config, overline),\n define-typography-level(12px, 32px, 500)\n )\n );\n }\n @return $config;\n}\n\n/// Emits baseline typographic styles based on a given config.\n/// @param {Map} $config-or-theme A typography config for an entire theme.\n/// @param {String} $selector Ancestor selector under which native elements, such as h1, will\n/// be styled.\n@mixin typography-hierarchy($config-or-theme, $selector: '.mat-typography') {\n $config: private-typography-to-2014-config(theming.get-typography-config($config-or-theme));\n\n // Note that it seems redundant to prefix the class rules with the `$selector`, however it's\n // necessary if we want to allow people to overwrite the tag selectors. This is due to\n // selectors like `#{$selector} h1` being more specific than ones like `.mat-title`.\n .mat-h1,\n .mat-headline,\n #{$selector} .mat-h1,\n #{$selector} .mat-headline,\n #{$selector} h1 {\n @include typography-utils.typography-level($config, headline);\n margin: 0 0 16px;\n }\n\n .mat-h2,\n .mat-title,\n #{$selector} .mat-h2,\n #{$selector} .mat-title,\n #{$selector} h2 {\n @include typography-utils.typography-level($config, title);\n margin: 0 0 16px;\n }\n\n .mat-h3,\n .mat-subheading-2,\n #{$selector} .mat-h3,\n #{$selector} .mat-subheading-2,\n #{$selector} h3 {\n @include typography-utils.typography-level($config, subheading-2);\n margin: 0 0 16px;\n }\n\n .mat-h4,\n .mat-subheading-1,\n #{$selector} .mat-h4,\n #{$selector} .mat-subheading-1,\n #{$selector} h4 {\n @include typography-utils.typography-level($config, subheading-1);\n margin: 0 0 16px;\n }\n\n // Note: the spec doesn't have anything that would correspond to h5 and h6, but we add these for\n // consistency. The font sizes come from the Chrome user agent styles which have h5 at 0.83em\n // and h6 at 0.67em.\n .mat-h5,\n #{$selector} .mat-h5,\n #{$selector} h5 {\n @include typography-utils.font-shorthand(\n // calc is used here to support css variables\n calc(#{typography-utils.font-size($config, body-1)} * 0.83),\n typography-utils.font-weight($config, body-1),\n typography-utils.line-height($config, body-1),\n typography-utils.font-family($config, body-1)\n );\n\n margin: 0 0 12px;\n }\n\n .mat-h6,\n #{$selector} .mat-h6,\n #{$selector} h6 {\n @include typography-utils.font-shorthand(\n // calc is used here to support css variables\n calc(#{typography-utils.font-size($config, body-1)} * 0.67),\n typography-utils.font-weight($config, body-1),\n typography-utils.line-height($config, body-1),\n typography-utils.font-family($config, body-1)\n );\n\n margin: 0 0 12px;\n }\n\n .mat-body-strong,\n .mat-body-2,\n #{$selector} .mat-body-strong,\n #{$selector} .mat-body-2 {\n @include typography-utils.typography-level($config, body-2);\n }\n\n .mat-body,\n .mat-body-1,\n #{$selector} .mat-body,\n #{$selector} .mat-body-1,\n #{$selector} {\n @include typography-utils.typography-level($config, body-1);\n\n p {\n margin: 0 0 12px;\n }\n }\n\n .mat-small,\n .mat-caption,\n #{$selector} .mat-small,\n #{$selector} .mat-caption {\n @include typography-utils.typography-level($config, caption);\n }\n\n .mat-display-4,\n #{$selector} .mat-display-4 {\n @include typography-utils.typography-level($config, display-4);\n margin: 0 0 56px;\n }\n\n .mat-display-3,\n #{$selector} .mat-display-3 {\n @include typography-utils.typography-level($config, display-3);\n margin: 0 0 64px;\n }\n\n .mat-display-2,\n #{$selector} .mat-display-2 {\n @include typography-utils.typography-level($config, display-2);\n margin: 0 0 64px;\n }\n\n .mat-display-1,\n #{$selector} .mat-display-1 {\n @include typography-utils.typography-level($config, display-1);\n margin: 0 0 64px;\n }\n}\n","@use 'sass:list';\n@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use 'sass:string';\n\n\n// Utility for fetching a nested value from a typography config.\n@function _mat-get-type-value($config, $level, $name) {\n @return map.get(map.get($config, $level), $name);\n}\n\n/// Gets the font size for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function font-size($config, $level) {\n @return _mat-get-type-value($config, $level, font-size);\n}\n\n/// Gets the line height for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function line-height($config, $level) {\n @return _mat-get-type-value($config, $level, line-height);\n}\n\n/// Gets the font weight for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function font-weight($config, $level) {\n @return _mat-get-type-value($config, $level, font-weight);\n}\n\n/// Gets the letter spacing for a level inside a typography config.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function letter-spacing($config, $level) {\n @return _mat-get-type-value($config, $level, letter-spacing);\n}\n\n/// Gets the font-family from a typography config and removes the quotes around it.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@function font-family($config, $level: null) {\n $font-family: map.get($config, font-family);\n\n @if $level != null {\n $font-family: _mat-get-type-value($config, $level, font-family);\n }\n\n // Guard against unquoting non-string values, because it's deprecated.\n @return if(meta.type-of($font-family) == string, string.unquote($font-family), $font-family);\n}\n\n/// Outputs the shorthand `font` CSS property, based on a set of typography values. Falls back to\n/// the individual properties if a value that isn't allowed in the shorthand is passed in.\n/// @param {String} $font-size The font-size value.\n/// @param {String | Number} $font-weight The font-weight value.\n/// @param {String | Number} $line-height The line-height value.\n/// @param {String} $font-family The font-family value.\n/// @returns {String} The `font` shorthand value combining the given parts.\n@mixin font-shorthand($font-size, $font-weight, $line-height, $font-family) {\n // If any of the values are set to `inherit`, we can't use the shorthand\n // so we fall back to passing in the individual properties.\n @if ($font-size == inherit or\n $font-weight == inherit or\n $line-height == inherit or\n $font-family == inherit or\n $font-size == null or\n $font-weight == null or\n $line-height == null or\n $font-family == null) {\n\n font-size: $font-size;\n font-weight: $font-weight;\n line-height: $line-height;\n font-family: $font-family;\n }\n @else {\n // Otherwise use the shorthand `font`, because it's the least amount of bytes.\n font: $font-weight list.slash($font-size, $line-height) $font-family;\n }\n}\n\n/// Emits CSS styles for the given typography level.\n/// @param {Map} $config A typography config.\n/// @param {Map} $level A typography level.\n@mixin typography-level($config, $level) {\n $font-size: font-size($config, $level);\n $font-weight: font-weight($config, $level);\n $line-height: line-height($config, $level);\n $font-family: font-family($config, $level);\n\n @include font-shorthand($font-size, $font-weight, $line-height, $font-family);\n letter-spacing: letter-spacing($config, $level);\n}\n\n/// Coerce a value to `em` if it is a unitless number, otherwise returns\n/// the value provided.\n@function private-coerce-unitless-to-em($value) {\n @return if(math.is-unitless($value), 1em * $value, $value);\n}\n","@use 'sass:map';\n@use '../core/style/private';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/theming/theming';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-bottom-sheet-container {\n @include private.private-theme-elevation(16, $config);\n background: theming.get-color-from-palette($background, dialog);\n color: theming.get-color-from-palette($foreground, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-bottom-sheet-container {\n @include typography-utils.typography-level($config, body-1);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-bottom-sheet') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:meta';\n@use '../core/theming/theming';\n@use '../core/style/private';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n$_ripple-opacity: 0.1;\n\n// Applies a focus style to an mat-button element for each of the supported palettes.\n@mixin _focus-overlay-color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n\n &.mat-primary .mat-button-focus-overlay {\n background-color: theming.get-color-from-palette($primary);\n }\n\n &.mat-accent .mat-button-focus-overlay {\n background-color: theming.get-color-from-palette($accent);\n }\n\n &.mat-warn .mat-button-focus-overlay {\n background-color: theming.get-color-from-palette($warn);\n }\n\n &.mat-button-disabled .mat-button-focus-overlay {\n background-color: transparent;\n }\n}\n\n// Applies the background color for a ripple. If the value provided is not a Sass color,\n// we assume that we've been given a CSS variable. Since we can't perform alpha-blending\n// on a CSS variable, we instead add the opacity directly to the ripple element.\n@mixin _ripple-background($palette, $hue, $opacity) {\n $background-color: theming.get-color-from-palette($palette, $hue, $opacity);\n background-color: $background-color;\n @if (meta.type-of($background-color) != color) {\n opacity: $opacity;\n }\n}\n\n@mixin _ripple-color($theme, $hue, $opacity: $_ripple-opacity) {\n $primary: map.get($theme, primary);\n $accent: map.get($theme, accent);\n $warn: map.get($theme, warn);\n\n &.mat-primary .mat-ripple-element {\n @include _ripple-background($primary, $hue, $opacity);\n }\n\n &.mat-accent .mat-ripple-element {\n @include _ripple-background($accent, $hue, $opacity);\n }\n\n &.mat-warn .mat-ripple-element {\n @include _ripple-background($warn, $hue, $opacity);\n }\n}\n\n// Applies a property to an mat-button element for each of the supported palettes.\n@mixin _theme-property($theme, $property, $hue) {\n $primary: map.get($theme, primary);\n $accent: map.get($theme, accent);\n $warn: map.get($theme, warn);\n $background: map.get($theme, background);\n $foreground: map.get($theme, foreground);\n\n &.mat-primary {\n #{$property}: theming.get-color-from-palette($primary, $hue);\n }\n &.mat-accent {\n #{$property}: theming.get-color-from-palette($accent, $hue);\n }\n &.mat-warn {\n #{$property}: theming.get-color-from-palette($warn, $hue);\n }\n\n &.mat-primary, &.mat-accent, &.mat-warn, &.mat-button-disabled {\n &.mat-button-disabled {\n $palette: if($property == 'color', $foreground, $background);\n #{$property}: theming.get-color-from-palette($palette, disabled-button);\n }\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-button, .mat-icon-button, .mat-stroked-button {\n // Buttons without a background color should inherit the font color. This is necessary to\n // ensure that the button is readable on custom background colors. It's wrong to always assume\n // that those buttons are always placed inside of containers with the default background\n // color of the theme (e.g. themed toolbars).\n color: inherit;\n background: transparent;\n\n @include _theme-property($config, 'color', text);\n @include _focus-overlay-color($config);\n\n // Setup the ripple color to be based on the text color. This ensures that the ripples\n // are matching with the current theme palette and are in contrast to the background color\n // (e.g in themed toolbars).\n .mat-ripple-element {\n opacity: $_ripple-opacity;\n background-color: currentColor;\n }\n }\n\n .mat-button-focus-overlay {\n background: map.get($foreground, base);\n }\n\n // Note: this needs a bit extra specificity, because we're not guaranteed the inclusion\n // order of the theme styles and the button reset may end up resetting this as well.\n .mat-stroked-button:not(.mat-button-disabled) {\n border-color: theming.get-color-from-palette($foreground, divider);\n }\n\n .mat-flat-button, .mat-raised-button, .mat-fab, .mat-mini-fab {\n // Default font and background color when not using any color palette.\n color: theming.get-color-from-palette($foreground, text);\n background-color: theming.get-color-from-palette($background, raised-button);\n\n @include _theme-property($config, 'color', default-contrast);\n @include _theme-property($config, 'background-color', default);\n @include _ripple-color($config, default-contrast);\n }\n\n .mat-stroked-button, .mat-flat-button {\n @include private.private-theme-overridable-elevation(0, $config);\n }\n\n .mat-raised-button {\n @include private.private-theme-overridable-elevation(2, $config);\n\n &:not(.mat-button-disabled):active {\n @include private.private-theme-overridable-elevation(8, $config);\n }\n\n &.mat-button-disabled {\n @include private.private-theme-overridable-elevation(0, $config);\n }\n }\n\n .mat-fab, .mat-mini-fab {\n @include private.private-theme-overridable-elevation(6, $config);\n\n &:not(.mat-button-disabled):active {\n @include private.private-theme-overridable-elevation(12, $config);\n }\n\n &.mat-button-disabled {\n @include private.private-theme-overridable-elevation(0, $config);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-button, .mat-raised-button, .mat-icon-button, .mat-stroked-button,\n .mat-flat-button, .mat-fab, .mat-mini-fab {\n font: {\n family: typography-utils.font-family($config, button);\n size: typography-utils.font-size($config, button);\n weight: typography-utils.font-weight($config, button);\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-button') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/density/private/compatibility';\n@use './button-toggle-variables';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $divider-color: theming.get-color-from-palette($foreground, divider);\n $theme-divider-color: map.get($foreground, divider);\n\n // By default the theme usually has an rgba color for the dividers, which can\n // stack up with the background of a button toggle. This can cause the border\n // of a selected toggle to look different from an deselected one. We use a solid\n // color to ensure that the border always stays the same.\n $divider-color: if(type-of($theme-divider-color) == color,\n theming.private-rgba-to-hex($theme-divider-color, map.get($background, card)),\n $theme-divider-color\n );\n\n .mat-button-toggle-standalone,\n .mat-button-toggle-group {\n @include private.private-theme-overridable-elevation(2, $config);\n }\n\n .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n .mat-button-toggle-group-appearance-standard {\n &:not([class*='mat-elevation-z']) {\n box-shadow: none;\n }\n }\n\n .mat-button-toggle {\n color: theming.get-color-from-palette($foreground, hint-text);\n\n .mat-button-toggle-focus-overlay {\n background-color: theming.get-color-from-palette($background, focused-button);\n }\n }\n\n .mat-button-toggle-appearance-standard {\n color: theming.get-color-from-palette($foreground, text);\n background: theming.get-color-from-palette($background, card);\n\n .mat-button-toggle-focus-overlay {\n background-color: theming.get-color-from-palette($background, focused-button, 1);\n }\n }\n\n .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: solid 1px $divider-color;\n }\n\n [dir='rtl'] .mat-button-toggle-group-appearance-standard .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: solid 1px $divider-color;\n }\n\n .mat-button-toggle-group-appearance-standard.mat-button-toggle-vertical {\n .mat-button-toggle + .mat-button-toggle {\n border-left: none;\n border-right: none;\n border-top: solid 1px $divider-color;\n }\n }\n\n .mat-button-toggle-checked {\n background-color: theming.get-color-from-palette($background, selected-button);\n color: theming.get-color-from-palette($foreground, secondary-text);\n\n &.mat-button-toggle-appearance-standard {\n color: theming.get-color-from-palette($foreground, text);\n }\n }\n\n .mat-button-toggle-disabled {\n color: theming.get-color-from-palette($foreground, disabled-button);\n background-color: theming.get-color-from-palette($background, disabled-button-toggle);\n\n &.mat-button-toggle-appearance-standard {\n background: theming.get-color-from-palette($background, card);\n }\n\n &.mat-button-toggle-checked {\n background-color: theming.get-color-from-palette($background, selected-disabled-button);\n }\n }\n\n .mat-button-toggle-standalone.mat-button-toggle-appearance-standard,\n .mat-button-toggle-group-appearance-standard {\n border: solid 1px $divider-color;\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-button-toggle {\n font-family: typography-utils.font-family($config);\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $standard-height: compatibility.private-density-prop-value(\n button-toggle-variables.$standard-density-config, $density-scale, height);\n\n @include compatibility.private-density-legacy-compatibility() {\n .mat-button-toggle-appearance-standard .mat-button-toggle-label-content {\n line-height: $standard-height;\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-button-toggle') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/style/private';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-card {\n @include private.private-theme-overridable-elevation(1, $config);\n background: theming.get-color-from-palette($background, card);\n color: theming.get-color-from-palette($foreground, text);\n\n // Needs extra specificity to be able to override the elevation selectors.\n &.mat-card-flat {\n @include private.private-theme-overridable-elevation(0, $config);\n }\n }\n\n .mat-card-subtitle {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-card {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-card-title {\n font: {\n size: typography-utils.font-size($config, headline);\n weight: typography-utils.font-weight($config, title);\n }\n }\n\n .mat-card-header .mat-card-title {\n font-size: typography-utils.font-size($config, title);\n }\n\n .mat-card-subtitle,\n .mat-card-content {\n font-size: typography-utils.font-size($config, body-1);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-card') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $is-dark-theme: map.get($config, is-dark);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n\n // The color of the checkbox's checkmark / mixedmark.\n $checkbox-mark-color: theming.get-color-from-palette($background, background);\n\n // NOTE(traviskaufman): While the spec calls for translucent blacks/whites for disabled colors,\n // this does not work well with elements layered on top of one another. To get around this we\n // blend the colors together based on the base color and the theme background.\n $white-30pct-opacity-on-dark: #686868;\n $black-26pct-opacity-on-light: #b0b0b0;\n $disabled-color: if($is-dark-theme, $white-30pct-opacity-on-dark, $black-26pct-opacity-on-light);\n\n .mat-checkbox-frame {\n border-color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-checkbox-checkmark {\n fill: $checkbox-mark-color;\n }\n\n .mat-checkbox-checkmark-path {\n // !important is needed here because a stroke must be set as an\n // attribute on the SVG in order for line animation to work properly.\n stroke: $checkbox-mark-color !important;\n }\n\n .mat-checkbox-mixedmark {\n background-color: $checkbox-mark-color;\n }\n\n .mat-checkbox-indeterminate, .mat-checkbox-checked {\n &.mat-primary .mat-checkbox-background {\n background-color: theming.get-color-from-palette($primary);\n }\n\n &.mat-accent .mat-checkbox-background {\n background-color: theming.get-color-from-palette($accent);\n }\n\n &.mat-warn .mat-checkbox-background {\n background-color: theming.get-color-from-palette($warn);\n }\n }\n\n .mat-checkbox-disabled {\n &.mat-checkbox-checked,\n &.mat-checkbox-indeterminate {\n .mat-checkbox-background {\n background-color: $disabled-color;\n }\n }\n\n &:not(.mat-checkbox-checked) {\n .mat-checkbox-frame {\n border-color: $disabled-color;\n }\n }\n\n .mat-checkbox-label {\n color: theming.get-color-from-palette($foreground, disabled);\n }\n }\n\n // Switch this to a solid color since we're using `opacity`\n // to control how opaque the ripple should be.\n .mat-checkbox .mat-ripple-element {\n background-color: map.get(map.get($config, foreground), base);\n }\n\n .mat-checkbox-checked:not(.mat-checkbox-disabled),\n .mat-checkbox:active:not(.mat-checkbox-disabled) {\n &.mat-primary .mat-ripple-element {\n background: theming.get-color-from-palette($primary);\n }\n\n &.mat-accent .mat-ripple-element {\n background: theming.get-color-from-palette($accent);\n }\n\n &.mat-warn .mat-ripple-element {\n background: theming.get-color-from-palette($warn);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-checkbox {\n font-family: typography-utils.font-family($config);\n }\n\n // TODO(kara): Remove this style when fixing vertical baseline\n .mat-checkbox-layout .mat-checkbox-label {\n line-height: typography-utils.line-height($config, body-2);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-checkbox') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:meta';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n$chip-remove-font-size: 18px;\n\n@mixin _element-color($foreground, $background) {\n background-color: $background;\n color: $foreground;\n\n .mat-chip-remove {\n color: $foreground;\n opacity: 0.4;\n }\n}\n\n\n// Applies the background color for a ripple element.\n// If the color value provided is not a Sass color,\n// we assume that we've been given a CSS variable.\n// Since we can't perform alpha-blending on a CSS variable,\n// we instead add the opacity directly to the ripple element.\n@mixin _ripple-background($palette, $default-contrast, $opacity) {\n $background-color: theming.get-color-from-palette($palette, $default-contrast, $opacity);\n background-color: $background-color;\n @if (meta.type-of($background-color) != color) {\n opacity: $opacity;\n }\n}\n\n@mixin _palette-styles($palette) {\n @include _element-color(theming.get-color-from-palette($palette, default-contrast),\n theming.get-color-from-palette($palette));\n\n .mat-ripple-element {\n @include _ripple-background($palette, default-contrast, 0.1);\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $is-dark-theme: map.get($config, is-dark);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n $unselected-background: theming.get-color-from-palette($background, unselected-chip);\n $unselected-foreground: theming.get-color-from-palette($foreground, text);\n\n .mat-chip.mat-standard-chip {\n @include _element-color($unselected-foreground, $unselected-background);\n\n &:not(.mat-chip-disabled) {\n &:active {\n @include private.private-theme-elevation(3, $config);\n }\n\n .mat-chip-remove:hover {\n opacity: 0.54;\n }\n }\n\n &.mat-chip-disabled {\n opacity: 0.4;\n }\n\n &::after {\n background: map.get($foreground, base);\n }\n }\n\n .mat-chip.mat-standard-chip.mat-chip-selected {\n &.mat-primary {\n @include _palette-styles($primary);\n }\n\n &.mat-warn {\n @include _palette-styles($warn);\n }\n\n &.mat-accent {\n @include _palette-styles($accent);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-chip {\n font-size: typography-utils.font-size($config, body-2);\n font-weight: typography-utils.font-weight($config, body-2);\n\n .mat-chip-trailing-icon.mat-icon,\n .mat-chip-remove.mat-icon {\n font-size: $chip-remove-font-size;\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-chips') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n\n\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-table {\n background: theming.get-color-from-palette($background, 'card');\n }\n\n .mat-table thead, .mat-table tbody, .mat-table tfoot,\n mat-header-row, mat-row, mat-footer-row,\n [mat-header-row], [mat-row], [mat-footer-row],\n .mat-table-sticky {\n background: inherit;\n }\n\n mat-row, mat-header-row, mat-footer-row,\n th.mat-header-cell, td.mat-cell, td.mat-footer-cell {\n border-bottom-color: theming.get-color-from-palette($foreground, divider);\n }\n\n .mat-header-cell {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-cell, .mat-footer-cell {\n color: theming.get-color-from-palette($foreground, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-table {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-header-cell {\n font-size: typography-utils.font-size($config, caption);\n font-weight: typography-utils.font-weight($config, body-2);\n }\n\n .mat-cell, .mat-footer-cell {\n font-size: typography-utils.font-size($config, body-1);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-table') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:color';\n@use 'sass:map';\n@use 'sass:math';\n@use 'sass:meta';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n$selected-today-box-shadow-width: 1px;\n$selected-fade-amount: 0.6;\n$range-fade-amount: 0.2;\n$today-fade-amount: 0.2;\n$calendar-body-font-size: 13px !default;\n$calendar-weekday-table-font-size: 11px !default;\n\n@mixin _color($palette) {\n @include date-range-colors(\n theming.get-color-from-palette($palette, default, $range-fade-amount));\n\n .mat-calendar-body-selected {\n background-color: theming.get-color-from-palette($palette);\n color: theming.get-color-from-palette($palette, default-contrast);\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-selected {\n $background: theming.get-color-from-palette($palette);\n\n @if (meta.type-of($background) == color) {\n background-color: color.adjust($background, $alpha: -$selected-fade-amount);\n }\n @else {\n // If we couldn't resolve to background to a color (e.g. it's a CSS variable),\n // fall back to fading the content out via `opacity`.\n opacity: $today-fade-amount;\n }\n }\n\n .mat-calendar-body-today.mat-calendar-body-selected {\n box-shadow: inset 0 0 0 $selected-today-box-shadow-width\n theming.get-color-from-palette($palette, default-contrast);\n }\n\n .cdk-keyboard-focused .mat-calendar-body-active,\n .cdk-program-focused .mat-calendar-body-active {\n @include _highlighted-cell($palette);\n }\n\n @media (hover: hover) {\n .mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover {\n @include _highlighted-cell($palette);\n }\n }\n}\n\n// Utility mixin to target cells that aren't selected. Used to make selector easier to follow.\n@mixin _unselected-cell {\n &:not(.mat-calendar-body-selected):not(.mat-calendar-body-comparison-identical) {\n @content;\n }\n}\n\n// Styles for a highlighted calendar cell (e.g. hovered or focused).\n@mixin _highlighted-cell($palette) {\n & > .mat-calendar-body-cell-content {\n @include _unselected-cell {\n background-color: theming.get-color-from-palette($palette, 0.3);\n }\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $disabled-color: theming.get-color-from-palette($foreground, disabled-text);\n\n .mat-calendar-arrow {\n fill: theming.get-color-from-palette($foreground, icon);\n }\n\n // The prev/next buttons need a bit more specificity to\n // avoid being overwritten by the .mat-icon-button.\n .mat-datepicker-toggle,\n .mat-datepicker-content .mat-calendar-next-button,\n .mat-datepicker-content .mat-calendar-previous-button {\n color: theming.get-color-from-palette($foreground, icon);\n }\n\n .mat-calendar-table-header-divider::after {\n background: theming.get-color-from-palette($foreground, divider);\n }\n\n .mat-calendar-table-header,\n .mat-calendar-body-label {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-calendar-body-cell-content,\n .mat-date-range-input-separator {\n color: theming.get-color-from-palette($foreground, text);\n border-color: transparent;\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-cell-content {\n @include _unselected-cell {\n color: $disabled-color;\n }\n }\n\n .mat-form-field-disabled .mat-date-range-input-separator {\n color: $disabled-color;\n }\n\n .mat-calendar-body-in-preview {\n $divider-color: theming.get-color-from-palette($foreground, divider);\n\n @if meta.type-of($divider-color) == color {\n // The divider color is set under the assumption that it'll be used\n // for a solid border, but because we're using a dashed border for the\n // preview range, we need to bump its opacity to ensure that it's visible.\n color: rgba($divider-color, math.min(opacity($divider-color) * 2, 1));\n }\n @else {\n color: $divider-color;\n }\n }\n\n .mat-calendar-body-today {\n @include _unselected-cell {\n // Note: though it's not text, the border is a hint about the fact that this is today's date,\n // so we use the hint color.\n border-color: theming.get-color-from-palette($foreground, hint-text);\n }\n }\n\n .mat-calendar-body-disabled > .mat-calendar-body-today {\n @include _unselected-cell {\n $color: theming.get-color-from-palette($foreground, hint-text);\n\n @if (meta.type-of($color) == color) {\n border-color: color.adjust($color, $alpha: -$today-fade-amount);\n }\n @else {\n // If the color didn't resolve to a color value, but something like a CSS variable, we can't\n // fade it out so we fall back to reducing the element opacity. Note that we don't use the\n // $mat-datepicker-today-fade-amount, because hint text usually has some opacity applied\n // to it already and we don't want them to stack on top of each other.\n opacity: 0.5;\n }\n }\n }\n\n @include _color(map.get($config, primary));\n\n .mat-datepicker-content {\n @include private.private-theme-elevation(4, $config);\n background-color: theming.get-color-from-palette($background, card);\n color: theming.get-color-from-palette($foreground, text);\n\n &.mat-accent {\n @include _color(map.get($config, accent));\n }\n\n &.mat-warn {\n @include _color(map.get($config, warn));\n }\n }\n\n .mat-datepicker-content-touch {\n @include private.private-theme-elevation(24, $config);\n }\n\n .mat-datepicker-toggle-active {\n color: theming.get-color-from-palette(map.get($config, primary), text);\n\n &.mat-accent {\n color: theming.get-color-from-palette(map.get($config, accent), text);\n }\n\n &.mat-warn {\n color: theming.get-color-from-palette(map.get($config, warn), text);\n }\n }\n\n .mat-date-range-input-inner[disabled] {\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-calendar {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-calendar-body {\n font-size: $calendar-body-font-size;\n }\n\n .mat-calendar-body-label,\n .mat-calendar-period-button {\n font: {\n size: typography-utils.font-size($config, button);\n weight: typography-utils.font-weight($config, button);\n }\n }\n\n .mat-calendar-table-header th {\n font: {\n size: $calendar-weekday-table-font-size;\n weight: typography-utils.font-weight($config, body-1);\n }\n }\n}\n\n@mixin date-range-colors(\n $range-color,\n $comparison-color: rgba(#f9ab00, $range-fade-amount),\n $overlap-color: #a8dab5,\n $overlap-selected-color: color.adjust($overlap-color, $lightness: -30%)) {\n\n .mat-calendar-body-in-range::before {\n background: $range-color;\n }\n\n .mat-calendar-body-comparison-identical,\n .mat-calendar-body-in-comparison-range::before {\n background: $comparison-color;\n }\n\n .mat-calendar-body-comparison-bridge-start::before,\n [dir='rtl'] .mat-calendar-body-comparison-bridge-end::before {\n background: linear-gradient(to right, $range-color 50%, $comparison-color 50%);\n }\n\n .mat-calendar-body-comparison-bridge-end::before,\n [dir='rtl'] .mat-calendar-body-comparison-bridge-start::before {\n background: linear-gradient(to left, $range-color 50%, $comparison-color 50%);\n }\n\n .mat-calendar-body-in-range > .mat-calendar-body-comparison-identical,\n .mat-calendar-body-in-comparison-range.mat-calendar-body-in-range::after {\n background: $overlap-color;\n }\n\n .mat-calendar-body-comparison-identical.mat-calendar-body-selected,\n .mat-calendar-body-in-comparison-range > .mat-calendar-body-selected {\n background: $overlap-selected-color;\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-datepicker') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-dialog-container {\n @include private.private-theme-elevation(24, $config);\n background: theming.get-color-from-palette($background, dialog);\n color: theming.get-color-from-palette($foreground, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-dialog-title {\n @include typography-utils.typography-level($config, title);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-dialog') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/density/private/compatibility';\n@use '../core/theming/theming';\n@use '../core/style/private';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use './expansion-variables';\n@use './expansion-mixins';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-expansion-panel {\n @include private.private-theme-overridable-elevation(2, $config);\n background: theming.get-color-from-palette($background, card);\n color: theming.get-color-from-palette($foreground, text);\n }\n\n .mat-action-row {\n border-top-color: theming.get-color-from-palette($foreground, divider);\n }\n\n @include expansion-mixins.private-expansion-focus {\n background: theming.get-color-from-palette($background, hover);\n }\n\n // Disable the hover on touch devices since it can appear like it is stuck. We can't use\n // `@media (hover)` above, because the desktop support browser support isn't great.\n @media (hover: none) {\n .mat-expansion-panel:not(.mat-expanded):not([aria-disabled='true'])\n .mat-expansion-panel-header:hover {\n background: theming.get-color-from-palette($background, card);\n }\n }\n\n .mat-expansion-panel-header-title {\n color: theming.get-color-from-palette($foreground, text);\n }\n\n .mat-expansion-panel-header-description,\n .mat-expansion-indicator::after {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-expansion-panel-header[aria-disabled='true'] {\n color: theming.get-color-from-palette($foreground, disabled-button);\n\n .mat-expansion-panel-header-title,\n .mat-expansion-panel-header-description {\n color: inherit;\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-expansion-panel-header {\n font: {\n family: typography-utils.font-family($config, subheading-1);\n size: typography-utils.font-size($config, subheading-1);\n weight: typography-utils.font-weight($config, subheading-1);\n }\n }\n\n .mat-expansion-panel-content {\n @include typography-utils.typography-level($config, body-1);\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $expanded-height: compatibility.private-density-prop-value(\n expansion-variables.$header-density-config, $density-scale, expanded-height);\n $collapsed-height: compatibility.private-density-prop-value(\n expansion-variables.$header-density-config, $density-scale, collapsed-height);\n\n @include compatibility.private-density-legacy-compatibility() {\n .mat-expansion-panel-header {\n height: $collapsed-height;\n\n &.mat-expanded {\n height: $expanded-height;\n }\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-expansion') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n@use './form-field-fill-theme.scss';\n@use './form-field-legacy-theme.scss';\n@use './form-field-outline-theme.scss';\n@use './form-field-standard-theme.scss';\n\n// Color styles that apply to all appearances of the form-field.\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n $is-dark-theme: map.get($config, is-dark);\n\n // Label colors. Required is used for the `*` star shown in the label.\n $label-color:\n theming.get-color-from-palette($foreground, secondary-text, if($is-dark-theme, 0.7, 0.6));\n $focused-label-color: theming.get-color-from-palette($primary, text);\n $required-label-color: theming.get-color-from-palette($accent, text);\n\n // Underline colors.\n $underline-color-base:\n theming.get-color-from-palette($foreground, divider, if($is-dark-theme, 1, 0.87));\n $underline-color-accent: theming.get-color-from-palette($accent, text);\n $underline-color-warn: theming.get-color-from-palette($warn, text);\n $underline-focused-color: theming.get-color-from-palette($primary, text);\n\n .mat-form-field-label {\n color: $label-color;\n }\n\n .mat-hint {\n color: $label-color;\n }\n\n .mat-form-field.mat-focused .mat-form-field-label {\n color: $focused-label-color;\n\n &.mat-accent {\n color: $underline-color-accent;\n }\n\n &.mat-warn {\n color: $underline-color-warn;\n }\n }\n\n .mat-focused .mat-form-field-required-marker {\n color: $required-label-color;\n }\n\n .mat-form-field-ripple {\n background-color: $underline-color-base;\n }\n\n .mat-form-field.mat-focused {\n .mat-form-field-ripple {\n background-color: $underline-focused-color;\n\n &.mat-accent {\n background-color: $underline-color-accent;\n }\n\n &.mat-warn {\n background-color: $underline-color-warn;\n }\n }\n }\n\n .mat-form-field-type-mat-native-select.mat-focused:not(.mat-form-field-invalid) {\n .mat-form-field-infix::after {\n color: $underline-focused-color;\n }\n\n &.mat-accent .mat-form-field-infix::after {\n color: $underline-color-accent;\n }\n\n &.mat-warn .mat-form-field-infix::after {\n color: $underline-color-warn;\n }\n }\n\n // Styling for the error state of the form field. Note that while the same can be\n // achieved with the ng-* classes, we use this approach in order to ensure that the same\n // logic is used to style the error state and to show the error messages.\n .mat-form-field.mat-form-field-invalid {\n .mat-form-field-label {\n color: $underline-color-warn;\n\n &.mat-accent,\n .mat-form-field-required-marker {\n color: $underline-color-warn;\n }\n }\n\n .mat-form-field-ripple,\n .mat-form-field-ripple.mat-accent {\n background-color: $underline-color-warn;\n }\n }\n\n .mat-error {\n color: $underline-color-warn;\n }\n\n @include form-field-legacy-theme.legacy-color($config);\n @include form-field-standard-theme.standard-color($config);\n @include form-field-fill-theme.fill-color($config);\n @include form-field-outline-theme.outline-color($config);\n}\n\n// Used to make instances of the _mat-form-field-label-floating mixin negligibly different,\n// and prevent Google's CSS Optimizer from collapsing the declarations. This is needed because some\n// of the selectors contain pseudo-classes not recognized in all browsers. If a browser encounters\n// an unknown pseudo-class it will discard the entire rule set.\n$dedupe: 0;\n\n// Applies a floating label above the form field control itself.\n@mixin _label-floating($font-scale, $infix-padding, $infix-margin-top) {\n transform: translateY(-$infix-margin-top - $infix-padding + $dedupe)\n scale($font-scale);\n width: math.div(100%, $font-scale) + $dedupe;\n\n $dedupe: $dedupe + 0.00001 !global;\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n // The unit-less line-height from the font config.\n $line-height: typography-utils.line-height($config, input);\n\n // The amount to scale the font for the floating label and subscript.\n $subscript-font-scale: 0.75;\n // The amount to scale the font for the prefix and suffix icons.\n $prefix-suffix-icon-font-scale: 1.5;\n\n // The padding on the infix. Mocks show half of the text size.\n $infix-padding: 0.5em;\n // The margin applied to the form-field-infix to reserve space for the floating label.\n // If the line-height is given as a unitless number, coerce it to `em`.\n $infix-margin-top: $subscript-font-scale *\n typography-utils.private-coerce-unitless-to-em($line-height);\n // Font size to use for the label and subscript text.\n $subscript-font-size: $subscript-font-scale * 100%;\n // Font size to use for the for the prefix and suffix icons.\n $prefix-suffix-icon-font-size: $prefix-suffix-icon-font-scale * 100%;\n // The space between the bottom of the .mat-form-field-flex area and the subscript wrapper.\n // Mocks show half of the text size, but this margin is applied to an element with the subscript\n // text font size, so we need to divide by the scale factor to make it half of the original text\n // size.\n $subscript-margin-top: math.div(0.5em, $subscript-font-scale);\n // The padding applied to the form-field-wrapper to reserve space for the subscript, since it's\n // absolutely positioned. This is a combination of the subscript's margin and line-height, but we\n // need to multiply by the subscript font scale factor since the wrapper has a larger font size.\n $wrapper-padding-bottom: ($subscript-margin-top + $line-height) * $subscript-font-scale;\n\n .mat-form-field {\n @include typography-utils.typography-level($config, input);\n }\n\n .mat-form-field-wrapper {\n padding-bottom: $wrapper-padding-bottom;\n }\n\n .mat-form-field-prefix,\n .mat-form-field-suffix {\n // Allow icons in a prefix or suffix to adapt to the correct size.\n .mat-icon {\n font-size: $prefix-suffix-icon-font-size;\n line-height: $line-height;\n }\n\n // Allow icon buttons in a prefix or suffix to adapt to the correct size.\n .mat-icon-button {\n height: $prefix-suffix-icon-font-scale * 1em;\n width: $prefix-suffix-icon-font-scale * 1em;\n\n .mat-icon {\n height: typography-utils.private-coerce-unitless-to-em($line-height);\n line-height: $line-height;\n }\n }\n }\n\n .mat-form-field-infix {\n padding: $infix-padding 0;\n // Throws off the baseline if we do it as a real margin, so we do it as a border instead.\n border-top: $infix-margin-top solid transparent;\n }\n\n .mat-form-field-can-float {\n &.mat-form-field-should-float .mat-form-field-label,\n .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n\n // Server-side rendered matInput with a label attribute but label not shown\n // (used as a pure CSS stand-in for mat-form-field-should-float).\n .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper\n .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n }\n\n .mat-form-field-label-wrapper {\n top: -$infix-margin-top;\n padding-top: $infix-margin-top;\n }\n\n .mat-form-field-label {\n top: $infix-margin-top + $infix-padding;\n }\n\n .mat-form-field-underline {\n // We want the underline to start at the end of the content box, not the padding box,\n // so we move it up by the padding amount.\n bottom: $wrapper-padding-bottom;\n }\n\n .mat-form-field-subscript-wrapper {\n font-size: $subscript-font-size;\n margin-top: $subscript-margin-top;\n\n // We want the subscript to start at the end of the content box, not the padding box,\n // so we move it up by the padding amount (adjusted for the smaller font size);\n top: calc(100% - #{math.div($wrapper-padding-bottom, $subscript-font-scale)});\n }\n\n @include form-field-legacy-theme.legacy-typography($config);\n @include form-field-standard-theme.standard-typography($config);\n @include form-field-fill-theme.fill-typography($config);\n @include form-field-outline-theme.outline-typography($config);\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n @include form-field-legacy-theme.private-form-field-legacy-density($density-scale);\n @include form-field-standard-theme.private-form-field-standard-density($density-scale);\n @include form-field-fill-theme.private-form-field-fill-density($density-scale);\n @include form-field-outline-theme.private-form-field-outline-density($density-scale);\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-form-field') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use '../core/theming/theming';\n@use '../core/style/form-common';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n// Theme styles that only apply to the legacy appearance of the form-field.\n\n@mixin legacy-color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $is-dark-theme: map.get($config, is-dark);\n\n $label-color: theming.get-color-from-palette($foreground, secondary-text);\n $underline-color:\n theming.get-color-from-palette($foreground, divider, if($is-dark-theme, 0.7, 0.42));\n\n .mat-form-field-appearance-legacy {\n .mat-form-field-label {\n color: $label-color;\n }\n\n .mat-hint {\n color: $label-color;\n }\n\n .mat-form-field-underline {\n background-color: $underline-color;\n }\n\n &.mat-form-field-disabled .mat-form-field-underline {\n @include form-common.private-control-disabled-underline($underline-color);\n }\n }\n}\n\n// Used to make instances of the _mat-form-field-label-floating mixin negligibly different,\n// and prevent Google's CSS Optimizer from collapsing the declarations. This is needed because some\n// of the selectors contain pseudo-classes not recognized in all browsers. If a browser encounters\n// an unknown pseudo-class it will discard the entire rule set.\n$legacy-dedupe: 0;\n\n// Applies a floating label above the form field control itself.\n@mixin _label-floating($font-scale, $infix-padding, $infix-margin-top) {\n // We use perspective to fix the text blurriness as described here:\n // http://www.useragentman.com/blog/2014/05/04/fixing-typography-inside-of-2-d-css-transforms/\n // This results in a small jitter after the label floats on Firefox, which the\n // translateZ fixes.\n transform: translateY(-$infix-margin-top - $infix-padding) scale($font-scale) perspective(100px)\n translateZ(0.001px + $legacy-dedupe);\n width: math.div(100%, $font-scale) + $legacy-dedupe;\n\n $legacy-dedupe: $legacy-dedupe + 0.00001 !global;\n}\n\n// Same as mixin above, but omits the translateZ for printing purposes.\n@mixin _label-floating-print($font-scale, $infix-padding, $infix-margin-top) {\n // This results in a small jitter after the label floats on Firefox, which the\n // translateZ fixes.\n transform: translateY(-$infix-margin-top - $infix-padding + $legacy-dedupe)\n scale($font-scale);\n // The tricks above used to smooth out the animation on chrome and firefox actually make things\n // worse on IE, so we don't include them in the IE version.\n $legacy-dedupe: $legacy-dedupe + 0.00001 !global;\n}\n\n@mixin legacy-typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n // The unit-less line-height from the font config.\n $line-height: typography-utils.line-height($config, input);\n // The amount to scale the font for the floating label and subscript.\n $subscript-font-scale: 0.75;\n // The amount of space between the top of the line and the top of the actual text\n // (as a fraction of the font-size).\n $line-spacing: math.div($line-height - 1, 2);\n // The padding on the infix. Mocks show half of the text size, but seem to measure from the edge\n // of the text itself, not the edge of the line; therefore we subtract off the line spacing.\n $infix-padding: 0.5em - $line-spacing;\n // The margin applied to the form-field-infix to reserve space for the floating label.\n // If the line-height is given as a unitless number, coerce it to `em`.\n $infix-margin-top:\n $subscript-font-scale * typography-utils.private-coerce-unitless-to-em($line-height);\n // The space between the bottom of the .mat-form-field-flex area and the subscript wrapper.\n // Mocks show half of the text size, but this margin is applied to an element with the subscript\n // text font size, so we need to divide by the scale factor to make it half of the original text\n // size. We again need to subtract off the line spacing since the mocks measure to the edge of the\n // text, not the edge of the line.\n $subscript-margin-top: math.div(0.5em, $subscript-font-scale) - ($line-spacing * 2);\n // The padding applied to the form-field-wrapper to reserve space for the subscript, since it's\n // absolutely positioned. This is a combination of the subscript's margin and line-height, but we\n // need to multiply by the subscript font scale factor since the wrapper has a larger font size.\n $wrapper-padding-bottom: ($subscript-margin-top + $line-height) * $subscript-font-scale;\n\n .mat-form-field-appearance-legacy {\n .mat-form-field-wrapper {\n padding-bottom: $wrapper-padding-bottom;\n }\n\n .mat-form-field-infix {\n padding: $infix-padding 0;\n }\n\n &.mat-form-field-can-float {\n &.mat-form-field-should-float .mat-form-field-label,\n .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n\n // @breaking-change 8.0.0 will rely on AutofillMonitor instead.\n .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper\n .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n\n // Server-side rendered matInput with a label attribute but label not shown\n // (used as a pure CSS stand-in for mat-form-field-should-float).\n .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper\n .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n }\n\n .mat-form-field-label {\n top: $infix-margin-top + $infix-padding;\n }\n\n .mat-form-field-underline {\n // We want the underline to start at the end of the content box, not the padding box,\n // so we move it up by the padding amount.\n bottom: $wrapper-padding-bottom;\n }\n\n .mat-form-field-subscript-wrapper {\n margin-top: $subscript-margin-top;\n\n // We want the subscript to start at the end of the content box, not the padding box,\n // so we move it up by the padding amount (adjusted for the smaller font size);\n top: calc(100% - #{math.div($wrapper-padding-bottom, $subscript-font-scale)});\n }\n }\n\n // translateZ causes the label to not appear while printing, so we override it to not\n // apply translateZ while printing\n @media print {\n .mat-form-field-appearance-legacy {\n &.mat-form-field-can-float {\n &.mat-form-field-should-float .mat-form-field-label,\n .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n @include _label-floating-print(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n\n // @breaking-change 8.0.0 will rely on AutofillMonitor instead.\n .mat-form-field-autofill-control:-webkit-autofill + .mat-form-field-label-wrapper\n .mat-form-field-label {\n @include _label-floating-print(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n\n // Server-side rendered matInput with a label attribute but label not shown\n // (used as a pure CSS stand-in for mat-form-field-should-float).\n .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper\n .mat-form-field-label {\n @include _label-floating-print(\n $subscript-font-scale, $infix-padding, $infix-margin-top);\n }\n }\n }\n }\n}\n\n@mixin private-form-field-legacy-density($config-or-theme) {}\n\n@mixin legacy-theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-form-field-legacy') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include legacy-color($color);\n }\n @if $density != null {\n @include private-form-field-legacy-density($density);\n }\n @if $typography != null {\n @include legacy-typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n// Theme styles that only apply to the fill appearance of the form-field.\n\n@mixin fill-color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $is-dark-theme: map.get($config, is-dark);\n\n $fill-background:\n theming.get-color-from-palette($foreground, base, if($is-dark-theme, 0.1, 0.04));\n $fill-disabled-background:\n theming.get-color-from-palette($foreground, base, if($is-dark-theme, 0.05, 0.02));\n $underline-color:\n theming.get-color-from-palette($foreground, divider, if($is-dark-theme, 0.5, 0.42));\n $label-disabled-color: theming.get-color-from-palette($foreground, disabled-text);\n\n .mat-form-field-appearance-fill {\n .mat-form-field-flex {\n background-color: $fill-background;\n }\n\n &.mat-form-field-disabled .mat-form-field-flex {\n background-color: $fill-disabled-background;\n }\n\n .mat-form-field-underline::before {\n background-color: $underline-color;\n }\n\n &.mat-form-field-disabled {\n .mat-form-field-label {\n color: $label-disabled-color;\n }\n\n .mat-form-field-underline::before {\n background-color: transparent;\n }\n }\n }\n}\n\n// Used to make instances of the _mat-form-field-label-floating mixin negligibly different,\n// and prevent Google's CSS Optimizer from collapsing the declarations. This is needed because some\n// of the selectors contain pseudo-classes not recognized in all browsers. If a browser encounters\n// an unknown pseudo-class it will discard the entire rule set.\n$fill-dedupe: 0;\n\n// Applies a floating label above the form field control itself.\n@mixin _label-floating($font-scale, $infix-padding, $infix-margin-top) {\n transform: translateY(-$infix-margin-top - $infix-padding + $fill-dedupe)\n scale($font-scale);\n width: math.div(100%, $font-scale) + $fill-dedupe;\n\n $fill-dedupe: $fill-dedupe + 0.00001 !global;\n}\n\n@mixin fill-typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n // The unit-less line-height from the font config.\n $line-height: typography-utils.line-height($config, input);\n // The amount to scale the font for the floating label and subscript.\n $subscript-font-scale: 0.75;\n // The padding on top of the infix.\n $infix-padding-top: 0.25em;\n // The padding below the infix.\n $infix-padding-bottom: 0.75em;\n // The margin applied to the form-field-infix to reserve space for the floating label.\n $infix-margin-top:\n $subscript-font-scale * typography-utils.private-coerce-unitless-to-em($line-height);\n // The amount we offset the label from the input text in the fill appearance.\n $fill-appearance-label-offset: -0.5em;\n\n .mat-form-field-appearance-fill {\n .mat-form-field-infix {\n padding: $infix-padding-top 0 $infix-padding-bottom 0;\n }\n\n .mat-form-field-label {\n top: $infix-margin-top + $infix-padding-top;\n margin-top: $fill-appearance-label-offset;\n }\n\n &.mat-form-field-can-float {\n &.mat-form-field-should-float .mat-form-field-label,\n .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding-top + $fill-appearance-label-offset,\n $infix-margin-top);\n }\n\n // Server-side rendered matInput with a label attribute but label not shown\n // (used as a pure CSS stand-in for mat-form-field-should-float).\n .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper\n .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding-top + $fill-appearance-label-offset,\n $infix-margin-top);\n }\n }\n }\n}\n\n@mixin private-form-field-fill-density($config-or-theme) {}\n\n@mixin fill-theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-form-field-fill') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include fill-color($color);\n }\n @if $density != null {\n @include private-form-field-fill-density($density);\n }\n @if $typography != null {\n @include fill-typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n// Theme styles that only apply to the outline appearance of the form-field.\n\n@mixin outline-color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $foreground: map.get($config, foreground);\n $is-dark-theme: map.get($config, is-dark);\n\n $label-disabled-color: theming.get-color-from-palette($foreground, disabled-text);\n $outline-color:\n theming.get-color-from-palette($foreground, divider, if($is-dark-theme, 0.3, 0.12));\n $outline-color-hover:\n theming.get-color-from-palette($foreground, divider, if($is-dark-theme, 1, 0.87));\n $outline-color-primary: theming.get-color-from-palette($primary);\n $outline-color-accent: theming.get-color-from-palette($accent);\n $outline-color-warn: theming.get-color-from-palette($warn);\n $outline-color-disabled:\n theming.get-color-from-palette($foreground, divider, if($is-dark-theme, 0.15, 0.06));\n\n .mat-form-field-appearance-outline {\n .mat-form-field-outline {\n color: $outline-color;\n }\n\n .mat-form-field-outline-thick {\n color: $outline-color-hover;\n }\n\n &.mat-focused {\n .mat-form-field-outline-thick {\n color: $outline-color-primary;\n }\n\n &.mat-accent .mat-form-field-outline-thick {\n color: $outline-color-accent;\n }\n\n &.mat-warn .mat-form-field-outline-thick {\n color: $outline-color-warn;\n }\n }\n\n // Class repeated so that rule is specific enough to override focused accent color case.\n &.mat-form-field-invalid.mat-form-field-invalid {\n .mat-form-field-outline-thick {\n color: $outline-color-warn;\n }\n }\n\n &.mat-form-field-disabled {\n .mat-form-field-label {\n color: $label-disabled-color;\n }\n\n .mat-form-field-outline {\n color: $outline-color-disabled;\n }\n }\n }\n}\n\n// Used to make instances of the _mat-form-field-label-floating mixin negligibly different,\n// and prevent Google's CSS Optimizer from collapsing the declarations. This is needed because some\n// of the selectors contain pseudo-classes not recognized in all browsers. If a browser encounters\n// an unknown pseudo-class it will discard the entire rule set.\n$outline-dedupe: 0;\n\n// Applies a floating label above the form field control itself.\n@mixin _label-floating($font-scale, $infix-padding, $infix-margin-top) {\n transform: translateY(-$infix-margin-top - $infix-padding + $outline-dedupe)\n scale($font-scale);\n width: math.div(100%, $font-scale) + $outline-dedupe;\n\n $outline-dedupe: $outline-dedupe + 0.00001 !global;\n}\n\n@mixin outline-typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n // The unit-less line-height from the font config.\n $line-height: typography-utils.line-height($config, input);\n // The amount to scale the font for the floating label and subscript.\n $subscript-font-scale: 0.75;\n // The padding above and below the infix.\n $infix-padding: 1em;\n // The margin applied to the form-field-infix to reserve space for the floating label.\n $infix-margin-top:\n $subscript-font-scale * typography-utils.private-coerce-unitless-to-em($line-height);\n // The space between the bottom of the .mat-form-field-flex area and the subscript wrapper.\n // Mocks show half of the text size, but this margin is applied to an element with the subscript\n // text font size, so we need to divide by the scale factor to make it half of the original text\n // size.\n $subscript-margin-top: math.div(0.5em, $subscript-font-scale);\n // The padding applied to the form-field-wrapper to reserve space for the subscript, since it's\n // absolutely positioned. This is a combination of the subscript's margin and line-height, but we\n // need to multiply by the subscript font scale factor since the wrapper has a larger font size.\n $wrapper-padding-bottom: ($subscript-margin-top + $line-height) * $subscript-font-scale;\n // The amount we offset the label from the input text in the outline appearance.\n $outline-appearance-label-offset: -0.25em;\n\n .mat-form-field-appearance-outline {\n .mat-form-field-infix {\n padding: $infix-padding 0 $infix-padding 0;\n }\n\n .mat-form-field-label {\n top: $infix-margin-top + $infix-padding;\n margin-top: $outline-appearance-label-offset;\n }\n\n &.mat-form-field-can-float {\n &.mat-form-field-should-float .mat-form-field-label,\n .mat-input-server:focus + .mat-form-field-label-wrapper .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding + $outline-appearance-label-offset,\n $infix-margin-top);\n }\n\n // Server-side rendered matInput with a label attribute but label not shown\n // (used as a pure CSS stand-in for mat-form-field-should-float).\n .mat-input-server[label]:not(:label-shown) + .mat-form-field-label-wrapper\n .mat-form-field-label {\n @include _label-floating(\n $subscript-font-scale, $infix-padding + $outline-appearance-label-offset,\n $infix-margin-top);\n }\n }\n }\n}\n\n@mixin private-form-field-outline-density($config-or-theme) {}\n\n@mixin outline-theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-form-field-outline') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include outline-color($color);\n }\n @if $density != null {\n @include private-form-field-outline-density($density);\n }\n @if $typography != null {\n @include outline-typography($typography);\n }\n }\n}\n\n","@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/style/list-common';\n\n\n// Include this empty mixin for consistency with the other components.\n@mixin color($config-or-theme) {}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-grid-tile-header,\n .mat-grid-tile-footer {\n @include list-common.base(typography-utils.font-size($config, caption));\n font-size: typography-utils.font-size($config, body-1);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-grid-list') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","// This mixin will ensure that lines that overflow the container will hide the overflow and\n// truncate neatly with an ellipsis.\n@mixin truncate-line() {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n// Mixin to provide all mat-line styles, changing secondary font size based on whether the list\n// is in dense mode.\n@mixin base($secondary-font-size) {\n .mat-line {\n @include truncate-line();\n display: block;\n box-sizing: border-box;\n\n // all lines but the top line should have smaller text\n &:nth-child(n+2) {\n font-size: $secondary-font-size;\n }\n }\n}\n\n// This mixin normalizes default element styles, e.g. font weight for heading text.\n@mixin normalize-text() {\n & > * {\n margin: 0;\n padding: 0;\n font-weight: normal;\n font-size: inherit;\n }\n}\n\n// This mixin provides base styles for the wrapper around mat-line elements in a list.\n@mixin wrapper-base() {\n @include normalize-text();\n\n display: flex;\n flex-direction: column;\n flex: auto;\n box-sizing: border-box;\n overflow: hidden;\n\n // Must remove wrapper when lines are empty or it takes up horizontal\n // space and pushes other elements to the right.\n &:empty {\n display: none;\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use '../core/theming/palette';\n@use '../core/theming/theming';\n@use '../core/style/form-common';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/style/vendor-prefixes';\n\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $foreground: map.get($config, foreground);\n\n .mat-form-field-type-mat-native-select .mat-form-field-infix::after {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-input-element:disabled,\n .mat-form-field-type-mat-native-select.mat-form-field-disabled .mat-form-field-infix::after {\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n\n .mat-input-element {\n caret-color: theming.get-color-from-palette($primary, text);\n\n @include vendor-prefixes.input-placeholder {\n color: form-common.private-control-placeholder-color($config);\n }\n\n // On dark themes we set the native `select` color to some shade of white,\n // however the color propagates to all of the `option` elements, which are\n // always on a white background inside the dropdown, causing them to blend in.\n // Since we can't change background of the dropdown, we need to explicitly\n // reset the color of the options to something dark.\n @if (map.get($config, is-dark)) {\n &:not(.mat-native-select-inline) {\n option {\n color: palette.$dark-primary-text;\n }\n\n option:disabled {\n color: palette.$dark-disabled-text;\n }\n }\n }\n }\n\n .mat-form-field.mat-accent .mat-input-element {\n caret-color: theming.get-color-from-palette($accent, text);\n }\n\n .mat-form-field.mat-warn .mat-input-element,\n .mat-form-field-invalid .mat-input-element {\n caret-color: theming.get-color-from-palette($warn, text);\n }\n\n .mat-form-field-type-mat-native-select.mat-form-field-invalid .mat-form-field-infix::after {\n color: theming.get-color-from-palette($warn, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n // The unit-less line-height from the font config.\n $line-height: typography-utils.line-height($config, input);\n\n // The amount of space between the top of the line and the top of the actual text\n // (as a fraction of the font-size).\n $line-spacing: math.div($line-height - 1, 2);\n\n // <input> elements seem to have their height set slightly too large on Safari causing the text to\n // be misaligned w.r.t. the placeholder. Adding this margin corrects it.\n input.mat-input-element {\n margin-top: typography-utils.private-coerce-unitless-to-em(-$line-spacing);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-input') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/style/private';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-menu-panel {\n @include private.private-theme-overridable-elevation(4, $config);\n background: theming.get-color-from-palette($background, 'card');\n }\n\n .mat-menu-item {\n background: transparent;\n color: theming.get-color-from-palette($foreground, 'text');\n\n &[disabled] {\n &,\n .mat-menu-submenu-icon,\n .mat-icon-no-color {\n color: theming.get-color-from-palette($foreground, 'disabled');\n }\n }\n }\n\n .mat-menu-item .mat-icon-no-color,\n .mat-menu-submenu-icon {\n color: theming.get-color-from-palette($foreground, 'icon');\n }\n\n .mat-menu-item:hover,\n .mat-menu-item.cdk-program-focused,\n .mat-menu-item.cdk-keyboard-focused,\n .mat-menu-item-highlighted {\n &:not([disabled]) {\n background: theming.get-color-from-palette($background, 'hover');\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-menu-item {\n font: {\n family: typography-utils.font-family($config, body-1);\n size: typography-utils.font-size($config, body-1);\n weight: typography-utils.font-weight($config, body-1);\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-menu') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/density/private/compatibility';\n@use './paginator-variables';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n\n .mat-paginator {\n background: theming.get-color-from-palette($background, 'card');\n }\n\n .mat-paginator,\n .mat-paginator-page-size .mat-select-trigger {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-paginator-decrement,\n .mat-paginator-increment {\n border-top: 2px solid theming.get-color-from-palette($foreground, 'icon');\n border-right: 2px solid theming.get-color-from-palette($foreground, 'icon');\n }\n\n .mat-paginator-first,\n .mat-paginator-last {\n border-top: 2px solid theming.get-color-from-palette($foreground, 'icon');\n }\n\n .mat-icon-button[disabled] {\n .mat-paginator-decrement,\n .mat-paginator-increment,\n .mat-paginator-first,\n .mat-paginator-last {\n border-color: theming.get-color-from-palette($foreground, 'disabled');\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-paginator,\n .mat-paginator-page-size .mat-select-trigger {\n font: {\n family: typography-utils.font-family($config, caption);\n size: typography-utils.font-size($config, caption);\n }\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $height: compatibility.private-density-prop-value(paginator-variables.$density-config,\n $density-scale, height);\n\n @include compatibility.private-density-legacy-compatibility() {\n .mat-paginator-container {\n min-height: $height;\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-paginator') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n@mixin _color($palette) {\n &.mat-radio-checked .mat-radio-outer-circle {\n border-color: theming.get-color-from-palette($palette);\n }\n\n .mat-radio-inner-circle,\n .mat-radio-ripple .mat-ripple-element:not(.mat-radio-persistent-ripple),\n &.mat-radio-checked .mat-radio-persistent-ripple,\n &:active .mat-radio-persistent-ripple {\n background-color: theming.get-color-from-palette($palette);\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-radio-outer-circle {\n border-color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-radio-button {\n &.mat-primary {\n @include _color($primary);\n }\n\n &.mat-accent {\n @include _color($accent);\n }\n\n &.mat-warn {\n @include _color($warn);\n }\n\n // This needs extra specificity, because the classes above are combined\n // (e.g. `.mat-radio-button.mat-accent`) which increases their specificity a lot.\n // TODO: consider making the selectors into descendants (`.mat-primary .mat-radio-button`).\n &.mat-radio-disabled {\n &.mat-radio-checked .mat-radio-outer-circle,\n .mat-radio-outer-circle {\n border-color: theming.get-color-from-palette($foreground, disabled);\n }\n\n .mat-radio-ripple .mat-ripple-element,\n .mat-radio-inner-circle {\n background-color: theming.get-color-from-palette($foreground, disabled);\n }\n\n .mat-radio-label-content {\n color: theming.get-color-from-palette($foreground, disabled);\n }\n }\n\n // Switch this to a solid color since we're using `opacity`\n // to control how opaque the ripple should be.\n .mat-ripple-element {\n background-color: map.get($foreground, base);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-radio-button {\n font-family: typography-utils.font-family($config);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-radio') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/style/private';\n@use '../core/style/form-common';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n\n .mat-select-value {\n color: theming.get-color-from-palette($foreground, text);\n }\n\n .mat-select-placeholder {\n color: form-common.private-control-placeholder-color($config);\n }\n\n .mat-select-disabled .mat-select-value {\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n\n .mat-select-arrow {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-select-panel {\n background: theming.get-color-from-palette($background, card);\n @include private.private-theme-overridable-elevation(4, $config);\n\n .mat-option.mat-selected:not(.mat-option-multiple) {\n background: theming.get-color-from-palette($background, hover, 0.12);\n }\n }\n\n .mat-form-field {\n &.mat-focused {\n &.mat-primary .mat-select-arrow {\n color: theming.get-color-from-palette($primary, text);\n }\n\n &.mat-accent .mat-select-arrow {\n color: theming.get-color-from-palette($accent, text);\n }\n\n &.mat-warn .mat-select-arrow {\n color: theming.get-color-from-palette($warn, text);\n }\n }\n\n .mat-select.mat-select-invalid .mat-select-arrow {\n color: theming.get-color-from-palette($warn, text);\n }\n\n .mat-select.mat-select-disabled .mat-select-arrow {\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n // The unit-less line-height from the font config.\n $line-height: typography-utils.line-height($config, input);\n\n .mat-select {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-select-trigger {\n height: typography-utils.private-coerce-unitless-to-em($line-height);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-select') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/style/private';\n@use '../core/theming/palette';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n@mixin _checked-color($palette, $thumb-checked-hue) {\n &.mat-checked {\n .mat-slide-toggle-thumb {\n background-color: theming.get-color-from-palette($palette, $thumb-checked-hue);\n }\n\n .mat-slide-toggle-bar {\n // Opacity is determined from the specs for the selection controls.\n // See: https://material.io/design/components/selection-controls.html#specs\n background-color: theming.get-color-from-palette($palette, $thumb-checked-hue, 0.54);\n }\n\n .mat-ripple-element {\n // Set no opacity for the ripples because the ripple opacity will be adjusted dynamically\n // based on the type of interaction with the slide-toggle (e.g. for hover, focus)\n background-color: theming.get-color-from-palette($palette, $thumb-checked-hue);\n }\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $is-dark: map.get($config, is-dark);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n // Color hues are based on the specs which briefly show the hues that are applied to a switch.\n // The 2018 specs no longer describe how dark switches should look like. Due to the lack of\n // information for dark themed switches, we partially keep the old behavior that is based on\n // the previous specifications. For the checked color we always use the `default` hue because\n // that follows MDC and also makes it easier for people to create a custom theme without needing\n // to specify each hue individually.\n $thumb-unchecked-hue: if($is-dark, 400, 50);\n $thumb-checked-hue: default;\n\n $bar-unchecked-color: theming.get-color-from-palette($foreground, disabled);\n $ripple-unchecked-color: theming.get-color-from-palette($foreground, base);\n\n .mat-slide-toggle {\n @include _checked-color($accent, $thumb-checked-hue);\n\n &.mat-primary {\n @include _checked-color($primary, $thumb-checked-hue);\n }\n\n &.mat-warn {\n @include _checked-color($warn, $thumb-checked-hue);\n }\n\n &:not(.mat-checked) .mat-ripple-element {\n // Set no opacity for the ripples because the ripple opacity will be adjusted dynamically\n // based on the type of interaction with the slide-toggle (e.g. for hover, focus)\n background-color: $ripple-unchecked-color;\n }\n }\n\n .mat-slide-toggle-thumb {\n @include private.private-theme-elevation(1, $config);\n background-color: theming.get-color-from-palette(palette.$grey-palette, $thumb-unchecked-hue);\n }\n\n .mat-slide-toggle-bar {\n background-color: $bar-unchecked-color;\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-slide-toggle-content {\n font-family: typography-utils.font-family($config);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-slide-toggle') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n\n","@use 'sass:map';\n@use 'sass:meta';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n@mixin _inner-content-theme($palette) {\n .mat-slider-track-fill,\n .mat-slider-thumb,\n .mat-slider-thumb-label {\n background-color: theming.get-color-from-palette($palette);\n }\n\n .mat-slider-thumb-label-text {\n color: theming.get-color-from-palette($palette, default-contrast);\n }\n\n .mat-slider-focus-ring {\n $opacity: 0.2;\n $color: theming.get-color-from-palette($palette, default, $opacity);\n background-color: $color;\n\n // `mat-color` uses `rgba` for the opacity which won't work with\n // CSS variables so we need to use `opacity` as a fallback.\n @if (meta.type-of($color) != color) {\n opacity: $opacity;\n }\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n $mat-slider-off-color: theming.get-color-from-palette($foreground, slider-off);\n $mat-slider-off-focused-color: theming.get-color-from-palette($foreground, slider-off-active);\n $mat-slider-disabled-color: theming.get-color-from-palette($foreground, slider-off);\n $mat-slider-labeled-min-value-thumb-color:\n theming.get-color-from-palette($foreground, slider-min);\n $mat-slider-labeled-min-value-thumb-label-color:\n theming.get-color-from-palette($foreground, slider-off);\n $mat-slider-tick-opacity: 0.7;\n $mat-slider-tick-color:\n theming.get-color-from-palette($foreground, base, $mat-slider-tick-opacity);\n $mat-slider-tick-size: 2px;\n\n .mat-slider-track-background {\n background-color: $mat-slider-off-color;\n }\n\n .mat-slider {\n &.mat-primary {\n @include _inner-content-theme($primary);\n }\n\n &.mat-accent {\n @include _inner-content-theme($accent);\n }\n\n &.mat-warn {\n @include _inner-content-theme($warn);\n }\n }\n\n .mat-slider:hover,\n .mat-slider.cdk-focused {\n .mat-slider-track-background {\n background-color: $mat-slider-off-focused-color;\n }\n }\n\n .mat-slider.mat-slider-disabled {\n .mat-slider-track-background,\n .mat-slider-track-fill,\n .mat-slider-thumb {\n background-color: $mat-slider-disabled-color;\n }\n\n &:hover {\n .mat-slider-track-background {\n background-color: $mat-slider-disabled-color;\n }\n }\n }\n\n .mat-slider.mat-slider-min-value {\n .mat-slider-focus-ring {\n $opacity: 0.12;\n $color: theming.get-color-from-palette($foreground, base, $opacity);\n background-color: $color;\n\n // `mat-color` uses `rgba` for the opacity which won't work with\n // CSS variables so we need to use `opacity` as a fallback.\n @if (meta.type-of($color) != color) {\n opacity: $opacity;\n }\n }\n\n &.mat-slider-thumb-label-showing {\n .mat-slider-thumb,\n .mat-slider-thumb-label {\n background-color: $mat-slider-labeled-min-value-thumb-color;\n }\n\n &.cdk-focused {\n .mat-slider-thumb,\n .mat-slider-thumb-label {\n background-color: $mat-slider-labeled-min-value-thumb-label-color;\n }\n }\n }\n\n &:not(.mat-slider-thumb-label-showing) {\n .mat-slider-thumb {\n border-color: $mat-slider-off-color;\n background-color: transparent;\n }\n\n &:hover,\n &.cdk-focused {\n .mat-slider-thumb {\n border-color: $mat-slider-off-focused-color;\n }\n\n &.mat-slider-disabled .mat-slider-thumb {\n border-color: $mat-slider-disabled-color;\n }\n }\n }\n }\n\n .mat-slider-has-ticks .mat-slider-wrapper::after {\n border-color: $mat-slider-tick-color;\n\n // `mat-color` uses `rgba` for the opacity which won't work with\n // CSS variables so we need to use `opacity` as a fallback.\n @if (meta.type-of($mat-slider-tick-color) != color) {\n opacity: $mat-slider-tick-opacity;\n }\n }\n\n .mat-slider-horizontal .mat-slider-ticks {\n background-image: repeating-linear-gradient(to right, $mat-slider-tick-color,\n $mat-slider-tick-color $mat-slider-tick-size, transparent 0, transparent);\n // Firefox doesn't draw the gradient correctly with 'to right'\n // (see https://bugzilla.mozilla.org/show_bug.cgi?id=1314319).\n background-image: -moz-repeating-linear-gradient(0.0001deg, $mat-slider-tick-color,\n $mat-slider-tick-color $mat-slider-tick-size, transparent 0, transparent);\n\n // `mat-color` uses `rgba` for the opacity which won't work with\n // CSS variables so we need to use `opacity` as a fallback.\n @if (meta.type-of($mat-slider-tick-color) != color) {\n opacity: $mat-slider-tick-opacity;\n }\n }\n\n .mat-slider-vertical .mat-slider-ticks {\n background-image: repeating-linear-gradient(to bottom, $mat-slider-tick-color,\n $mat-slider-tick-color $mat-slider-tick-size, transparent 0, transparent);\n\n // `mat-color` uses `rgba` for the opacity which won't work with\n // CSS variables so we need to use `opacity` as a fallback.\n @if (meta.type-of($mat-slider-tick-color) != color) {\n opacity: $mat-slider-tick-opacity;\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-slider-thumb-label-text {\n font: {\n family: typography-utils.font-family($config);\n size: typography-utils.font-size($config, caption);\n weight: typography-utils.font-weight($config, body-2);\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-slider') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/density/private/compatibility';\n@use './stepper-variables';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n\n .mat-step-header {\n &.cdk-keyboard-focused,\n &.cdk-program-focused,\n &:hover:not([aria-disabled]),\n &:hover[aria-disabled='false'] {\n background-color: theming.get-color-from-palette($background, hover);\n }\n\n &:hover[aria-disabled='true'] {\n cursor: default;\n }\n\n // On touch devices the :hover state will linger on the element after a tap.\n // Reset it via `@media` after the declaration, because the media query isn't\n // supported by all browsers yet.\n @media (hover: none) {\n &:hover {\n background: none;\n }\n }\n\n .mat-step-label,\n .mat-step-optional {\n // TODO(josephperrott): Update to using a corrected disabled-text contrast\n // instead of secondary-text.\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-step-icon {\n // TODO(josephperrott): Update to using a corrected disabled-text contrast\n // instead of secondary-text.\n background-color: theming.get-color-from-palette($foreground, secondary-text);\n color: theming.get-color-from-palette($primary, default-contrast);\n }\n\n .mat-step-icon-selected,\n .mat-step-icon-state-done,\n .mat-step-icon-state-edit {\n background-color: theming.get-color-from-palette($primary);\n color: theming.get-color-from-palette($primary, default-contrast);\n }\n\n &.mat-accent {\n .mat-step-icon {\n color: theming.get-color-from-palette($accent, default-contrast);\n }\n\n .mat-step-icon-selected,\n .mat-step-icon-state-done,\n .mat-step-icon-state-edit {\n background-color: theming.get-color-from-palette($accent);\n color: theming.get-color-from-palette($accent, default-contrast);\n }\n }\n\n &.mat-warn {\n .mat-step-icon {\n color: theming.get-color-from-palette($warn, default-contrast);\n }\n\n .mat-step-icon-selected,\n .mat-step-icon-state-done,\n .mat-step-icon-state-edit {\n background-color: theming.get-color-from-palette($warn);\n color: theming.get-color-from-palette($warn, default-contrast);\n }\n }\n\n .mat-step-icon-state-error {\n background-color: transparent;\n color: theming.get-color-from-palette($warn, text);\n }\n\n .mat-step-label.mat-step-label-active {\n color: theming.get-color-from-palette($foreground, text);\n }\n\n .mat-step-label.mat-step-label-error {\n color: theming.get-color-from-palette($warn, text);\n }\n }\n\n .mat-stepper-horizontal, .mat-stepper-vertical {\n background-color: theming.get-color-from-palette($background, card);\n }\n\n .mat-stepper-vertical-line::before {\n border-left-color: theming.get-color-from-palette($foreground, divider);\n }\n\n .mat-horizontal-stepper-header::before,\n .mat-horizontal-stepper-header::after,\n .mat-stepper-horizontal-line {\n border-top-color: theming.get-color-from-palette($foreground, divider);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-stepper-vertical, .mat-stepper-horizontal {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-step-label {\n font: {\n size: typography-utils.font-size($config, body-1);\n weight: typography-utils.font-weight($config, body-1);\n };\n }\n\n .mat-step-sub-label-error {\n font-weight: normal;\n }\n\n .mat-step-label-error {\n font-size: typography-utils.font-size($config, body-2);\n }\n\n .mat-step-label-selected {\n font: {\n size: typography-utils.font-size($config, body-2);\n weight: typography-utils.font-weight($config, body-2);\n };\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $height: compatibility.private-density-prop-value(stepper-variables.$density-config,\n $density-scale, height);\n $vertical-padding: math.div($height - stepper-variables.$label-header-height, 2);\n\n @include compatibility.private-density-legacy-compatibility() {\n .mat-horizontal-stepper-header {\n height: $height;\n }\n\n .mat-stepper-label-position-bottom .mat-horizontal-stepper-header,\n .mat-vertical-stepper-header {\n padding: $vertical-padding stepper-variables.$side-gap;\n }\n\n // Ensures that the vertical lines for the step content exceed into the step\n // headers with a given distance (`$mat-stepper-line-gap`) to the step icon.\n .mat-stepper-vertical-line::before {\n top: stepper-variables.$line-gap - $vertical-padding;\n bottom: stepper-variables.$line-gap - $vertical-padding;\n }\n\n // Ensures that the horizontal lines for the step header are centered vertically.\n .mat-stepper-label-position-bottom .mat-horizontal-stepper-header {\n &::after, &::before {\n top: $vertical-padding + math.div(stepper-variables.$label-header-height, 2);\n }\n }\n\n // Ensures that the horizontal line for the step content is aligned centered vertically.\n .mat-stepper-label-position-bottom .mat-stepper-horizontal-line {\n top: $vertical-padding + math.div(stepper-variables.$label-header-height, 2);\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-stepper') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n $header-border: 1px solid theming.get-color-from-palette($foreground, divider);\n\n .mat-tab-nav-bar,\n .mat-tab-header {\n border-bottom: $header-border;\n }\n\n .mat-tab-group-inverted-header {\n .mat-tab-nav-bar,\n .mat-tab-header {\n border-top: $header-border;\n border-bottom: none;\n }\n }\n\n .mat-tab-label, .mat-tab-link {\n color: theming.get-color-from-palette($foreground, text);\n\n &.mat-tab-disabled {\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n }\n\n .mat-tab-header-pagination-chevron {\n border-color: theming.get-color-from-palette($foreground, text);\n }\n\n .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n border-color: theming.get-color-from-palette($foreground, disabled-text);\n }\n\n // Remove header border when there is a background color\n .mat-tab-group[class*='mat-background-'] > .mat-tab-header,\n .mat-tab-nav-bar[class*='mat-background-'] {\n border-bottom: none;\n border-top: none;\n }\n\n .mat-tab-group, .mat-tab-nav-bar {\n $theme-colors: (\n primary: $primary,\n accent: $accent,\n warn: $warn\n );\n\n @each $name, $color in $theme-colors {\n // Set the foreground color of the tabs\n &.mat-#{$name} {\n @include _label-focus-color($color);\n @include _ink-bar-color($color);\n\n // Override ink bar when background color is the same\n &.mat-background-#{$name} {\n > .mat-tab-header, > .mat-tab-link-container {\n @include _ink-bar-color($color, default-contrast);\n }\n }\n }\n }\n\n @each $name, $color in $theme-colors {\n // Set background color of the tabs and override focus color\n &.mat-background-#{$name} {\n @include _label-focus-color($color);\n @include _tabs-background($color);\n }\n }\n }\n}\n\n@mixin _ink-bar-color($color, $hue: default) {\n .mat-ink-bar {\n background-color: theming.get-color-from-palette($color, $hue);\n }\n}\n\n@mixin _label-focus-color($tab-focus-color) {\n .mat-tab-label,\n .mat-tab-link {\n &.cdk-keyboard-focused,\n &.cdk-program-focused {\n &:not(.mat-tab-disabled) {\n background-color: theming.get-color-from-palette($tab-focus-color, lighter, 0.3);\n }\n }\n }\n}\n\n@mixin _tabs-background($background-color) {\n // Note that these selectors target direct descendants so\n // that the styles don't apply to any nested tab groups.\n\n // Set background color for the tab group\n > .mat-tab-header, > .mat-tab-link-container, > .mat-tab-header-pagination {\n background-color: theming.get-color-from-palette($background-color);\n }\n\n // Set labels to contrast against background\n > .mat-tab-header .mat-tab-label, > .mat-tab-link-container .mat-tab-link {\n color: theming.get-color-from-palette($background-color, default-contrast);\n\n &.mat-tab-disabled {\n color: theming.get-color-from-palette($background-color, default-contrast, 0.4);\n }\n }\n\n // Set pagination chevrons to contrast background\n > .mat-tab-header .mat-tab-header-pagination-chevron,\n > .mat-tab-header-pagination .mat-tab-header-pagination-chevron,\n > .mat-tab-link-container .mat-focus-indicator::before,\n > .mat-tab-header .mat-focus-indicator::before {\n border-color: theming.get-color-from-palette($background-color, default-contrast);\n }\n\n > .mat-tab-header .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,\n > .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron {\n // Set the color opacity via `opacity`, rather than `rgba`, because it may be a CSS variable.\n border-color: theming.get-color-from-palette($background-color, default-contrast, 1);\n opacity: 0.4;\n }\n\n // Set ripples color to be the contrast color of the new background. Otherwise the ripple\n // color will be based on the app background color.\n > .mat-tab-header .mat-ripple-element,\n > .mat-tab-link-container .mat-ripple-element,\n > .mat-tab-header-pagination .mat-ripple-element {\n // Set the color opacity via `opacity`, rather than `rgba`, because it may be a CSS variable.\n background-color: theming.get-color-from-palette($background-color, default-contrast, 1);\n opacity: 0.12;\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-tab-group {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-tab-label, .mat-tab-link {\n font: {\n family: typography-utils.font-family($config, button);\n size: typography-utils.font-size($config, button);\n weight: typography-utils.font-weight($config, button);\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-tabs') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/density/private/compatibility';\n@use '../core/style/variables';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use './toolbar-variables';\n\n@mixin _height($height) {\n .mat-toolbar-multiple-rows {\n min-height: $height;\n }\n .mat-toolbar-row, .mat-toolbar-single-row {\n height: $height;\n }\n}\n\n@mixin _palette-styles($palette) {\n background: theming.get-color-from-palette($palette);\n color: theming.get-color-from-palette($palette, default-contrast);\n}\n\n@mixin _form-field-overrides {\n .mat-form-field-underline,\n .mat-form-field-ripple,\n .mat-focused .mat-form-field-ripple {\n background-color: currentColor;\n }\n\n .mat-form-field-label,\n .mat-focused .mat-form-field-label,\n .mat-select-value,\n .mat-select-arrow,\n .mat-form-field.mat-focused .mat-select-arrow {\n color: inherit;\n }\n\n .mat-input-element {\n caret-color: currentColor;\n }\n}\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-toolbar {\n background: theming.get-color-from-palette($background, app-bar);\n color: theming.get-color-from-palette($foreground, text);\n\n &.mat-primary {\n @include _palette-styles($primary);\n }\n\n &.mat-accent {\n @include _palette-styles($accent);\n }\n\n &.mat-warn {\n @include _palette-styles($warn);\n }\n\n @include _form-field-overrides;\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-toolbar,\n .mat-toolbar h1,\n .mat-toolbar h2,\n .mat-toolbar h3,\n .mat-toolbar h4,\n .mat-toolbar h5,\n .mat-toolbar h6 {\n @include typography-utils.typography-level($config, title);\n margin: 0;\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $height-desktop: compatibility.private-density-prop-value(\n toolbar-variables.$desktop-density-config, $density-scale, height);\n $height-mobile: compatibility.private-density-prop-value(\n toolbar-variables.$mobile-density-config, $density-scale, height);\n\n @include compatibility.private-density-legacy-compatibility() {\n // Set the default height for the toolbar.\n @include _height($height-desktop);\n\n // As per specs, toolbars should have a different height in mobile devices. This has been\n // specified in the old guidelines and is still observable in the new specifications by\n // looking at the spec images. See: https://material.io/design/components/app-bars-top.html#anatomy\n @media (variables.$xsmall) {\n @include _height($height-mobile);\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-toolbar') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use 'sass:math';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n\n$target-height: 22px;\n$font-size: 10px;\n$vertical-padding: math.div($target-height - $font-size, 2);\n\n$handset-target-height: 30px;\n$handset-font-size: 14px;\n$handset-vertical-padding: math.div($handset-target-height - $handset-font-size, 2);\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n\n .mat-tooltip {\n background: theming.get-color-from-palette($background, tooltip, 0.9);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-tooltip {\n font-family: typography-utils.font-family($config);\n font-size: $font-size;\n padding-top: $vertical-padding;\n padding-bottom: $vertical-padding;\n }\n\n .mat-tooltip-handset {\n font-size: $handset-font-size;\n padding-top: $handset-vertical-padding;\n padding-bottom: $handset-vertical-padding;\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-tooltip') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n\n","@use 'sass:map';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/style/list-common';\n\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-list-base {\n .mat-list-item {\n color: theming.get-color-from-palette($foreground, text);\n }\n\n .mat-list-option {\n color: theming.get-color-from-palette($foreground, text);\n }\n\n .mat-subheader {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-list-item-disabled {\n background-color: theming.get-color-from-palette($background, disabled-list-option);\n color: theming.get-color-from-palette($foreground, disabled-text);\n }\n }\n\n .mat-list-option,\n .mat-nav-list .mat-list-item,\n .mat-action-list .mat-list-item {\n &:hover, &:focus {\n background: theming.get-color-from-palette($background, 'hover');\n }\n }\n\n .mat-list-single-selected-option {\n &, &:hover, &:focus {\n background: theming.get-color-from-palette($background, hover, 0.12);\n }\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n $font-family: typography-utils.font-family($config);\n\n .mat-list-item {\n font-family: $font-family;\n }\n\n .mat-list-option {\n font-family: $font-family;\n }\n\n // Default list\n .mat-list-base {\n .mat-list-item {\n font-size: typography-utils.font-size($config, subheading-2);\n @include list-common.base(typography-utils.font-size($config, body-1));\n }\n\n .mat-list-option {\n font-size: typography-utils.font-size($config, subheading-2);\n @include list-common.base(typography-utils.font-size($config, body-1));\n }\n\n .mat-subheader {\n font-family: typography-utils.font-family($config, body-2);\n font-size: typography-utils.font-size($config, body-2);\n font-weight: typography-utils.font-weight($config, body-2);\n }\n }\n\n // Dense list\n .mat-list-base[dense] {\n .mat-list-item {\n font-size: typography-utils.font-size($config, caption);\n @include list-common.base(typography-utils.font-size($config, caption));\n }\n\n .mat-list-option {\n font-size: typography-utils.font-size($config, caption);\n @include list-common.base(typography-utils.font-size($config, caption));\n }\n\n .mat-subheader {\n font-family: $font-family;\n font-size: typography-utils.font-size($config, caption);\n font-weight: typography-utils.font-weight($config, body-2);\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-list') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../theming/theming';\n@use '../typography/typography';\n@use '../typography/typography-utils';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n $background: map.get($config, background);\n $primary: map.get($config, primary);\n $accent: map.get($config, accent);\n $warn: map.get($config, warn);\n\n .mat-option {\n color: theming.get-color-from-palette($foreground, text);\n\n &:hover:not(.mat-option-disabled),\n &:focus:not(.mat-option-disabled) {\n background: theming.get-color-from-palette($background, hover);\n }\n\n // In multiple mode there is a checkbox to show that the option is selected.\n &.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled) {\n background: theming.get-color-from-palette($background, hover);\n }\n\n &.mat-active {\n background: theming.get-color-from-palette($background, hover);\n color: theming.get-color-from-palette($foreground, text);\n }\n\n &.mat-option-disabled {\n color: theming.get-color-from-palette($foreground, hint-text);\n }\n }\n\n .mat-primary .mat-option.mat-selected:not(.mat-option-disabled) {\n color: theming.get-color-from-palette($primary, text);\n }\n\n .mat-accent .mat-option.mat-selected:not(.mat-option-disabled) {\n color: theming.get-color-from-palette($accent, text);\n }\n\n .mat-warn .mat-option.mat-selected:not(.mat-option-disabled) {\n color: theming.get-color-from-palette($warn, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-option {\n font: {\n family: typography-utils.font-family($config);\n size: typography-utils.font-size($config, subheading-2);\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-option') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../theming/theming';\n@use '../typography/typography';\n@use '../typography/typography-utils';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $foreground: map.get($config, foreground);\n\n .mat-optgroup-label {\n color: theming.get-color-from-palette($foreground, secondary-text);\n }\n\n .mat-optgroup-disabled .mat-optgroup-label {\n color: theming.get-color-from-palette($foreground, hint-text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-optgroup-label {\n @include typography-utils.typography-level($config, body-2);\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-optgroup') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use '../core/theming/theming';\n@use '../core/theming/palette';\n@use '../core/style/private';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $is-dark-theme: map.get($config, is-dark);\n $accent: map.get($config, accent);\n\n .mat-snack-bar-container {\n // Use the primary text on the dark theme, even though the lighter one uses\n // a secondary, because the contrast on the light primary text is poor.\n color: if($is-dark-theme, palette.$dark-primary-text, palette.$light-secondary-text);\n background: if($is-dark-theme, map.get(palette.$grey-palette, 50), #323232);\n\n @include private.private-theme-elevation(6, $config);\n }\n\n .mat-simple-snackbar-action {\n color: if($is-dark-theme, inherit, theming.get-color-from-palette($accent, text));\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-simple-snackbar {\n font: {\n family: typography-utils.font-family($config, body-1);\n size: typography-utils.font-size($config, body-1);\n }\n }\n\n .mat-simple-snackbar-action {\n line-height: 1;\n font: {\n family: inherit;\n size: inherit;\n weight: typography-utils.font-weight($config, button);\n }\n }\n}\n\n@mixin _density($config-or-theme) {}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-snack-bar') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include _density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n","@use 'sass:map';\n@use '../core/density/private/compatibility';\n@use '../core/theming/theming';\n@use '../core/typography/typography';\n@use '../core/typography/typography-utils';\n@use './tree-variables';\n\n@mixin color($config-or-theme) {\n $config: theming.get-color-config($config-or-theme);\n $background: map.get($config, background);\n $foreground: map.get($config, foreground);\n\n .mat-tree {\n background: theming.get-color-from-palette($background, 'card');\n }\n\n .mat-tree-node,\n .mat-nested-tree-node {\n color: theming.get-color-from-palette($foreground, text);\n }\n}\n\n@mixin typography($config-or-theme) {\n $config: typography.private-typography-to-2014-config(\n theming.get-typography-config($config-or-theme));\n .mat-tree {\n font-family: typography-utils.font-family($config);\n }\n\n .mat-tree-node,\n .mat-nested-tree-node {\n font-weight: typography-utils.font-weight($config, body-1);\n font-size: typography-utils.font-size($config, body-1);\n }\n}\n\n@mixin density($config-or-theme) {\n $density-scale: theming.get-density-config($config-or-theme);\n $height: compatibility.private-density-prop-value(tree-variables.$density-config,\n $density-scale, height);\n\n @include compatibility.private-density-legacy-compatibility() {\n .mat-tree-node {\n min-height: $height;\n }\n }\n}\n\n@mixin theme($theme-or-color-config) {\n $theme: theming.private-legacy-get-theme($theme-or-color-config);\n @include theming.private-check-duplicate-theme-styles($theme, 'mat-tree') {\n $color: theming.get-color-config($theme);\n $density: theming.get-density-config($theme);\n $typography: theming.get-typography-config($theme);\n\n @if $color != null {\n @include color($color);\n }\n @if $density != null {\n @include density($density);\n }\n @if $typography != null {\n @include typography($typography);\n }\n }\n}\n\n","@use '@angular/cdk';\n\n@mixin ripple() {\n // The host element of an mat-ripple directive should always have a position of \"absolute\" or\n // \"relative\" so that the ripples inside are correctly positioned relatively to the container.\n .mat-ripple {\n overflow: hidden;\n\n // By default, every ripple container should have position: relative in favor of creating an\n // easy API for developers using the MatRipple directive.\n position: relative;\n\n // Promote containers that have ripples to a new layer. We want to target `:not(:empty)`,\n // because we don't want all ripple containers to have their own layer since they're used in a\n // lot of places and the layer is only relevant while animating. Note that ideally we'd use\n // the `contain` property here (see #13175), because `:empty` can be broken by having extra\n // text inside the element, but it isn't very well supported yet.\n &:not(:empty) {\n transform: translateZ(0);\n }\n }\n\n .mat-ripple.mat-ripple-unbounded {\n overflow: visible;\n }\n\n .mat-ripple-element {\n position: absolute;\n border-radius: 50%;\n pointer-events: none;\n\n transition: opacity, transform 0ms cubic-bezier(0, 0, 0.2, 1);\n\n // We use a 3d transform here in order to avoid an issue in Safari where\n // the ripples aren't clipped when inside the shadow DOM (see #24028).\n transform: scale3d(0, 0, 0);\n\n // In high contrast mode the ripple is opaque, causing it to obstruct the content.\n @include cdk.high-contrast(active, off) {\n display: none;\n }\n }\n}\n","/// Emits a CSS class, `.cdk-visually-hidden`. This class can be applied to an element\n/// to make that element visually hidden while remaining available to assistive technology.\n@mixin a11y-visually-hidden() {\n .cdk-visually-hidden {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n\n // This works around a Chrome bug that can cause the tab to crash when large amounts of\n // non-English text get wrapped: https://bugs.chromium.org/p/chromium/issues/detail?id=1201444\n white-space: nowrap;\n\n // Avoid browsers rendering the focus ring in some cases.\n outline: 0;\n\n // Avoid some cases where the browser will still render the native controls (see #9049).\n -webkit-appearance: none;\n -moz-appearance: none;\n\n // We need at least one of top/bottom/left/right in order to prevent cases where the\n // absolute-positioned element is pushed down and can affect scrolling (see #24597).\n // `left` was chosen here, because it's the least likely to break overrides where the\n // element might have been positioned (e.g. `mat-checkbox`).\n left: 0;\n\n [dir='rtl'] & {\n left: auto;\n right: 0;\n }\n }\n}\n\n/// @deprecated Use `a11y-visually-hidden`.\n@mixin a11y() {\n @include a11y-visually-hidden;\n}\n\n/// Emits the mixin's content nested under `$selector-context` if `$selector-context`\n/// is non-empty.\n/// @param {String} selector-context The selector under which to nest the mixin's content.\n@mixin _optionally-nest-content($selector-context) {\n @if ($selector-context == '') {\n @content;\n }\n @else {\n #{$selector-context} {\n @content;\n }\n }\n}\n\n/// Applies styles for users in high contrast mode. Note that this only applies\n/// to Microsoft browsers. Chrome can be included by checking for the `html[hc]`\n/// attribute, however Chrome handles high contrast differently.\n///\n/// @param {String} target Type of high contrast setting to target. Defaults to `active`, can be\n/// `white-on-black` or `black-on-white`.\n/// @param {String} encapsulation Whether to emit styles for view encapsulation. Values are:\n/// * `on` - works for `Emulated`, `Native`, and `ShadowDom`\n/// * `off` - works for `None`\n/// * `any` - works for all encapsulation modes by emitting the CSS twice (default).\n@mixin high-contrast($target: active, $encapsulation: 'any') {\n @if ($target != 'active' and $target != 'black-on-white' and $target != 'white-on-black') {\n @error 'Unknown cdk-high-contrast value \"#{$target}\" provided. ' +\n 'Allowed values are \"active\", \"black-on-white\", and \"white-on-black\"';\n }\n\n @if ($encapsulation != 'on' and $encapsulation != 'off' and $encapsulation != 'any') {\n @error 'Unknown cdk-high-contrast encapsulation \"#{$encapsulation}\" provided. ' +\n 'Allowed values are \"on\", \"off\", and \"any\"';\n }\n\n // If the selector context has multiple parts, such as `.section, .region`, just doing\n // `.cdk-high-contrast-xxx #{&}` will only apply the parent selector to the first part of the\n // context. We address this by nesting the selector context under .cdk-high-contrast.\n @at-root {\n $selector-context: #{&};\n\n @if ($encapsulation != 'on') {\n // Note that if this selector is updated, the same change has to be made inside\n // `_overlay.scss` which can't depend on this mixin due to some infrastructure limitations.\n .cdk-high-contrast-#{$target} {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n\n @if ($encapsulation != 'off') {\n .cdk-high-contrast-#{$target} :host {\n @include _optionally-nest-content($selector-context) {\n @content;\n }\n }\n }\n }\n}\n","// We want overlays to always appear over user content, so set a baseline\n// very high z-index for the overlay container, which is where we create the new\n// stacking context for all overlays.\n$overlay-container-z-index: 1000 !default;\n$overlay-z-index: 1000 !default;\n$overlay-backdrop-z-index: 1000 !default;\n\n// Background color for all of the backdrops\n$overlay-backdrop-color: rgba(0, 0, 0, 0.32) !default;\n\n// Default backdrop animation is based on the Material Design swift-ease-out.\n$backdrop-animation-duration: 400ms !default;\n$backdrop-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;\n\n/// Emits structural styles required for cdk/overlay to function.\n@mixin overlay() {\n .cdk-overlay-container, .cdk-global-overlay-wrapper {\n // Disable events from being captured on the overlay container.\n pointer-events: none;\n\n // The container should be the size of the viewport.\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n }\n\n // The overlay-container is an invisible element which contains all individual overlays.\n .cdk-overlay-container {\n position: fixed;\n z-index: $overlay-container-z-index;\n\n &:empty {\n // Hide the element when it doesn't have any child nodes. This doesn't\n // include overlays that have been detached, rather than disposed.\n display: none;\n }\n }\n\n // We use an extra wrapper element in order to use make the overlay itself a flex item.\n // This makes centering the overlay easy without running into the subpixel rendering\n // problems tied to using `transform` and without interfering with the other position\n // strategies.\n .cdk-global-overlay-wrapper {\n display: flex;\n position: absolute;\n z-index: $overlay-z-index;\n }\n\n // A single overlay pane.\n .cdk-overlay-pane {\n // Note: it's important for this one to start off `absolute`,\n // in order for us to be able to measure it correctly.\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n z-index: $overlay-z-index;\n\n // For connected-position overlays, we set `display: flex` in\n // order to force `max-width` and `max-height` to take effect.\n display: flex;\n max-width: 100%;\n max-height: 100%;\n }\n\n .cdk-overlay-backdrop {\n // TODO(jelbourn): reuse sidenav fullscreen mixin.\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n z-index: $overlay-backdrop-z-index;\n pointer-events: auto;\n -webkit-tap-highlight-color: transparent;\n transition: opacity $backdrop-animation-duration $backdrop-animation-timing-function;\n opacity: 0;\n\n &.cdk-overlay-backdrop-showing {\n opacity: 1;\n\n // Note that we can't import and use the `high-contrast` mixin from `_a11y.scss`, because\n // this file will be copied to the top-level `cdk` package when putting together the files\n // for npm. Any relative import paths we use here will become invalid once the file is copied.\n .cdk-high-contrast-active & {\n // In high contrast mode the rgba background will become solid\n // so we need to fall back to making it opaque using `opacity`.\n opacity: 0.6;\n }\n }\n }\n\n .cdk-overlay-dark-backdrop {\n background: $overlay-backdrop-color;\n }\n\n .cdk-overlay-transparent-backdrop {\n // Define a transition on the visibility so that the `transitionend` event can fire immediately.\n transition: visibility 1ms linear, opacity 1ms linear;\n visibility: hidden;\n opacity: 1;\n\n // Note: as of Firefox 57, having the backdrop be `background: none` will prevent it from\n // capturing the user's mouse scroll events. Since we also can't use something like\n // `rgba(0, 0, 0, 0)`, we work around the inconsistency by not setting the background at\n // all and using `opacity` to make the element transparent.\n &.cdk-overlay-backdrop-showing {\n opacity: 0;\n visibility: visible;\n }\n }\n\n .cdk-overlay-backdrop-noop-animation {\n transition: none;\n }\n\n // Overlay parent element used with the connected position strategy. Used to constrain the\n // overlay element's size to fit within the viewport.\n .cdk-overlay-connected-position-bounding-box {\n position: absolute;\n z-index: $overlay-z-index;\n\n // We use `display: flex` on this element exclusively for centering connected overlays.\n // When *not* centering, a top/left/bottom/right will be set which overrides the normal\n // flex layout.\n display: flex;\n\n // We use the `column` direction here to avoid some flexbox issues in Edge\n // when using the \"grow after open\" options.\n flex-direction: column;\n\n // Add some dimensions so the element has an `innerText` which some people depend on in tests.\n min-width: 1px;\n min-height: 1px;\n }\n\n // Used when disabling global scrolling.\n .cdk-global-scrollblock {\n position: fixed;\n\n // Necessary for the content not to lose its width. Note that we're using 100%, instead of\n // 100vw, because 100vw includes the width plus the scrollbar, whereas 100% is the width\n // that the element had before we made it `fixed`.\n width: 100%;\n\n // Note: this will always add a scrollbar to whatever element it is on, which can\n // potentially result in double scrollbars. It shouldn't be an issue, because we won't\n // block scrolling on a page that doesn't have a scrollbar in the first place.\n overflow-y: scroll;\n }\n}\n","// Structural styles for the autosize text fields.\n@mixin text-field-autosize() {\n // Remove the resize handle on autosizing textareas, because whatever height\n // the user resized to will be overwritten once they start typing again.\n textarea.cdk-textarea-autosize {\n resize: none;\n }\n\n // This class is temporarily applied to the textarea when it is being measured. It is immediately\n // removed when measuring is complete. We use `!important` rules here to make sure user-specified\n // rules do not interfere with the measurement.\n textarea.cdk-textarea-autosize-measuring {\n @include _autosize-measuring-base;\n height: auto !important;\n overflow: hidden !important;\n }\n\n // Similar to the `cdk-textarea-autosize-measuring` class, but only applied on Firefox. We need\n // to use this class, because Firefox has a bug where changing the `overflow` breaks the user's\n // ability to undo/redo what they were typing (see #16629). This class is only scoped to Firefox,\n // because the measurements there don't seem to be affected by the `height: 0`, whereas on other\n // browsers they are, e.g. Chrome detects longer text and IE does't resize back to normal.\n // Identical issue report: https://bugzilla.mozilla.org/show_bug.cgi?id=448784\n textarea.cdk-textarea-autosize-measuring-firefox {\n @include _autosize-measuring-base;\n height: 0 !important;\n }\n}\n\n// Core styles that enable monitoring autofill state of text fields.\n@mixin text-field-autofill() {\n // Keyframes that apply no styles, but allow us to monitor when an text field becomes autofilled\n // by watching for the animation events that are fired when they start. Note: the /*!*/ comment is\n // needed to prevent LibSass from stripping the keyframes out.\n // Based on: https://medium.com/@brunn/detecting-autofilled-fields-in-javascript-aed598d25da7\n @keyframes cdk-text-field-autofill-start {/*!*/}\n @keyframes cdk-text-field-autofill-end {/*!*/}\n\n .cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms;\n }\n\n .cdk-text-field-autofill-monitored:not(:-webkit-autofill) {\n // Since Chrome 80 we need a 1ms delay, or the animationstart event won't fire.\n animation: cdk-text-field-autofill-end 0s 1ms;\n }\n}\n\n@mixin _autosize-measuring-base {\n // Having 2px top and bottom padding seems to fix a bug where Chrome gets an incorrect\n // measurement. We just have to account for it later and subtract it off the final result.\n padding: 2px 0 !important;\n box-sizing: content-box !important;\n}\n\n// Used to generate UIDs for keyframes used to change the text field autofill styles.\n$autofill-color-frame-count: 0;\n\n// Mixin used to apply custom background and foreground colors to an autofilled text field.\n// Based on: https://stackoverflow.com/questions/2781549/\n// removing-input-background-colour-for-chrome-autocomplete#answer-37432260\n@mixin text-field-autofill-color($background, $foreground:'') {\n @keyframes cdk-text-field-autofill-color-#{$autofill-color-frame-count} {\n to {\n background: $background;\n @if $foreground != '' { color: $foreground; }\n }\n }\n\n &:-webkit-autofill {\n animation: cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n &.cdk-text-field-autofill-monitored:-webkit-autofill {\n // Since Chrome 80 we need a 1ms delay for cdk-text-field-autofill-start, or the animationstart\n // event won't fire.\n animation: cdk-text-field-autofill-start 0s 1ms,\n cdk-text-field-autofill-color-#{$autofill-color-frame-count} both;\n }\n\n $autofill-color-frame-count: $autofill-color-frame-count + 1 !global;\n}\n\n// @deprecated Use `autosize` and `autofill` instead.\n@mixin text-field {\n @include text-field-autosize();\n @include text-field-autofill();\n}\n","@use 'sass:map';\n@use '../style/layout-common';\n\n/// Mixin that turns on strong focus indicators.\n///\n/// @example\n/// .my-app {\n/// @include mat-strong-focus-indicators($config);\n/// }\n@mixin strong-focus-indicators($config: ()) {\n // Default focus indicator config.\n $default-config: (\n border-style: solid,\n border-width: 3px,\n border-radius: 4px,\n );\n\n // Merge default config with user config.\n $config: map.merge($default-config, $config);\n $border-style: map.get($config, border-style);\n $border-width: map.get($config, border-width);\n $border-radius: map.get($config, border-radius);\n\n // Base styles for focus indicators.\n .mat-focus-indicator::before {\n @include layout-common.fill();\n box-sizing: border-box;\n pointer-events: none;\n border: $border-width $border-style transparent;\n border-radius: $border-radius;\n\n .cdk-high-contrast-active & {\n display: none;\n }\n }\n\n // By default, all focus indicators are flush with the bounding box of their\n // host element. For particular elements (listed below), default inset/offset\n // values are necessary to ensure that the focus indicator is sufficiently\n // contrastive and renders appropriately.\n\n .mat-focus-indicator.mat-flat-button::before,\n .mat-focus-indicator.mat-raised-button::before,\n .mat-focus-indicator.mat-fab::before,\n .mat-focus-indicator.mat-mini-fab::before,\n .mat-focus-indicator.mat-chip::before,\n .mat-focus-indicator.mat-sort-header-container::before {\n margin: -($border-width + 2px);\n }\n\n .mat-focus-indicator.mat-stroked-button::before,\n .mat-focus-indicator.mat-calendar-body-cell-content::before {\n margin: -($border-width + 3px);\n }\n\n .mat-focus-indicator.mat-tab-link::before,\n .mat-focus-indicator.mat-tab-label::before {\n margin: 5px;\n }\n\n // Render the focus indicator on focus. Defining a pseudo element's\n // content will cause it to render.\n\n // Checkboxes, radios, and slide toggles render focus indicators when the\n // associated visually-hidden input is focused.\n .mat-checkbox-input:focus ~ .mat-focus-indicator::before,\n .mat-radio-input:focus ~ .mat-focus-indicator::before,\n .mat-slide-toggle-input:focus ~ .mat-slide-toggle-thumb-container .mat-focus-indicator::before,\n\n // For options, render the focus indicator when the class .mat-active\n // is present.\n .mat-focus-indicator.mat-option.mat-active::before,\n\n // For calendar cells, render the focus indicator when the parent cell is\n // focused.\n .mat-calendar-body-cell:focus .mat-focus-indicator::before,\n\n // Stepper headers have the focus indicator as a descendant,\n // because `::before` is used for other styling.\n .mat-step-header:focus .mat-focus-indicator::before,\n\n // For all other components, render the focus indicator on focus.\n .mat-focus-indicator:focus::before {\n content: '';\n }\n}\n\n// Mixin that ensures focus indicator host elements are positioned so that the focus indicator\n// pseudo element within is positioned relative to the host. Private mixin included within\n// `mat-core`.\n@mixin private-strong-focus-indicators-positioning() {\n .mat-focus-indicator {\n position: relative;\n }\n}\n","@use '@angular/cdk';\n\n// Core styles that can be used to apply material design treatments to any element.\n@use './ripple/ripple';\n@use './focus-indicators/focus-indicators';\n@use './typography/all-typography';\n\n// Mixin that renders all of the core styles that are not theme-dependent.\n@mixin core($typography-config: null) {\n @include all-typography.all-component-typographies($typography-config);\n @include ripple.ripple();\n @include cdk.a11y-visually-hidden();\n @include cdk.overlay();\n @include cdk.text-field-autosize();\n @include cdk.text-field-autofill();\n\n @include focus-indicators.private-strong-focus-indicators-positioning();\n @include _mdc-core();\n}\n\n// Mixin that renders all of the core MDC styles. Private mixin included with `mat-core`.\n@mixin _mdc-core() {\n @include _mdc-strong-focus-indicators-positioning();\n}\n\n// Mixin that ensures focus indicator host elements are positioned so that the focus indicator\n// pseudo element within is positioned relative to the host. Private mixin included within\n// `_mat-mdc-core`.\n@mixin _mdc-strong-focus-indicators-positioning() {\n .mat-mdc-focus-indicator {\n position: relative;\n }\n}\n"],"mappings":"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","names":[],"sourceRoot":"webpack:///","file":"styles.e61673655a477d51.css"}