UNPKG

admin-lte

Version:

Responsive open source admin dashboard and control panel.

1 lines 62.8 kB
{"version":3,"sources":["../../src/scss/adminlte-docs.scss","../../src/scss/mixins/_animations.scss","../../src/scss/_docs.scss","../../node_modules/bootstrap/scss/mixins/_border-radius.scss","../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","dist/css/adminlte-docs.rtl.css","../../node_modules/bootstrap/scss/mixins/_transition.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * AdminLTE v4.0.4 — documentation styles\n * Styles for the documentation and FAQ pages only (body.docs-page /\n * body.faq-page). Applications never need this file; it is loaded by the\n * docs pages in addition to adminlte.css.\n */\n\n// Bootstrap Configuration\n// ---------------------------------------------------\n@import \"bootstrap/scss/functions\";\n@import \"bootstrap-overrides\";\n@import \"bootstrap/scss/variables\";\n@import \"bootstrap/scss/variables-dark\";\n@import \"bootstrap/scss/maps\";\n@import \"bootstrap/scss/mixins\";\n\n// AdminLTE Configuration\n// ---------------------------------------------------\n@import \"variables\";\n@import \"variables-dark\";\n@import \"mixins\";\n\n// Documentation styles\n// ---------------------------------------------------\n@import \"docs\";\n","//\n// Mixins: Animation\n//\n\n\n@keyframes flipInX {\n 0% {\n opacity: 0;\n transition-timing-function: ease-in;\n transform: perspective(400px) rotate3d(1, 0, 0, 90deg);\n }\n\n 40% {\n transition-timing-function: ease-in;\n transform: perspective(400px) rotate3d(1, 0, 0, -20deg);\n }\n\n 60% {\n opacity: 1;\n transform: perspective(400px) rotate3d(1, 0, 0, 10deg);\n }\n\n 80% {\n transform: perspective(400px) rotate3d(1, 0, 0, -5deg);\n }\n\n 100% {\n transform: perspective(400px);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n@keyframes shake {\n 0% {\n transform: translate(2px, 1px) rotate(0deg);\n }\n 10% {\n transform: translate(-1px, -2px) rotate(-2deg);\n }\n 20% {\n transform: translate(-3px, 0) rotate(3deg);\n }\n 30% {\n transform: translate(0, 2px) rotate(0deg);\n }\n 40% {\n transform: translate(1px, -1px) rotate(1deg);\n }\n 50% {\n transform: translate(-1px, 2px) rotate(-1deg);\n }\n 60% {\n transform: translate(-3px, 1px) rotate(0deg);\n }\n 70% {\n transform: translate(2px, 1px) rotate(-2deg);\n }\n 80% {\n transform: translate(-1px, -1px) rotate(4deg);\n }\n 90% {\n transform: translate(2px, 2px) rotate(0deg);\n }\n 100% {\n transform: translate(1px, -2px) rotate(-1deg);\n }\n}\n\n@keyframes wobble {\n 0% {\n transform: none;\n }\n\n 15% {\n transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);\n }\n\n 30% {\n transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n\n 45% {\n transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n\n 60% {\n transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);\n }\n\n 75% {\n transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);\n }\n\n 100% {\n transform: none;\n }\n}\n","//\n// Component: Docs\n//\n// Visual treatment for documentation pages. Body class `.docs-page` opts in.\n// Demo pages are not affected.\n//\n\n// Inline code blocks rendered by MDX (Astro highlight default class)\n.astro-code {\n padding: .75rem;\n @include border-radius($border-radius);\n}\n\n.docs-page {\n // Constrain the docs card to a comfortable reading width.\n // Tables and code blocks inside can still scroll horizontally if needed.\n .app-content > .container-fluid {\n max-width: 60rem; // ~960px\n\n @include media-breakpoint-up(xxl) {\n max-width: 64rem;\n }\n }\n\n //\n // Card body — breathing room + prose typography.\n // Only applied inside docs content cards so demo-page card content\n // stays unchanged.\n //\n .card > .card-body {\n padding: 1.5rem;\n font-size: 1rem;\n line-height: 1.7;\n color: var(--#{$prefix}body-color);\n\n @include media-breakpoint-up(md) {\n padding: 2.5rem;\n }\n\n //\n // Heading hierarchy. The MDX content in src/html/components/docs/ uses\n // ##### (h5) as the dominant section heading and ###### (h6) as a\n // sub-heading (most visible in FAQ.mdx, where h5 is a topic and h6 is\n // a question). Style h5 as a major section and h6 as a sub-section so\n // the visual hierarchy matches the semantic one.\n //\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n .h1,\n .h2,\n .h3,\n .h4,\n .h5,\n .h6 {\n margin-top: 2em;\n margin-bottom: .5em;\n font-weight: 600;\n line-height: 1.3;\n color: var(--#{$prefix}emphasis-color);\n scroll-margin-top: 4rem; // anchor-link friendly\n\n &:first-child {\n margin-top: 0;\n }\n }\n\n h2,\n .h2 {\n padding-bottom: .35em;\n font-size: 1.75rem;\n border-bottom: 1px solid var(--#{$prefix}border-color);\n }\n\n h3,\n .h3 {\n font-size: 1.4rem;\n }\n\n h4,\n .h4 {\n font-size: 1.2rem;\n }\n\n // h5 is the dominant section heading across docs MDX files. Give it\n // a visible separator above so sections are easy to scan.\n h5,\n .h5 {\n padding-top: 1.5em;\n margin-top: 2.5em;\n font-size: 1.3rem;\n border-top: 1px solid var(--#{$prefix}border-color);\n\n &:first-child {\n padding-top: 0;\n border-top: 0;\n }\n }\n\n // h6 is the sub-section / FAQ question style. Smaller than h5 but\n // still distinctly heading-like, with a touch of accent colour to\n // separate from body text.\n h6,\n .h6 {\n margin-top: 1.75em;\n font-size: 1.08rem;\n color: var(--#{$prefix}emphasis-color);\n }\n\n //\n // Paragraphs and lists.\n //\n p,\n ul,\n ol,\n dl,\n blockquote,\n table {\n margin-bottom: 1.1rem;\n }\n\n ul,\n ol {\n padding-left: 1.5rem;\n\n li {\n margin-bottom: .35rem;\n }\n\n // Tighter nested lists\n ul,\n ol {\n margin-top: .35rem;\n margin-bottom: 0;\n }\n }\n\n // Lead-style first paragraph (just after a heading)\n h2 + p,\n h3 + p,\n h5 + p {\n margin-top: 0;\n }\n\n //\n // Inline code — pill style that complements MDX's syntax-highlighted blocks.\n //\n p code,\n li code,\n td code,\n th code,\n h2 code,\n h3 code,\n h4 code,\n h5 code,\n h6 code {\n padding: .15em .4em;\n font-size: .875em;\n color: var(--#{$prefix}emphasis-color);\n background: var(--#{$prefix}tertiary-bg);\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius($border-radius-sm);\n }\n\n //\n // Code blocks.\n //\n pre.astro-code,\n pre {\n padding: 1rem 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.5rem;\n overflow-x: auto;\n font-size: .875rem;\n line-height: 1.6;\n @include border-radius($border-radius);\n\n code {\n padding: 0;\n background: transparent;\n border: 0;\n }\n }\n\n //\n // Tables — reference-doc styling with hairline borders.\n //\n table {\n width: 100%;\n margin-top: 1.25rem;\n margin-bottom: 1.5rem;\n overflow: hidden;\n font-size: .95rem;\n border-collapse: collapse;\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius($border-radius-sm);\n\n th,\n td {\n padding: .65rem .9rem;\n text-align: left;\n vertical-align: top;\n border-bottom: 1px solid var(--#{$prefix}border-color);\n }\n\n th {\n font-weight: 600;\n color: var(--#{$prefix}emphasis-color);\n background: var(--#{$prefix}tertiary-bg);\n }\n\n tr:last-child td {\n border-bottom: 0;\n }\n\n code {\n white-space: nowrap;\n }\n }\n\n //\n // Blockquotes used as info callouts.\n //\n blockquote {\n padding: .85rem 1.1rem;\n margin-top: 1.25rem;\n color: var(--#{$prefix}emphasis-color);\n background: var(--#{$prefix}info-bg-subtle);\n border-left: 4px solid var(--#{$prefix}info-border-subtle);\n @include border-radius($border-radius-sm);\n\n p:last-child {\n margin-bottom: 0;\n }\n\n code {\n background: rgba(0, 0, 0, .05);\n }\n }\n\n //\n // Prose links — stand out more than Bootstrap defaults.\n //\n a:not(.btn):not(.nav-link) {\n color: var(--#{$prefix}primary);\n text-decoration: underline;\n text-decoration-thickness: 1px;\n text-underline-offset: 3px;\n\n &:hover {\n text-decoration-thickness: 2px;\n }\n }\n\n //\n // Horizontal rule — used as additional section separator.\n //\n hr {\n margin: 2.5rem 0;\n border: 0;\n border-top: 1px solid var(--#{$prefix}border-color);\n opacity: 1;\n }\n\n //\n // Lead paragraph — the first paragraph in any doc is a summary.\n // Visually heavier so it functions as a deck.\n //\n > p:first-child,\n > p:first-of-type {\n margin-bottom: 2rem;\n font-size: 1.125rem;\n line-height: 1.6;\n color: var(--#{$prefix}body-color);\n }\n\n //\n // FAQ / disclosure accordion — uses native <details>/<summary>.\n // Add `.faq-item` to <details> to opt in.\n //\n details.faq-item {\n margin-bottom: .5rem;\n overflow: hidden;\n background: var(--#{$prefix}body-bg);\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius($border-radius);\n @include transition(border-color .15s ease, box-shadow .15s ease);\n\n &:hover {\n border-color: var(--#{$prefix}primary-border-subtle);\n }\n\n &[open] {\n background: var(--#{$prefix}body-bg);\n border-color: var(--#{$prefix}primary-border-subtle);\n box-shadow: 0 1px 3px rgba(0, 0, 0, .04);\n }\n\n summary {\n position: relative;\n padding: .9rem 3rem .9rem 1.1rem;\n font-size: 1rem;\n font-weight: 600;\n color: var(--#{$prefix}emphasis-color);\n list-style: none;\n cursor: pointer;\n user-select: none;\n @include transition(color .15s ease);\n\n // Hide the default disclosure triangle in Webkit/Blink\n &::-webkit-details-marker {\n display: none;\n }\n\n // Hide the marker in modern Firefox too\n &::marker {\n content: \"\";\n }\n\n &:hover {\n color: var(--#{$prefix}primary);\n }\n\n // Right-side chevron, rotates on open\n &::after {\n position: absolute;\n top: 50%;\n right: 1.1rem;\n display: inline-block;\n width: .55rem;\n height: .55rem;\n margin-top: -.4rem;\n content: \"\";\n border-right: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n opacity: .55;\n transform: rotate(45deg);\n @include transition(transform .2s ease);\n }\n }\n\n &[open] > summary {\n color: var(--#{$prefix}primary);\n border-bottom: 1px solid var(--#{$prefix}border-color);\n\n &::after {\n margin-top: -.15rem;\n opacity: 1;\n transform: rotate(-135deg);\n }\n }\n\n // Content (everything after <summary>) gets the inner padding\n > *:not(summary) {\n padding-right: 1.1rem;\n padding-left: 1.1rem;\n }\n\n > *:not(summary):first-of-type {\n padding-top: 1rem;\n }\n\n > *:not(summary):last-child {\n padding-bottom: 1rem;\n }\n\n // Tighten paragraphs/lists inside an FAQ answer\n p,\n ul,\n ol {\n margin-bottom: .65rem;\n }\n\n > *:last-child p:last-child,\n > p:last-child,\n > ul:last-child,\n > ol:last-child {\n margin-bottom: 0;\n }\n\n // Code blocks inside an FAQ answer get a less-distracting bg\n pre.astro-code,\n pre {\n margin-right: 0;\n margin-left: 0;\n }\n }\n }\n\n // Dark-mode tweak: blockquote info bg needs more contrast on dark\n &[data-bs-theme=\"dark\"],\n [data-bs-theme=\"dark\"] & {\n .card > .card-body blockquote code {\n background: rgba(255, 255, 255, .08);\n }\n }\n}\n\n//\n// FAQ page — custom layout that breaks out of the standard docs card\n// to give the FAQ a more distinctive visual identity. Opt in via\n// body.faq-page (set in pages/docs/faq.astro).\n//\n\n.faq-page {\n // The FAQ doesn't use the standard card wrapper used by other docs,\n // so the container can stretch wider for the chip strip and section\n // grid.\n .app-content > .container-fluid {\n max-width: 64rem;\n\n @include media-breakpoint-up(xxl) {\n max-width: 72rem;\n }\n }\n\n // --- Hero -------------------------------------------------------------\n .faq-hero {\n position: relative;\n padding: 3rem 1.5rem 2.5rem;\n margin-top: 1rem;\n overflow: hidden;\n background: radial-gradient(ellipse at top left, rgba(var(--#{$prefix}primary-rgb), .12), transparent 60%), radial-gradient(ellipse at bottom right, rgba(var(--#{$prefix}info-rgb), .1), transparent 65%), var(--#{$prefix}body-bg);\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius($border-radius-xl);\n }\n\n .faq-hero-eyebrow {\n display: inline-flex;\n gap: .4rem;\n align-items: center;\n padding: .35rem .85rem;\n margin-bottom: 1rem;\n font-size: .75rem;\n font-weight: 600;\n color: var(--#{$prefix}primary);\n text-transform: uppercase;\n letter-spacing: .08em;\n background: var(--#{$prefix}primary-bg-subtle);\n border: 1px solid var(--#{$prefix}primary-border-subtle);\n @include border-radius(50rem);\n\n .bi {\n font-size: .9rem;\n }\n }\n\n .faq-hero-title {\n margin: 0 0 .5rem;\n font-size: 2.25rem;\n font-weight: 700;\n line-height: 1.15;\n color: var(--#{$prefix}emphasis-color);\n\n @include media-breakpoint-up(md) {\n font-size: 2.75rem;\n }\n }\n\n .faq-hero-lead {\n max-width: 36rem;\n margin: 0 auto 1.75rem;\n font-size: 1.05rem;\n line-height: 1.55;\n color: var(--#{$prefix}secondary-color);\n }\n\n .faq-search {\n position: relative;\n max-width: 32rem;\n margin: 0 auto;\n\n .form-control {\n height: 3rem;\n padding-right: 3rem;\n padding-left: 3rem;\n font-size: 1rem;\n background: var(--#{$prefix}body-bg);\n @include border-radius(50rem);\n @include transition(box-shadow .15s ease, border-color .15s ease);\n\n &:focus {\n box-shadow: 0 0 0 .25rem rgba(var(--#{$prefix}primary-rgb), .15);\n }\n }\n }\n\n .faq-search-icon {\n position: absolute;\n top: 50%;\n left: 1.2rem;\n color: var(--#{$prefix}secondary-color);\n pointer-events: none;\n transform: translateY(-50%);\n }\n\n .faq-search-clear {\n position: absolute;\n top: 50%;\n right: .65rem;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n padding: 0;\n color: var(--#{$prefix}secondary-color);\n background: var(--#{$prefix}tertiary-bg);\n border: 0;\n transform: translateY(-50%);\n @include border-radius(50%);\n @include transition(background .15s ease, color .15s ease);\n\n &:hover {\n color: var(--#{$prefix}body-color);\n background: var(--#{$prefix}secondary-bg);\n }\n }\n\n .faq-empty-state {\n max-width: 32rem;\n padding: 1rem;\n margin: 1.5rem auto 0;\n font-size: .95rem;\n color: var(--#{$prefix}secondary-color);\n background: var(--#{$prefix}tertiary-bg);\n @include border-radius($border-radius);\n\n .bi {\n margin-right: .35rem;\n }\n }\n\n // --- Section nav chips ------------------------------------------------\n .faq-chips {\n display: flex;\n flex-wrap: wrap;\n gap: .5rem;\n justify-content: center;\n }\n\n .faq-chip {\n display: inline-flex;\n gap: .45rem;\n align-items: center;\n padding: .45rem .85rem;\n font-size: .875rem;\n font-weight: 500;\n color: var(--#{$prefix}body-color);\n text-decoration: none;\n background: var(--#{$prefix}body-bg);\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius(50rem);\n @include transition(transform .15s ease, border-color .15s ease, background-color .15s ease, color .15s ease);\n\n &:hover {\n color: var(--#{$prefix}emphasis-color);\n background: var(--#{$prefix}tertiary-bg);\n transform: translateY(-1px);\n }\n\n .bi {\n font-size: 1rem;\n }\n }\n\n .faq-chip-count {\n padding: 0 .45rem;\n font-size: .7rem;\n font-weight: 600;\n color: var(--#{$prefix}secondary-color);\n background: var(--#{$prefix}tertiary-bg);\n @include border-radius(50rem);\n }\n\n // Per-section chip accent on hover/active\n @each $tone in (primary, info, warning, success, danger, secondary) {\n .faq-chip-#{$tone}:hover {\n color: var(--#{$prefix}#{$tone}-text-emphasis);\n background: var(--#{$prefix}#{$tone}-bg-subtle);\n border-color: var(--#{$prefix}#{$tone}-border-subtle);\n\n .faq-chip-count {\n color: var(--#{$prefix}#{$tone}-text-emphasis);\n background: rgba(0, 0, 0, .06);\n }\n }\n }\n\n // --- Sections ---------------------------------------------------------\n .faq-section {\n margin-bottom: 2.5rem;\n scroll-margin-top: 5rem;\n }\n\n .faq-section-header {\n display: flex;\n gap: 1rem;\n align-items: center;\n padding: 1rem 1.25rem;\n margin-bottom: 1rem;\n background: var(--#{$prefix}body-bg);\n border: 1px solid var(--#{$prefix}border-color);\n border-left: 4px solid var(--#{$prefix}primary);\n @include border-radius($border-radius);\n }\n\n .faq-section-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 2.75rem;\n height: 2.75rem;\n font-size: 1.35rem;\n color: var(--#{$prefix}primary);\n background: var(--#{$prefix}primary-bg-subtle);\n @include border-radius($border-radius);\n }\n\n .faq-section-title {\n margin: 0;\n font-size: 1.4rem;\n font-weight: 600;\n line-height: 1.2;\n color: var(--#{$prefix}emphasis-color);\n }\n\n .faq-section-count {\n margin: .1rem 0 0;\n font-size: .8rem;\n color: var(--#{$prefix}secondary-color);\n }\n\n // Per-section tone accents\n @each $tone in (primary, info, warning, success, danger, secondary) {\n .faq-section-#{$tone} {\n border-left-color: var(--#{$prefix}#{$tone});\n\n .faq-section-icon {\n color: var(--#{$prefix}#{$tone}-text-emphasis);\n background: var(--#{$prefix}#{$tone}-bg-subtle);\n }\n }\n }\n\n // --- FAQ items (override the generic .docs-page details styling) ------\n .faq-section-items .faq-item {\n margin-bottom: .5rem;\n overflow: hidden;\n background: var(--#{$prefix}body-bg);\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius($border-radius);\n @include transition(border-color .15s ease, box-shadow .15s ease, transform .15s ease);\n\n &:hover {\n border-color: var(--#{$prefix}primary-border-subtle);\n transform: translateX(2px);\n }\n\n &[open] {\n border-color: var(--#{$prefix}primary-border-subtle);\n box-shadow: 0 2px 8px rgba(0, 0, 0, .04);\n transform: none;\n }\n\n summary {\n display: flex;\n gap: .85rem;\n align-items: center;\n padding: 1rem 1.25rem;\n font-size: 1rem;\n font-weight: 500;\n color: var(--#{$prefix}emphasis-color);\n list-style: none;\n cursor: pointer;\n user-select: none;\n\n &::-webkit-details-marker {\n display: none;\n }\n\n &::marker {\n content: \"\";\n }\n\n &::after {\n content: none; // disable the generic chevron, we use our own\n }\n }\n\n .faq-q-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: 1.75rem;\n height: 1.75rem;\n font-size: .85rem;\n color: var(--#{$prefix}primary);\n background: var(--#{$prefix}primary-bg-subtle);\n @include border-radius(50%);\n }\n\n .faq-q-text {\n flex-grow: 1;\n }\n\n .faq-q-chevron {\n flex-shrink: 0;\n color: var(--#{$prefix}secondary-color);\n @include transition(transform .2s ease, color .2s ease);\n }\n\n &[open] .faq-q-chevron {\n color: var(--#{$prefix}primary);\n transform: rotate(180deg);\n }\n\n &[open] summary {\n color: var(--#{$prefix}primary);\n border-bottom: 1px solid var(--#{$prefix}border-color);\n }\n\n .faq-answer {\n padding: 1.1rem 1.25rem 1.1rem 3.85rem; // align with the question text (icon + gap)\n font-size: .95rem;\n line-height: 1.65;\n color: var(--#{$prefix}body-color);\n\n p:last-child,\n ul:last-child,\n ol:last-child,\n pre:last-child {\n margin-bottom: 0;\n }\n\n a {\n color: var(--#{$prefix}primary);\n text-decoration: underline;\n text-underline-offset: 2px;\n\n &:hover {\n text-decoration-thickness: 2px;\n }\n }\n\n code {\n padding: .12em .35em;\n font-size: .875em;\n color: var(--#{$prefix}emphasis-color);\n background: var(--#{$prefix}tertiary-bg);\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius($border-radius-sm);\n }\n\n pre.astro-code,\n pre {\n padding: .85rem 1rem;\n margin-top: .75rem;\n margin-bottom: .75rem;\n overflow-x: auto;\n font-size: .85rem;\n line-height: 1.55;\n @include border-radius($border-radius-sm);\n\n code {\n padding: 0;\n background: transparent;\n border: 0;\n }\n }\n }\n }\n\n // --- CTA footer -------------------------------------------------------\n .faq-cta {\n padding: 2.5rem 1.5rem;\n text-align: center;\n background: radial-gradient(ellipse at top, rgba(var(--#{$prefix}primary-rgb), .08), transparent 60%), var(--#{$prefix}body-bg);\n border: 1px solid var(--#{$prefix}border-color);\n @include border-radius($border-radius-xl);\n }\n\n .faq-cta-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 3.5rem;\n height: 3.5rem;\n margin-bottom: 1rem;\n font-size: 1.6rem;\n color: var(--#{$prefix}primary);\n background: var(--#{$prefix}primary-bg-subtle);\n @include border-radius(50%);\n }\n\n .faq-cta h2 {\n margin: 0 0 .5rem;\n font-size: 1.5rem;\n font-weight: 600;\n color: var(--#{$prefix}emphasis-color);\n }\n\n .faq-cta p {\n max-width: 32rem;\n margin: 0 auto 1.5rem;\n color: var(--#{$prefix}secondary-color);\n }\n\n .faq-cta-actions {\n display: inline-flex;\n flex-wrap: wrap;\n gap: .5rem;\n justify-content: center;\n }\n}\n","// stylelint-disable property-disallowed-list\n// Single side border-radius\n\n// Helper function to replace negative values with 0\n@function valid-radius($radius) {\n $return: ();\n @each $value in $radius {\n @if type-of($value) == number {\n $return: append($return, max($value, 0));\n } @else {\n $return: append($return, $value);\n }\n }\n @return $return;\n}\n\n// scss-docs-start border-radius-mixins\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: valid-radius($radius);\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-left-radius: valid-radius($radius);\n }\n}\n\n@mixin border-top-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-top-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-end-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-right-radius: valid-radius($radius);\n }\n}\n\n@mixin border-bottom-start-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-bottom-left-radius: valid-radius($radius);\n }\n}\n// scss-docs-end border-radius-mixins\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl xxl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @if not $n {\n @error \"breakpoint `#{$name}` not found in `#{$breakpoints}`\";\n }\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width.\n// The maximum value is reduced by 0.02px to work around the limitations of\n// `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(md, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $max: map-get($breakpoints, $name);\n @return if($max and $max > 0, $max - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1400px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $next: breakpoint-next($name, $breakpoints);\n $max: breakpoint-max($next, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($next, $breakpoints) {\n @content;\n }\n }\n}\n","@charset \"UTF-8\";\n/*!\n * AdminLTE v4.0.4 — documentation styles\n * Styles for the documentation and FAQ pages only (body.docs-page /\n * body.faq-page). Applications never need this file; it is loaded by the\n * docs pages in addition to adminlte.css.\n */\n@keyframes flipInX {\n 0% {\n opacity: 0;\n transition-timing-function: ease-in;\n transform: perspective(400px) rotate3d(-1, 0, 0, -90deg);\n }\n 40% {\n transition-timing-function: ease-in;\n transform: perspective(400px) rotate3d(-1, 0, 0, 20deg);\n }\n 60% {\n opacity: 1;\n transform: perspective(400px) rotate3d(-1, 0, 0, -10deg);\n }\n 80% {\n transform: perspective(400px) rotate3d(-1, 0, 0, 5deg);\n }\n 100% {\n transform: perspective(400px);\n }\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n@keyframes shake {\n 0% {\n transform: translate(-2px, 1px) rotate(0deg);\n }\n 10% {\n transform: translate(1px, -2px) rotate(2deg);\n }\n 20% {\n transform: translate(3px, 0) rotate(-3deg);\n }\n 30% {\n transform: translate(0, 2px) rotate(0deg);\n }\n 40% {\n transform: translate(-1px, -1px) rotate(-1deg);\n }\n 50% {\n transform: translate(1px, 2px) rotate(1deg);\n }\n 60% {\n transform: translate(3px, 1px) rotate(0deg);\n }\n 70% {\n transform: translate(-2px, 1px) rotate(2deg);\n }\n 80% {\n transform: translate(1px, -1px) rotate(-4deg);\n }\n 90% {\n transform: translate(-2px, 2px) rotate(0deg);\n }\n 100% {\n transform: translate(-1px, -2px) rotate(1deg);\n }\n}\n@keyframes wobble {\n 0% {\n transform: none;\n }\n 15% {\n transform: translate3d(25%, 0, 0) rotate3d(0, 0, 1, 5deg);\n }\n 30% {\n transform: translate3d(-20%, 0, 0) rotate3d(0, 0, 1, -3deg);\n }\n 45% {\n transform: translate3d(15%, 0, 0) rotate3d(0, 0, 1, 3deg);\n }\n 60% {\n transform: translate3d(-10%, 0, 0) rotate3d(0, 0, 1, -2deg);\n }\n 75% {\n transform: translate3d(5%, 0, 0) rotate3d(0, 0, 1, 1deg);\n }\n 100% {\n transform: none;\n }\n}\n.astro-code {\n padding: 0.75rem;\n border-radius: 0.375rem;\n}\n\n.docs-page .app-content > .container-fluid {\n max-width: 60rem;\n}\n@media (min-width: 1400px) {\n .docs-page .app-content > .container-fluid {\n max-width: 64rem;\n }\n}\n.docs-page .card > .card-body {\n padding: 1.5rem;\n font-size: 1rem;\n line-height: 1.7;\n color: var(--bs-body-color);\n}\n@media (min-width: 768px) {\n .docs-page .card > .card-body {\n padding: 2.5rem;\n }\n}\n.docs-page .card > .card-body h1,\n.docs-page .card > .card-body h2,\n.docs-page .card > .card-body h3,\n.docs-page .card > .card-body h4,\n.docs-page .card > .card-body h5,\n.docs-page .card > .card-body h6,\n.docs-page .card > .card-body .h1,\n.docs-page .card > .card-body .h2,\n.docs-page .card > .card-body .h3,\n.docs-page .card > .card-body .h4,\n.docs-page .card > .card-body .h5,\n.docs-page .card > .card-body .h6 {\n margin-top: 2em;\n margin-bottom: 0.5em;\n font-weight: 600;\n line-height: 1.3;\n color: var(--bs-emphasis-color);\n scroll-margin-top: 4rem;\n}\n.docs-page .card > .card-body h1:first-child,\n.docs-page .card > .card-body h2:first-child,\n.docs-page .card > .card-body h3:first-child,\n.docs-page .card > .card-body h4:first-child,\n.docs-page .card > .card-body h5:first-child,\n.docs-page .card > .card-body h6:first-child,\n.docs-page .card > .card-body .h1:first-child,\n.docs-page .card > .card-body .h2:first-child,\n.docs-page .card > .card-body .h3:first-child,\n.docs-page .card > .card-body .h4:first-child,\n.docs-page .card > .card-body .h5:first-child,\n.docs-page .card > .card-body .h6:first-child {\n margin-top: 0;\n}\n.docs-page .card > .card-body h2,\n.docs-page .card > .card-body .h2 {\n padding-bottom: 0.35em;\n font-size: 1.75rem;\n border-bottom: 1px solid var(--bs-border-color);\n}\n.docs-page .card > .card-body h3,\n.docs-page .card > .card-body .h3 {\n font-size: 1.4rem;\n}\n.docs-page .card > .card-body h4,\n.docs-page .card > .card-body .h4 {\n font-size: 1.2rem;\n}\n.docs-page .card > .card-body h5,\n.docs-page .card > .card-body .h5 {\n padding-top: 1.5em;\n margin-top: 2.5em;\n font-size: 1.3rem;\n border-top: 1px solid var(--bs-border-color);\n}\n.docs-page .card > .card-body h5:first-child,\n.docs-page .card > .card-body .h5:first-child {\n padding-top: 0;\n border-top: 0;\n}\n.docs-page .card > .card-body h6,\n.docs-page .card > .card-body .h6 {\n margin-top: 1.75em;\n font-size: 1.08rem;\n color: var(--bs-emphasis-color);\n}\n.docs-page .card > .card-body p,\n.docs-page .card > .card-body ul,\n.docs-page .card > .card-body ol,\n.docs-page .card > .card-body dl,\n.docs-page .card > .card-body blockquote,\n.docs-page .card > .card-body table {\n margin-bottom: 1.1rem;\n}\n.docs-page .card > .card-body ul,\n.docs-page .card > .card-body ol {\n padding-right: 1.5rem;\n}\n.docs-page .card > .card-body ul li,\n.docs-page .card > .card-body ol li {\n margin-bottom: 0.35rem;\n}\n.docs-page .card > .card-body ul ul,\n.docs-page .card > .card-body ul ol,\n.docs-page .card > .card-body ol ul,\n.docs-page .card > .card-body ol ol {\n margin-top: 0.35rem;\n margin-bottom: 0;\n}\n.docs-page .card > .card-body h2 + p,\n.docs-page .card > .card-body h3 + p,\n.docs-page .card > .card-body h5 + p {\n margin-top: 0;\n}\n.docs-page .card > .card-body p code,\n.docs-page .card > .card-body li code,\n.docs-page .card > .card-body td code,\n.docs-page .card > .card-body th code,\n.docs-page .card > .card-body h2 code,\n.docs-page .card > .card-body h3 code,\n.docs-page .card > .card-body h4 code,\n.docs-page .card > .card-body h5 code,\n.docs-page .card > .card-body h6 code {\n padding: 0.15em 0.4em;\n font-size: 0.875em;\n color: var(--bs-emphasis-color);\n background: var(--bs-tertiary-bg);\n border: 1px solid var(--bs-border-color);\n border-radius: 0.25rem;\n}\n.docs-page .card > .card-body pre.astro-code,\n.docs-page .card > .card-body pre {\n padding: 1rem 1.25rem;\n margin-top: 1.25rem;\n margin-bottom: 1.5rem;\n overflow-x: auto;\n font-size: 0.875rem;\n line-height: 1.6;\n border-radius: 0.375rem;\n}\n.docs-page .card > .card-body pre.astro-code code,\n.docs-page .card > .card-body pre code {\n padding: 0;\n background: transparent;\n border: 0;\n}\n.docs-page .card > .card-body table {\n width: 100%;\n margin-top: 1.25rem;\n margin-bottom: 1.5rem;\n overflow: hidden;\n font-size: 0.95rem;\n border-collapse: collapse;\n border: 1px solid var(--bs-border-color);\n border-radius: 0.25rem;\n}\n.docs-page .card > .card-body table th,\n.docs-page .card > .card-body table td {\n padding: 0.65rem 0.9rem;\n text-align: right;\n vertical-align: top;\n border-bottom: 1px solid var(--bs-border-color);\n}\n.docs-page .card > .card-body table th {\n font-weight: 600;\n color: var(--bs-emphasis-color);\n background: var(--bs-tertiary-bg);\n}\n.docs-page .card > .card-body table tr:last-child td {\n border-bottom: 0;\n}\n.docs-page .card > .card-body table code {\n white-space: nowrap;\n}\n.docs-page .card > .card-body blockquote {\n padding: 0.85rem 1.1rem;\n margin-top: 1.25rem;\n color: var(--bs-emphasis-color);\n background: var(--bs-info-bg-subtle);\n border-right: 4px solid var(--bs-info-border-subtle);\n border-radius: 0.25rem;\n}\n.docs-page .card > .card-body blockquote p:last-child {\n margin-bottom: 0;\n}\n.docs-page .card > .card-body blockquote code {\n background: rgba(0, 0, 0, 0.05);\n}\n.docs-page .card > .card-body a:not(.btn):not(.nav-link) {\n color: var(--bs-primary);\n text-decoration: underline;\n text-decoration-thickness: 1px;\n text-underline-offset: 3px;\n}\n.docs-page .card > .card-body a:not(.btn):not(.nav-link):hover {\n text-decoration-thickness: 2px;\n}\n.docs-page .card > .card-body hr {\n margin: 2.5rem 0;\n border: 0;\n border-top: 1px solid var(--bs-border-color);\n opacity: 1;\n}\n.docs-page .card > .card-body > p:first-child,\n.docs-page .card > .card-body > p:first-of-type {\n margin-bottom: 2rem;\n font-size: 1.125rem;\n line-height: 1.6;\n color: var(--bs-body-color);\n}\n.docs-page .card > .card-body details.faq-item {\n margin-bottom: 0.5rem;\n overflow: hidden;\n background: var(--bs-body-bg);\n border: 1px solid var(--bs-border-color);\n border-radius: 0.375rem;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .docs-page .card > .card-body details.faq-item {\n transition: none;\n }\n}\n.docs-page .card > .card-body details.faq-item:hover {\n border-color: var(--bs-primary-border-subtle);\n}\n.docs-page .card > .card-body details.faq-item[open] {\n background: var(--bs-body-bg);\n border-color: var(--bs-primary-border-subtle);\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);\n}\n.docs-page .card > .card-body details.faq-item summary {\n position: relative;\n padding: 0.9rem 1.1rem 0.9rem 3rem;\n font-size: 1rem;\n font-weight: 600;\n color: var(--bs-emphasis-color);\n list-style: none;\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n transition: color 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .docs-page .card > .card-body details.faq-item summary {\n transition: none;\n }\n}\n.docs-page .card > .card-body details.faq-item summary::-webkit-details-marker {\n display: none;\n}\n.docs-page .card > .card-body details.faq-item summary::marker {\n content: \"\";\n}\n.docs-page .card > .card-body details.faq-item summary:hover {\n color: var(--bs-primary);\n}\n.docs-page .card > .card-body details.faq-item summary::after {\n position: absolute;\n top: 50%;\n left: 1.1rem;\n display: inline-block;\n width: 0.55rem;\n height: 0.55rem;\n margin-top: -0.4rem;\n content: \"\";\n border-left: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n opacity: 0.55;\n transform: rotate(-45deg);\n transition: transform 0.2s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .docs-page .card > .card-body details.faq-item summary::after {\n transition: none;\n }\n}\n.docs-page .card > .card-body details.faq-item[open] > summary {\n color: var(--bs-primary);\n border-bottom: 1px solid var(--bs-border-color);\n}\n.docs-page .card > .card-body details.faq-item[open] > summary::after {\n margin-top: -0.15rem;\n opacity: 1;\n transform: rotate(135deg);\n}\n.docs-page .card > .card-body details.faq-item > *:not(summary) {\n padding-left: 1.1rem;\n padding-right: 1.1rem;\n}\n.docs-page .card > .card-body details.faq-item > *:not(summary):first-of-type {\n padding-top: 1rem;\n}\n.docs-page .card > .card-body details.faq-item > *:not(summary):last-child {\n padding-bottom: 1rem;\n}\n.docs-page .card > .card-body details.faq-item p,\n.docs-page .card > .card-body details.faq-item ul,\n.docs-page .card > .card-body details.faq-item ol {\n margin-bottom: 0.65rem;\n}\n.docs-page .card > .card-body details.faq-item > *:last-child p:last-child,\n.docs-page .card > .card-body details.faq-item > p:last-child,\n.docs-page .card > .card-body details.faq-item > ul:last-child,\n.docs-page .card > .card-body details.faq-item > ol:last-child {\n margin-bottom: 0;\n}\n.docs-page .card > .card-body details.faq-item pre.astro-code,\n.docs-page .card > .card-body details.faq-item pre {\n margin-left: 0;\n margin-right: 0;\n}\n.docs-page[data-bs-theme=dark] .card > .card-body blockquote code, [data-bs-theme=dark] .docs-page .card > .card-body blockquote code {\n background: rgba(255, 255, 255, 0.08);\n}\n\n.faq-page .app-content > .container-fluid {\n max-width: 64rem;\n}\n@media (min-width: 1400px) {\n .faq-page .app-content > .container-fluid {\n max-width: 72rem;\n }\n}\n.faq-page .faq-hero {\n position: relative;\n padding: 3rem 1.5rem 2.5rem;\n margin-top: 1rem;\n overflow: hidden;\n background: radial-gradient(ellipse at top right, rgba(var(--bs-primary-rgb), 0.12), transparent 60%), radial-gradient(ellipse at bottom left, rgba(var(--bs-info-rgb), 0.1), transparent 65%), var(--bs-body-bg);\n border: 1px solid var(--bs-border-color);\n border-radius: 1rem;\n}\n.faq-page .faq-hero-eyebrow {\n display: inline-flex;\n gap: 0.4rem;\n align-items: center;\n padding: 0.35rem 0.85rem;\n margin-bottom: 1rem;\n font-size: 0.75rem;\n font-weight: 600;\n color: var(--bs-primary);\n text-tran