diff --git a/.github/workflows/api_refs.yaml b/.github/workflows/api_refs.yaml index 01a6feed9f6..6b1f259a070 100644 --- a/.github/workflows/api_refs.yaml +++ b/.github/workflows/api_refs.yaml @@ -139,6 +139,21 @@ jobs: php tools/raml2html/raml2html.php build --non-standard-http-methods=COPY,MOVE,PUBLISH,SWAP -t default -o docs/api/rest_api/rest_api_reference/ docs/api/rest_api/rest_api_reference/input/ibexa.raml fi + # The dumped schema lives in the temporary DXP install (TMP_DXP_DIR in + # tools/api_refs/api_refs.sh) and is copied into the doc only once the + # reference builds. Keep it when the build fails, so the schema that + # caused the failure can be inspected instead of re-run blindly. + - name: Upload the dumped OpenAPI schema on failure + if: failure() + uses: actions/upload-artifact@v4 + with: + name: openapi-schema + path: | + /tmp/ibexa-dxp-phpdoc/openapi.yaml + /tmp/ibexa-dxp-phpdoc/openapi.json + if-no-files-found: ignore + retention-days: 14 + - name: Commit env: BASE_BRANCH: ${{ steps.version_and_branches.outputs.base_branch }} diff --git a/code_samples/back_office/calendar/config/packages/calendar.yaml b/code_samples/back_office/calendar/config/packages/calendar.yaml index 3e2c9433dca..1fc7e778054 100644 --- a/code_samples/back_office/calendar/config/packages/calendar.yaml +++ b/code_samples/back_office/calendar/config/packages/calendar.yaml @@ -4,7 +4,7 @@ ibexa: calendar: event_types: future_publication: - color: '#47BEDB' + color: '#19628F' actions: reschedule: icon: '/bundles/ibexaadminuiassets/vendors/ids-assets/dist/img/all-icons.svg#alert-error' diff --git a/code_samples/back_office/image_editor/assets/random_dot/random-dot.js b/code_samples/back_office/image_editor/assets/random_dot/random-dot.js index bafb152ff2b..50cae4f7a24 100644 --- a/code_samples/back_office/image_editor/assets/random_dot/random-dot.js +++ b/code_samples/back_office/image_editor/assets/random_dot/random-dot.js @@ -31,7 +31,7 @@ const Dot = () => { ctx.save(); - ctx.fillStyle = '#ae1164'; + ctx.fillStyle = '#4e24a5'; ctx.beginPath(); ctx.arc(positionX, positionY, 20, 0, Math.PI * 2, true); diff --git a/docs/api/php_api/php_api_reference/css/base.css b/docs/api/php_api/php_api_reference/css/base.css index b8a999cf354..1de6fde5415 100644 --- a/docs/api/php_api/php_api_reference/css/base.css +++ b/docs/api/php_api/php_api_reference/css/base.css @@ -1,4 +1,6 @@ -html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}:root,[data-md-color-scheme=default]{--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:#ffff0080;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:#ffff0080;--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr[title]:focus:after,.md-typeset abbr[title]:hover:after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);font-size:.7rem;left:.8rem;margin-top:2em;padding:.2rem .3rem;position:absolute;right:.8rem}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.9375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{align-content:baseline;display:flex;flex-wrap:wrap;justify-content:center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav,.md-nav__toggle:indeterminate~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);font-weight:700;margin-top:0;padding:0 .6rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__link--index){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:#ffffff1f}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::placeholder{transition:color .25s}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}[dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:-webkit-sticky;position:sticky;scroll-snap-align:start;top:0;z-index:1}.md-search-result__more>summary::marker{display:none}.md-search-result__more>summary::-webkit-details-marker{display:none}.md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}[dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.md-search-result__more>summary:focus>div,.md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result .md-typeset h1 mark{text-decoration:none}.md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result .md-typeset h2 mark{text-decoration:none}.md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.1875em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .md-tags{margin-bottom:.75em;margin-top:-.125em}[dir=ltr] .md-typeset .md-tag{margin-right:.5em}[dir=rtl] .md-typeset .md-tag{margin-left:.5em}.md-typeset .md-tag{background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:normal;line-height:1.6;margin-bottom:.5em;padding:.3125em .9375em;vertical-align:middle}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;margin-right:.4em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em #0000;transform:scale(1)}to{box-shadow:0 0 0 0 #0000;transform:scale(.95)}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-weight:400;outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation__index{cursor:pointer;font-family:var(--md-code-font-family);font-size:.85em;margin:0 1ch;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.md-annotation .md-annotation__index{color:#fff;transition:z-index .25s}.md-annotation .md-annotation__index:focus,.md-annotation .md-annotation__index:hover{color:#fff}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.125em;margin:0 -.4ch;padding:0 .4ch;position:absolute;top:0;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media not all and (prefers-reduced-motion){[data-md-visible]>.md-annotation__index:after{animation:pulse 2s infinite}}.md-tooltip--active+.md-annotation__index:after{animation:none;transition:color .25s,background-color .25s}code .md-annotation__index{font-family:var(--md-code-font-family);font-size:inherit}.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index{color:var(--md-accent-bg-color)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}.md-tooltip--active+.md-annotation__index{animation:none;transition:none;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block;line-height:90%}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;padding-bottom:.1em;transform:scale(1.15);transition:transform .4s cubic-bezier(.1,.7,.1,1);vertical-align:.065em}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:scale(1.25) rotate(45deg)}}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.05rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}.mermaid{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}}@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:#4287ff26;--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:#4287ff4d;--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-table-color:hsla(var(--md-hue),75%,95%,0.12);--md-typeset-table-color--light:hsla(var(--md-hue),75%,95%,0.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1);--md-shadow-z1:0 0.2rem 0.5rem #0003,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000004d,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0006,0 0 0.05rem #00000059}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=slate] img[src$="#only-dark"]{display:initial}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#bd78c9}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a682e3}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#6c91d5}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff9575}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c7846b}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#6c91d5}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:#ff19471a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:#f500561a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:#df41fb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:#7c4dff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:#4287ff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:#0091eb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:#00bad61a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:#00bda41a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:#00c7531a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:#63de171a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:#b0eb001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:#ffd5001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:#ffaa001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:#ff91001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:#ff6e421a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:#ffffffb3;--md-primary-fg-color--dark:#00000012;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a;--md-typeset-a-color:#4051b5}[data-md-color-primary=white] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=white] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:#fff}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:#00000012}[data-md-color-primary=white] .md-search__form:hover{background-color:#00000052}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:#000000de}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid #00000012}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:#0000008a;--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=black] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:#fff}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:#000000de}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:#ffffff1f}[data-md-color-primary=black] .md-search__form:hover{background-color:#ffffff4d}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}/* Keywords */ +html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:#0000;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}:root,[data-md-color-scheme=default]{--md-default-fg-color:#000000de;--md-default-fg-color--light:#0000008a;--md-default-fg-color--lighter:#00000052;--md-default-fg-color--lightest:#00000012;--md-default-bg-color:#fff;--md-default-bg-color--light:#ffffffb3;--md-default-bg-color--lighter:#ffffff4d;--md-default-bg-color--lightest:#ffffff1f;--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:#ffff0080;--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:#ffff0080;--md-typeset-del-color:#f5503d26;--md-typeset-ins-color:#0bd57026;--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:#0000001f;--md-typeset-table-color--light:rgba(0,0,0,.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-warning-fg-color:#000000de;--md-warning-bg-color:#ff9;--md-footer-fg-color:#fff;--md-footer-fg-color--light:#ffffffb3;--md-footer-fg-color--lighter:#ffffff73;--md-footer-bg-color:#000000de;--md-footer-bg-color--dark:#00000052;--md-shadow-z1:0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr[title]:focus:after,.md-typeset abbr[title]:hover:after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);font-size:.7rem;left:.8rem;margin-top:2em;padding:.2rem .3rem;position:absolute;right:.8rem}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}[dir=ltr] .md-typeset ol li ol,[dir=ltr] .md-typeset ol li ul,[dir=ltr] .md-typeset ul li ol,[dir=ltr] .md-typeset ul li ul{margin-left:.625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-right:.625em}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:var(--md-typeset-table-color--light);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background-color:var(--md-warning-bg-color);color:var(--md-warning-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:#0000008a;height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.9375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{align-content:baseline;display:flex;flex-wrap:wrap;justify-content:center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem #0000,0 .2rem .4rem #0000;color:var(--md-primary-bg-color);display:block;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem #0000001a,0 .2rem .4rem #0003;transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{color:var(--md-default-fg-color--light);display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav,.md-nav__toggle:indeterminate~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link[for]{color:var(--md-default-fg-color--light)}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s;width:.9rem}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;border-radius:100%;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:transform .25s;vertical-align:-.1rem;width:100%}[dir=rtl] .md-nav__icon:after{transform:rotate(180deg)}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon:after,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon:after{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);font-weight:700;margin-top:0;padding:0 .6rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__link--index){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item>[for]{color:var(--md-default-fg-color--light)}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:#0000008a;cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem #0000;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:#00000042;border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:#ffffff1f}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem #00000012;color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:#0000;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::placeholder{transition:color .25s}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:#0000}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>.md-icon{margin-left:.2rem}[dir=rtl] .md-search__options>.md-icon{margin-right:.2rem}.md-search__options>.md-icon{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>.md-icon:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>.md-icon:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more>summary{cursor:pointer;display:block;outline:none;position:-webkit-sticky;position:sticky;scroll-snap-align:start;top:0;z-index:1}.md-search-result__more>summary::marker{display:none}.md-search-result__more>summary::-webkit-details-marker{display:none}.md-search-result__more>summary>div{color:var(--md-typeset-a-color);font-size:.64rem;padding:.75em .8rem;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more>summary>div{padding-left:2.2rem}[dir=rtl] .md-search-result__more>summary>div{padding-right:2.2rem}}.md-search-result__more>summary:focus>div,.md-search-result__more>summary:hover>div{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more[open]>summary{background-color:var(--md-default-bg-color)}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result .md-typeset{color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.6}.md-search-result .md-typeset h1{color:var(--md-default-fg-color);font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result .md-typeset h1 mark{text-decoration:none}.md-search-result .md-typeset h2{color:var(--md-default-fg-color);font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result .md-typeset h2 mark{text-decoration:none}.md-search-result__terms{color:var(--md-default-fg-color);display:block;font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color);text-decoration:underline}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid #0000;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid #0000;border-right:.2rem solid #0000;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) #0000;scrollbar-width:thin}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap:focus-within,.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) #0000}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap:focus-within::-webkit-scrollbar-thumb:hover,.md-sidebar__scrollwrap:hover::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.1875em){.md-overlay{background-color:#0000008a;height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;overflow:auto;padding:0;scrollbar-width:none;white-space:nowrap}.md-tabs__list::-webkit-scrollbar{display:none}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .md-tags{margin-bottom:.75em;margin-top:-.125em}[dir=ltr] .md-typeset .md-tag{margin-right:.5em}[dir=rtl] .md-typeset .md-tag{margin-left:.5em}.md-typeset .md-tag{background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:normal;line-height:1.6;margin-bottom:.5em;padding:.3125em .9375em;vertical-align:middle}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;margin-right:.4em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon[href]:focus:before,.md-typeset .md-tag-icon[href]:hover:before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em #0000;transform:scale(1)}to{box-shadow:0 0 0 0 #0000;transform:scale(.95)}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}.focus-visible>.md-tooltip,.md-tooltip:target{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-weight:400;outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation__index{cursor:pointer;font-family:var(--md-code-font-family);font-size:.85em;margin:0 1ch;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.md-annotation .md-annotation__index{color:#fff;transition:z-index .25s}.md-annotation .md-annotation__index:focus,.md-annotation .md-annotation__index:hover{color:#fff}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.125em;margin:0 -.4ch;padding:0 .4ch;position:absolute;top:0;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media not all and (prefers-reduced-motion){[data-md-visible]>.md-annotation__index:after{animation:pulse 2s infinite}}.md-tooltip--active+.md-annotation__index:after{animation:none;transition:color .25s,background-color .25s}code .md-annotation__index{font-family:var(--md-code-font-family);font-size:inherit}.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index{color:var(--md-accent-bg-color)}.md-tooltip--active+.md-annotation__index:after,:hover>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}.md-tooltip--active+.md-annotation__index{animation:none;transition:none;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block;line-height:90%}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;padding-bottom:.1em;transform:scale(1.15);transition:transform .4s cubic-bezier(.1,.7,.1,1);vertical-align:.065em}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:scale(1.25) rotate(45deg)}}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:focus,.md-top:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.05rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:#448aff1a;border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:#448aff1a}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset .note>.admonition-title:after,.md-typeset .note>summary:after{color:#448aff}.md-typeset .admonition.abstract,.md-typeset details.abstract{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary{background-color:#00b0ff1a}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset .abstract>.admonition-title:after,.md-typeset .abstract>summary:after{color:#00b0ff}.md-typeset .admonition.info,.md-typeset details.info{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary{background-color:#00b8d41a}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset .info>.admonition-title:after,.md-typeset .info>summary:after{color:#00b8d4}.md-typeset .admonition.tip,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:#00bfa51a}.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset .tip>.admonition-title:after,.md-typeset .tip>summary:after{color:#00bfa5}.md-typeset .admonition.success,.md-typeset details.success{border-color:#00c853}.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:#00c8531a}.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset .success>.admonition-title:after,.md-typeset .success>summary:after{color:#00c853}.md-typeset .admonition.question,.md-typeset details.question{border-color:#64dd17}.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:#64dd171a}.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset .question>.admonition-title:after,.md-typeset .question>summary:after{color:#64dd17}.md-typeset .admonition.warning,.md-typeset details.warning{border-color:#ff9100}.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:#ff91001a}.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset .warning>.admonition-title:after,.md-typeset .warning>summary:after{color:#ff9100}.md-typeset .admonition.failure,.md-typeset details.failure{border-color:#ff5252}.md-typeset .failure>.admonition-title,.md-typeset .failure>summary{background-color:#ff52521a}.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset .failure>.admonition-title:after,.md-typeset .failure>summary:after{color:#ff5252}.md-typeset .admonition.danger,.md-typeset details.danger{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary{background-color:#ff17441a}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset .danger>.admonition-title:after,.md-typeset .danger>summary:after{color:#ff1744}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:#f500571a}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset .bug>.admonition-title:after,.md-typeset .bug>summary:after{color:#f50057}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:#7c4dff1a}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset .example>.admonition-title:after,.md-typeset .example>summary:after{color:#7c4dff}.md-typeset .admonition.quote,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:#9e9e9e1a}.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset .quote>.admonition-title:after,.md-typeset .quote>summary:after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid #0000;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,#0000);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,#0000);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}.mermaid{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color);line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}} +@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:#4287ff26;--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:#4287ff4d;--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-typeset-table-color:hsla(var(--md-hue),75%,95%,0.12);--md-typeset-table-color--light:hsla(var(--md-hue),75%,95%,0.035);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1);--md-shadow-z1:0 0.2rem 0.5rem #0003,0 0 0.05rem #0000001a;--md-shadow-z2:0 0.2rem 0.5rem #0000004d,0 0 0.05rem #00000040;--md-shadow-z3:0 0.2rem 0.5rem #0006,0 0 0.05rem #00000059}[data-md-color-scheme=slate] img[src$="#gh-light-mode-only"],[data-md-color-scheme=slate] img[src$="#only-light"]{display:none}[data-md-color-scheme=slate] img[src$="#gh-dark-mode-only"],[data-md-color-scheme=slate] img[src$="#only-dark"]{display:initial}[data-md-color-scheme=slate][data-md-color-primary=pink]{--md-typeset-a-color:#ed5487}[data-md-color-scheme=slate][data-md-color-primary=purple]{--md-typeset-a-color:#bd78c9}[data-md-color-scheme=slate][data-md-color-primary=deep-purple]{--md-typeset-a-color:#a682e3}[data-md-color-scheme=slate][data-md-color-primary=indigo]{--md-typeset-a-color:#6c91d5}[data-md-color-scheme=slate][data-md-color-primary=teal]{--md-typeset-a-color:#00ccb8}[data-md-color-scheme=slate][data-md-color-primary=green]{--md-typeset-a-color:#71c174}[data-md-color-scheme=slate][data-md-color-primary=deep-orange]{--md-typeset-a-color:#ff9575}[data-md-color-scheme=slate][data-md-color-primary=brown]{--md-typeset-a-color:#c7846b}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=blue-grey],[data-md-color-scheme=slate][data-md-color-primary=grey],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#6c91d5}[data-md-color-switching] *,[data-md-color-switching] :after,[data-md-color-switching] :before{transition-duration:0ms!important}}[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:#ff19471a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:#f500561a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:#df41fb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:#7c4dff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:#526cfe1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:#4287ff1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:#0091eb1a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:#00bad61a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:#00bda41a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:#00c7531a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:#63de171a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:#b0eb001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:#ffd5001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:#ffaa001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:#ff91001a;--md-accent-bg-color:#000000de;--md-accent-bg-color--light:#0000008a}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:#ff6e421a;--md-accent-bg-color:#fff;--md-accent-bg-color--light:#ffffffb3}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=light-green]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#72ad2e}[data-md-color-primary=lime]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#8b990a}[data-md-color-primary=yellow]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#b8a500}[data-md-color-primary=amber]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#d19d00}[data-md-color-primary=orange]:not([data-md-color-scheme=slate]){--md-typeset-a-color:#e68a00}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:#ffffffb3;--md-primary-fg-color--dark:#00000012;--md-primary-bg-color:#000000de;--md-primary-bg-color--light:#0000008a;--md-typeset-a-color:#4051b5}[data-md-color-primary=white] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=white] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:#fff}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:#00000012}[data-md-color-primary=white] .md-search__form:hover{background-color:#00000052}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:#000000de}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid #00000012}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:#0000008a;--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:#ffffffb3;--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-button{color:var(--md-typeset-a-color)}[data-md-color-primary=black] .md-button--primary{background-color:var(--md-typeset-a-color);border-color:var(--md-typeset-a-color);color:#fff}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:#000000de}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:#ffffff1f}[data-md-color-primary=black] .md-search__form:hover{background-color:#ffffff4d}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}} +/* Keywords */ .highlight .k, .highlight .kd, .highlight .kn, @@ -19,7 +21,7 @@ html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:n .highlight .p, .highlight .cp { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); } /* HTML tags and YAML keys */ @@ -34,7 +36,7 @@ html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:n .highlight .nf, .highlight .fm, .highlight .nn { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); } /* Variable names */ @@ -42,12 +44,12 @@ html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:n .highlight .vc, .highlight .vg, .highlight .vi { - color: #41000F; + color: #3E4145; } /* Attributes */ .highlight .na { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); } /* Strings */ @@ -182,38 +184,52 @@ html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:n padding: 0 .8rem } } + +/* Cohesivo palette. Mirrors docs/css/custom.css — keep the two in sync. + Values come from the product design system, converted from oklch(): + vendor/ibexa/admin-ui-assets/.../vendors/ids-assets/dist/scss/variables/_colors.scss */ :root > * { - --ibexa-orange: rgb(255,71,19); - --ibexa-red: rgb(219,0,50); - --ibexa-jazzberry: rgb(174,17,100); - --ibexa-dusk-black: rgb(19,28,38); - --ibexa-snow: rgb(224,224,232); + --cohesivo-violet: #4E24A5; + --cohesivo-violet-light: #B497E8; + --cohesivo-dusk-black: #0E1216; + --cohesivo-snow: #E7E7E8; + --cohesivo-amber: #DC8004; + --cohesivo-red: #BA2124; + --cohesivo-info: #19628F; + --cohesivo-info-dark: #003F63; + --cohesivo-ink-muted: #3E4145; + --cohesivo-mist: #F5F6F6; + --black: rgb(0,0,0); --white: rgb(255,255,255); - --warm-stone: rgb(236,223,209); - --turquoise-pearl: rgb(71,190,219); - --yellow-orange: rgb(252,174,66); - --apricot: rgb(241,138,107); - --sherpa-blue: rgb(0,77,93); - + --mid-grey: rgb(201,201,208); --dark-grey: rgb(151,151,151); - - --color-warning-dark-01: rgb(211,130,43); - --color-primary-main: rgb(163,39,104); - --caution-border: var(--ibexa-orange); + + --color-warning-dark-01: #A85000; + --color-primary-main: #4E24A5; + + --caution-border: var(--cohesivo-amber); --note-border: var(--mid-grey); - --enterprise-border: var(--ibexa-jazzberry); - + --enterprise-border: var(--cohesivo-violet); + + --admonition-radius: 10px; + --admonition-info-bg: #F1ECFB; + --admonition-info-bar: #4E24A5; + --admonition-info-title: #391B79; + --admonition-warning-bg: #FCEFDE; + --admonition-warning-bar: #DC8004; + --admonition-warning-title: #8C3F00; + --codeblock: rgb(89,96,103); --inline-code: rgb(242,242,245); --table-header: var(--codeblock); --code-highlight: #D9E9FF; - - --link: rgb(0,71,206); + + --link: var(--cohesivo-dusk-black); /* Override Material colors */ - --md-accent-fg-color: var(--ibexa-jazzberry); + --md-accent-fg-color: var(--cohesivo-violet); --md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,'); @@ -279,7 +295,7 @@ html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:n body, input { font-family: "Noto Sans", sans-serif; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); } body { @@ -310,18 +326,26 @@ body { } [data-md-color-primary=blue-grey] .md-header { - background-color: var(--ibexa-dusk-black); + background-color: var(--cohesivo-dusk-black); color: #fff; height: 56px; } .md-typeset a { color: var(--link); + text-decoration: underline; } .md-typeset a:hover, .md-typeset a:focus { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); +} + +.md-typeset .headerlink, +.md-typeset a.md-icon, +.md-typeset .tabbed-labels a, +.md-typeset .md-clipboard { + text-decoration: none; } .md-typeset th a { @@ -335,7 +359,7 @@ body { /* Headings */ .md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4, .md-typeset h5, .md-typeset h6 { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); line-height: 1; } @@ -370,7 +394,7 @@ body { } ul li::marker { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); } ul li li { @@ -404,55 +428,109 @@ ul li li li { padding: .5rem; } -/* Admonitions */ - -.md-typeset :is(.admonition,details):is(.tip,.note,.caution), -.md-typeset :is(.admonition-title,summary), -.md-typeset :is(.tip,.note)>:is(.admonition-title,summary) { +.md-typeset :is(.admonition-title,summary) { background-color: #ffffff; box-shadow: none; font-size: 16px; } -.md-typeset :is(.admonition,details):is(.tip,.note) -{ - border: 0.1rem solid var(--note-border); - border-radius: 0.1rem; +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) { + box-shadow: none; + font-size: 16px; + border-width: 0 0 0 4px; + border-left-style: solid; + border-radius: 0 var(--admonition-radius) var(--admonition-radius) 0; + padding: 4px 12px; } -.md-typeset :is(.admonition,details):is(.caution) -{ - border: 0.1rem solid var(--caution-border); - border-radius: 0.1rem; +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :is(.admonition-title,summary) { + background-color: transparent; + border: 0; + font-size: 16px; + font-weight: 600; + margin: 8px 0; + padding: 0 0 0 28px; + position: relative; + min-height: 20px; + display: flex; + align-items: center; } -.md-typeset .admonition.caution>.admonition-title { - border-color: var(--caution-border); +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :is(.admonition-title,summary)::before { + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 20px; + height: 20px; + margin: 0; } -.md-typeset .admonition:is(.note,.tip)>:is(.admonition-title) { - border-color: var(--note-border); +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :not(.admonition-title):not(summary) { + color: var(--cohesivo-dusk-black); } -.md-typeset :is(.admonition,details[open]):is(.note,.tip,.caution) :is(.admonition-title,summary) { - border-bottom: 1px solid var(--note-border); +.md-typeset details:is(.tip,.note,.caution,.warning) > summary { + padding-right: 32px; + cursor: pointer; + list-style: none; } -/* Admonition icons */ +.md-typeset details:is(.tip,.note,.caution,.warning) > summary::-webkit-details-marker { + display: none; +} -.md-typeset .note > .admonition-title::before, -.md-typeset .tip > .admonition-title::before, -.md-typeset .note > summary::before, -.md-typeset .tip > summary::before { - background-color: var(--note-border); +.md-typeset details:is(.tip,.note,.caution,.warning) > summary::after { + top: 50%; + right: 8px; + width: 20px; + height: 20px; + margin: 0; + transform: translateY(-50%); + transition: transform 0.2s; } -.md-typeset :is(.admonition,details).caution>:is(.admonition-title,summary):before { - background-color: var(--caution-border); +.md-typeset details[open]:is(.tip,.note,.caution,.warning) > summary::after { + transform: translateY(-50%) rotate(90deg); +} + +.md-typeset :is(.admonition,details):is(.tip,.note) { + background-color: var(--admonition-info-bg); + border-left-color: var(--admonition-info-bar); +} + +.md-typeset :is(.admonition,details):is(.tip,.note) > :is(.admonition-title,summary) { + color: var(--admonition-info-title); +} + +.md-typeset :is(.admonition,details):is(.tip,.note) > :is(.admonition-title,summary)::before { + background-color: var(--admonition-info-title); +} + +.md-typeset details:is(.tip,.note) > summary::after { + color: var(--admonition-info-title); +} + +/* caution / warning — the app's .ibexa-alert--warning */ +.md-typeset :is(.admonition,details):is(.caution,.warning) { + background-color: var(--admonition-warning-bg); + border-left-color: var(--admonition-warning-bar); +} + +.md-typeset :is(.admonition,details):is(.caution,.warning) > :is(.admonition-title,summary) { + color: var(--admonition-warning-title); +} + +.md-typeset :is(.admonition,details):is(.caution,.warning) > :is(.admonition-title,summary)::before { + background-color: var(--admonition-warning-title); -webkit-mask-image: var(--md-admonition-icon--caution); mask-image: var(--md-admonition-icon--caution); } +.md-typeset details:is(.caution,.warning) > summary::after { + color: var(--admonition-warning-title); +} + /* Tile admonition */ .md-typeset :is(.admonition):is(.tile) { @@ -482,7 +560,7 @@ ul li li li { /* Code highlighting */ .md-typeset code, .md-typeset pre { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); } .md-typeset .highlighttable code, .md-typeset .highlighttable pre { @@ -505,7 +583,7 @@ ul li li li { } .md-typeset .highlighttable pre code::-webkit-scrollbar-track { - background-color: var(--ibexa-snow); + background-color: var(--cohesivo-snow); } .md-typeset .highlighttable pre code::-webkit-scrollbar-thumb { @@ -526,7 +604,7 @@ ul li li li { } .md-typeset .highlighttable .linenodiv pre { - color: var(--ibexa-snow); + color: var(--cohesivo-snow); background-color: var(--codeblock); } @@ -549,7 +627,7 @@ ul li li li { /* Code block titles */ .highlighttable span.filename { - background-color: var(--ibexa-snow); + background-color: var(--cohesivo-snow); } /* Tables */ @@ -560,7 +638,7 @@ ul li li li { } .md-typeset table:not([class]) th { - color: var(--ibexa-snow); + color: var(--cohesivo-snow); background-color: var(--table-header); } @@ -588,7 +666,7 @@ a.external:not(.card) { } [data-md-color-primary=blue-grey] .md-nav__link--active { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); font-weight: 700; } @@ -669,7 +747,10 @@ a.external:not(.card) { .md-typeset .tabbed-set .tabbed-content { order: 99; - border: 1px solid var(--ibexa-snow); + /* The panel is an opaque white card so the set reads the same on a plain page + and on a tinted admonition fill. */ + background: #FFFFFF; + border: 1px solid var(--cohesivo-snow); padding: 4px 4px 4px 1rem; border-radius: 0 .2rem .2rem .2rem; } @@ -677,9 +758,12 @@ a.external:not(.card) { .md-typeset .tabbed-set label { font-size: .64rem; font-weight: 700; + /* Unselected tabs sit recessed behind the panel. */ + background: var(--cohesivo-mist); + color: var(--cohesivo-ink-muted); padding: 0.9375em 1.25em 0.78125em; - border: 1px solid var(--ibexa-snow); - border-bottom: 2px solid var(--ibexa-snow); + border: 1px solid var(--cohesivo-snow); + border-bottom: 2px solid var(--cohesivo-snow); border-radius: 4px 4px 0 0; } @@ -688,8 +772,8 @@ a.external:not(.card) { } .md-typeset .tabbed-labels>label:hover { - color: var(--ibexa-dusk-black); - border-bottom: 2px solid var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); + border-bottom: 2px solid var(--cohesivo-dusk-black); } div.pills { @@ -727,16 +811,16 @@ div.pills { } .optional-pill { - color: var(--sherpa-blue); - border: 1px solid var(--sherpa-blue); + color: var(--cohesivo-info-dark); + border: 1px solid var(--cohesivo-info-dark); } .md-clipboard:focus, .md-clipboard:hover { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); } .md-typeset .headerlink:focus, .md-typeset .headerlink:hover, .md-typeset :target>.headerlink { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); } /** Cards */ @@ -769,7 +853,7 @@ div.path { background-color: #FFFFFF; padding: 0.7rem; margin-bottom: 0.4rem; - border: 1px solid #E0E0E8; + border: 1px solid var(--cohesivo-snow); min-width: 230px; height: 240px; box-sizing: border-box; @@ -789,7 +873,7 @@ div.path { .cards div.card-wrapper div div:hover, .path div.card-wrapper div div:hover { - border-color: var(--ibexa-dusk-black); + border-color: var(--cohesivo-dusk-black); } .cards div.card-wrapper div div { max-width: 10rem; @@ -815,8 +899,9 @@ div.path { .cards p.description, .path p.description { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); } + .main_nav { border-right: 1px solid var(--mid-grey); display: flex; @@ -922,7 +1007,7 @@ div.path { font-weight: 700; text-overflow: ellipsis; overflow: hidden; - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); } /* Page TOC */ @@ -956,7 +1041,7 @@ div.path { .md-nav--secondary li.level-1 a:focus { font-size: 16px; font-weight: 600; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); } .md-nav--secondary li.level-2 { @@ -984,7 +1069,7 @@ div.path { } .md-nav--secondary .md-nav__link--active { - border-left: 2px solid var(--ibexa-jazzberry); + border-left: 2px solid var(--cohesivo-violet); padding-left: 0.4rem; margin-left: -0.55rem; } @@ -1091,7 +1176,7 @@ div.path { } .md-nav--primary .level-4.md-nav__link--active { - border-left: 2px solid var(--ibexa-jazzberry); + border-left: 2px solid var(--cohesivo-violet); } .md-nav[data-md-level="3"] ul li { @@ -1108,7 +1193,7 @@ div.path { .md-nav--primary li label:focus, .md-nav--primary .level-4:hover, .md-nav--primary .level-4:focus { - color: var(--ibexa-jazzberry) !important; + color: var(--cohesivo-violet) !important; } .md-nav--primary>.md-nav__list>li:first-child { @@ -1139,7 +1224,10 @@ div.path { } .md-header__button.md-logo img { - width: inherit; + /* The Cohesivo lockup is icon + wordmark at ~4:1; constrain by height so it + fits the 56px header instead of inheriting the button width. */ + height: 32px; + width: auto; } .md-header__source { @@ -1186,7 +1274,7 @@ div.path { border: 1px solid var(--dark-grey); border-radius: 12px; font-size: 12px; - background-color: var(--ibexa-dusk-black); + background-color: var(--cohesivo-dusk-black); letter-spacing: 0.12px; margin-top: 3px; } @@ -1267,7 +1355,7 @@ ul.breadcrumbs li.breadcrumb-item { } ul.breadcrumbs li.breadcrumb-item-current { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); font-weight: 600; } @@ -1325,6 +1413,7 @@ ul.breadcrumbs li.breadcrumb-item-current { height: 100%; } } + .switcher { font-size: 13px; padding-top: 0.2rem; @@ -1349,7 +1438,7 @@ ul.breadcrumbs li.breadcrumb-item-current { .switcher__list dd { margin: 0; line-height: 1; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); } .switcher__list dd:focus, @@ -1436,7 +1525,7 @@ ul.breadcrumbs li.breadcrumb-item-current { width: auto; text-align: left; line-height: 1rem; - background-color: var(--ibexa-dusk-black); + background-color: var(--cohesivo-dusk-black); } .md-header__switcher .rst-versions .rst-current-version { @@ -1456,6 +1545,7 @@ ul.breadcrumbs li.breadcrumb-item-current { } } + body.menu-resizing { -webkit-touch-callout: none; -webkit-user-select: none; @@ -1465,7 +1555,6 @@ body.menu-resizing { user-select: none; } - .main_nav__resize-handler { width: 3px; height: 100%; @@ -1476,7 +1565,7 @@ body.menu-resizing { } .main_nav__resize-handler:hover { - background-color: #306CBE; + background-color: var(--cohesivo-violet); } @media only screen and (min-width: 76.1875em) { @@ -1611,7 +1700,7 @@ body.menu-resizing { } .md-nav--primary .md-nav:not([data-md-level="0"]):not([data-md-level="1"]) .md-nav__item--active > label { - border-left: 2px solid #AE1164; + border-left: 2px solid #4E24A5; } .md-nav--secondary .md-nav__title { @@ -1644,18 +1733,15 @@ body.menu-resizing { display: none; } - ul.breadcrumbs li.breadcrumb-item a { color: var(--dark-grey); text-decoration: underline; } ul.breadcrumbs li.breadcrumb-item-current span { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); } - - .md-typeset h1, .md-typeset h2, .md-typeset h3, @@ -1699,8 +1785,8 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-typeset .content-header__copy-fqcn { font-size: 14px; line-height: 18px; - color: #131C26; - border: 1px solid #131C26; + color: #0E1216; + border: 1px solid #0E1216; border-radius: 8px; padding: 4px 16px; margin-right: auto; @@ -1710,8 +1796,8 @@ ul.breadcrumbs li.breadcrumb-item-current span { } .md-typeset .content-header__copy-fqcn:hover { - color: var(--ibexa-jazzberry); - border-color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); + border-color: var(--cohesivo-violet); } .md-typeset .content-header__found-in { @@ -1721,7 +1807,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { } .md-typeset .content-header__found-in:hover { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-violet); } .md-typeset .content-header__found-in img { @@ -1729,7 +1815,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { } .md-typeset .content-header__found-in:hover img { - filter: invert(0.4) sepia(1) saturate(20) hue-rotate(299deg) brightness(0.67); + filter: invert(0.20) sepia(1) saturate(30) hue-rotate(254deg) brightness(0.65); } .md-typeset abbr { @@ -1769,7 +1855,6 @@ ul.breadcrumbs li.breadcrumb-item-current span { margin: 24px 0 0; } - .md-typeset .highlighttable, .md-typeset .highlight pre, .md-typeset .highlight pre code { @@ -1784,8 +1869,6 @@ ul.breadcrumbs li.breadcrumb-item-current span { padding: 16px; } - - .md-typeset .method-parameters { margin: 16px 0; width: 100%; @@ -1818,7 +1901,6 @@ ul.breadcrumbs li.breadcrumb-item-current span { margin-bottom: 0; } - .md-search__form .phpdocumentor-search-results.ds-dropdown-menu { display: inline-block; max-width: initial; @@ -1864,7 +1946,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-search__form .phpdocumentor-search-results .phpdocumentor-search-results__entry small { grid-area: namespace; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-dusk-black); font-weight: 700; font-size: 14px; padding: 4px 0 4px 12px; @@ -1881,12 +1963,10 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-search__form .phpdocumentor-search-results .phpdocumentor-search-results__entry:hover small, .md-search__form .phpdocumentor-search-results .phpdocumentor-search-results__entry:hover .phpdocumentor-summary { - background-color: rgba(69, 142, 225, .05); - cursor: pointer; + background-color: rgba(78, 36, 165, .05); + cursor: pointer; } - - .main-page h1 { margin-top: 75px; } @@ -1935,7 +2015,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-typeset ul.namespace-list li a { text-decoration: underline; white-space: nowrap; - color: #3474cc; + color: var(--link); } .md-typeset ul.namespace-list li p { diff --git a/docs/api/php_api/php_api_reference/images/arrow-right.svg b/docs/api/php_api/php_api_reference/images/arrow-right.svg index 1fb4a0c67d5..9de188d1ef3 100644 --- a/docs/api/php_api/php_api_reference/images/arrow-right.svg +++ b/docs/api/php_api/php_api_reference/images/arrow-right.svg @@ -1,5 +1,5 @@ - - + + diff --git a/docs/api/php_api/php_api_reference/images/caret-down.svg b/docs/api/php_api/php_api_reference/images/caret-down.svg index 2c4fb7e67e8..16f1a03d7cc 100644 --- a/docs/api/php_api/php_api_reference/images/caret-down.svg +++ b/docs/api/php_api/php_api_reference/images/caret-down.svg @@ -1,5 +1,5 @@ - + diff --git a/docs/api/php_api/php_api_reference/images/caret.svg b/docs/api/php_api/php_api_reference/images/caret.svg index 30fc40d1cd5..6bd53629070 100644 --- a/docs/api/php_api/php_api_reference/images/caret.svg +++ b/docs/api/php_api/php_api_reference/images/caret.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/api/php_api/php_api_reference/images/check.svg b/docs/api/php_api/php_api_reference/images/check.svg index 5c7c8c444c1..e06376f6512 100644 --- a/docs/api/php_api/php_api_reference/images/check.svg +++ b/docs/api/php_api/php_api_reference/images/check.svg @@ -1 +1 @@ - + diff --git a/docs/api/php_api/php_api_reference/images/cohesivo-logo.svg b/docs/api/php_api/php_api_reference/images/cohesivo-logo.svg new file mode 100644 index 00000000000..b7ecab22057 --- /dev/null +++ b/docs/api/php_api/php_api_reference/images/cohesivo-logo.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/api/php_api/php_api_reference/images/favicon.png b/docs/api/php_api/php_api_reference/images/favicon.png index 8a6e7f53846..6074c94f1c3 100644 Binary files a/docs/api/php_api/php_api_reference/images/favicon.png and b/docs/api/php_api/php_api_reference/images/favicon.png differ diff --git a/docs/api/php_api/php_api_reference/images/ibexa-dxp-logo.png b/docs/api/php_api/php_api_reference/images/ibexa-dxp-logo.png deleted file mode 100644 index 81f08b8b458..00000000000 Binary files a/docs/api/php_api/php_api_reference/images/ibexa-dxp-logo.png and /dev/null differ diff --git a/docs/api/php_api/php_api_reference/images/minus.svg b/docs/api/php_api/php_api_reference/images/minus.svg index 566636ab329..89c2ee5f9d6 100644 --- a/docs/api/php_api/php_api_reference/images/minus.svg +++ b/docs/api/php_api/php_api_reference/images/minus.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/api/php_api/php_api_reference/images/plus.svg b/docs/api/php_api/php_api_reference/images/plus.svg index 8bd777ee2d3..11641c5299b 100644 --- a/docs/api/php_api/php_api_reference/images/plus.svg +++ b/docs/api/php_api/php_api_reference/images/plus.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/api/php_api/php_api_reference/images/private.svg b/docs/api/php_api/php_api_reference/images/private.svg index 99bb1f96e25..4a1966c0617 100644 --- a/docs/api/php_api/php_api_reference/images/private.svg +++ b/docs/api/php_api/php_api_reference/images/private.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/api/php_api/php_api_reference/images/protected.svg b/docs/api/php_api/php_api_reference/images/protected.svg index 77cf345af45..dc7d555d2d9 100644 --- a/docs/api/php_api/php_api_reference/images/protected.svg +++ b/docs/api/php_api/php_api_reference/images/protected.svg @@ -1,4 +1,4 @@ - + diff --git a/docs/api/php_api/php_api_reference/images/public.svg b/docs/api/php_api/php_api_reference/images/public.svg index 02c59ab90a4..3932ef9c187 100644 --- a/docs/api/php_api/php_api_reference/images/public.svg +++ b/docs/api/php_api/php_api_reference/images/public.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/docs/css/codehilite.css b/docs/css/codehilite.css index df7773d93cd..039d1de687b 100644 --- a/docs/css/codehilite.css +++ b/docs/css/codehilite.css @@ -19,7 +19,7 @@ .highlight .p, .highlight .cp { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } /* HTML tags and YAML keys */ @@ -34,7 +34,7 @@ .highlight .nf, .highlight .fm, .highlight .nn { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /* Variable names */ @@ -42,12 +42,12 @@ .highlight .vc, .highlight .vg, .highlight .vi { - color: #41000F; + color: #3E4145; } /* Attributes */ .highlight .na { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /* Strings */ diff --git a/docs/css/custom.css b/docs/css/custom.css index 328359c8630..807903edca1 100644 --- a/docs/css/custom.css +++ b/docs/css/custom.css @@ -1,36 +1,6 @@ :root > * { - --ibexa-orange: rgb(255,71,19); - --ibexa-red: rgb(219,0,50); - --ibexa-jazzberry: rgb(174,17,100); - --ibexa-dusk-black: rgb(19,28,38); - --ibexa-snow: rgb(224,224,232); - --black: rgb(0,0,0); - --white: rgb(255,255,255); - --warm-stone: rgb(236,223,209); - --turquoise-pearl: rgb(71,190,219); - --yellow-orange: rgb(252,174,66); - --apricot: rgb(241,138,107); - --sherpa-blue: rgb(0,77,93); - - --mid-grey: rgb(201,201,208); - --dark-grey: rgb(151,151,151); - - - --caution-border: var(--ibexa-orange); - --note-border: var(--mid-grey); - --enterprise-border: var(--ibexa-jazzberry); - - --codeblock: rgb(89,96,103); - --inline-code: rgb(242,242,245); - --table-header: var(--codeblock); - --code-highlight: #D9E9FF; - - --link: rgb(0,71,206); - - /* Override Material colors */ - --md-accent-fg-color: var(--ibexa-jazzberry); - - + --admonition-radius: 10px; + --md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,'); --md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,'); --md-admonition-icon--caution: url('data:image/svg+xml;charset=utf-8,'); @@ -94,7 +64,7 @@ body, input { font-family: "Noto Sans", sans-serif; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } body { @@ -125,22 +95,30 @@ body { } [data-md-color-primary=blue-grey] .md-header { - background-color: var(--ibexa-dusk-black); - color: #fff; + background-color: var(--cohesivo-neutral-240); + color: var(--white); height: 56px; } .md-typeset a { color: var(--link); + text-decoration: underline; } .md-typeset a:hover, .md-typeset a:focus { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); +} + +.md-typeset .headerlink, +.md-typeset a.md-icon, +.md-typeset .tabbed-labels a, +.md-typeset .md-clipboard { + text-decoration: none; } .md-typeset th a { - color: #fff; + color: var(--white); } .md-typeset .md-icon { @@ -150,7 +128,7 @@ body { /* Headings */ .md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4, .md-typeset h5, .md-typeset h6 { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); line-height: 1; display: flex; align-items: center; @@ -194,7 +172,7 @@ body { } ul li::marker { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } ul li li { @@ -228,59 +206,113 @@ ul li li li { padding: .5rem; } -/* Admonitions */ +.md-typeset :is(.admonition-title,summary) { + background-color: var(--white); + box-shadow: none; + font-size: 16px; +} + -.md-typeset :is(.admonition,details):is(.tip,.note,.caution), -.md-typeset :is(.admonition-title,summary), -.md-typeset :is(.tip,.note)>:is(.admonition-title,summary) { - background-color: #ffffff; +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) { box-shadow: none; font-size: 16px; + border-width: 0 0 0 4px; + border-left-style: solid; + border-radius: 0 var(--admonition-radius) var(--admonition-radius) 0; + padding: 4px 12px; } -.md-typeset :is(.admonition,details):is(.tip,.note) -{ - border: 0.1rem solid var(--note-border); - border-radius: 0.1rem; +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :is(.admonition-title,summary) { + background-color: transparent; + border: 0; + font-size: 16px; + font-weight: 600; + margin: 8px 0; + padding: 0 0 0 28px; + position: relative; + min-height: 20px; + display: flex; + align-items: center; } -.md-typeset :is(.admonition,details):is(.caution) -{ - border: 0.1rem solid var(--caution-border); - border-radius: 0.1rem; +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :is(.admonition-title,summary)::before { + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 20px; + height: 20px; + margin: 0; } -.md-typeset .admonition.caution>.admonition-title { - border-color: var(--caution-border); +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :not(.admonition-title):not(summary) { + color: var(--cohesivo-neutral-240); } -.md-typeset .admonition:is(.note,.tip)>:is(.admonition-title) { - border-color: var(--note-border); +.md-typeset details:is(.tip,.note,.caution,.warning) > summary { + padding-right: 32px; + cursor: pointer; + list-style: none; } -.md-typeset :is(.admonition,details[open]):is(.note,.tip,.caution) :is(.admonition-title,summary) { - border-bottom: 1px solid var(--note-border); +.md-typeset details:is(.tip,.note,.caution,.warning) > summary::-webkit-details-marker { + display: none; } -/* Admonition icons */ +.md-typeset details:is(.tip,.note,.caution,.warning) > summary::after { + top: 50%; + right: 8px; + width: 20px; + height: 20px; + margin: 0; + transform: translateY(-50%); + transition: transform 0.2s; +} + +.md-typeset details[open]:is(.tip,.note,.caution,.warning) > summary::after { + transform: translateY(-50%) rotate(90deg); +} + +.md-typeset :is(.admonition,details):is(.tip,.note) { + background-color: var(--admonition-info-bg); + border-left-color: var(--admonition-info-bar); +} + +.md-typeset :is(.admonition,details):is(.tip,.note) > :is(.admonition-title,summary) { + color: var(--admonition-info-title); +} + +.md-typeset :is(.admonition,details):is(.tip,.note) > :is(.admonition-title,summary)::before { + background-color: var(--admonition-info-title); +} + +.md-typeset details:is(.tip,.note) > summary::after { + color: var(--admonition-info-title); +} + +.md-typeset :is(.admonition,details):is(.caution,.warning) { + background-color: var(--admonition-warning-bg); + border-left-color: var(--admonition-warning-bar); +} -.md-typeset .note > .admonition-title::before, -.md-typeset .tip > .admonition-title::before, -.md-typeset .note > summary::before, -.md-typeset .tip > summary::before { - background-color: var(--note-border); +.md-typeset :is(.admonition,details):is(.caution,.warning) > :is(.admonition-title,summary) { + color: var(--admonition-warning-title); } -.md-typeset :is(.admonition,details).caution>:is(.admonition-title,summary):before { - background-color: var(--caution-border); +.md-typeset :is(.admonition,details):is(.caution,.warning) > :is(.admonition-title,summary)::before { + background-color: var(--admonition-warning-title); -webkit-mask-image: var(--md-admonition-icon--caution); mask-image: var(--md-admonition-icon--caution); } +.md-typeset details:is(.caution,.warning) > summary::after { + color: var(--admonition-warning-title); +} + /* Tile admonition */ .md-typeset :is(.admonition):is(.tile) { - background-color: #ffffff; + background-color: var(--white); border: 1px solid #D4D4D4; border-radius: 5px; padding: 0.7rem; @@ -306,11 +338,11 @@ ul li li li { /* Code highlighting */ .md-typeset code, .md-typeset pre { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .md-typeset .highlighttable code, .md-typeset .highlighttable pre { - background-color: #fff; + background-color: var(--white); padding: 0; } @@ -329,7 +361,7 @@ ul li li li { } .md-typeset .highlighttable pre code::-webkit-scrollbar-track { - background-color: var(--ibexa-snow); + background-color: var(--cohesivo-neutral-60); } .md-typeset .highlighttable pre code::-webkit-scrollbar-thumb { @@ -350,7 +382,7 @@ ul li li li { } .md-typeset .highlighttable .linenodiv pre { - color: var(--ibexa-snow); + color: var(--cohesivo-neutral-60); background-color: var(--codeblock); } @@ -373,7 +405,7 @@ ul li li li { /* Code block titles */ .highlighttable span.filename { - background-color: var(--ibexa-snow); + background-color: var(--cohesivo-neutral-60); } /* Tables */ @@ -384,7 +416,7 @@ ul li li li { } .md-typeset table:not([class]) th { - color: var(--ibexa-snow); + color: var(--cohesivo-neutral-60); background-color: var(--table-header); } @@ -393,7 +425,7 @@ ul li li li { } .md-nav__link[data-md-state=blur] { - color: rgb(19, 28, 38); + color: var(--cohesivo-neutral-240); } figure { @@ -416,7 +448,7 @@ a.external:not(.card) { } [data-md-color-primary=blue-grey] .md-nav__link--active { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); font-weight: 700; } @@ -439,7 +471,7 @@ a.external:not(.card) { display: block; max-width: 100%; max-height: 90%; - background-color: #fff; + background-color: var(--white); } #modalCaption { @@ -447,7 +479,7 @@ a.external:not(.card) { display: block; text-align: center; font-size: 16px; - color: #fff; + color: var(--white); } .md-content img { @@ -497,7 +529,8 @@ a.external:not(.card) { .md-typeset .tabbed-set .tabbed-content { order: 99; - border: 1px solid var(--ibexa-snow); + background: var(--white); + border: 1px solid var(--cohesivo-neutral-60); padding: 4px 4px 4px 1rem; border-radius: 0 .2rem .2rem .2rem; } @@ -505,9 +538,11 @@ a.external:not(.card) { .md-typeset .tabbed-set label { font-size: .64rem; font-weight: 700; + background: var(--cohesivo-neutral-30); + color: var(--cohesivo-neutral-200); padding: 0.9375em 1.25em 0.78125em; - border: 1px solid var(--ibexa-snow); - border-bottom: 2px solid var(--ibexa-snow); + border: 1px solid var(--cohesivo-neutral-60); + border-bottom: 2px solid var(--cohesivo-neutral-60); border-radius: 4px 4px 0 0; } @@ -516,8 +551,8 @@ a.external:not(.card) { } .md-typeset .tabbed-labels > label:hover { - color: var(--ibexa-dusk-black); - border-bottom: 2px solid var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); + border-bottom: 2px solid var(--cohesivo-neutral-240); } .md-typeset .tabbed-set > input:first-child:checked ~ .tabbed-labels > :first-child, @@ -541,6 +576,8 @@ a.external:not(.card) { .md-typeset .tabbed-set > input:nth-child(19):checked ~ .tabbed-labels > :nth-child(19), .md-typeset .tabbed-set > input:nth-child(20):checked ~ .tabbed-labels > :nth-child(20) { color: var(--md-accent-fg-color); + background: var(--white); + border-bottom-color: var(--white); } .js .md-typeset .tabbed-labels:before { @@ -552,11 +589,11 @@ a.external:not(.card) { } .md-clipboard:focus, .md-clipboard:hover { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } .md-typeset .headerlink:focus, .md-typeset .headerlink:hover, .md-typeset :target>.headerlink { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /** Cards */ @@ -586,10 +623,10 @@ div.path { .cards div.card-wrapper div div{ border-radius: 5px; - background-color: #FFFFFF; + background-color: var(--white); padding: 0.7rem; margin-bottom: 0.4rem; - border: 1px solid #E0E0E8; + border: 1px solid var(--cohesivo-neutral-60); min-width: 230px; height: 240px; box-sizing: border-box; @@ -599,17 +636,29 @@ div.path { .cards div.card-wrapper div div, .path div.card-wrapper div div { - border: 1px solid #D4D4D4; + border: 1px solid var(--cohesivo-neutral-60); border-radius: 5px; - background-color: #FFFFFF; + background-color: var(--white); padding: 0.7rem; margin-bottom: 0.4rem; overflow: auto; + transition: border-color 0.2s, box-shadow 0.2s; } .cards div.card-wrapper div div:hover, .path div.card-wrapper div div:hover { - border-color: var(--ibexa-dusk-black); + border-color: var(--cohesivo-primary-80); + box-shadow: var(--cohesivo-shadow-tile-hover); +} + +.md-typeset .cards a.card, +.md-typeset .path a.card { + text-decoration: none; +} + +.md-typeset .cards a.card p.title, +.md-typeset .path a.card p.title { + text-decoration: underline; } .cards div.card-wrapper div div { max-width: 10rem; @@ -635,7 +684,7 @@ div.path { .cards p.description, .path p.description { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } #older-versions { @@ -651,7 +700,7 @@ div.path { gap: 0; margin: 12px 0 2rem 0; padding-bottom: 6px; - border-bottom: 1px solid var(--ibexa-snow); + border-bottom: 1px solid var(--cohesivo-neutral-60); } .md-typeset .page-action-btn { @@ -662,7 +711,7 @@ div.path { background: transparent; border: none; text-decoration: none; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); font-size: 13px; font-weight: 500; cursor: pointer; @@ -679,7 +728,7 @@ div.path { transform: translateY(-50%); height: 16px; width: 1px; - background: var(--ibexa-snow); + background: var(--cohesivo-neutral-60); } .page-action-btn svg { @@ -711,7 +760,7 @@ div.path { } .page-action-btn.page-action-btn--info { - background: color-mix(in srgb, var(--turquoise-pearl) 25%, white); - border-color: color-mix(in srgb, var(--turquoise-pearl) 40%, white); - color: var(--sherpa-blue); + background: color-mix(in srgb, var(--cohesivo-info-80) 25%, var(--white)); + border-color: color-mix(in srgb, var(--cohesivo-info-80) 40%, var(--white)); + color: var(--cohesivo-info-100); } diff --git a/docs/css/docs.switcher.css b/docs/css/docs.switcher.css index cb4e8073c72..807c016b586 100644 --- a/docs/css/docs.switcher.css +++ b/docs/css/docs.switcher.css @@ -22,7 +22,7 @@ .switcher__list dd { margin: 0; line-height: 1; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .switcher__list dd:focus, @@ -62,7 +62,7 @@ height: 0; border-style: solid; border-width: 8px 6px 0 6px; - border-color: #fff transparent transparent transparent; + border-color: var(--white) transparent transparent transparent; transition: transform .4s,-webkit-transform .4s; } @@ -76,7 +76,7 @@ pointer-events: initial; transform: none; padding-right: .3rem; - color: #fff; + color: var(--white); width: 100%; } @@ -85,7 +85,7 @@ margin: 0; opacity: 0; list-style: none; - background: #fff; + background: var(--white); overflow: hidden; border-radius: 2px; max-height: 0; @@ -109,11 +109,11 @@ width: auto; text-align: left; line-height: 1rem; - background-color: var(--ibexa-dusk-black); + background-color: var(--cohesivo-neutral-240); } .md-header__switcher .rst-versions .rst-current-version { - color: #fff; + color: var(--white); background-color: transparent; text-align: right; font-size: 100%; diff --git a/docs/css/front-page.css b/docs/css/front-page.css index e15209b5c4d..5e2ff7ae376 100644 --- a/docs/css/front-page.css +++ b/docs/css/front-page.css @@ -35,13 +35,13 @@ body { padding-right: 12px; } .md-typeset .front-page .info-tile { - border: 1px solid #ececf1; + border: 1px solid var(--cohesivo-neutral-50); border-radius: 12px; padding: 12px; display: flex; align-items: center; flex: 1; - box-shadow: 4px 22px 47px rgba(52, 116, 204, 0.05); + box-shadow: var(--cohesivo-shadow-tile); height: 100%; } .md-typeset .front-page .info-tile--link-card { @@ -52,13 +52,13 @@ body { margin-bottom: 0; } .md-typeset .front-page .info-tile--link-card h3 svg { - fill: #ae1164; + fill: var(--cohesivo-primary-80); width: 16px; height: 16px; margin-right: 4px; } .md-typeset .front-page .info-tile--link-card a { - color: #131c26; + color: var(--cohesivo-neutral-240); text-decoration: underline; } .md-typeset .front-page .info-tile__circle { @@ -71,13 +71,25 @@ body { align-items: center; flex-shrink: 0; } +.md-typeset .front-page .info-tile__circle--warning { + background-color: var(--cohesivo-warning-10); +} +.md-typeset .front-page .info-tile__circle--primary { + background-color: var(--cohesivo-primary-0); +} +.md-typeset .front-page .info-tile__circle--info { + background-color: var(--cohesivo-info-5); +} +.md-typeset .front-page .info-tile__circle--neutral { + background-color: var(--cohesivo-neutral-30); +} .md-typeset .front-page .info-tile__content { padding: 0 4px; margin-bottom: 18px; height: 100%; font-size: 12px; line-height: 18px; - color: #71767c; + color: var(--cohesivo-neutral-160); display: flex; flex-direction: column; justify-content: center; @@ -96,20 +108,20 @@ body { font-size: 22px; line-height: 26px; margin-top: 8px; - color: #131c26; + color: var(--cohesivo-neutral-240); } .md-typeset .front-page .info-tile__details { display: flex; justify-content: flex-end; align-items: center; font-size: 10px; - color: #ae1164; + color: var(--cohesivo-primary-80); } .md-typeset .front-page .info-tile__arrow-icon { width: 13px; height: 13px; margin-left: 4px; - fill: #ae1164; + fill: var(--cohesivo-primary-80); } .md-typeset .front-page .info-tile h3 { font-size: 18px; @@ -123,7 +135,6 @@ body { .md-typeset .front-page .info-tile ul { margin: 0 0 0 12px; list-style: none; - margin-left: 24px; } .md-typeset .front-page .info-tile ul li { padding: 4px; @@ -132,9 +143,15 @@ body { .md-typeset .front-page .info-tile ul li + li { margin-top: 16px; } +.md-typeset .front-page .info-tile ul { + margin-left: 24px; +} +.md-typeset .front-page a.info-tile { + text-decoration: none; +} .md-typeset .front-page a.info-tile:hover { - border-color: #ae1164; - box-shadow: 0px 22px 24px 0px rgba(174, 17, 100, 0.1); + border-color: var(--cohesivo-primary-80); + box-shadow: var(--cohesivo-shadow-tile-hover); text-decoration: none; } .md-typeset .front-page .notifications { @@ -143,7 +160,7 @@ body { } .md-typeset .front-page .notification { border-radius: 12px; - color: #131c26; + color: var(--cohesivo-neutral-240); font-size: 12px; padding: 32px; position: relative; @@ -163,11 +180,11 @@ body { line-height: 1.5; } .md-typeset .front-page .notification__content a { - color: #131c26; + color: var(--cohesivo-neutral-240); text-decoration: underline; } .md-typeset .front-page .notification__content a:hover { - color: #3474cc; + color: var(--cohesivo-info-80); } .md-typeset .front-page .notification__cta { position: relative; @@ -180,7 +197,7 @@ body { padding: 15px 16px; border-radius: 12px; font-size: 14px; - color: #ae1164; + color: var(--cohesivo-primary-80); } .md-typeset .front-page .notification__cta a + a { margin-left: 8px; @@ -204,19 +221,19 @@ body { padding-right: 240px; } .md-typeset .front-page .notification--latest-release .notification__cta a { - background: linear-gradient(to right, #db0032 0%, #ae1164 100%); - color: #ffffff; + background: var(--cohesivo-gradient-primary); + color: var(--cohesivo-neutral-10); } .md-typeset .front-page .notification--lts-update { - border: 2px solid #e0e0e8; + border: 2px solid var(--cohesivo-neutral-60); height: 100%; padding-top: 30px; } .md-typeset .front-page .notification--lts-update .notification__cta a:first-child { - border: 1px solid #ae1164; + border: 1px solid var(--cohesivo-primary-80); } .md-typeset .front-page .accordion { - border: 1px solid #ececf1; + border: 1px solid var(--cohesivo-neutral-50); border-radius: 12px; padding: 12px; } @@ -229,7 +246,7 @@ body { box-shadow: none; } .md-typeset .front-page .accordion details[open] summary { - border-bottom: 1px solid #e0e0e8; + border-bottom: 1px solid var(--cohesivo-neutral-60); padding-bottom: 16px; margin-bottom: 16px; } @@ -241,11 +258,11 @@ body { font-size: 14px; } .md-typeset .front-page .accordion details[open] .row a { - color: #131c26; + color: var(--cohesivo-neutral-240); text-decoration: underline; } .md-typeset .front-page .accordion details[open] .row a:hover { - color: #3474cc; + color: var(--cohesivo-info-80); } .md-typeset .front-page .accordion details[open] .row ul { margin: 0 0 0 12px; @@ -293,5 +310,3 @@ body { max-width: 25%; } } - -/*# sourceMappingURL=front-page.css.map */ diff --git a/docs/css/instantsearch.css b/docs/css/instantsearch.css index 5d27f45a609..90e783649b8 100644 --- a/docs/css/instantsearch.css +++ b/docs/css/instantsearch.css @@ -46,33 +46,33 @@ footer.md-footer { } .md-content .ais-InstantSearch .ais-Hits-item + .ais-Hits-item { - border-top: 1px solid #E0E0E8; + border-top: 1px solid var(--cohesivo-neutral-60); margin-top: 16px; padding-top: 16px; } .md-content .ais-InstantSearch .ais-Highlight-highlighted { - background-color: #ECF4FF; - color: #4191FF; + background-color: var(--cohesivo-primary-0); + color: var(--cohesivo-primary-80); font-size: inherit; line-height: inherit; } .md-content .ais-InstantSearch .instantsearch__entry { display: block; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .md-content .ais-InstantSearch .instantsearch__entry:hover, .md-content .ais-InstantSearch .instantsearch__entry:hover .instantsearch__entry-header, .md-content .ais-InstantSearch .instantsearch__entry:hover .instantsearch__entry-content { - color: var(--ibexa-jazzberry) + color: var(--cohesivo-primary-80) } .md-content .ais-InstantSearch .instantsearch__entry:hover mark, .md-content .ais-InstantSearch .instantsearch__entry:hover .instantsearch__entry-header mark, .md-content .ais-InstantSearch .instantsearch__entry:hover .instantsearch__entry-content mark { - color: var(--ibexa-jazzberry) + color: var(--cohesivo-primary-80) } .md-content .ais-InstantSearch .instantsearch__entry-header { @@ -90,7 +90,7 @@ footer.md-footer { } .md-content .ais-InstantSearch .instantsearch__entry-content { - color: #3B424A; + color: var(--cohesivo-neutral-200); font-size: 14px; line-height: 21px; letter-spacing: 0.12px; @@ -139,7 +139,7 @@ footer.md-footer { font-size: 14px; line-height: 21px; letter-spacing: 0.12px; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); height: 40px; min-width: 40px; display: flex; @@ -149,7 +149,7 @@ footer.md-footer { .md-content .ais-InstantSearch .ais-Pagination .ais-Pagination-item--selected .ais-Pagination-link, .md-content .ais-InstantSearch .ais-Pagination .ais-Pagination-link:hover { - background-color: #F3F3F6; + background-color: var(--cohesivo-neutral-30); border-radius: 5px; } diff --git a/docs/css/navigation.css b/docs/css/navigation.css index d6698cfb0ea..ded1c2d385b 100644 --- a/docs/css/navigation.css +++ b/docs/css/navigation.css @@ -49,7 +49,7 @@ font-weight: 700; text-overflow: ellipsis; overflow: hidden; - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /* Page TOC */ @@ -87,7 +87,7 @@ .md-nav--secondary li.level-1 a:focus { font-size: 16px; font-weight: 600; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .md-nav--secondary li.level-2 { @@ -115,7 +115,7 @@ } .md-nav--secondary .md-nav__link--active { - border-left: 2px solid var(--ibexa-jazzberry); + border-left: 2px solid var(--cohesivo-primary-80); padding-left: 0.4rem; margin-left: -0.55rem; } @@ -227,7 +227,7 @@ } .md-nav--primary .level-4.md-nav__link--active { - border-left: 2px solid var(--ibexa-jazzberry); + border-left: 2px solid var(--cohesivo-primary-80); } .md-nav[data-md-level="3"] ul li { @@ -244,7 +244,7 @@ .md-nav--primary li label:focus, .md-nav--primary .level-4:hover, .md-nav--primary .level-4:focus { - color: var(--ibexa-jazzberry) !important; + color: var(--cohesivo-primary-80) !important; } .md-nav--primary>.md-nav__list>li:first-child { @@ -275,7 +275,8 @@ } .md-header__button.md-logo img { - width: inherit; + height: 32px; + width: auto; } .md-header__source { @@ -324,7 +325,7 @@ border: 1px solid var(--dark-grey); border-radius: 12px; font-size: 12px; - background-color: var(--ibexa-dusk-black); + background-color: var(--cohesivo-neutral-240); letter-spacing: 0.12px; margin-top: 3px; } @@ -405,7 +406,7 @@ ul.breadcrumbs li.breadcrumb-item { } ul.breadcrumbs li.breadcrumb-item-current { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); font-weight: 600; } diff --git a/docs/css/pills.css b/docs/css/pills.css index e8286967eec..bcf13624e75 100644 --- a/docs/css/pills.css +++ b/docs/css/pills.css @@ -5,46 +5,46 @@ padding: 1px 8px; border: 1px solid; margin-right: 8px; - color: #A32768; + color: var(--cohesivo-primary-80); } .pill--headless { - color: #C4234A; - border-color: #C4234A; + color: var(--cohesivo-error-80); + border-color: var(--cohesivo-error-80); } .pill--headless::after { content: "Headless"; } .pill--experience { - color: #D3822B; - border-color: #D3822B; + color: var(--cohesivo-warning-110); + border-color: var(--cohesivo-warning-110); } .pill--experience::after { content: "Experience"; } .pill--commerce { - color: #A32768; - border-color: #A32768; + color: var(--cohesivo-primary-80); + border-color: var(--cohesivo-primary-80); } .pill--commerce::after { content: "Commerce"; } .pill--lts-update { - color: #5DA7C0; - border-color: #5DA7C0; + color: var(--cohesivo-info-80); + border-color: var(--cohesivo-info-80); } .pill--lts-update::after { content: "LTS Update"; } .pill--new-feature { - color: #2C9445; - border-color: #2C9445; + color: var(--cohesivo-success-100); + border-color: var(--cohesivo-success-100); } .pill--new-feature::after { content: "New feature"; } .pill--first-release { - color: #2C9445; - border-color: #2C9445; + color: var(--cohesivo-success-100); + border-color: var(--cohesivo-success-100); } .pill--first-release::after { content: "First release"; @@ -55,12 +55,10 @@ .pill--new { margin-right: 15px; align-self: center; - color: #3562A0; + color: var(--cohesivo-info-80); text-transform: lowercase; } div.pills { float: right; } - -/*# sourceMappingURL=pills.css.map */ diff --git a/docs/css/release-notes.css b/docs/css/release-notes.css index a6569538485..ee6df09e294 100644 --- a/docs/css/release-notes.css +++ b/docs/css/release-notes.css @@ -2,9 +2,11 @@ display: flex; justify-content: space-between; align-items: center; - padding: 0; + border-bottom: 1px solid var(--cohesivo-neutral-60); + padding: 8px 0; } .release-notes-header h1 { + line-height: 1.5; margin: 0; } @@ -29,7 +31,7 @@ .release-notes-filters__visible-item { padding: 4px 24px 4px 8px; margin-left: 8px; - background-color: #ECECF1; + background-color: var(--cohesivo-neutral-50); border-radius: 16px; font-size: 12px; position: relative; @@ -51,7 +53,7 @@ content: ""; width: 1px; height: 12px; - background: #131C26; + background: var(--cohesivo-neutral-240); position: absolute; top: 50%; left: 50%; @@ -66,10 +68,10 @@ position: relative; } .release-notes-filters__widget--expanded .release-notes-filters__btn { - color: #A32768; + color: var(--cohesivo-primary-80); } .release-notes-filters__widget--expanded .release-notes-filters__btn svg { - fill: #A32768; + fill: var(--cohesivo-primary-80); } .release-notes-filters__widget--expanded .release-notes-filters__items { display: block; @@ -81,10 +83,10 @@ height: 24px; } .release-notes-filters__btn:hover { - color: #A32768; + color: var(--cohesivo-primary-80); } .release-notes-filters__btn:hover svg { - fill: #A32768; + fill: var(--cohesivo-primary-80); } .release-notes-filters__btn-icon { position: relative; @@ -99,7 +101,7 @@ top: 0; display: none; content: ""; - background-color: #C4234A; + background-color: var(--cohesivo-error-80); width: 6px; height: 6px; border-radius: 50%; @@ -114,8 +116,8 @@ left: 50%; padding: 8px; transform: translate(-50%, 100%); - border: 1px solid #DCDDDE; - background-color: #FFFFFF; + border: 1px solid var(--cohesivo-neutral-60); + background-color: var(--cohesivo-neutral-10); border-radius: 8px; display: none; } @@ -132,13 +134,13 @@ appearance: none; position: relative; cursor: pointer; - background-color: #FFFFFF; + background-color: var(--cohesivo-neutral-10); width: 16px; height: 16px; border-radius: 2px; outline: none; - transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); - border: 1px solid #71767C; + transition: all var(--cohesivo-transition-duration) var(--cohesivo-transition-timing-function); + border: 1px solid var(--cohesivo-neutral-160); margin: 0 8px -2.5px 0; } .release-notes-filters__item input[type=checkbox]::after { @@ -154,18 +156,18 @@ transform: rotate(-45deg); } .release-notes-filters__item input[type=checkbox]:hover { - border-color: #AE1164; + border-color: var(--cohesivo-primary-80); } .release-notes-filters__item input[type=checkbox]:focus { - border-color: #AE1164; - box-shadow: 0 0 0 4px rgba(174, 17, 100, 0.25); + border-color: var(--cohesivo-primary-80); + box-shadow: var(--cohesivo-shadow-focus); } .release-notes-filters__item input[type=checkbox]:checked { - border-color: #AE1164; - background-color: #AE1164; + border-color: var(--cohesivo-primary-80); + background-color: var(--cohesivo-primary-80); } .release-notes-filters__item input[type=checkbox]:checked::after { - border-color: #FFFFFF; + border-color: var(--cohesivo-neutral-10); } .release-note { @@ -180,7 +182,7 @@ padding: 4px 0 8px; } .release-note__date { - color: #71767C; + color: var(--cohesivo-neutral-160); margin-bottom: 24px; } .release-note h2 { @@ -202,7 +204,7 @@ top: 11px; width: 9px; height: 9px; - border: 1px solid #A32768; + border: 1px solid var(--cohesivo-primary-80); border-radius: 50%; } .release-note::after { @@ -214,7 +216,7 @@ left: 4px; width: 1px; height: calc(100% - 8px); - background-color: #E0E0E8; + background-color: var(--cohesivo-neutral-60); } .release-note:last-of-type { padding-bottom: 0; @@ -225,5 +227,3 @@ .release-note--hidden { display: none; } - -/*# sourceMappingURL=release-notes.css.map */ diff --git a/docs/css/search.css b/docs/css/search.css index 883da560d85..cb6016b4b65 100644 --- a/docs/css/search.css +++ b/docs/css/search.css @@ -8,16 +8,16 @@ .md-header .md-search .algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content { background-color: transparent; - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } .md-header .md-search .algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--wrapper * { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } .md-header .md-search .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--highlight { - background-color: #ECF4FF; - color: #4191FF !important; + background-color: var(--cohesivo-primary-0); + color: var(--cohesivo-primary-80) !important; box-shadow: none; padding: 0; } @@ -28,7 +28,7 @@ .md-header .md-search .algolia-autocomplete .algolia-docsearch-suggestion:not(.algolia-docsearch-suggestion__main) { padding: 14px 0; - border-top: 1px solid #E0E0E8; + border-top: 1px solid var(--cohesivo-neutral-60); } .md-header .md-search .algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header { @@ -42,7 +42,7 @@ padding: 0 40px; border: 0; background-color: #F2F2F5; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); font-weight: 600; } @@ -60,7 +60,7 @@ text-align: left; padding: 0; margin: 0 40px; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .md-header .md-search .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--title { @@ -74,7 +74,7 @@ float: none; width: 100%; text-align: left; - color: #3B424A; + color: var(--cohesivo-neutral-200); font-size: 12px; line-height: 21px; letter-spacing: 0.12px; @@ -89,7 +89,7 @@ } .md-header .md-search .algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--text { - color: #3B424A; + color: var(--cohesivo-neutral-200); font-size: 14px; line-height: 21px; letter-spacing: 0.12px; @@ -128,7 +128,7 @@ } .md-header .md-search .algolia-autocomplete .search-page-link:hover { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); transition: color 125ms; } diff --git a/docs/css/tokens.css b/docs/css/tokens.css new file mode 100644 index 00000000000..385f5b4de5b --- /dev/null +++ b/docs/css/tokens.css @@ -0,0 +1,79 @@ +:root > * { + /* Primary — violet */ + --cohesivo-primary-100: #391b79; + --cohesivo-primary-80: #4e24a5; + --cohesivo-primary-60: #612dcd; + --cohesivo-primary-40: #7f53da; + --cohesivo-primary-5: #cfbef1; + --cohesivo-primary-0: #e7def8; + + /* Primary alt — lighter violet, used for gradients and shadow tints */ + --cohesivo-primary-alt-80: #7742d5; + --cohesivo-primary-alt-40: #b497e8; + + /* Neutral */ + --cohesivo-neutral-240: #0e1216; + --cohesivo-neutral-200: #3e4145; + --cohesivo-neutral-160: #6e7173; + --cohesivo-neutral-60: #e7e7e8; + --cohesivo-neutral-50: #ececec; + --cohesivo-neutral-30: #f5f6f6; + --cohesivo-neutral-10: #ffffff; + + /* Semantic */ + --cohesivo-info-100: #003f63; + --cohesivo-info-80: #19628f; + --cohesivo-info-5: #edf2f7; + + --cohesivo-success-100: #146d00; + --cohesivo-success-80: #378f19; + + --cohesivo-error-80: #ba2124; + + --cohesivo-warning-120: #8c3f00; + --cohesivo-warning-110: #a85000; + --cohesivo-warning-80: #dc8004; + --cohesivo-warning-10: #fcefde; + + --cohesivo-alert-info-bg: #f1ecfb; + + /* Gradient — $gradient-primary-1 in the design system */ + --cohesivo-gradient-primary: linear-gradient(90deg, var(--cohesivo-primary-80) 40%, var(--cohesivo-primary-alt-40) 100%); + + /* Shadows are tinted with primary-alt (#7742d5) */ + --cohesivo-shadow-tile: 4px 22px 47px rgba(119, 66, 213, 0.05); + --cohesivo-shadow-tile-hover: 0 22px 24px 0 rgba(119, 66, 213, 0.15); + + /* Focus ring, tinted with primary (#4e24a5) */ + --cohesivo-shadow-focus: 0 0 0 4px rgba(78, 36, 165, 0.25); + + /* Transitions */ + --cohesivo-transition-duration: 0.4s; + --cohesivo-transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); + + /* Legacy neutrals, kept for the rules that are not part of the palette */ + --black: #000000; + --white: var(--cohesivo-neutral-10); + --mid-grey: rgb(201, 201, 208); + --dark-grey: rgb(151, 151, 151); + --codeblock: rgb(89, 96, 103); + --inline-code: rgb(242, 242, 245); + --code-highlight: #d9e9ff; + + /* Semantic aliases */ + --link: var(--cohesivo-neutral-240); + --caution-border: var(--cohesivo-warning-80); + --note-border: var(--mid-grey); + --enterprise-border: var(--cohesivo-primary-80); + --table-header: var(--codeblock); + + --admonition-info-bg: var(--cohesivo-alert-info-bg); + --admonition-info-bar: var(--cohesivo-primary-80); + --admonition-info-title: var(--cohesivo-primary-100); + --admonition-warning-bg: var(--cohesivo-warning-10); + --admonition-warning-bar: var(--cohesivo-warning-80); + --admonition-warning-title: var(--cohesivo-warning-120); + + /* Override Material colors */ + --md-accent-fg-color: var(--cohesivo-primary-80); +} diff --git a/docs/images/Build site.svg b/docs/images/Build site.svg index 15682956d1b..45b4bcdb8c4 100644 --- a/docs/images/Build site.svg +++ b/docs/images/Build site.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/images/Idea.svg b/docs/images/Idea.svg index 53b42249c0c..909c3771ebc 100644 --- a/docs/images/Idea.svg +++ b/docs/images/Idea.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/images/Reward.svg b/docs/images/Reward.svg index f97cbe79bf2..97e791c8393 100644 --- a/docs/images/Reward.svg +++ b/docs/images/Reward.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/images/Value.svg b/docs/images/Value.svg index 7ef85ed4ac9..b8f8c284ee2 100644 --- a/docs/images/Value.svg +++ b/docs/images/Value.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/images/arrow_down.svg b/docs/images/arrow_down.svg index 2491397d0a8..44a0c13a2c1 100644 --- a/docs/images/arrow_down.svg +++ b/docs/images/arrow_down.svg @@ -2,8 +2,8 @@ - - + + diff --git a/docs/images/background-gradient.svg b/docs/images/background-gradient.svg index e08806a186c..cf31745b507 100644 --- a/docs/images/background-gradient.svg +++ b/docs/images/background-gradient.svg @@ -10,11 +10,11 @@ - - + + - + \ No newline at end of file diff --git a/docs/images/caret-double-back.svg b/docs/images/caret-double-back.svg index 7e3a53b1f0b..0d856f5e3b0 100644 --- a/docs/images/caret-double-back.svg +++ b/docs/images/caret-double-back.svg @@ -1,6 +1,6 @@ - + diff --git a/docs/images/caret-double-next.svg b/docs/images/caret-double-next.svg index 41d13ea6d05..b7a06ea28cb 100644 --- a/docs/images/caret-double-next.svg +++ b/docs/images/caret-double-next.svg @@ -1,6 +1,6 @@ - + diff --git a/docs/images/caret-down.svg b/docs/images/caret-down.svg index 36a9d2a5eb8..4bebd0f1de5 100644 --- a/docs/images/caret-down.svg +++ b/docs/images/caret-down.svg @@ -1,3 +1,3 @@ - + diff --git a/docs/images/caret.svg b/docs/images/caret.svg index d8ec32095df..a5cc7ea6692 100644 --- a/docs/images/caret.svg +++ b/docs/images/caret.svg @@ -1,3 +1,3 @@ - + diff --git a/docs/images/check.svg b/docs/images/check.svg index 5c7c8c444c1..e06376f6512 100644 --- a/docs/images/check.svg +++ b/docs/images/check.svg @@ -1 +1 @@ - + diff --git a/docs/images/cohesivo-logo-alt.svg b/docs/images/cohesivo-logo-alt.svg new file mode 100644 index 00000000000..75bea740aa4 --- /dev/null +++ b/docs/images/cohesivo-logo-alt.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/cohesivo-logo.svg b/docs/images/cohesivo-logo.svg new file mode 100644 index 00000000000..b7ecab22057 --- /dev/null +++ b/docs/images/cohesivo-logo.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/ez-icons.svg b/docs/images/ez-icons.svg index 4ae23b0ff32..00ce0df1688 100644 --- a/docs/images/ez-icons.svg +++ b/docs/images/ez-icons.svg @@ -97,7 +97,7 @@ - + @@ -107,7 +107,7 @@ - + diff --git a/docs/images/favicon.png b/docs/images/favicon.png index 8a6e7f53846..6074c94f1c3 100644 Binary files a/docs/images/favicon.png and b/docs/images/favicon.png differ diff --git a/docs/images/filters.svg b/docs/images/filters.svg index 575da38f6d2..55752792138 100644 --- a/docs/images/filters.svg +++ b/docs/images/filters.svg @@ -1,11 +1,11 @@ - - - - - - - - - + + + + + + + + + diff --git a/docs/images/ibexa-dxp-logo.png b/docs/images/ibexa-dxp-logo.png deleted file mode 100644 index 81f08b8b458..00000000000 Binary files a/docs/images/ibexa-dxp-logo.png and /dev/null differ diff --git a/docs/images/icons.svg b/docs/images/icons.svg index ff79aae458d..9594bd1b070 100644 --- a/docs/images/icons.svg +++ b/docs/images/icons.svg @@ -1,13 +1,13 @@ - + - + - + diff --git a/docs/images/minus.svg b/docs/images/minus.svg index 5334d011014..c6e53ca53c1 100644 --- a/docs/images/minus.svg +++ b/docs/images/minus.svg @@ -1,3 +1,3 @@ - + diff --git a/docs/images/notification-latest-release.svg b/docs/images/notification-latest-release.svg index 547a0a0b51b..529d71579ae 100644 --- a/docs/images/notification-latest-release.svg +++ b/docs/images/notification-latest-release.svg @@ -103,12 +103,12 @@ - - + + - - + + @@ -143,8 +143,8 @@ - - + + - + \ No newline at end of file diff --git a/docs/images/notification-lts-update.svg b/docs/images/notification-lts-update.svg index 1901c3bbd3c..78ea75e2c78 100644 --- a/docs/images/notification-lts-update.svg +++ b/docs/images/notification-lts-update.svg @@ -4,12 +4,12 @@ - - + + - - + + - + \ No newline at end of file diff --git a/docs/images/page_lg.svg b/docs/images/page_lg.svg index 7445daca172..bb124d168eb 100644 --- a/docs/images/page_lg.svg +++ b/docs/images/page_lg.svg @@ -1,3 +1,3 @@ - + diff --git a/docs/images/plus.svg b/docs/images/plus.svg index 6213eefa622..dce5c0cb537 100644 --- a/docs/images/plus.svg +++ b/docs/images/plus.svg @@ -1,3 +1,3 @@ - + diff --git a/docs/index.md b/docs/index.md index d349b297380..3ef170dcd51 100644 --- a/docs/index.md +++ b/docs/index.md @@ -8,7 +8,7 @@
-
+
@@ -24,7 +24,7 @@
-
+
@@ -40,7 +40,7 @@
-
+
@@ -56,7 +56,7 @@
-
+
diff --git a/docs/js/instantsearch.js b/docs/js/instantsearch.js index f54081060b1..3498a893c21 100644 --- a/docs/js/instantsearch.js +++ b/docs/js/instantsearch.js @@ -143,16 +143,16 @@ padding: 2, templates: { first: ` - + `, previous: ` - + `, next: ` - + `, last: ` - + `, }, }), diff --git a/mkdocs.yml b/mkdocs.yml index 7e1372683de..1b8db944909 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -996,7 +996,7 @@ theme: palette: primary: 'blue grey' accent: 'deep orange' - logo: 'images/ibexa-dxp-logo.png' + logo: 'images/cohesivo-logo.svg' extra: append_bootstrap: @@ -1049,6 +1049,7 @@ extra: extra_css: - fonts/MavenPro.css + - css/tokens.css - css/codehilite.css - css/switcher.css - css/custom.css diff --git a/scss/_variables.scss b/scss/_variables.scss deleted file mode 100644 index d13111283bb..00000000000 --- a/scss/_variables.scss +++ /dev/null @@ -1,32 +0,0 @@ -$transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); -$transition-duration: 0.4s; - -$color-primary-main: #A32768; - -$color-dark-85-white: #DCDDDE; -$color-dark-100-white: #FFFFFF; - -$color-info-main: #5DA7C0; - -$color-success-main: #2C9445; - -$color-error-main: #C4234A; - -$color-warning-dark-01: #D3822B; - -$color-primary: #AE1164; - -$color-light: #E0E0E8; -$color-light-400: #ECECF1; - -$color-dark: #131C26; -$color-dark-400: #71767C; - -$color-headless: #C4234A; -$color-experience: #D3822B; -$color-commerce: #A32768; -$color-lts-update: #5DA7C0; -$color-new-feature: #2C9445; -$color-first-release: #2C9445; - -$color-new-doc: #3562A0; diff --git a/scss/front-page.scss b/scss/front-page.scss index aa19cea5d76..cf1f261a7e6 100644 --- a/scss/front-page.scss +++ b/scss/front-page.scss @@ -1,27 +1,3 @@ - -$ibexa-color-primary: #ae1164; - -$ibexa-color-danger: #db0032; - -$ibexa-color-info-700: #275799; -$ibexa-color-info-600: #3474cc; - -$ibexa-color-dark: #131c26; -$ibexa-color-dark-400: #71767c; - -$ibexa-color-light: #e0e0e8; -$ibexa-color-light-300: #f3f3f6; -$ibexa-color-light-400: #ececf1; - -$ibexa-color-white: #ffffff; - -$ibexa-color-complementary: #47bedb; -$ibexa-color-complementary-800: #1c4c58; -$ibexa-color-complementary-700: #2b7283; -$ibexa-color-complementary-300: #b5e5f0; -$ibexa-color-complementary-200: #daf2f7; -$ibexa-color-complementary-100: #ecf8fb; - @mixin list() { margin: 0 0 0 12px; list-style: none; @@ -79,13 +55,13 @@ body { } .info-tile { - border: 1px solid $ibexa-color-light-400; + border: 1px solid var(--cohesivo-neutral-50); border-radius: 12px; padding: 12px; display: flex; align-items: center; flex: 1; - box-shadow: 4px 22px 47px rgba(52, 116, 204, 0.05); + box-shadow: var(--cohesivo-shadow-tile); height: 100%; &--link-card { @@ -98,7 +74,7 @@ body { h3 { svg { - fill: $ibexa-color-primary; + fill: var(--cohesivo-primary-80); width: 16px; height: 16px; margin-right: 4px; @@ -107,7 +83,7 @@ body { } a { - color: $ibexa-color-dark; + color: var(--cohesivo-neutral-240); text-decoration: underline; } } @@ -121,6 +97,22 @@ body { justify-content: center; align-items: center; flex-shrink: 0; + + &--warning { + background-color: var(--cohesivo-warning-10); + } + + &--primary { + background-color: var(--cohesivo-primary-0); + } + + &--info { + background-color: var(--cohesivo-info-5); + } + + &--neutral { + background-color: var(--cohesivo-neutral-30); + } } &__content { @@ -129,7 +121,7 @@ body { height: 100%; font-size: 12px; line-height: 18px; - color: $ibexa-color-dark-400; + color: var(--cohesivo-neutral-160); display: flex; flex-direction: column; justify-content: center; @@ -150,7 +142,7 @@ body { font-size: 22px; line-height: 26px; margin-top: 8px; - color: $ibexa-color-dark; + color: var(--cohesivo-neutral-240); } } @@ -159,14 +151,14 @@ body { justify-content: flex-end; align-items: center; font-size: 10px; - color: $ibexa-color-primary; + color: var(--cohesivo-primary-80); } &__arrow-icon { width: 13px; height: 13px; margin-left: 4px; - fill: $ibexa-color-primary; + fill: var(--cohesivo-primary-80); } h3 { @@ -188,9 +180,11 @@ body { } a.info-tile { + text-decoration: none; + &:hover { - border-color: $ibexa-color-primary; - box-shadow: 0px 22px 24px 0px rgba(174, 17, 100, 0.10); + border-color: var(--cohesivo-primary-80); + box-shadow: var(--cohesivo-shadow-tile-hover); text-decoration: none; } } @@ -202,7 +196,7 @@ body { .notification { border-radius: 12px; - color: $ibexa-color-dark; + color: var(--cohesivo-neutral-240); font-size: 12px; padding: 32px; position: relative; @@ -223,11 +217,11 @@ body { } a { - color: $ibexa-color-dark; + color: var(--cohesivo-neutral-240); text-decoration: underline; &:hover { - color: $ibexa-color-info-600; + color: var(--cohesivo-info-80); } } } @@ -243,7 +237,7 @@ body { padding: 15px 16px; border-radius: 12px; font-size: 14px; - color: $ibexa-color-primary; + color: var(--cohesivo-primary-80); & + a { margin-left: 8px; @@ -275,15 +269,15 @@ body { &__cta { a { - background: linear-gradient(to right, $ibexa-color-danger 0%, $ibexa-color-primary 100%); - color: $ibexa-color-white; + background: var(--cohesivo-gradient-primary); + color: var(--cohesivo-neutral-10); } } } } &--lts-update { - border: 2px solid $ibexa-color-light; + border: 2px solid var(--cohesivo-neutral-60); height: calc(100%); padding-top: 30px; @@ -291,7 +285,7 @@ body { &__cta { a { &:first-child { - border: 1px solid $ibexa-color-primary; + border: 1px solid var(--cohesivo-primary-80); } } } @@ -302,7 +296,7 @@ body { .accordion { $self: &; - border: 1px solid $ibexa-color-light-400; + border: 1px solid var(--cohesivo-neutral-50); border-radius: 12px; padding: 12px; @@ -315,7 +309,7 @@ body { box-shadow: none; summary { - border-bottom: 1px solid $ibexa-color-light; + border-bottom: 1px solid var(--cohesivo-neutral-60); padding-bottom: 16px; margin-bottom: 16px; @@ -331,11 +325,11 @@ body { font-size: 14px; a { - color: $ibexa-color-dark; + color: var(--cohesivo-neutral-240); text-decoration: underline; &:hover { - color: $ibexa-color-info-600; + color: var(--cohesivo-info-80); } } diff --git a/scss/pills.scss b/scss/pills.scss index e94a4c0a1aa..963c4a14ec0 100644 --- a/scss/pills.scss +++ b/scss/pills.scss @@ -1,4 +1,3 @@ -@use 'variables'; @use 'sass:list'; .pill { @@ -8,15 +7,15 @@ padding: 1px 8px; border: 1px solid; margin-right: 8px; - color: variables.$color-primary-main; + color: var(--cohesivo-primary-80); $types: ( - "headless": (variables.$color-headless, "Headless"), - "experience": (variables.$color-experience, "Experience"), - "commerce": (variables.$color-commerce, "Commerce"), - "lts-update": (variables.$color-lts-update, "LTS Update"), - "new-feature": (variables.$color-new-feature, "New feature"), - "first-release": (variables.$color-first-release, "First release") + "headless": (var(--cohesivo-error-80), "Headless"), + "experience": (var(--cohesivo-warning-110), "Experience"), + "commerce": (var(--cohesivo-primary-80), "Commerce"), + "lts-update": (var(--cohesivo-info-80), "LTS Update"), + "new-feature": (var(--cohesivo-success-100), "New feature"), + "first-release": (var(--cohesivo-success-100), "First release") ); @each $name, $values in $types { @@ -42,7 +41,7 @@ &--new { margin-right: 15px; align-self: center; - color: variables.$color-new-doc; + color: var(--cohesivo-info-80); text-transform: lowercase; } } diff --git a/scss/release-notes.scss b/scss/release-notes.scss index c9dd31091a1..38ace2cad18 100644 --- a/scss/release-notes.scss +++ b/scss/release-notes.scss @@ -1,10 +1,8 @@ -@use 'variables'; - .release-notes-header { display: flex; justify-content: space-between; align-items: center; - border-bottom: 1px solid variables.$color-dark-85-white; + border-bottom: 1px solid var(--cohesivo-neutral-60); padding: 8px 0; h1 { @@ -38,7 +36,7 @@ &__visible-item { padding: 4px 24px 4px 8px; margin-left: 8px; - background-color: variables.$color-light-400; + background-color: var(--cohesivo-neutral-50); border-radius: 16px; font-size: 12px; position: relative; @@ -63,7 +61,7 @@ content: ''; width: 1px; height: 12px; - background: variables.$color-dark; + background: var(--cohesivo-neutral-240); position: absolute; top: 50%; left: 50%; @@ -84,10 +82,10 @@ &--expanded { .release-notes-filters { &__btn { - color: variables.$color-primary-main; + color: var(--cohesivo-primary-80); svg { - fill: variables.$color-primary-main; + fill: var(--cohesivo-primary-80); } } @@ -105,10 +103,10 @@ height: 24px; &:hover { - color: variables.$color-primary-main; + color: var(--cohesivo-primary-80); svg { - fill: variables.$color-primary-main; + fill: var(--cohesivo-primary-80); } } } @@ -126,7 +124,7 @@ top: 0; display: none; content: ''; - background-color: variables.$color-error-main; + background-color: var(--cohesivo-error-80); width: 6px; height: 6px; border-radius: 50%; @@ -146,8 +144,8 @@ left: 50%; padding: 8px; transform: translate(-50%, 100%); - border: 1px solid variables.$color-dark-85-white; - background-color: variables.$color-dark-100-white; + border: 1px solid var(--cohesivo-neutral-60); + background-color: var(--cohesivo-neutral-10); border-radius: 8px; display: none; } @@ -166,13 +164,13 @@ appearance: none; position: relative; cursor: pointer; - background-color: variables.$color-dark-100-white; + background-color: var(--cohesivo-neutral-10); width: 16px; height: 16px; border-radius: 2px; outline: none; - transition: all variables.$transition-duration variables.$transition-timing-function; - border: 1px solid variables.$color-dark-400; + transition: all var(--cohesivo-transition-duration) var(--cohesivo-transition-timing-function); + border: 1px solid var(--cohesivo-neutral-160); margin: 0 8px -2.5px 0; &::after { @@ -189,20 +187,20 @@ } &:hover { - border-color: variables.$color-primary; + border-color: var(--cohesivo-primary-80); } &:focus { - border-color: variables.$color-primary; - box-shadow: 0 0 0 4px rgba(variables.$color-primary, 0.25); + border-color: var(--cohesivo-primary-80); + box-shadow: var(--cohesivo-shadow-focus); } &:checked { - border-color: variables.$color-primary; - background-color: variables.$color-primary; + border-color: var(--cohesivo-primary-80); + background-color: var(--cohesivo-primary-80); &::after { - border-color: variables.$color-dark-100-white; + border-color: var(--cohesivo-neutral-10); } } } @@ -222,7 +220,7 @@ } &__date { - color: variables.$color-dark-400; + color: var(--cohesivo-neutral-160); margin-bottom: 24px; } @@ -248,7 +246,7 @@ top: 11px; width: 9px; height: 9px; - border: 1px solid variables.$color-primary-main; + border: 1px solid var(--cohesivo-primary-80); border-radius: 50%; } @@ -261,7 +259,7 @@ left: 4px; width: 1px; height: calc(100% - 8px); - background-color: variables.$color-light; + background-color: var(--cohesivo-neutral-60); } &:last-of-type { diff --git a/tools/api_refs/.phpdoc/template/components/header-title.html.twig b/tools/api_refs/.phpdoc/template/components/header-title.html.twig index 9f9c3e68232..55f846545ed 100644 --- a/tools/api_refs/.phpdoc/template/components/header-title.html.twig +++ b/tools/api_refs/.phpdoc/template/components/header-title.html.twig @@ -1,4 +1,4 @@ -{% set logo_path = './images/ibexa-dxp-logo.png' %} +{% set logo_path = './images/cohesivo-logo.svg' %} label { - border-left: 2px solid #AE1164; + border-left: 2px solid var(--cohesivo-primary-80); } .md-nav--secondary .md-nav__title { @@ -180,7 +181,7 @@ body.menu-resizing { } .md-nav--primary .md-nav__item--active > label:not(.level-0):hover a { - color: #ffffff !important; + color: var(--white) !important; } .md-nav--primary .md-nav__item--nested.md-nav__item--active > .level-1:hover { @@ -206,7 +207,7 @@ ul.breadcrumbs li.breadcrumb-item a { } ul.breadcrumbs li.breadcrumb-item-current span { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } @@ -257,8 +258,8 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-typeset .content-header__copy-fqcn { font-size: 14px; line-height: 18px; - color: #131C26; - border: 1px solid #131C26; + color: var(--cohesivo-neutral-240); + border: 1px solid var(--cohesivo-neutral-240); border-radius: 8px; padding: 4px 16px; margin-right: auto; @@ -268,8 +269,8 @@ ul.breadcrumbs li.breadcrumb-item-current span { } .md-typeset .content-header__copy-fqcn:hover { - color: var(--ibexa-jazzberry); - border-color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); + border-color: var(--cohesivo-primary-80); } .md-typeset .content-header__found-in { @@ -279,7 +280,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { } .md-typeset .content-header__found-in:hover { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } .md-typeset .content-header__found-in img { @@ -287,7 +288,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { } .md-typeset .content-header__found-in:hover img { - filter: invert(0.4) sepia(1) saturate(20) hue-rotate(299deg) brightness(0.67); + filter: invert(0.20) sepia(1) saturate(30) hue-rotate(254deg) brightness(0.65); } .md-typeset abbr { @@ -431,7 +432,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-search__form .phpdocumentor-search-results .phpdocumentor-search-results__entry small { grid-area: namespace; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); font-weight: 700; font-size: 14px; padding: 4px 0 4px 12px; @@ -448,8 +449,8 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-search__form .phpdocumentor-search-results .phpdocumentor-search-results__entry:hover small, .md-search__form .phpdocumentor-search-results .phpdocumentor-search-results__entry:hover .phpdocumentor-summary { - background-color: rgba(69, 142, 225, .05); - cursor: pointer; + background-color: var(--cohesivo-primary-tint-5); + cursor: pointer; } @@ -505,7 +506,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { .md-typeset ul.namespace-list li a { text-decoration: underline; white-space: nowrap; - color: #3474cc; + color: var(--link); } .md-typeset ul.namespace-list li p { @@ -538,7 +539,7 @@ ul.breadcrumbs li.breadcrumb-item-current span { opacity: 0; position: absolute; z-index: 1; - color: #FFFFFF; + color: var(--white); background-color: #2B333C; border-radius: 4px; padding: 4px 12px; diff --git a/tools/api_refs/.phpdoc/template/css/codehilite.css.twig b/tools/api_refs/.phpdoc/template/css/codehilite.css.twig index df7773d93cd..039d1de687b 100644 --- a/tools/api_refs/.phpdoc/template/css/codehilite.css.twig +++ b/tools/api_refs/.phpdoc/template/css/codehilite.css.twig @@ -19,7 +19,7 @@ .highlight .p, .highlight .cp { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } /* HTML tags and YAML keys */ @@ -34,7 +34,7 @@ .highlight .nf, .highlight .fm, .highlight .nn { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /* Variable names */ @@ -42,12 +42,12 @@ .highlight .vc, .highlight .vg, .highlight .vi { - color: #41000F; + color: #3E4145; } /* Attributes */ .highlight .na { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /* Strings */ diff --git a/tools/api_refs/.phpdoc/template/css/custom.css.twig b/tools/api_refs/.phpdoc/template/css/custom.css.twig index 2d847df510c..86d0e83e0d0 100644 --- a/tools/api_refs/.phpdoc/template/css/custom.css.twig +++ b/tools/api_refs/.phpdoc/template/css/custom.css.twig @@ -1,37 +1,6 @@ :root > * { - --ibexa-orange: rgb(255,71,19); - --ibexa-red: rgb(219,0,50); - --ibexa-jazzberry: rgb(174,17,100); - --ibexa-dusk-black: rgb(19,28,38); - --ibexa-snow: rgb(224,224,232); - --black: rgb(0,0,0); - --white: rgb(255,255,255); - --warm-stone: rgb(236,223,209); - --turquoise-pearl: rgb(71,190,219); - --yellow-orange: rgb(252,174,66); - --apricot: rgb(241,138,107); - --sherpa-blue: rgb(0,77,93); - - --mid-grey: rgb(201,201,208); - --dark-grey: rgb(151,151,151); - - --color-warning-dark-01: rgb(211,130,43); - --color-primary-main: rgb(163,39,104); - --caution-border: var(--ibexa-orange); - --note-border: var(--mid-grey); - --enterprise-border: var(--ibexa-jazzberry); - - --codeblock: rgb(89,96,103); - --inline-code: rgb(242,242,245); - --table-header: var(--codeblock); - --code-highlight: #D9E9FF; - - --link: rgb(0,71,206); - - /* Override Material colors */ - --md-accent-fg-color: var(--ibexa-jazzberry); - - + --admonition-radius: 10px; + --md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,'); --md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,'); --md-admonition-icon--caution: url('data:image/svg+xml;charset=utf-8,'); @@ -95,7 +64,7 @@ body, input { font-family: "Noto Sans", sans-serif; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } body { @@ -126,22 +95,30 @@ body { } [data-md-color-primary=blue-grey] .md-header { - background-color: var(--ibexa-dusk-black); - color: #fff; + background-color: var(--cohesivo-neutral-240); + color: var(--white); height: 56px; } .md-typeset a { color: var(--link); + text-decoration: underline; } .md-typeset a:hover, .md-typeset a:focus { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); +} + +.md-typeset .headerlink, +.md-typeset a.md-icon, +.md-typeset .tabbed-labels a, +.md-typeset .md-clipboard { + text-decoration: none; } .md-typeset th a { - color: #fff; + color: var(--white); } .md-typeset .md-icon { @@ -151,7 +128,7 @@ body { /* Headings */ .md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4, .md-typeset h5, .md-typeset h6 { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); line-height: 1; } @@ -186,7 +163,7 @@ body { } ul li::marker { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } ul li li { @@ -194,7 +171,7 @@ ul li li { } ul li li::marker { - color: black; + color: var(--black); } ul li li li { @@ -220,59 +197,116 @@ ul li li li { padding: .5rem; } -/* Admonitions */ +.md-typeset :is(.admonition-title,summary) { + background-color: var(--white); + box-shadow: none; + font-size: 16px; +} -.md-typeset :is(.admonition,details):is(.tip,.note,.caution), -.md-typeset :is(.admonition-title,summary), -.md-typeset :is(.tip,.note)>:is(.admonition-title,summary) { - background-color: #ffffff; +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) { box-shadow: none; font-size: 16px; + border-width: 0 0 0 4px; + border-left-style: solid; + border-radius: 0 var(--admonition-radius) var(--admonition-radius) 0; + padding: 4px 12px; +} + +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :is(.admonition-title,summary) { + background-color: transparent; + border: 0; + font-size: 16px; + font-weight: 600; + margin: 8px 0; + padding: 0 0 0 28px; + position: relative; + min-height: 20px; + display: flex; + align-items: center; +} + +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :is(.admonition-title,summary)::before { + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 20px; + height: 20px; + margin: 0; +} + +.md-typeset :is(.admonition,details):is(.tip,.note,.caution,.warning) > :not(.admonition-title):not(summary) { + color: var(--cohesivo-neutral-240); } -.md-typeset :is(.admonition,details):is(.tip,.note) -{ - border: 0.1rem solid var(--note-border); - border-radius: 0.1rem; +.md-typeset details:is(.tip,.note,.caution,.warning) > summary { + padding-right: 32px; + cursor: pointer; + list-style: none; } -.md-typeset :is(.admonition,details):is(.caution) -{ - border: 0.1rem solid var(--caution-border); - border-radius: 0.1rem; +.md-typeset details:is(.tip,.note,.caution,.warning) > summary::-webkit-details-marker { + display: none; } -.md-typeset .admonition.caution>.admonition-title { - border-color: var(--caution-border); +.md-typeset details:is(.tip,.note,.caution,.warning) > summary::after { + top: 50%; + right: 8px; + width: 20px; + height: 20px; + margin: 0; + transform: translateY(-50%); + transition: transform 0.2s; } -.md-typeset .admonition:is(.note,.tip)>:is(.admonition-title) { - border-color: var(--note-border); +.md-typeset details[open]:is(.tip,.note,.caution,.warning) > summary::after { + transform: translateY(-50%) rotate(90deg); } -.md-typeset :is(.admonition,details[open]):is(.note,.tip,.caution) :is(.admonition-title,summary) { - border-bottom: 1px solid var(--note-border); +/* note / tip — the app's .ibexa-alert--info */ +.md-typeset :is(.admonition,details):is(.tip,.note) { + background-color: var(--admonition-info-bg); + border-left-color: var(--admonition-info-bar); } -/* Admonition icons */ +.md-typeset :is(.admonition,details):is(.tip,.note) > :is(.admonition-title,summary) { + color: var(--admonition-info-title); +} -.md-typeset .note > .admonition-title::before, -.md-typeset .tip > .admonition-title::before, -.md-typeset .note > summary::before, -.md-typeset .tip > summary::before { - background-color: var(--note-border); +.md-typeset :is(.admonition,details):is(.tip,.note) > :is(.admonition-title,summary)::before { + background-color: var(--admonition-info-title); } -.md-typeset :is(.admonition,details).caution>:is(.admonition-title,summary):before { - background-color: var(--caution-border); +/* Material sets `color` on the marker per admonition type; its background is + currentcolor, so re-pointing colour alone recolours the whole chevron. */ +.md-typeset details:is(.tip,.note) > summary::after { + color: var(--admonition-info-title); +} + +/* caution / warning — the app's .ibexa-alert--warning */ +.md-typeset :is(.admonition,details):is(.caution,.warning) { + background-color: var(--admonition-warning-bg); + border-left-color: var(--admonition-warning-bar); +} + +.md-typeset :is(.admonition,details):is(.caution,.warning) > :is(.admonition-title,summary) { + color: var(--admonition-warning-title); +} + +.md-typeset :is(.admonition,details):is(.caution,.warning) > :is(.admonition-title,summary)::before { + background-color: var(--admonition-warning-title); -webkit-mask-image: var(--md-admonition-icon--caution); mask-image: var(--md-admonition-icon--caution); } +.md-typeset details:is(.caution,.warning) > summary::after { + color: var(--admonition-warning-title); +} + /* Tile admonition */ .md-typeset :is(.admonition):is(.tile) { - background-color: #ffffff; + background-color: var(--white); border: 1px solid #D4D4D4; border-radius: 5px; padding: 0.7rem; @@ -298,11 +332,11 @@ ul li li li { /* Code highlighting */ .md-typeset code, .md-typeset pre { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .md-typeset .highlighttable code, .md-typeset .highlighttable pre { - background-color: #fff; + background-color: var(--white); padding: 0; } @@ -321,7 +355,7 @@ ul li li li { } .md-typeset .highlighttable pre code::-webkit-scrollbar-track { - background-color: var(--ibexa-snow); + background-color: var(--cohesivo-neutral-60); } .md-typeset .highlighttable pre code::-webkit-scrollbar-thumb { @@ -342,7 +376,7 @@ ul li li li { } .md-typeset .highlighttable .linenodiv pre { - color: var(--ibexa-snow); + color: var(--cohesivo-neutral-60); background-color: var(--codeblock); } @@ -365,7 +399,7 @@ ul li li li { /* Code block titles */ .highlighttable span.filename { - background-color: var(--ibexa-snow); + background-color: var(--cohesivo-neutral-60); } /* Tables */ @@ -376,7 +410,7 @@ ul li li li { } .md-typeset table:not([class]) th { - color: var(--ibexa-snow); + color: var(--cohesivo-neutral-60); background-color: var(--table-header); } @@ -404,7 +438,7 @@ a.external:not(.card) { } [data-md-color-primary=blue-grey] .md-nav__link--active { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); font-weight: 700; } @@ -427,7 +461,7 @@ a.external:not(.card) { display: block; max-width: 100%; max-height: 90%; - background-color: #fff; + background-color: var(--white); } #modalCaption { @@ -435,7 +469,7 @@ a.external:not(.card) { display: block; text-align: center; font-size: 16px; - color: #fff; + color: var(--white); } .md-content img { @@ -485,7 +519,10 @@ a.external:not(.card) { .md-typeset .tabbed-set .tabbed-content { order: 99; - border: 1px solid var(--ibexa-snow); + /* The panel is an opaque white card so the set reads the same on a plain page + and on a tinted admonition fill. */ + background: var(--white); + border: 1px solid var(--cohesivo-neutral-60); padding: 4px 4px 4px 1rem; border-radius: 0 .2rem .2rem .2rem; } @@ -493,9 +530,12 @@ a.external:not(.card) { .md-typeset .tabbed-set label { font-size: .64rem; font-weight: 700; + /* Unselected tabs sit recessed behind the panel. */ + background: var(--cohesivo-neutral-30); + color: var(--cohesivo-neutral-200); padding: 0.9375em 1.25em 0.78125em; - border: 1px solid var(--ibexa-snow); - border-bottom: 2px solid var(--ibexa-snow); + border: 1px solid var(--cohesivo-neutral-60); + border-bottom: 2px solid var(--cohesivo-neutral-60); border-radius: 4px 4px 0 0; } @@ -504,8 +544,8 @@ a.external:not(.card) { } .md-typeset .tabbed-labels>label:hover { - color: var(--ibexa-dusk-black); - border-bottom: 2px solid var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); + border-bottom: 2px solid var(--cohesivo-neutral-240); } div.pills { @@ -525,8 +565,8 @@ div.pills { } .experience-pill { - color: var(--color-warning-dark-01); - border: 1px solid var(--color-warning-dark-01); + color: var(--cohesivo-warning-110); + border: 1px solid var(--cohesivo-warning-110); } .commerce-pill::after { @@ -534,8 +574,8 @@ div.pills { } .commerce-pill { - color: var(--color-primary-main); - border: 1px solid var(--color-primary-main); + color: var(--cohesivo-primary-80); + border: 1px solid var(--cohesivo-primary-80); } .optional-pill::after { @@ -543,16 +583,16 @@ div.pills { } .optional-pill { - color: var(--sherpa-blue); - border: 1px solid var(--sherpa-blue); + color: var(--cohesivo-info-100); + border: 1px solid var(--cohesivo-info-100); } .md-clipboard:focus, .md-clipboard:hover { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } .md-typeset .headerlink:focus, .md-typeset .headerlink:hover, .md-typeset :target>.headerlink { - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /** Cards */ @@ -582,10 +622,10 @@ div.path { .cards div.card-wrapper div div{ border-radius: 5px; - background-color: #FFFFFF; + background-color: var(--white); padding: 0.7rem; margin-bottom: 0.4rem; - border: 1px solid #E0E0E8; + border: 1px solid var(--cohesivo-neutral-60); min-width: 230px; height: 240px; box-sizing: border-box; @@ -597,7 +637,7 @@ div.path { .path div.card-wrapper div div { border: 1px solid #D4D4D4; border-radius: 5px; - background-color: #FFFFFF; + background-color: var(--white); padding: 0.7rem; margin-bottom: 0.4rem; overflow: auto; @@ -605,7 +645,7 @@ div.path { .cards div.card-wrapper div div:hover, .path div.card-wrapper div div:hover { - border-color: var(--ibexa-dusk-black); + border-color: var(--cohesivo-neutral-240); } .cards div.card-wrapper div div { max-width: 10rem; @@ -631,5 +671,5 @@ div.path { .cards p.description, .path p.description { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } diff --git a/tools/api_refs/.phpdoc/template/css/docs.switcher.css.twig b/tools/api_refs/.phpdoc/template/css/docs.switcher.css.twig index b2e9b63fab7..47cb3ee8991 100644 --- a/tools/api_refs/.phpdoc/template/css/docs.switcher.css.twig +++ b/tools/api_refs/.phpdoc/template/css/docs.switcher.css.twig @@ -22,7 +22,7 @@ .switcher__list dd { margin: 0; line-height: 1; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .switcher__list dd:focus, @@ -62,7 +62,7 @@ height: 0; border-style: solid; border-width: 8px 6px 0 6px; - border-color: #fff transparent transparent transparent; + border-color: var(--white) transparent transparent transparent; transition: transform .4s,-webkit-transform .4s; } @@ -76,7 +76,7 @@ pointer-events: initial; transform: none; padding-right: .3rem; - color: #fff; + color: var(--white); width: 100%; } @@ -85,7 +85,7 @@ margin: 0; opacity: 0; list-style: none; - background: #fff; + background: var(--white); overflow: hidden; border-radius: 2px; max-height: 0; @@ -109,11 +109,11 @@ width: auto; text-align: left; line-height: 1rem; - background-color: var(--ibexa-dusk-black); + background-color: var(--cohesivo-neutral-240); } .md-header__switcher .rst-versions .rst-current-version { - color: #fff; + color: var(--white); background-color: transparent; text-align: right; font-size: 100%; diff --git a/tools/api_refs/.phpdoc/template/css/navigation.css.twig b/tools/api_refs/.phpdoc/template/css/navigation.css.twig index 0cf8687f424..c413b6f766f 100644 --- a/tools/api_refs/.phpdoc/template/css/navigation.css.twig +++ b/tools/api_refs/.phpdoc/template/css/navigation.css.twig @@ -103,7 +103,7 @@ font-weight: 700; text-overflow: ellipsis; overflow: hidden; - color: var(--ibexa-jazzberry); + color: var(--cohesivo-primary-80); } /* Page TOC */ @@ -137,7 +137,7 @@ .md-nav--secondary li.level-1 a:focus { font-size: 16px; font-weight: 600; - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); } .md-nav--secondary li.level-2 { @@ -165,7 +165,7 @@ } .md-nav--secondary .md-nav__link--active { - border-left: 2px solid var(--ibexa-jazzberry); + border-left: 2px solid var(--cohesivo-primary-80); padding-left: 0.4rem; margin-left: -0.55rem; } @@ -272,7 +272,7 @@ } .md-nav--primary .level-4.md-nav__link--active { - border-left: 2px solid var(--ibexa-jazzberry); + border-left: 2px solid var(--cohesivo-primary-80); } .md-nav[data-md-level="3"] ul li { @@ -289,7 +289,7 @@ .md-nav--primary li label:focus, .md-nav--primary .level-4:hover, .md-nav--primary .level-4:focus { - color: var(--ibexa-jazzberry) !important; + color: var(--cohesivo-primary-80) !important; } .md-nav--primary>.md-nav__list>li:first-child { @@ -320,7 +320,8 @@ } .md-header__button.md-logo img { - width: inherit; + height: 32px; + width: auto; } .md-header__source { @@ -339,7 +340,7 @@ font-weight: 600; padding: 1rem 0.8rem; border-bottom: 1px solid var(--mid-grey); - background: white; + background: var(--white); } .push { @@ -367,7 +368,7 @@ border: 1px solid var(--dark-grey); border-radius: 12px; font-size: 12px; - background-color: var(--ibexa-dusk-black); + background-color: var(--cohesivo-neutral-240); letter-spacing: 0.12px; margin-top: 3px; } @@ -448,7 +449,7 @@ ul.breadcrumbs li.breadcrumb-item { } ul.breadcrumbs li.breadcrumb-item-current { - color: var(--ibexa-dusk-black); + color: var(--cohesivo-neutral-240); font-weight: 600; } diff --git a/tools/api_refs/.phpdoc/template/css/tokens.css.twig b/tools/api_refs/.phpdoc/template/css/tokens.css.twig new file mode 100644 index 00000000000..75a8c123e48 --- /dev/null +++ b/tools/api_refs/.phpdoc/template/css/tokens.css.twig @@ -0,0 +1,85 @@ +:root > * { + /* Primary — violet */ + --cohesivo-primary-100: #391b79; + --cohesivo-primary-80: #4e24a5; + --cohesivo-primary-60: #612dcd; + --cohesivo-primary-40: #7f53da; + --cohesivo-primary-5: #cfbef1; + --cohesivo-primary-0: #e7def8; + + /* Primary alt — lighter violet, used for gradients and shadow tints */ + --cohesivo-primary-alt-80: #7742d5; + --cohesivo-primary-alt-40: #b497e8; + + /* Neutral */ + --cohesivo-neutral-240: #0e1216; + --cohesivo-neutral-200: #3e4145; + --cohesivo-neutral-160: #6e7173; + --cohesivo-neutral-60: #e7e7e8; + --cohesivo-neutral-50: #ececec; + --cohesivo-neutral-30: #f5f6f6; + --cohesivo-neutral-10: #ffffff; + + /* Semantic */ + --cohesivo-info-100: #003f63; + --cohesivo-info-80: #19628f; + --cohesivo-info-5: #edf2f7; + + --cohesivo-success-100: #146d00; + --cohesivo-success-80: #378f19; + + --cohesivo-error-80: #ba2124; + + --cohesivo-warning-120: #8c3f00; + --cohesivo-warning-110: #a85000; + --cohesivo-warning-80: #dc8004; + --cohesivo-warning-10: #fcefde; + + --cohesivo-alert-info-bg: #f1ecfb; + + /* Gradient — $gradient-primary-1 in the design system */ + --cohesivo-gradient-primary: linear-gradient(90deg, var(--cohesivo-primary-80) 40%, var(--cohesivo-primary-alt-40) 100%); + + /* Shadows are tinted with primary-alt (#7742d5) */ + --cohesivo-shadow-tile: 4px 22px 47px rgba(119, 66, 213, 0.05); + --cohesivo-shadow-tile-hover: 0 22px 24px 0 rgba(119, 66, 213, 0.15); + + /* Focus ring, tinted with primary (#4e24a5) */ + --cohesivo-shadow-focus: 0 0 0 4px rgba(78, 36, 165, 0.25); + + /* Flat tint of primary (#4e24a5), for hovered rows */ + --cohesivo-primary-tint-5: rgba(78, 36, 165, 0.05); + + /* Transitions */ + --cohesivo-transition-duration: 0.4s; + --cohesivo-transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); + + /* Legacy neutrals, kept for the rules that are not part of the palette */ + --black: #000000; + --white: var(--cohesivo-neutral-10); + --mid-grey: rgb(201, 201, 208); + --dark-grey: rgb(151, 151, 151); + --codeblock: rgb(89, 96, 103); + --inline-code: rgb(242, 242, 245); + --code-highlight: #d9e9ff; + + /* Semantic aliases */ + /* Links follow the app: dark ink, violet on hover. */ + --link: var(--cohesivo-neutral-240); + --caution-border: var(--cohesivo-warning-80); + --note-border: var(--mid-grey); + --enterprise-border: var(--cohesivo-primary-80); + --table-header: var(--codeblock); + + /* Admonitions — the product's .ibexa-alert silhouette with the fill taken + from the lightest step of the same ramp. */ + --admonition-info-bg: var(--cohesivo-alert-info-bg); + --admonition-info-bar: var(--cohesivo-primary-80); + --admonition-info-title: var(--cohesivo-primary-100); + --admonition-warning-bg: var(--cohesivo-warning-10); + --admonition-warning-bar: var(--cohesivo-warning-80); + --admonition-warning-title: var(--cohesivo-warning-120); + + /* Override Material colors */ + --md-accent-fg-color: var(--cohesivo-primary-80); +} diff --git a/tools/api_refs/.phpdoc/template/images/arrow-right.svg b/tools/api_refs/.phpdoc/template/images/arrow-right.svg index 1fb4a0c67d5..9de188d1ef3 100644 --- a/tools/api_refs/.phpdoc/template/images/arrow-right.svg +++ b/tools/api_refs/.phpdoc/template/images/arrow-right.svg @@ -1,5 +1,5 @@ - - + + diff --git a/tools/api_refs/.phpdoc/template/images/caret-down.svg b/tools/api_refs/.phpdoc/template/images/caret-down.svg index 2c4fb7e67e8..16f1a03d7cc 100644 --- a/tools/api_refs/.phpdoc/template/images/caret-down.svg +++ b/tools/api_refs/.phpdoc/template/images/caret-down.svg @@ -1,5 +1,5 @@ - + diff --git a/tools/api_refs/.phpdoc/template/images/caret.svg b/tools/api_refs/.phpdoc/template/images/caret.svg index 30fc40d1cd5..6bd53629070 100644 --- a/tools/api_refs/.phpdoc/template/images/caret.svg +++ b/tools/api_refs/.phpdoc/template/images/caret.svg @@ -1,4 +1,4 @@ - + diff --git a/tools/api_refs/.phpdoc/template/images/check.svg b/tools/api_refs/.phpdoc/template/images/check.svg index 5c7c8c444c1..e06376f6512 100644 --- a/tools/api_refs/.phpdoc/template/images/check.svg +++ b/tools/api_refs/.phpdoc/template/images/check.svg @@ -1 +1 @@ - + diff --git a/tools/api_refs/.phpdoc/template/images/cohesivo-logo.svg b/tools/api_refs/.phpdoc/template/images/cohesivo-logo.svg new file mode 100644 index 00000000000..b7ecab22057 --- /dev/null +++ b/tools/api_refs/.phpdoc/template/images/cohesivo-logo.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/api_refs/.phpdoc/template/images/favicon.png b/tools/api_refs/.phpdoc/template/images/favicon.png index 8a6e7f53846..6074c94f1c3 100644 Binary files a/tools/api_refs/.phpdoc/template/images/favicon.png and b/tools/api_refs/.phpdoc/template/images/favicon.png differ diff --git a/tools/api_refs/.phpdoc/template/images/ibexa-dxp-logo.png b/tools/api_refs/.phpdoc/template/images/ibexa-dxp-logo.png deleted file mode 100644 index 81f08b8b458..00000000000 Binary files a/tools/api_refs/.phpdoc/template/images/ibexa-dxp-logo.png and /dev/null differ diff --git a/tools/api_refs/.phpdoc/template/images/minus.svg b/tools/api_refs/.phpdoc/template/images/minus.svg index 566636ab329..89c2ee5f9d6 100644 --- a/tools/api_refs/.phpdoc/template/images/minus.svg +++ b/tools/api_refs/.phpdoc/template/images/minus.svg @@ -1,4 +1,4 @@ - + diff --git a/tools/api_refs/.phpdoc/template/images/plus.svg b/tools/api_refs/.phpdoc/template/images/plus.svg index 8bd777ee2d3..11641c5299b 100644 --- a/tools/api_refs/.phpdoc/template/images/plus.svg +++ b/tools/api_refs/.phpdoc/template/images/plus.svg @@ -1,4 +1,4 @@ - + diff --git a/tools/api_refs/.phpdoc/template/images/private.svg b/tools/api_refs/.phpdoc/template/images/private.svg index 99bb1f96e25..4a1966c0617 100644 --- a/tools/api_refs/.phpdoc/template/images/private.svg +++ b/tools/api_refs/.phpdoc/template/images/private.svg @@ -1,4 +1,4 @@ - + diff --git a/tools/api_refs/.phpdoc/template/images/protected.svg b/tools/api_refs/.phpdoc/template/images/protected.svg index 77cf345af45..dc7d555d2d9 100644 --- a/tools/api_refs/.phpdoc/template/images/protected.svg +++ b/tools/api_refs/.phpdoc/template/images/protected.svg @@ -1,4 +1,4 @@ - + diff --git a/tools/api_refs/.phpdoc/template/images/public.svg b/tools/api_refs/.phpdoc/template/images/public.svg index 02c59ab90a4..3932ef9c187 100644 --- a/tools/api_refs/.phpdoc/template/images/public.svg +++ b/tools/api_refs/.phpdoc/template/images/public.svg @@ -1,11 +1,11 @@ - - - - - - + + + + + + diff --git a/tools/api_refs/.phpdoc/template/layout.html.twig b/tools/api_refs/.phpdoc/template/layout.html.twig index bdb92a16600..bb5f4b6db1c 100644 --- a/tools/api_refs/.phpdoc/template/layout.html.twig +++ b/tools/api_refs/.phpdoc/template/layout.html.twig @@ -3,7 +3,7 @@ {% block head %} - {% block title %}{{ project.name }} (Ibexa Documentation){% endblock %} + {% block title %}{{ project.name }} (Cohesivo Documentation){% endblock %} {% endblock %} diff --git a/tools/api_refs/README.md b/tools/api_refs/README.md index 26000776669..ddb1d128ce4 100644 --- a/tools/api_refs/README.md +++ b/tools/api_refs/README.md @@ -48,6 +48,21 @@ The default templates version is not always the same as the phpDocumentor binary To update the default templates version, the overriding custom templates must be updated as well to obtain a better or equal result without bug. See `PHPDOC_VERSION` and `PHPDOC_TEMPLATE_VERSION`. +### Unresolved references in the REST OpenAPI schema + +`redocly build-docs` fails with `Error: Invalid reference token: ` when the +dumped schema contains a `$ref` to a component it does not define. The message +carries no file, path or line, so the build lints the schema first, with +`tools/api_refs/redocly-lint.yaml`, to report the endpoint and line behind it. +The lint is deliberately non-fatal: `build-docs` remains the gate. + +The schema is generated by API Platform from the `#[Get]`/`#[Post]`/… attributes +on the REST controllers, so such a reference is a product-side issue, not a doc +one. Report it against the package owning the endpoint the lint names. + +When the build fails, the schema it was built from is kept as the +`openapi-schema` artifact of the GitHub Actions run. + ## Advanced usage `tools/api_refs/api_refs.sh` has a set of internal variables that might be edited for particular usages. diff --git a/tools/api_refs/api_refs.sh b/tools/api_refs/api_refs.sh index 7c3bba8647c..5ab802c8fc9 100755 --- a/tools/api_refs/api_refs.sh +++ b/tools/api_refs/api_refs.sh @@ -22,6 +22,7 @@ PHPDOC_DIR="$(pwd)/tools/api_refs/.phpdoc"; # Absolute path to phpDocumentor res REDOCLY_CONFIG_TEMPLATE="$(pwd)/tools/api_refs/redocly.yaml.template"; # Absolute path to Redocly configuration template file REDOCLY_CONFIG="$(pwd)/tools/api_refs/redocly.yaml"; # Absolute path to Redocly configuration file (generated from template) REDOCLY_TEMPLATE="$(pwd)/tools/api_refs/redocly.hbs"; # Absolute path to Redocly wrapping template +REDOCLY_LINT_CONFIG="$(pwd)/tools/api_refs/redocly-lint.yaml"; # Absolute path to the Redocly configuration used to report unresolved $refs in the dumped schema OPENAPI_FIX="$(pwd)/tools/api_refs/openapi.php"; # A script editing and fixing few things on the dumped schema (should be temporary and fixes reported to source) PHP_BINARY="php -d error_reporting=`php -r 'echo E_ALL & ~E_DEPRECATED;'`"; # Avoid depreciation messages from phpDocumentor/Reflection/issues/529 when using PHP 8.2 or higher @@ -230,13 +231,22 @@ fi; echo 'Dump REST OpenAPI schema… '; $PHP_BINARY bin/console ibexa:openapi --yaml \ - | sed "s@info:@info:\n x-logo:\n url: 'https://doc.ibexa.co/en/latest/images/ibexa-dxp-logo.png'@" \ + | sed "s@info:@info:\n x-logo:\n url: 'https://doc.ibexa.co/en/latest/images/cohesivo-logo-alt.svg'@" \ > openapi.yaml; $PHP_BINARY bin/console ibexa:openapi \ - | sed 's@"info": {@"info": {\n "x-logo": {\n "url": "https://doc.ibexa.co/en/latest/images/ibexa-dxp-logo.png"\n },@' \ + | sed 's@"info": {@"info": {\n "x-logo": {\n "url": "https://doc.ibexa.co/en/latest/images/cohesivo-logo-alt.svg"\n },@' \ > openapi.json; echo 'Fix REST OpenAPI schema… '; $PHP_BINARY $OPENAPI_FIX; +echo 'Check the dumped REST OpenAPI schema for unresolved references… '; +# `redocly build-docs` reports an unresolved $ref as nothing but +# "Invalid reference token: ", with no file, path or line, which makes such +# a failure very hard to trace back to the endpoint that caused it. Linting first +# names the exact location. Kept non-fatal on purpose: `build-docs` below stays +# the gate, so this can only ever add information, never break a working build. +if ! redocly lint openapi.yaml --config $REDOCLY_LINT_CONFIG; then + echo '::error title=Unresolved references in the REST OpenAPI schema::The dumped schema references components it does not define; see the paths reported above. This makes the "redocly build-docs" step below fail with "Invalid reference token".'; +fi; echo 'Build REST Reference… '; echo 'Generate Redocly config from template… '; # Replace version with the base branch diff --git a/tools/api_refs/redocly-lint.yaml b/tools/api_refs/redocly-lint.yaml new file mode 100644 index 00000000000..06f94073193 --- /dev/null +++ b/tools/api_refs/redocly-lint.yaml @@ -0,0 +1,11 @@ +# Diagnostic-only ruleset for the dumped REST OpenAPI schema. +# +# `redocly build-docs` reports an unresolved $ref as nothing but +# "Invalid reference token: ", with no file, path, or line. Linting with +# this config first names the exact location, so the build log is actionable. +# +# Every other rule is off on purpose: this is a diagnostic, not a style gate. +extends: [] + +rules: + no-unresolved-refs: error diff --git a/tools/api_refs/redocly.hbs b/tools/api_refs/redocly.hbs index adc027ee0a5..d1d3ecf71c2 100644 --- a/tools/api_refs/redocly.hbs +++ b/tools/api_refs/redocly.hbs @@ -6,15 +6,62 @@ {{title}} - + {{{redocHead}}} - {{#unless disableGoogleFont}}{{/unless}} @@ -37,13 +84,12 @@ el.style.borderRadius = "0px"; }); - // Style logo - let logo = document.querySelector('img[src$="ibexa-dxp-logo.png"]'); - logo.onclick = () => { - let pathParts = document.location.pathname.split('/').slice(0, 3); - document.location = pathParts.join('/') + '/api/rest_api/rest_api_usage/rest_api_usage/'; - }; - logo.setAttribute('style', 'cursor: pointer; margin: 13px;'); + let logo = document.querySelector('img[src$="cohesivo-logo-alt.svg"]'); + logo.onclick = () => { + let pathParts = document.location.pathname.split('/').slice(0, 3); + document.location = pathParts.join('/') + '/api/rest_api/rest_api_usage/rest_api_usage/'; + }; + logo.setAttribute('style', 'cursor: pointer; margin: 13px;'); }, 500); }); diff --git a/tools/api_refs/redocly.yaml b/tools/api_refs/redocly.yaml index 955e16e9c77..6c50b76da10 100644 --- a/tools/api_refs/redocly.yaml +++ b/tools/api_refs/redocly.yaml @@ -1,9 +1,30 @@ openapi: hideHostname: true theme: + # Cohesivo palette. Without this block Redoc renders in its stock indigo. + # Values mirror docs/css/tokens.css; primary is --cohesivo-primary-80. + colors: + primary: + main: '#4E24A5' + success: + main: '#146D00' + warning: + main: '#A85000' + error: + main: '#BA2124' + text: + primary: '#0E1216' + typography: + fontFamily: "'Noto Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif" + headings: + fontFamily: "'Work Sans', 'Futura', 'Avenir Next', sans-serif" + code: + color: '#4E24A5' + sidebar: + activeTextColor: '#4E24A5' logo: - maxWidth: '76px!important' - maxHeight: '26px' + maxWidth: '160px!important' + maxHeight: '32px' downloadUrls: - title: Download as YAML url: 'https://raw.githubusercontent.com/ibexa/documentation-developer/6.0/docs/api/rest_api/rest_api_reference/openapi.yaml' diff --git a/tools/api_refs/redocly.yaml.template b/tools/api_refs/redocly.yaml.template index 0d4c112bba7..25ef49095a1 100644 --- a/tools/api_refs/redocly.yaml.template +++ b/tools/api_refs/redocly.yaml.template @@ -1,9 +1,30 @@ openapi: hideHostname: true theme: + # Cohesivo palette. Without this block Redoc renders in its stock indigo. + # Values mirror docs/css/tokens.css; primary is --cohesivo-primary-80. + colors: + primary: + main: '#4E24A5' + success: + main: '#146D00' + warning: + main: '#A85000' + error: + main: '#BA2124' + text: + primary: '#0E1216' + typography: + fontFamily: "'Noto Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif" + headings: + fontFamily: "'Work Sans', 'Futura', 'Avenir Next', sans-serif" + code: + color: '#4E24A5' + sidebar: + activeTextColor: '#4E24A5' logo: - maxWidth: '76px!important' - maxHeight: '26px' + maxWidth: '160px!important' + maxHeight: '32px' downloadUrls: - title: Download as YAML url: 'https://raw.githubusercontent.com/ibexa/documentation-developer/$VERSION/docs/api/rest_api/rest_api_reference/openapi.yaml'